[devel] usrmerge: future conflicts in /lib*

Arseny Maslennikov arseny на altlinux.org
Ср Фев 7 18:57:09 MSK 2024


On Sat, Feb 03, 2024 at 01:31:28PM +0300, Arseny Maslennikov wrote:
> On Sat, Feb 03, 2024 at 10:46:42AM +0300, Anton Farygin wrote:
> > On 03.02.2024 00:38, Arseny Maslennikov wrote:
> > > Предыдущее обсуждение — в треде:
> > > https://lore.altlinux.org/devel/ZKQaFPEN0qnNWGnz@cello/
> > 
> > Почему-то мне кажется что чем больше пакетов переедут самостоятельно, тем
> > меньше сложность вопросов, которые нужно будет решать в rpm и сборочной
> > системе.
> 
> Связь тут неравномерная: ряд пакетов уже и так собираются и ставятся,
> будучи собраны с прототипом brp-модуля. Но некоторые отдельные пакеты,
> может быть, и стоит поправить заранее.
> 
> Например, есть библиотеки, где под /lib64 зачем-то лежат
> devel-симлинки; или в этом каталоге лежит сама библиотека, но клиентов в
> /bin и /sbin у неё нет.
> Сейчас brp-модуль игнорирует /lib и /%_lib; если
> мейнтейнеры исправят свои такие пакеты, это поможет.

Вот список всех исходных пакетов, из которых собираются пакеты,
содержащие файлы под /lib*, которые на merged-usr иерархии начнут
конфликтовать с другими файлами:
cyrus-sasl2  asy @everybody
libdb4.7  @core
libdb4.8  rider @everybody
libdb6.1  rider @everybody
libusb  shrek shaba mike @everybody
samba  sin @qa
gcc-common  @core at sbolshakov
pcc  oddity @qa @everybody

Прошу уважаемых мейнтейнеров их исправить.

Про последние два пакета я уже писал:
> Или, например, есть такой пакет pcc, который упаковывает файл /usr/lib/cpp.
> Путь /lib/cpp встречается в configure-скриптах из-под достаточно старых
> версий autoconf; скрипт начинает его проверять, если недоступны или
> работают не так "$CC -E" и "$CC -E -traditional-cpp".
> В debian (с учётом его необычного устройства %_libdir) этот путь
> вообще отсутствует.
> Я бы просто перед запуском такого configure-скрипта делал так:
>     sed -i 's!"/lib/cpp"!"$CC -E"!' ./configure
> А вот /usr/lib/cpp сам собой не используется вообще никем.
> 
> На merged-usr иерархии пакет pcc со своим файлом /usr/lib/cpp начнёт
> иметь мисконфликт с gcc-common, чей симлинк /lib/cpp тоже попадёт в
> /usr/lib.
Полагаю, из pcc надо просто убрать /usr/lib/cpp.

Вот сами конфликтующие файлы, сгруппированные по исх. пакетам.
libdb*:
	/{,usr/}lib64/libdb-4.7.so
	/{,usr/}lib64/libdb-4.8.so
	/{,usr/}lib64/libdb-6.1.so
samba:
	/{,usr/}lib64/libnss_winbind.so.2
	/{,usr/}lib64/libnss_wins.so.2
cyrus-sasl:
	/{,usr/}lib64/libsasl2.so
libusb:
	/{,usr/}lib64/libusb-1.0.so.0

Либо эти файлы будут конфликтовать с симлинками в своих devel-пакетах,
и тогда их надо починить тем или иным надлежащим способом.
Либо конфликтующие файлы в одном пакете, и нужно положить вне префикса и
под префикс две копии вместо симлинков; например:

  cp -a %buildroot/lib64/libusb-1.0.so.0 %buildroot%_libdir/libusb-1.0.so.0

Заранее благодарю!
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20240207/18e13115/attachment.bin>


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