[devel] rpm 4.0.4-alt82

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пн Янв 14 22:00:45 MSK 2008


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080114/ce1ea454/attachment-0002.bin>


Подробная информация о списке рассылки Devel