Bug 50527 - Unexpected filesystem3-related buildmacros changes
Summary: Unexpected filesystem3-related buildmacros changes
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Arseny Maslennikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 50121
  Show dependency tree
 
Reported: 2024-06-02 20:26 MSK by Nikolay A. Fetisov
Modified: 2024-06-05 02:51 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolay A. Fetisov 2024-06-02 20:26:17 MSK
Для rpm-build-4.0.4.199-alt1, собранного на системе с filesystem 3.1,
изменились ряд значений макросов в /usr/lib/rpm/buildmacros .

Было для предыдущего rpm-build 4.0.4.198-alt1:
$  grep -E '^%__(file|id|make|mkdir_p|patch|perl|subst|ld|nm|objcopy|objdump|strip)[[:blank:]]' buildmacros
%__file                 /usr/bin/file4
%__id                   /usr/bin/id
%__make                 /usr/bin/make
%__mkdir_p              /bin/mkdir -p
%__patch                /usr/bin/patch
%__perl                 /usr/bin/perl
%__subst                /usr/bin/subst
%__ld                   /usr/bin/ld
%__nm                   /usr/bin/nm
%__objcopy              /usr/bin/objcopy
%__objdump              /usr/bin/objdump
%__strip                /usr/bin/strip

Стало в rpm-build-4.0.4.199-alt1:
%__file                 /bin/file4
%__id                   /bin/id
%__make                 /bin/make
%__mkdir_p              /usr/bin/mkdir -p
%__patch                /bin/patch
%__perl                 /bin/perl
%__subst                /bin/subst
%__ld                   /bin/ld
%__nm                   /bin/nm
%__objcopy              /bin/objcopy
%__objdump              /bin/objdump
%__strip                /bin/strip

Это точно ожидаемое поведение для нового rpm-build?

Теперь значения этих макросов отличаются от одноимённых определений
в /usr/lib/rpm/macros из librpm7 .

Кроме того, как минимум для %__perl эти изменения влияют на результаты сборки
пакетов: %__perl используется в функции _perl_vendor_fixin() из /usr/lib/rpm/macros.d/perl5
(rpm-build-perl-0.85-alt6) для принудительной замены пути к perl в shebang скриптов,
которая в свою очередь используется в %perl_vendor_build .
Указание пути к Perl как /bin/perl вместо традиционного (и правильного) /usr/bin/perl
как минимум сломало сборку модулей perl-Pod-Eventual и perl-Dist-Zilla-Plugin-OurPkgVersion.
Comment 1 Arseny Maslennikov 2024-06-03 00:57:37 MSK
(In reply to Nikolay A. Fetisov from comment #0)
> Для rpm-build-4.0.4.199-alt1, собранного на системе с filesystem 3.1,
> изменились ряд значений макросов в /usr/lib/rpm/buildmacros .
> 
> Было для предыдущего rpm-build 4.0.4.198-alt1:
> $  grep -E
> '^%__(file|id|make|mkdir_p|patch|perl|subst|ld|nm|objcopy|objdump|strip)[[:
> blank:]]' buildmacros
> %__file                 /usr/bin/file4
> %__id                   /usr/bin/id
> %__make                 /usr/bin/make
> %__mkdir_p              /bin/mkdir -p
> %__patch                /usr/bin/patch
> %__perl                 /usr/bin/perl
> %__subst                /usr/bin/subst
> %__ld                   /usr/bin/ld
> %__nm                   /usr/bin/nm
> %__objcopy              /usr/bin/objcopy
> %__objdump              /usr/bin/objdump
> %__strip                /usr/bin/strip
> 
> Стало в rpm-build-4.0.4.199-alt1:
> %__file                 /bin/file4
> %__id                   /bin/id
> %__make                 /bin/make
> %__mkdir_p              /usr/bin/mkdir -p
> %__patch                /bin/patch
> %__perl                 /bin/perl
> %__subst                /bin/subst
> %__ld                   /bin/ld
> %__nm                   /bin/nm
> %__objcopy              /bin/objcopy
> %__objdump              /bin/objdump
> %__strip                /bin/strip
> 
> Это точно ожидаемое поведение для нового rpm-build?
> 
> Теперь значения этих макросов отличаются от одноимённых определений
> в /usr/lib/rpm/macros из librpm7 .

Нет, так быть не должно.

Открыл macros.in, а они там все динамические! :(

> Кроме того, как минимум для %__perl эти изменения влияют на результаты сборки
> пакетов: %__perl используется в функции _perl_vendor_fixin() из
> /usr/lib/rpm/macros.d/perl5
> (rpm-build-perl-0.85-alt6) для принудительной замены пути к perl в shebang
> скриптов,
> которая в свою очередь используется в %perl_vendor_build .

(In reply to Nikolay A. Fetisov from comment #0)
> Указание пути к Perl как /bin/perl вместо традиционного (и правильного)
> /usr/bin/perl
> как минимум сломало сборку модулей perl-Pod-Eventual и
> perl-Dist-Zilla-Plugin-OurPkgVersion.

Не только их, я такое c другими пакетами встречал:
https://git.altlinux.org/tasks/349348/logs/events.1.1.log

Это бага, да.
Comment 2 Arseny Maslennikov 2024-06-04 17:28:25 MSK
По всей видимости, здесь стоит предусмотреть значения, которые:
— отвечают реалиям ALT (пока эти реалии не изменились)
— синхронизированы с каноническими путями к этим программам.

Пока что вся остальная практика ALT по этому вопросу сводится вот к этому перечню путей вне префикса, взятому из бесполезной спеки LSB:
https://packages.altlinux.org/en/sisyphus/srpms/lsb/specfiles/
> Table 17-1. Commands And Utilities
Пока жив этот пакет, перечисленные там зависимости будет кто-то предоставлять.

Скорее всего, никто не будет спорить, что для остальных программ каноническим путём стоит считать тот, что под /usr.

Я бы предпочёл и эти пути переделать, но в более контролируемом порядке; это отдельная задача.

А пока вот:
https://packages.altlinux.org/tasks/350313
Comment 3 Repository Robot 2024-06-05 02:51:31 MSK
rpm-build-4.0.4.200-alt1 -> sisyphus:

 Tue Jun 04 2024 Arseny Maslennikov <arseny@altlinux> 4.0.4.200-alt1
 - Bring embedded PATH lists in line with current merged-usr ALT practice.
   (Closes: 50527)