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