rpmbuild params

Я так понимаю, невозможно передать параметр для configure при сборке
rpmbuild --rebuild, верно?
За последние 60 дней ни разу не выходила
Сайт листа:
http://www.linuxrsp.ru
Открыт:
25-07-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.discuss-list@subscribe.ru
Адрес
модератора: comp.soft.linux.discuss-owner@subscribe.ru
Я так понимаю, невозможно передать параметр для configure при сборке
rpmbuild --rebuild, верно?
а может кто поможет толковой докой или ссылкой на таковую
по теме построения рпм-ов из исходников. что для этого нужно кроме
самих исходников.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 20292; Возраст листа: 734; Участников: 1401
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/408927
В сообщении от 1122555140 секунд после начала Эпохи kwin***@u*****.com
написал(а):
http://www.linux.by/howto/RPM-HOWTO.html
В сообщении от 27 Июль 2005 22:02 Strong написал(a):
Нет.
Но можно установить src.rpm, отредактировать spec-файл как
вам надо и собрать с помощью rpmbuild -ba
Ещё в rpmbuild можно передавать параметры, только их
обработка должна быть заложена в spec файле
с помощью rpmbuild -ba
Хорошо, вот конктретный пример. Мне нужно передать "--disable-FOX-check"
как опцию configure. Значит, по Вашим словам, я ставлю src.rpm:
$ rpm -i *.src.rpm
Далее, нахожу этот *.spec, а далее, что писать? - Скажем, я пишу:
%{?_without_FOX-check
А дальше что?!
Далее
$ rpmbuild -ba ... что?
В сообщении от 1122575514 секунд после начала Эпохи Strong написал(а):
Нет. Если хотите сделать чтобы spec-файл обрабатывал опции `--with',
которые вы передаете rpmbuild, то нужно вставить примерно сдедующее:
# в заголовке
%{!?_with_FOX_check: %{!?_without_FOX_check: %define _without_FOX_check 1}}
# в разделе %build
%configure \
%{?_with_FOX_check:--enable-FOX-check} \
%{?_without_FOX_check:--disable-FOX-check}
Но при разовой сборке, которая нужна только вам, проще сделать так:
%configure --disable-FOX-check
$ rpmbuild -bb путь/к/файлу.spec
PS. `-ba' нужно если вы хотите собрать бинарный пакет и пакет исходников,
если же вам нужен только бинарный пакет используйте `-bb'.
On Thu, 2005-07-28 at 20:43 +0300, Konstantin Korikov wrote:
Всё понял, спасибо, только вот чего имею:
...
then mv -f ".deps/CChangePitchAction.Tpo"
".deps/CChangePitchAction.Plo"; \
else rm -f ".deps/CChangePitchAction.Tpo"; exit 1; \
fi
g++ -DHAVE_CONFIG_H -I. -I. -I../../../config -I../../../src/misc
-I../../../src/misc/missing/generated -I../../../src/PoolFile -g -Wall
-Wno-unused-function -Wno-unused-variable -Wno-unused -I/usr/include -MT
CChangePitchAction.lo -MD -MP -MF .deps/CChangePitchAction.Tpo -c
CChangePitchAction.cpp
../AStatusComm.h:59: warning: 'class AStatusComm' has virtual functions
but non-virtual destructor
../DSP/TPitchChanger.h:145: error: 'SoundTouch' does not name a type
../DSP/TPitchChanger.h: In constructor
'TPitchChanger<src_type>::TPitchChanger(const src_type&, sample_pos_t,
sample_pos_t, float, unsigned int, unsigned int, unsigned int)':
../DSP/TPitchChanger.h:75: error: 'changer' was not declared in this
scope
../DSP/TPitchChanger.h: In member function 'const sample_t
TPitchChanger<src_type>::getSample()':
../DSP/TPitchChanger.h:89: error: 'changer' was not declared in this
scope
../DSP/TPitchChanger.h: In member function 'bool
TPitchChanger<src_type>::setSetting(uint, uint)':
../DSP/TPitchChanger.h:124: error: 'changer' was not declared in this
scope
make[3]: *** [CChangePitchAction.lo] Error 1
make[3]: Leaving directory
`/usr/src/redhat/BUILD/rezound-0.10.0beta/src/backend/Remaster'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/usr/src/redhat/BUILD/rezound-0.10.0beta/src/backend'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/usr/src/redhat/BUILD/rezound-0.10.0beta/src'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.76546 (%build)
Делал так:
$ rpm -Uvh rezound-0.10.0beta-1.src.rpm
В rezound.spec вписал:
...
%build
%configure --enable-internal-sample-type=float --disable-FOX-check
make
...
Далее, находясь в /usr/src/redhat/SPECS:
rpmbuild -bb --target=i686 ./rezound.spec
Вот-с...
В сообщении от 1122732994 секунд после начала Эпохи Strong написал(а):
src.rpm пакет сам по себе не решит проблем исходников и компиляторов.
Другое дело, когда этот src.rpm содержит патчи, позволяющие
использовать вашу версию компилятора, другими словами, когда src.rpm
заточен под вашу версию дистрибутива. Вот если бы этот src.rpm-пакет
был получен из Fedora Extras или Fedora Core, то эта ошибка
действительно была бы неожиданной.
В сообщении от 29 Июль 2005 05:31 Strong написал(a):
В простейшем случае находите секцию %build и параметры
%configure (это макрос - configure с общими параметрами)
правите как вам надо.
Если вы хотите обрабатывать --with/--without, то вот пример:
%define with_nogdal %{?_with_nogdal:1}%{!?_with_nogdal:0}
...
%if %{!with_nogdal}
Requires: gdal
%endif
...
%configure \
--with-gd \
%{!?_with_nogdal:--with-gdal=/usr/bin/gdal-config} \
...
rpmbuild -ba spec-file
On Fri, 2005-07-29 at 10:21 +0400, Sergey B. Khvatov wrote:
1. Почему на nogdal Вы пишите gdal?
2. Как мне знать, что мне писать в Requires?
С уважением,
Strong.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 20357; Возраст листа: 736; Участников: 1404
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/410121
В сообщении от 31 Июль 2005 01:18 Strong написал(a):
wrote:
Нет - я программирую железки с Linux внутри.
Это просто пример - извлечения из spec-файла, валяющегося у
меня на инструмендальной машине (от пакета mapserver)
features, присутствия которых пакет потребует при установке.
Если не укажите ничего, пакет поставится всегда (но при
этом может и не работать). Если вы собираетесь выключить
поддержку чего-либо в пакете, то разумно удалить упоминания
этого из requires, чтобы он при установке не требовал
лишнего.
В сообщении от 1122888139 секунд после начала Эпохи Sergey B. Khvatov
написал(а):
В `Requires' обычно ничего не указывается, потому что зависимости
строятся автоматически, после выполнения раздела `%install', это делает
`/usr/lib/rpm/find-requires'. А вот `BuildRequires' следует указать,
тут надо перечислить пакеты, которые необходимы для построения
данного пакета, обычно это devel-пакеты.
В сообщении от 1122501765 секунд после начала Эпохи Strong написал(а):
Напрямую нельзя. Если пакет поддерживает (spec-файл составлен
специальным образом), то можно:
$ rpmbuild --rebuild --with фича1 --without фича2 \
пакет-версия-релиз.src.rpm
Иногда список поддерживаемых фич, пишут прямо в описаннии (поле
Description) пакета. Если там ничего нет, придется смотреть spec-файл
на предмет строк с содержанием типа:
%{?_with_фича1
%{!?_with_фича2