* [devel] rpm: некорректные макросы
@ 2019-12-12 23:08 Andrey Savchenko
2019-12-13 8:02 ` Dmitry V. Levin
0 siblings, 1 reply; 9+ messages in thread
From: Andrey Savchenko @ 2019-12-12 23:08 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 853 bytes --]
Всем привет!
Разбирая баг https://bugzilla.altlinux.org/37616 (он уже решён, но
это отдельная тема) я обнаружил, что и в Сизифном rpm у нас тоже
хватает некорректно определённых макросов:
$ rpm -q rpm
rpm-4.13.0.1-alt15.x86_64
$ rpm --showrc | grep "@.*@"
%{expand:%(cat /usr/lib/rpm/macros.d/*.env @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
@__INSTALL_INFO@ -14: __lzma @__LZMA@
-14: __pgp @PGPBIN@
-14: __subst @__SUBST@
-14: _build_arch @RPMCANONARCH@
Что мы будем с этим делать? На мой взгляд нужно или задать значения,
или убрать эти макросы вовсе.
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-12 23:08 [devel] rpm: некорректные макросы Andrey Savchenko
@ 2019-12-13 8:02 ` Dmitry V. Levin
2019-12-13 18:18 ` Andrey Savchenko
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2019-12-13 8:02 UTC (permalink / raw)
To: ALT Devel discussion list
On Fri, Dec 13, 2019 at 02:08:17AM +0300, Andrey Savchenko wrote:
> Всем привет!
>
> Разбирая баг https://bugzilla.altlinux.org/37616 (он уже решён, но
> это отдельная тема) я обнаружил, что и в Сизифном rpm у нас тоже
> хватает некорректно определённых макросов:
>
> $ rpm -q rpm
> rpm-4.13.0.1-alt15.x86_64
> $ rpm --showrc | grep "@.*@"
> %{expand:%(cat /usr/lib/rpm/macros.d/*.env @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
> @__INSTALL_INFO@ -14: __lzma @__LZMA@
> -14: __pgp @PGPBIN@
> -14: __subst @__SUBST@
> -14: _build_arch @RPMCANONARCH@
>
> Что мы будем с этим делать? На мой взгляд нужно или задать значения,
> или убрать эти макросы вовсе.
Из процитированного видно, что это всё было скопировано из rpm-build,
в самом rpm не используется, а rpm-build продолжает использовать свои
определения.
--
ldv
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-13 8:02 ` Dmitry V. Levin
@ 2019-12-13 18:18 ` Andrey Savchenko
2019-12-15 15:06 ` Victor Wagner
2019-12-16 9:55 ` Ivan A. Melnikov
0 siblings, 2 replies; 9+ messages in thread
From: Andrey Savchenko @ 2019-12-13 18:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1622 bytes --]
On Fri, 13 Dec 2019 11:02:47 +0300 Dmitry V. Levin wrote:
> On Fri, Dec 13, 2019 at 02:08:17AM +0300, Andrey Savchenko wrote:
> > Всем привет!
> >
> > Разбирая баг https://bugzilla.altlinux.org/37616 (он уже решён, но
> > это отдельная тема) я обнаружил, что и в Сизифном rpm у нас тоже
> > хватает некорректно определённых макросов:
> >
> > $ rpm -q rpm
> > rpm-4.13.0.1-alt15.x86_64
> > $ rpm --showrc | grep "@.*@"
> > %{expand:%(cat /usr/lib/rpm/macros.d/*.env @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
> > @__INSTALL_INFO@ -14: __lzma @__LZMA@
> > -14: __pgp @PGPBIN@
> > -14: __subst @__SUBST@
> > -14: _build_arch @RPMCANONARCH@
> >
> > Что мы будем с этим делать? На мой взгляд нужно или задать значения,
> > или убрать эти макросы вовсе.
>
> Из процитированного видно, что это всё было скопировано из rpm-build,
> в самом rpm не используется, а rpm-build продолжает использовать свои
> определения.
Прорезюмирую результат обсуждения IRL: значения этих и многих
других макросов нужно брать из rpmbuild. Из rpm их лучше в
дальнейшем удалить во избежание недоразумений.
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-13 18:18 ` Andrey Savchenko
@ 2019-12-15 15:06 ` Victor Wagner
2019-12-16 0:46 ` Alexey V. Vissarionov
2019-12-16 9:55 ` Ivan A. Melnikov
1 sibling, 1 reply; 9+ messages in thread
From: Victor Wagner @ 2019-12-15 15:06 UTC (permalink / raw)
To: Andrey Savchenko; +Cc: ALT Linux Team development discussions
В Fri, 13 Dec 2019 21:18:43 +0300
Andrey Savchenko <bircoph@altlinux.org> пишет:
> > > $ rpm -q rpm
> > > rpm-4.13.0.1-alt15.x86_64
> > > $ rpm --showrc | grep "@.*@"
> > > %{expand:%(cat /usr/lib/rpm/macros.d/*.env
> > > @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
> > > @__INSTALL_INFO@ -14: __lzma @__LZMA@ -14: __pgp @PGPBIN@
> > > -14: __subst @__SUBST@
> > > -14: _build_arch @RPMCANONARCH@
> > >
> > > Что мы будем с этим делать? На мой взгляд нужно или задать
> > > значения, или убрать эти макросы вовсе.
> >
> > Из процитированного видно, что это всё было скопировано из
> > rpm-build, в самом rpm не используется, а rpm-build продолжает
> > использовать свои определения.
>
> Прорезюмирую результат обсуждения IRL: значения этих и многих
> других макросов нужно брать из rpmbuild. Из rpm их лучше в
> дальнейшем удалить во избежание недоразумений.
Тут есть одна тонкость - нету у юзера на production сервере
rpmbuild. И не должно быть. Ибо средства разработки это толстенная дыра
в безопасности.
А у меня проблема возникла именно из задачи - "прописать юзеру в
/etc/apt/sources.list.d правильный репозиторий, не полагаясь на то,
что юзер знает, какая у него архитектура и версия платформы".
Поэтому нужен способ точно определить архитектуру установленной системы.
Именно системы, а не ядра, так как никто не обещал в нашу эпоху
контейнеров, что они совпадают.
Правда, видимо, лучше это делать не посредством rpm, поскольку вызов rpm
изнутри %post скрипта вообще говоря недопустим.
Либо тогда надо передеелывать логкику работы apt, чтобы там, как и в
Debian, не требовалось явно указывать архитектуру в URL-ках.
Вот у yum или zypper, например я могу в url-ке на репозиторийй написать
$releasever и $basearch и он мне сам подставит то, что надо.
--
Victor Wagner <vitus@wagner.pp.ru>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-15 15:06 ` Victor Wagner
@ 2019-12-16 0:46 ` Alexey V. Vissarionov
2019-12-16 13:16 ` Andrey Savchenko
0 siblings, 1 reply; 9+ messages in thread
From: Alexey V. Vissarionov @ 2019-12-16 0:46 UTC (permalink / raw)
To: ALT Linux Team development discussions
On 2019-12-15 18:06:45 +0300, Victor Wagner wrote:
>> Прорезюмирую результат обсуждения IRL: значения этих и многих
>> других макросов нужно брать из rpmbuild. Из rpm их лучше в
>> дальнейшем удалить во избежание недоразумений.
> Тут есть одна тонкость - нету у юзера на production сервере
> rpmbuild. И не должно быть. Ибо средства разработки это
> толстенная дыра в безопасности.
И не нужны они там.
> А у меня проблема возникла именно из задачи - "прописать юзеру
> в /etc/apt/sources.list.d правильный репозиторий, не полагаясь
> на то, что юзер знает, какая у него архитектура и версия платформы".
В смысле, репу добавить? А откуда в sources.list.d/ новый файл
попадет? По уму - из пакета. Но тогда при сборке этого пакета вся
необходимая информация уже доступна.
> Поэтому нужен способ точно определить архитектуру установленной
> системы. Именно системы, а не ядра, так как никто не обещал в
> нашу эпоху контейнеров, что они совпадают.
Дык `uname -m` внутри контейнера вполне говорит i686 - даже когда
хост x86_64 (у меня других уже давно нет).
> Правда, видимо, лучше это делать не посредством rpm, поскольку
> вызов rpm изнутри %post скрипта вообще говоря недопустим.
rpm -q или rpm --eval можно. Пруф:
Name: checkpostrpm
Version: 20191216
Release: alt1
BuildArch: noarch
Summary: try to run rpm in the postinstall script
Group: System/Base
License: WTFPL
Source: %name-%version.tar.xz
%description
%summary
%post
rpm -q glibc
rpm --eval %%_arch
%files
Собственно, для решения объявленной задачи здесь достаточно чуть
переписать %post (создавать файлы на ходу прямо там) и добавить в
секцию %files строчку наподобие
%ghost %config(noreplace) %_sysconfdir/apt/sources.list.d/%name.list
> Либо тогда надо передеелывать логкику работы apt, чтобы там,
> как и в Debian, не требовалось явно указывать архитектуру в
> URL-ках.
Если я правильно понимаю, вышеприведенного примера вполне достаточно.
> Вот у yum или zypper, например я могу в url-ке на репозиторийй
> написать $releasever и $basearch и он мне сам подставит то, что
> надо.
Ну да, удобно... впрочем, они и появились попозже.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-16 0:46 ` Alexey V. Vissarionov
@ 2019-12-16 13:16 ` Andrey Savchenko
2019-12-16 14:27 ` Alexey V. Vissarionov
2019-12-16 17:40 ` Andrey Savchenko
0 siblings, 2 replies; 9+ messages in thread
From: Andrey Savchenko @ 2019-12-16 13:16 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 2449 bytes --]
On Mon, 16 Dec 2019 03:46:13 +0300 Alexey V. Vissarionov wrote:
> On 2019-12-15 18:06:45 +0300, Victor Wagner wrote:
>
> >> Прорезюмирую результат обсуждения IRL: значения этих и многих
> >> других макросов нужно брать из rpmbuild. Из rpm их лучше в
> >> дальнейшем удалить во избежание недоразумений.
> > Тут есть одна тонкость - нету у юзера на production сервере
> > rpmbuild. И не должно быть. Ибо средства разработки это
> > толстенная дыра в безопасности.
>
> И не нужны они там.
>
> > А у меня проблема возникла именно из задачи - "прописать юзеру
> > в /etc/apt/sources.list.d правильный репозиторий, не полагаясь
> > на то, что юзер знает, какая у него архитектура и версия платформы".
>
> В смысле, репу добавить? А откуда в sources.list.d/ новый файл
> попадет? По уму - из пакета. Но тогда при сборке этого пакета вся
> необходимая информация уже доступна.
>
> > Поэтому нужен способ точно определить архитектуру установленной
> > системы. Именно системы, а не ядра, так как никто не обещал в
> > нашу эпоху контейнеров, что они совпадают.
>
> Дык `uname -m` внутри контейнера вполне говорит i686 - даже когда
> хост x86_64 (у меня других уже давно нет).
На e2k не всё так просто. Для совместимости с МЦСТ у нас uname -m
возвращает e2k на всех поколениях, а человеку нужно разделять v3 и
v4.
В скором времени я добавлю поддержку корректного значения %_arch
в rpm. На других архитектурах сейчас так же, так что есть смысл
выровнять с ними e2k.
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-16 13:16 ` Andrey Savchenko
@ 2019-12-16 14:27 ` Alexey V. Vissarionov
2019-12-16 17:40 ` Andrey Savchenko
1 sibling, 0 replies; 9+ messages in thread
From: Alexey V. Vissarionov @ 2019-12-16 14:27 UTC (permalink / raw)
To: ALT Linux Team development discussions
On 2019-12-16 16:16:20 +0300, Andrey Savchenko wrote:
>>> Поэтому нужен способ точно определить архитектуру
>>> установленной системы. Именно системы, а не ядра,
>>> так как никто не обещал в нашу эпоху контейнеров,
>>> что они совпадают.
>> Дык `uname -m` внутри контейнера вполне говорит i686 -
>> даже когда хост x86_64 (у меня других уже давно нет).
> На e2k не всё так просто. Для совместимости с МЦСТ у нас
> uname -m возвращает e2k на всех поколениях, а человеку
> нужно разделять v3 и v4.
Тогда я просто не вижу альтернатив rpm --eval %_arch с
последующим уточнением архитектуроспецифичными способами.
Во всяком случае, пока.
> В скором времени я добавлю поддержку корректного значения
> %_arch в rpm. На других архитектурах сейчас так же, так
> что есть смысл выровнять с ними e2k.
Ну да, по аналогии с писюшатиной: есть e2kv3, есть e2kv4, а
есть просто %define e2k e2kv3 e2kv4
Появится e2kv5 - добавим.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-16 13:16 ` Andrey Savchenko
2019-12-16 14:27 ` Alexey V. Vissarionov
@ 2019-12-16 17:40 ` Andrey Savchenko
1 sibling, 0 replies; 9+ messages in thread
From: Andrey Savchenko @ 2019-12-16 17:40 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 2778 bytes --]
On Mon, 16 Dec 2019 16:16:20 +0300 Andrey Savchenko wrote:
> On Mon, 16 Dec 2019 03:46:13 +0300 Alexey V. Vissarionov wrote:
> > On 2019-12-15 18:06:45 +0300, Victor Wagner wrote:
> >
> > >> Прорезюмирую результат обсуждения IRL: значения этих и многих
> > >> других макросов нужно брать из rpmbuild. Из rpm их лучше в
> > >> дальнейшем удалить во избежание недоразумений.
> > > Тут есть одна тонкость - нету у юзера на production сервере
> > > rpmbuild. И не должно быть. Ибо средства разработки это
> > > толстенная дыра в безопасности.
> >
> > И не нужны они там.
> >
> > > А у меня проблема возникла именно из задачи - "прописать юзеру
> > > в /etc/apt/sources.list.d правильный репозиторий, не полагаясь
> > > на то, что юзер знает, какая у него архитектура и версия платформы".
> >
> > В смысле, репу добавить? А откуда в sources.list.d/ новый файл
> > попадет? По уму - из пакета. Но тогда при сборке этого пакета вся
> > необходимая информация уже доступна.
> >
> > > Поэтому нужен способ точно определить архитектуру установленной
> > > системы. Именно системы, а не ядра, так как никто не обещал в
> > > нашу эпоху контейнеров, что они совпадают.
> >
> > Дык `uname -m` внутри контейнера вполне говорит i686 - даже когда
> > хост x86_64 (у меня других уже давно нет).
>
> На e2k не всё так просто. Для совместимости с МЦСТ у нас uname -m
> возвращает e2k на всех поколениях, а человеку нужно разделять v3 и
> v4.
>
> В скором времени я добавлю поддержку корректного значения %_arch
> в rpm. На других архитектурах сейчас так же, так что есть смысл
> выровнять с ними e2k.
Исправлено в rpm-4.13.0.1-alt15.E2K.1 в sisyphus_e2k и отправлено на
рассмотрение в виде rpm-4.13.0.1-alt16 в основной Сизиф (task
243088).
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] rpm: некорректные макросы
2019-12-13 18:18 ` Andrey Savchenko
2019-12-15 15:06 ` Victor Wagner
@ 2019-12-16 9:55 ` Ivan A. Melnikov
1 sibling, 0 replies; 9+ messages in thread
From: Ivan A. Melnikov @ 2019-12-16 9:55 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Fri, Dec 13, 2019 at 09:18:43PM +0300, Andrey Savchenko wrote:
> On Fri, 13 Dec 2019 11:02:47 +0300 Dmitry V. Levin wrote:
> > On Fri, Dec 13, 2019 at 02:08:17AM +0300, Andrey Savchenko wrote:
> > > Всем привет!
> > >
> > > Разбирая баг https://bugzilla.altlinux.org/37616 (он уже решён, но
> > > это отдельная тема) я обнаружил, что и в Сизифном rpm у нас тоже
> > > хватает некорректно определённых макросов:
> > >
> > > $ rpm -q rpm
> > > rpm-4.13.0.1-alt15.x86_64
> > > $ rpm --showrc | grep "@.*@"
> > > %{expand:%(cat /usr/lib/rpm/macros.d/*.env @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
> > > @__INSTALL_INFO@ -14: __lzma @__LZMA@
> > > -14: __pgp @PGPBIN@
> > > -14: __subst @__SUBST@
> > > -14: _build_arch @RPMCANONARCH@
> > >
> > > Что мы будем с этим делать? На мой взгляд нужно или задать значения,
> > > или убрать эти макросы вовсе.
> >
> > Из процитированного видно, что это всё было скопировано из rpm-build,
> > в самом rpm не используется, а rpm-build продолжает использовать свои
> > определения.
>
> Прорезюмирую результат обсуждения IRL: значения этих и многих
> других макросов нужно брать из rpmbuild.
Тогда у него --eval не должен ругаться на отсутсвие спека
в командной строке. Повесить?
> Из rpm их лучше в
> дальнейшем удалить во избежание недоразумений.
Можно ли в такой ситуации полагаться на `rpm --eval '%_host_cpu'`?
Оно используется в паре мест в m-p, например.
--
wbr,
iv m.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-12-16 17:40 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-12 23:08 [devel] rpm: некорректные макросы Andrey Savchenko
2019-12-13 8:02 ` Dmitry V. Levin
2019-12-13 18:18 ` Andrey Savchenko
2019-12-15 15:06 ` Victor Wagner
2019-12-16 0:46 ` Alexey V. Vissarionov
2019-12-16 13:16 ` Andrey Savchenko
2019-12-16 14:27 ` Alexey V. Vissarionov
2019-12-16 17:40 ` Andrey Savchenko
2019-12-16 9:55 ` Ivan A. Melnikov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git