[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