ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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-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

* 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

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