From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 27 Oct 2024 13:42:37 +0100 From: Alexey Gladkov To: ALT Linux Team development discussions Message-ID: References: <725768c8-4a6d-4f9c-bdc1-63eb2504c637@ya.ru> <2e33h5lcjdxhdzq4yaug6vgpukeh3sa2ojl7ayqmsgtjjtrh2m@4peizswylqwk> <434caebc-6235-4ec6-89b0-2b4d91ee5da1@ya.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [devel] =?utf-8?b?aGFzaGVyOiDQv9Cw0LrQtdGC0YssINGD0YHRgtCw0L0=?= =?utf-8?b?0L7QstC70LXQvdC90YvQtSDQv9C+INC30LDQstC40YHQuNC80L7RgdGC0Y8=?= =?utf-8?b?0Lw=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Oct 2024 12:42:39 -0000 Archived-At: List-Archive: List-Post: On Sun, Oct 27, 2024 at 03:35:04PM +0300, Антон Мидюков wrote: > > Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный > > список пакетов плюс виртуальные provides. Там не будет пакетов, которые > > выберет apt для этих виртуальных пакетов. Например в изначальном списке > > есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы > > уберём виртуальное имя xvt т.к. это не настоящее имя пакета. > > > > Получается, что после comm xterm, который установится по xvt будет помечен > > auto, а это не то, что ты хочешь, кажется. > > > > В install_pkgs необходимо добавить те пакеты, которые будут выбраны > > apt'ом. > > > > Нет, в install_pkgs будет xterm, а xvt не будет. > Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs. > xterm помечается, как manual. Я проверил. > --whatprovides заменяет виртуальные пакеты реальными. Ааа. Теперь ясно. Тогда предлагаю что-нибудь типа вот такого: diff --git a/tools/mki-install b/tools/mki-install index 8c8cad3..dba877e 100755 --- a/tools/mki-install +++ b/tools/mki-install @@ -19,3 +19,32 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+-- mki_list_pkgs "$@" | xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir" + +# shellcheck disable=SC2249 +[ -z "${PROG##*-image-*}" ] || + exit 0 + +hsh-run --rooter -- "$dir" which apt-mark >/dev/null 2>&1 || + exit 0 + +tempdir= +exit_handler() { + local rc=$? + trap - EXIT + [ -z "$tempdir" ] || rm -rf -- "$tempdir" + exit $rc +} + +trap exit_handler HUP INT QUIT TERM EXIT +tempdir="$(mktemp -d "$dir/$PROG.XXXXXX")" + +export LC_ALL=C LANG=C LANGUAGE=C + +mki-expand-pkgs regexp "$@" | + xargs -r hsh-run --rooter -- "$dir" rpm -q --whatprovides --qf='%{NAME}\n' | + sort -uo "$tempdir/install_pkgs" + +hsh-run --rooter -- "$dir" rpm -q --all --qf='%{NAME}\n' | + sort -u | + comm -23 - "$tempdir/install_pkgs" | + xargs -r hsh-run --rooter -- "$dir" apt-mark auto -- Rgrds, legion