[devel] "unowned files" в i586
Leonid Krivoshein
klark.devel на gmail.com
Чт Авг 28 13:33:29 MSK 2025
Павел, привет!
On 8/28/25 08:47, Pavel Vasenkov wrote:
> Всем доброго дня.
>
> При построении пакета в Сизифе получаю unowned files
Хотя в большинстве случаев это нормально, в первом из трёх примеров
наоборот. Я бы добавил такой макрос в начале спека:
%define _unpackaged_files_terminate_build 1
Если файл не запакован, будет ошибка. Каталог может быть не упакован и
оказаться в процессе установки зависимостей, это нормально. Тогда все
эти предупреждения таковыми и останутся лишь для внимания собирающего.
Но данный пакет не соберётся из-за одной ошибки.
> https://git.altlinux.org/tasks/393332/logs/events.4.1.log
> https://packages.altlinux.org/tasks/393332
>
> subtask name aarch64 i586 x86_64
> #400 entity-manager 1:51 1:15 1:07
>
> ...
>
> 2025-Aug-27 07:53:05 :: [x86_64 i586 aarch64] ELF symbols check OK
> i586: entity-manager=0.1-alt1 post-install unowned files:
> /usr/libexec/entity-manager
По замыслу эта сущность прописана в %files, а значит должна принадлежать
пакету, но с ней явно что-то не так, раз она попадает в этот выхлоп. В
спеке есть такие строки:
%files
%defattr(-,root,root,-)
%{_libexecdir}exec/%{name}/entity-manager
%{_libexecdir}exec/%{name}/devicetree-vpd-parser
%{_libexecdir}exec/%{name}/fru-device
Во-первых, такая конкатенация вредна: "%{_libexecdir}exec", уж лучше
раскрыть всю конструкцию в /usr/libexec. Иначе при смене макроса в
другой сборочной среде сюрприз будет.
Во-вторых, предупреждение только об отсутствии
/usr/libexec/entity-manager, тогда как с devicetree-vpd-parser и
fru-device этой проблемы нет. Что наталкивает на мысль о предыдущей
строке: %defattr(-,root,root,-). Возможно, тут подразумевалось
%defattr(-,root,root), тут может быть ошибка в rpm-build'е, поскольку
это молча отразилось на следующую строку. В спеках чаще используется без
4-го аргумента:
https://github.com/search?q=repo%3Aaltlinux%2Fspecs%20%25defattr(&type=code
В-третьих, %global _prefix /usr в спеке удивляет. Значение дефолта
переопределяется на дефолт с очень дефолтным комментарием. :-)
Непонятно, зачем так делать.
> /usr/share/dbus-1
> /usr/share/dbus-1/system-services
Пустые каталоги, обычно создаваемые зависимостями, на них нужно обращать
внимание, но избавиться от них видимо нельзя.
> 2025-Aug-27 07:53:19 :: [i586] #400 entity-manager: install check OK
> x86_64: entity-manager=0.1-alt1 post-install unowned files:
> /usr/libexec/entity-manager
> /usr/share/dbus-1
> /usr/share/dbus-1/system-services
> 2025-Aug-27 07:53:20 :: [x86_64] #400 entity-manager: install check OK
> 2025-Aug-27 07:53:28 :: [i586] #400 entity-manager-debuginfo: install
> check OK
> 2025-Aug-27 07:53:28 :: [x86_64] #400 entity-manager-debuginfo: install
> check OK
> aarch64: entity-manager=0.1-alt1 post-install unowned files:
> /usr/libexec/entity-manager
> /usr/share/dbus-1
> /usr/share/dbus-1/system-services
> 2025-Aug-27 07:53:29 :: [aarch64] #400 entity-manager: install check OK
>
> Подскажите, как избавиться от этого предупреждения?
Кстати, что показывает rpm -ql на данном пакете? Всё ли необходимое
упаковано?
--
WBR, Leonid Krivoshein.
Подробная информация о списке рассылки Devel