From: Stanislav Ievlev <inger@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] rpm 4.0.4-alt87 Date: Mon, 25 Feb 2008 13:36:42 +0300 Message-ID: <20080225103642.GA23612@imap.altlinux.org> (raw) In-Reply-To: <20080224180121.GA32305@solemn.turbinal> Может стоит отделить ALT-specific наработки в rpm в отдельный пакет? А то теоретическая миграция на 5.0 становится всё сложнее и сложнее. On Sun, Feb 24, 2008 at 09:01:21PM +0300, Alexey Tourbin wrote: > После некоторых колебаний я подготовил новую сборку rpm. > > 4.0.4-alt87 > > - implemented automatic dependencies for %%pre, %%preun, %%post, > and %%postun scriptlets (#7409) > - find-package: when possible, keep file-level dependencies as is, > without mapping them to package names > - find-package: relax file-level dependencies on unpackaged directories > - find-package: optimize out bulk dependencies on sh, cat, rm, mv etc. > - build/parseScript.c: optimize out RPMSENSE_INTERP dependencies on /bin/sh > - lib.req: enabled ELF_INTERP dependencies except for standard /lib/ld-linux.so.2 > - functions (ValidateBuildRoot): require RPM_BUILD_ROOT path be canonical > > Прокомментирую основные изменения: > > 1) Поиск зависимостей в %post-скритпах. Теперь зависимости > %post-скриптов вида Requires(post): ... можно не писать вручную (и лучше > вообще не писать без особой нужды). Реализация мне не очень нравится, > но на практике это не должно повлиять на конечный результат (реализацию > можно будет переделать, если станет понятно, как это можно сделать > лучше). > > Ранее я уже писал, что нужно понимать некоторые особенности работы > shell.req, чтобы зависимости в шелл-коде %post-скриптов генерировались > наиболее приемлемым образом. В частности, если зависимости быть не > должно (если она не строгая), то команды в шелл-коде нужно заворачивать > в переменные: > > x=/usr/bin/x > if [ -x "$x" ]; then > "$x" > fi > > В отличие от реализации jbj@ (в апстриме rpm), поиск зависимостей > работает не только для shell-кода (например, если %post-скрипт написан > на перле -- "%post -p /usr/bin/perl" -- то будет работать поиск перловых > зависимостей). > > 2) Когда путь к файлу указан явно, rpm теперь будет стараться сохранить > зависимость на этот файл as is, без поиска соответствующего пакета, > который содержит этот файл. Это пока возможно не для всех путей (для > некоторых путей это может дать "полу-анметы"), но для многих -- возможно. > > Идея в том, что когда где-то требуется путь к файлу, то наиболее точный > способ указать зависимость -- это просто вставить этот путь в > зависимости. Вот пример, когда это желательно. Пусть в пакете > используется /usr/bin/tclsh8.4. Тогда старый rpm разрешал эту > зависимость в пакет tcl (версии 8.4). Новый пакет tcl (версии 8.5) > уже не содержит файла /usr/bin/tclsh8.4, но зависимость на пакет tcl > остаётся, естественно, удовлетворенной (то есть получаем нерабочий > пакет). После же пересборки старый rpm изменил бы зависимость > s/tcl/tcl8.4/. Всего этого можно избежать, если не делать "производных" > зависимостей, а стараться указывать зависимости в их наиболее > "первоначальном" виде. Здесь имеется полная аналогия с виртуальными > зависимостями -- они как раз предназначены для того, чтобы указывать > зависимости в наиболее точном "первичном" виде. > > Чтобы не появилось слишком много bulk зависимостей, я реализовал > оптимизацию, которая удаляет следующие зависимости (как "команды" > в шелл-скриптах, так и соответствующие им /bin/ пути): > sh cat rm mv cp mkdir ln > > (список можно будет немного увеличить, если кто-нибудь захочет > составить более точную статистику, чем у меня получилось с ходу). > > Поскольку сам rpm требует coreutils и /bin/sh, то в любой > не окончательно поломанной среде эти зависимости должны быть > заведомо удовлетворены. > > Это изменение не затрагивает случая, когда известна только "команда" > (из шелл-срипта) и поиск зависимости на эту команду идёт через перебор > каталогов по default PATH. Здесь осталось всё по-старому (как правило, > генерируется зависимость на имя пакета, содержащего "команду"). > > > 2ldv: лучше собрать его два раза, второй раз --with-stuff. > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel
next prev parent reply other threads:[~2008-02-25 10:36 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-02-24 18:01 Alexey Tourbin 2008-02-24 19:29 ` [devel] [JT] subjunctive mode (rpm 4.0.4-alt87) Alexey Tourbin 2008-02-24 22:53 ` Alexey Rusakov 2008-02-25 3:33 ` Alexey Tourbin 2008-02-25 7:49 ` Alexey Rusakov 2008-03-09 16:12 ` Alexey Tourbin 2008-03-09 17:03 ` Alexey Rusakov 2008-03-09 18:08 ` Alexey Tourbin 2008-03-09 18:13 ` [devel] libgtk+2-common-2.12.8-alt1 Dmitry V. Levin 2008-03-09 19:07 ` [devel] [JT] subjunctive mode (rpm 4.0.4-alt87) Alexey Rusakov 2008-02-25 10:36 ` Stanislav Ievlev [this message] 2008-02-25 11:11 ` [devel] rpm 4.0.4-alt87 Mikhail Gusarov 2008-02-25 11:18 ` Dmitry V. Levin 2008-02-25 20:48 ` Dmitry V. Levin 2008-02-28 17:38 ` Alexey Tourbin 2008-02-27 16:46 ` Dmitry V. Levin 2008-02-28 18:00 ` Alexey Tourbin 2008-02-28 18:34 ` Dmitry V. Levin 2008-02-28 19:05 ` Alexey Tourbin 2008-02-28 20:52 ` [devel] Q: rpmi --chroot Dmitry V. Levin 2008-02-28 21:09 ` Alexey Gladkov 2008-02-28 21:15 ` Dmitry V. Levin 2008-02-28 21:52 ` Alexey Gladkov 2008-02-28 22:49 ` Sergey Bolshakov 2008-02-28 23:08 ` Sergey Bolshakov 2008-02-29 5:47 ` Alexey Tourbin 2008-02-28 21:27 ` Alexey Tourbin 2008-02-28 21:38 ` Alexey Gladkov 2008-02-28 22:16 ` Alexey Tourbin 2008-02-28 23:06 ` Alexey Gladkov 2008-02-29 5:12 ` Alexey Tourbin 2008-02-29 6:39 ` Alexey Gladkov 2008-02-29 10:34 ` [devel] rpm 4.0.4-alt87 Kirill A. Shutemov 2008-03-01 9:45 ` Alexey Tourbin 2008-03-01 15:35 ` Mikhail Gusarov 2008-03-01 21:02 ` Alexander Bokovoy 2008-03-01 21:06 ` Mikhail Gusarov 2008-03-01 21:25 ` Alexey Tourbin 2008-03-01 21:45 ` Alexey Gladkov 2008-03-01 22:02 ` Alexey Tourbin 2008-03-01 22:09 ` Alexey Gladkov 2008-03-01 22:25 ` Led 2008-03-01 22:29 ` Pavlov Konstantin 2008-03-02 7:30 ` Alexander Bokovoy 2008-03-02 7:54 ` Alexey Tourbin 2008-03-02 7:58 ` Alexey Tourbin 2008-03-02 8:12 ` Alexey Tourbin 2008-03-02 8:54 ` Alexander Bokovoy 2008-03-02 13:30 ` Led 2008-03-03 15:01 ` [devel] embedded package (non-)management Michael Shigorin 2008-03-03 17:05 ` Alexey Shabalin 2008-02-28 18:40 ` [devel] rpm 4.0.4-alt87 Alexey Tourbin 2008-02-28 18:44 ` Dmitry V. Levin 2008-02-28 19:11 ` Alexey Tourbin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080225103642.GA23612@imap.altlinux.org \ --to=inger@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git