From: "Dmitry V. Levin" <ldv@altlinux.org> To: ALT Devel discussion list <devel@lists.altlinux.org> Subject: Re: [devel] rpm 4.0.4-alt82 Date: Mon, 14 Jan 2008 22:00:45 +0300 Message-ID: <20080114190045.GA1483@wo.int.altlinux.org> (raw) In-Reply-To: <20071203125056.GD361@solemn.turbinal> [-- Attachment #1: Type: text/plain, Size: 5219 bytes --] On Mon, Dec 03, 2007 at 03:50:56PM +0300, Alexey Tourbin wrote: [...] > У меня предварительно готова новая сборка rpm 4.0.4-alt82. Каким-то не вполне понятным образом эта сборка никуда не пошла. > Я пока воспринимаю ещё как экспериментальную. Хотелось бы замутить > пересборку сизифа с 4.0.4-alt82 и потом проверить/обсудить, устраивает > ли нас новая схема зависимостей или нет. Это ещё актуально? Сейчас заканчивается очередная тестовая пересборка, можно попробовать. > 4.0.4-alt82 > > - reqprov.c (addReqProv): implemented optimization of "self-requires" > dependencies on packaged files > - find-package, shell.req, pkgconfiglib.req, symlinks.req: do not > completely ignore dependencies on files which are under RPM_BUILD_ROOT; > that is, emit "file-level" dependencies which will be optimized out by > addReqProv() within a single subpackage, but will protect from unpackaged > files between subpackages; works best with apt-utils >= 0.5.15lorg2-alt17 > - lib.req: try to emit file-level dependencies instead of "soname-level" > dependencies on private libraries (see git log for details); this can > largely reduce the need for %%add_findprov_lib_path which is "public > provides for private libraries" > > Здесь два существенных изменения. Во-первых, будут проставляться все > файловые зависимости на файлы которые обнаруживаются под RPM_BUILD_ROOT. > Раньше зависимости такого рода просто игнорировались -- считалось, что > maintainer должен запаковать всё что нужно и при этом правильно > расставить зависимости между подпакетами. Теперь эта "лавочка" > прикрывается. > > В пределах одного ПОДПАКЕТА все файловые зависимости будут > оптимизироваться (удаляться). Но теперь появится много зависимостей > которые актуальны для связей между РАЗНЫМИ подпакетами (собранными из > одного исходного пакета). Например, у librpm-devel (если собрать его > два раза) теперь зависимости изменятся так: > > $ compare_packages -a -R -- ~sisyphus/files/i586/RPMS/librpm-devel-4.0.4-alt81.i586.rpm -- librpm-devel-4.0.4-alt82.athlon.rpm > --- /tmp/.private/at/compare_packages.IlbTPR4179/1 2007-12-03 15:32:59 +0300 > +++ /tmp/.private/at/compare_packages.IlbTPR4179/2 2007-12-03 15:32:59 +0300 > @@ -1,9 +1,13 @@ > +/usr/lib/librpm-4.0.4.so > +/usr/lib/librpmbuild-4.0.4.so > +/usr/lib/librpmdb-4.0.4.so > +/usr/lib/librpmio-4.0.4.so > bzlib-devel > libbeecrypt-devel > libdb4.4-devel > libpopt-devel > -librpm = 4.0.4-alt81 > -librpmbuild = 4.0.4-alt81 > +librpm = 4.0.4-alt82 > +librpmbuild = 4.0.4-alt82 > rpmlib(CompressedFileNames) <= 3.0.4-1 > rpmlib(PayloadFilesHavePrefix) <= 4.0-1 > rpmlib(VersionedDependencies) <= 3.0.3-1 > $ > > Добавившиеся зависимости означают что пакет librpm-devel "не может жить" > без файлов /usr/lib/librpm-4.0.4.so и т.д. (потому что там есть симлинки > для линковки которые показывают на эти файлы). Но этих файлов нет в > самом пакете librpm-devel, поэтому кто-то их должен "предоставлять" (на > самом деле явного provides не требуется, apt будет хорошо разрешать > файловые зависимости начиная с alt17). На практике эти файлы должен > содержать какой-то другой подпакет, собранный из этого же исходного > пакета (хотя сейчас нет способа передать при помощи зависимости именно > этот строгий смысл). > > То есть, с одной стороны, как я уже писал, появляется много "лишних" на > первый взгляд зависимостей. С другой стороны, эта зависимости защищают > от ошибок неупаковки файлов между подпакетами. > > Далее можно будет реализовать оптимизацию виртуальных зависимостей при > жесткой связи между подпакетами (= %version-%release). Но это не очень > хорошо вписывается в архитектуру rpm, и, кроме того, слишком сильная > "очистка" виртуальных зависимостей между подпакетами может противоречить > интуиции maintainer'а. > > Второе изменение на практике сводится к тому, что в openoffice.org > теперь можно будет отключить %add_findprov_lib_path, чтобы он не > предоставлял несколько сотен "приватных" виртуальных библиотек. > При этом зависимости между подпакетами openoffice.org-kde и -gnome > будут сведены к зависимостям на файлы, то есть вместо зависимостей типа > > $ rpm -qpR openoffice.org-kde-2.3.0-alt6.i586.rpm |grep /usr/lib > ... > /usr/lib/OpenOffice.org2/program/libcomphelp4gcc3.so > ... > /usr/lib/OpenOffice.org2/program/libpsp680li.so(LIBPSPRINT_1_0) > ... > $ > > будут "чисто файловые" зависимости > /usr/lib/OpenOffice.org2/program/libcomphelp4gcc3.so > /usr/lib/OpenOffice.org2/program/libpsp680li.so > > Это "ослабление" в основном не должно нарушить какой-то бинарной > совместимости, поскольку эта "замена сонеймов (со скобками) на файлы" > происходит только для подпакетов в пределах одного исходного пакета, > а такие подпакеты, как правильно, должны иметь жесткую связь. > > Идея тут в том, что "сонеймы со скобками" нужно явно предоставлять > через provides (что в случае с openoffice.org заметно засоряет базу > зависимостей), а "файлы" явно предоставлять не нужно, apt их "оживляет" > по мере необходимости. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-01-14 19:00 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-12-03 12:50 Alexey Tourbin 2008-01-14 19:00 ` Dmitry V. Levin [this message] 2008-01-14 19:56 ` Alexey Tourbin 2008-01-14 20:26 ` Dmitry V. Levin 2008-01-14 23:19 ` 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=20080114190045.GA1483@wo.int.altlinux.org \ --to=ldv@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