Summary: | gear не использует параметры переданные rpm или hasher | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | rlz <rlz> |
Component: | gear | Assignee: | Dmitry V. Levin <ldv> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | glebfm, ldv, legion, placeholder, sin |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
rlz
2008-11-27 17:12:19 MSK
--define=args никогда не пробовал, --define args работает. У меня не работает. Пример. Кусок спек файла: %ifdef geet_build_counter %define build_version .%geet_build_counter %else %define build_version .r1 %endif Version: 0.8%build_version Release: alt1 Запуск geet и его вывод: $ gear --rpmbuild -v -- rpmbuild -bb --define "geet_build_counter 2" mkdir: создан каталог `/home/rlz/tmp/gear.P7YUDaH8/out' gear: Extracted archive: Tartarus-clients-core-0.8.r1.tar gear: Wrote archive: Tartarus-clients-core-0.8.r1.tar gear: Extracted specfile: Tartarus-clients-core.spec gear: Executing: gear-command-rpmbuild rpmbuild -bb --define geet_build_counter 2 gear-command-rpmbuild: Executing: rpmbuild -bb --define geet_build_counter 2 --define _specdir /home/rlz/tmp/gear.P7YUDaH8/out --define _sourcedir /home/rlz/tmp/gear.P7YUDaH8/out /home/rlz/tmp/gear.P7YUDaH8/out/Tartarus-clients-core.spec ошибка: Файл /home/rlz/tmp/gear.P7YUDaH8/out/Tartarus-clients-core-0.8.2.tar: Нет такого файла или каталога Видно, что при создании архива при определении версии макрос geet_build_counter не использовался, а при сборке он уже используется. (In reply to comment #2) > У меня не работает. Пример. > > Кусок спек файла: > > %ifdef geet_build_counter > %define build_version .%geet_build_counter > %else > %define build_version .r1 > %endif > > Version: 0.8%build_version > Release: alt1 > > Запуск geet и его вывод: > > $ gear --rpmbuild -v -- rpmbuild -bb --define "geet_build_counter 2" > mkdir: создан каталог `/home/rlz/tmp/gear.P7YUDaH8/out' > gear: Extracted archive: Tartarus-clients-core-0.8.r1.tar > gear: Wrote archive: Tartarus-clients-core-0.8.r1.tar > gear: Extracted specfile: Tartarus-clients-core.spec > gear: Executing: gear-command-rpmbuild rpmbuild -bb --define geet_build_counter 2 > gear-command-rpmbuild: Executing: rpmbuild -bb --define geet_build_counter 2 --define _specdir /home/rlz/tmp/gear.P7YUDaH8/out --define > _sourcedir /home/rlz/tmp/gear.P7YUDaH8/out /home/rlz/tmp/gear.P7YUDaH8/out/Tartarus-clients-core.spec > ошибка: Файл /home/rlz/tmp/gear.P7YUDaH8/out/Tartarus-clients-core-0.8.2.tar: Нет такого файла или > каталога > > Видно, что при создании архива при определении версии макрос geet_build_counter не > использовался, а при сборке он уже используется. Теперь понятно, о чём вы говорите. Конечно, gear не использует параметры, передаваемые rpmbuild, hasher и другим программам, которые он запускает. Эти параметры могут быть любыми, он просто ничего о них не знает, их обработка -- это не его дело. У gear возможности интерпретировать spec-файл для вычисления name/version/release ограничены по определению: он не может для этих целей запускать rpmbuild. Идея как раз была в том, чтобы делать автоматические билды из gear... Может быть можно в .gear/rules пробрасывать другие макросы, кроме NVR ? (In reply to comment #4) > можно в .gear/rules пробрасывать другие макросы, кроме NVR ? Не получится. gear не пользуется rpmquery для раскрытия макросов. NVR он получает с помощью sed. Это принципиальная вещь. gear не заточен на тип спека ... это может быть и текстовый файл, содержащий только три эти поля. (In reply to comment #4) > Идея как раз была в том, чтобы делать автоматические билды из gear... Может быть > можно в .gear/rules пробрасывать другие макросы, кроме NVR ? Этот вопрос перекликается с FR #12387 (с первоначальным вопросом, а не тем, что там написали позднее). У меня нет идей, как это можно было бы реализовать в рамках базового требования к gear не запускать rpmbuild с пользовательскими входными данными. |