From: Alexey Morozov <alex-altlinux@idisys.iae.nsk.su>
To: sisyphus@altlinux.ru
Subject: Re: [sisyphus] разные сборки одного пакета
Date: Thu, 15 Jan 2004 06:23:33 +0600
Message-ID: <20040115002333.GC4034@localhost.localdomain> (raw)
In-Reply-To: <1073913226.2544.56.camel@ildar>
[-- Attachment #1: Type: text/plain, Size: 2976 bytes --]
On Mon, Jan 12, 2004 at 04:13:46PM +0300, Ildar Mulyukov wrote:
> А теперь: внимание, вопрос!
> Как в спеках поддерживается сборка пакетов с альтернативным набором фич?
> То есть
> 1. можно ли писать спек так, чтобы добавлением опций команде rpmbuild из
> того же src.rpm строился иной бинарник? Что-то вроде rpmbuild --rebuild
> --build-options="--with-alsa" esound.src.rpm ?
ну, собственно, четких правил еще нет. Зато есть два _непересекающихся_
набора макросов, которые позволяют указывать параметры при сборке
(в CLI или в настройках RPM). Макросы таковы:
%def_with <arg>
%def_without <arg>
и
%def_enable <arg>
%def_disable <arg>
Первый набор управляется параметрами --with или --without, а второй -
--enable/--disable.
Использование %def_with в спеке разрешает по умолчанию некоторую опцию,
а %def_without - запрещает ее по умолчанию. С enable/disable -
аналогично.
Если некоторая опция smth была объявлена с with/without, то затем в спеке
можно написать:
%if_with smth
... do things if smth included
%endif
...
%if_without smth
... do things if smth excluded
%endif
Аналогично с enable/disable, только используются
%if_enabled/%if_disabled.
Соответственно, Вы можете, там где мэйнтейнер об этом подумал, управлять
параметрами пересборки. Вопрос только в том, что на данный момент _нет_
общепринятого набора допустимых опций, и каждый мэйнтейнер волен действовать
по своему усмотрению и, зачастую, опции сборки либо пересекаются
(--enable static vs --with static), либо вообще пробиваются в спек гвоздями:
%define smth 1
Таким образом стоят задачи:
1. Составить список наиболее употребимых опций сборки (alsa и esound туда
_точно_ должны попасть) и опубликовать его.
2. Добавить этот список куда-нибудь в rpm по аналогии с /usr/lib/rpm/GROUPS
3. Склонить каждого конкретного мэйнтэйнера на приведение каждого конкретного
спека в приемлемое в этом отношении состояние.
> 2. менять Release: такой же опцией. Например, я хочу, чтобы построился
> пакет не версии 1.0.0-alt1 , а 1.0.0-alt1adv ?
Вообще-то c release в этом случае, видимо, все плохо. То есть, чаще всего,
он жестко пробивается в спек, причем, по АЛЬТовым правилам сборки,
видимо, требуется еще и изменение changelog'а. К тому же, у пакетов
периодически встречаются жесткие зависимости на версии других пакетов
(с точностью до release), поэтому есть опасность, что при механическом
переписывании release все просто сломается.
> В том же esound.spec я нашёл такую директиву: %def_without alsa . Можно
> ли в неё вмешаться снаружи? А в release?
rpmbuild -ba <spec> --with alsa
либо занести в ~/.rpmmacros или в любое другое место,
где его увидит rpm, строчки, подобные этим:
%_without_python_auto --without-python_auto
%_with_python22 --with-python22
(См. мои питоньи спеки на http://woland.iae.nsk.su/~alex/python/SPECS)
2ldv: похоже, я нашел баг в обработке with/without. Параметры, указанные
в ~/.rpmmacros имеют приоритет перед теми, которые указаны в командной
строке. Неконсистентно.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2004-01-15 0:23 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-12 13:13 Ildar Mulyukov
2004-01-12 18:19 ` led
2004-01-13 7:08 ` Низамов Шавкат
2004-01-13 7:59 ` led
2004-01-13 9:51 ` Алексей Любимов
2004-01-13 10:32 ` led
2004-01-14 17:48 ` [sisyphus] " Michael Shigorin
2004-01-13 13:17 ` [sisyphus] " Andrey Rahmatullin
2004-01-13 13:33 ` Serj
2004-01-13 13:47 ` led
2004-01-13 13:58 ` Aleksey Avdeev
2004-01-13 14:33 ` led
2004-01-13 14:44 ` Aleksey Avdeev
2004-01-13 14:55 ` Andrey Rahmatullin
2004-01-13 15:14 ` Aleksey Avdeev
2004-01-13 15:50 ` Andrey Rahmatullin
2004-01-15 1:15 ` Vitaly Lipatov
2004-01-15 11:17 ` [sisyphus][JT] " Andrey Rahmatullin
2004-01-14 17:47 ` [sisyphus] " Michael Shigorin
2004-01-15 13:29 ` led
2004-01-12 18:21 ` [sisyphus] " Dmitry V. Levin
2004-01-15 0:23 ` Alexey Morozov [this message]
2004-01-15 8:25 ` [POLICY] " Michael Shigorin
2004-01-15 11:46 ` Dmitry V. Levin
2004-01-15 14:04 ` [sisyphus] " Michael Shigorin
2004-01-16 11:04 ` [sisyphus] " Alexey Morozov
2004-01-16 11:20 ` Dmitry V. Levin
2004-01-16 12:21 ` [sisyphus] " Michael Shigorin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040115002333.GC4034@localhost.localdomain \
--to=alex-altlinux@idisys.iae.nsk.su \
--cc=sisyphus@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git