[devel] [#348147] DONE (try 6) systemd.git=255.6-alt1 systemd-boot-trigger.git=1.1-alt1

Evgeny Sinelnikov sin на altlinux.org
Сб Май 25 04:31:14 MSK 2024


сб, 25 мая 2024 г. в 02:21, Evgeny Sinelnikov <sin at altlinux.org>:
>
> Доброй ночи.
>
> пт, 24 мая 2024 г. в 20:49, Yuri Sedunov <aris at altlinux.org>:
> >
> > В Пт, 24/05/2024 в 16:53 +0300, Alexey Shabalin пишет:
> > > пт, 24 мая 2024 г. в 13:57, Anton Farygin <rider at basealt.ru>:
> > > >
> > > > On 24.05.2024 11:52, Dmitry V. Levin wrote:
> > > > > On Thu, May 23, 2024 at 11:51:13AM +0000, Girar pender (shaba)
> > > > > wrote:
> > > > > > https://git.altlinux.org/tasks/archive/done/_339/348147/logs/events.6.3.log
> > > > > > 2024-May-23 11:09:14 :: task #348147 for sisyphus resumed by
> > > > > > shaba:
> > > > > > #100 removed
> > > > > > #140 build 255.6-alt1 from /people/shaba/packages/systemd.git
> > > > > > fetched at 2024-May-23 07:42:21
> > > > > После того, как этот пакет попал в Сизиф, сломалась сборка около
> > > > > сотни
> > > > > пакетов, в которых есть файлы для systemd или udev.
> > > > >
> > > > Да, я тоже заметил.
> > > >
> > > > Надеюсь исправление тоже надо делать только в одном месте.
> > >
> > > Этого следовало ожидать. Значения в pkgconfig(systemd) изменились,
> > > эти пакеты заглядывают в него что бы узнать куда устанавливать файлы.
> > > В задании #349068
> >
> > id=349068 locked=no shared=no fail_early=yes test_only=no repo=sisyphus
> > owner=shaba state=EPERM
> >
> > И чего это никто не спешит одобрить и запустить это задание?
> >
> > >  подготовлен rpm-build в котором макросы
> > > синхронизированы с pkgconfig(systemd).
> > > Прошу пропустить задание.
> > > Не уверен, что все 100% исправит, но большую часть точно.
> > >
> >
>
> Потенциально, для некоторых пакетов это исправление не спасает.
>
> Например, если в этих пакетах /lib/tmpfiles.d прописан явно. Проверил
> на примере freeipa (на примере rpm не подтвердилось).
[...]
>
> Или, например, если в этих пакетах /lib/udev/rules.d прописан явно.
> Проверил на примере mdadm, fwupd и spice-vdagent .
[...]

В общем, главный просчет состоит в том, что %buildroot не повторяет
usrmerge корневой директории.

$ find / -maxdepth 1 | while read p; do [ -L "$p" ] || continue ; echo
-n "$p -> "; readlink -f $p; done
/lib -> /usr/lib
/bin -> /usr/bin
/sbin -> /usr/sbin
/lib64 -> /usr/lib64
/libx32 -> /usr/libx32

Во время сборки никто её в %buildroot не повторяет. Да и симлинки там
довольно проблематично обрабатывать:
--- a/.gear/freeipa.spec
+++ b/.gear/freeipa.spec
@@ -566,6 +565,8 @@
%make_build

%install
+mkdir -p %buildroot/usr/lib
+ln -s usr/lib %buildroot/lib
%makeinstall_std

%if_without only_client
...
Processing files: freeipa-server-4.11.1-alt4
error: File path component must be directory
(/usr/src/tmp/freeipa-buildroot/lib):
/usr/src/tmp/freeipa-buildroot/lib/systemd/system/ipa.service
...
$ ls -l ~/hasher/chroot/usr/src/tmp/freeipa-buildroot/lib
lrwxrwxrwx 1 sin_b sin_b 7 мая 25 04:41
/home/sin/hasher/chroot/usr/src/tmp/freeipa-buildroot/lib -> usr/lib
$ ls -l ~/hasher/chroot/usr/src/tmp/freeipa-buildroot/usr/lib/systemd/system/ipa.service
-rw-r--r-- 1 sin_b sin_b 294 мая 25 04:41
/home/sin/hasher/chroot/usr/src/tmp/freeipa-buildroot/usr/lib/systemd/system/ipa.service

Не пострадают лишь те пакеты, которые не используют pkg-config и не
рассчитывают на то, что между возвращаемыми именами каталогов от
pkg-config и макросами в /usr/lib/rpm/platform/$(arch)-linux/macros
имеются расхождения:
- https://git.altlinux.org/tasks/349068/gears/100/git?p=git;a=commitdiff;h=a3c3f9554099a2bee37709448f85963c1cf6d5f1

$ pkg-config --define-variable=prefix=/usr
--variable=systemdsystemunitdir systemd
/lib/systemd/system
$ sudo chroot ~/hasher/chroot pkg-config --define-variable=prefix=/usr
--variable=systemdsystemunitdir systemd
/usr/lib/systemd/system

$ rpm --eval '%_unitdir'
/lib/systemd/system
$ sudo chroot ~/hasher/chroot rpm --eval '%_unitdir'
/lib/systemd/system

$ rpm -qf /usr/share/pkgconfig/systemd.pc
libsystemd-devel-254.10-alt2.x86_64
$ sudo chroot ~/hasher/chroot rpm -qf /usr/share/pkgconfig/systemd.pc
libsystemd-devel-255.6-alt1.x86_64

Если не дожидаться исправления в rpm-build вариант - сделать во всех
спеках сломанных пакетов временный хак, как в systemd:

# usr merged path
%define _binfmtdir %_prefix/lib/binfmt.d
%define _env_dir %_prefix/lib/environment.d
%define _journal_catalogdir %_prefix/lib/systemd/catalog
%define _modprobedir %_prefix/lib/modprobe.d
%define _modules_loaddir %_prefix/lib/modules-load.d
%define _presetdir %_prefix/lib/systemd/system-preset
%define _user_presetdir %_prefix/lib/systemd/user-preset
%define _sysctldir %_prefix/lib/sysctl.d
%define _sysusersdir %_prefix/lib/sysusers.d
%define _systemd_dir %_prefix/lib/systemd
%define _tmpfilesdir %_prefix/lib/tmpfiles.d
%define _unitdir %_prefix/lib/systemd/system
%define _user_unitdir %_prefix/lib/systemd/user
%define _udev_hwdbdir %_prefix/lib/udev/hwdb.d
%define _udev_rulesdir %_prefix/lib/udev/rules.d
%define _gen_dir %_prefix/lib/systemd/system-generators
%define _user_gen_dir %_prefix/lib/systemd/user-generators
%define _env_gen_dir %_prefix/lib/systemd/system-environment-generators
%define _user_env_gen_dir %_prefix/lib/systemd/user-environment-generators

И поправить "ручные" строки вида /lib/udev/rules.d на %_udev_rulesdir
Но это всё та же проблема исправления множества пакетов. А, кроме
того, у множества пакетов, наоборот, в скриптах сборки всё прибито
гвоздями...

В общем... Я думаю это проблема, конечно.




-- 
Sin (Sinelnikov Evgeny)


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