[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