Bug 26480 - Возможность НЕ менять Release и spec-файл при сборке под любые бранчи
Summary: Возможность НЕ менять Release и spec-файл при сборке под любые бранчи
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gear (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL: http://lists.altlinux.org/pipermail/d...
Keywords:
Depends on: 20912
Blocks:
  Show dependency tree
 
Reported: 2011-10-20 12:14 MSK by Zerg
Modified: 2013-02-05 19:32 MSK (History)
14 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zerg 2011-10-20 12:14:45 MSK
Было бы здорово иметь возможность в spec-файле писать что-то типа
Release: %{gear_release alt1}
, что будет автоматически вычисляться в необходимое значение для той ветки, под которую идет сборка.
Comment 1 Zerg 2011-10-20 12:26:22 MSK
Вот и кака подоспела в качестве примера:
http://git.altlinux.org/tasks/56861/logs/events.4.1.log
Comment 2 Zerg 2011-10-20 12:33:51 MSK
Хотя, нет, это был не пример. Но смысл, думаю, понятен: вместо того, чтоб тупо отправить на сборку (реально для task 56861 потребовалось только 1-о исправление) мне пришлось изменять spec-и, подписывать tag-и и делать push для 56 пакетов.
Comment 3 Zerg 2011-10-20 12:41:14 MSK
(В ответ на комментарий №1)
> http://git.altlinux.org/tasks/56861/logs/events.4.1.log
В этом случае спасибо за check-git-inheritance! Как раз во время.
Comment 4 Sergey V Turchin 2011-10-20 14:36:44 MSK
(В ответ на комментарий №2)
> пришлось изменять spec-и, подписывать tag-и и делать push для 56 пакетов.
Даже больше. Еще все новые пакеты в p6, которые я (и не только) отправил в рамках подготовки к KDE-4.7 после выхода KDesktop-6.0 для уменьшения кол-ва подзадач.
Comment 5 Radik Usupov 2011-10-21 06:22:16 MSK
Поддерживаю. Было бы реально удобно.
Comment 6 Michael Shigorin 2011-10-21 19:51:50 MSK
Это продумывалось ещё в районе 2003 на примере apache.spec мной и позже на ещё чём-то raorn@ (может откопаться по словам release tag); вот формальный документ в исполнении ab@: http://lists.altlinux.org/pipermail/devel/2007-December/148447.html
Comment 7 Zerg 2011-10-21 20:05:01 MSK
(В ответ на комментарий №6)
> Это продумывалось ещё в районе 2003
Если не напоминать, успешно забудется ;-)
Comment 8 Zerg 2011-10-21 20:13:33 MSK
Кстати, у SuSE вроде, исчез chnagelog из spec-файлов, стал отдельно.
Может, и нам пригодиться какой-нибудь .gear/changelog
Comment 9 Zerg 2011-10-21 20:15:21 MSK
> Depends: bug 20912 
Т.е. если нельзя будет сделать симлинк, меня не устроит.
Comment 10 Dmitry V. Levin 2011-10-21 20:27:13 MSK
(In reply to comment #9)
> > Depends: bug 20912 

Там описан транспорт (git tag object) для потенциального интерфейса выбора.
Сам интерфейс выбора может быть каким угодно, хоть "X-gear: name value".

Напрашивается keyword substitution @gear_name@ -> value в .gear/rules,
rpmbuild --define "gear_name $value" во время сборки, но дальше полный туман.

Что в этой ситуации делать с тэгом Release, несоответствием между
%release и %changelog, и подстановкой @release@ -> %release, пока не ясно.

> Т.е. если нельзя будет сделать симлинк, меня не устроит.

Какой симлинк?
Comment 11 Zerg 2011-10-21 22:43:54 MSK
(В ответ на комментарий №10)
> Что в этой ситуации делать с тэгом Release, несоответствием между
> %release и %changelog,
Переделать проверку, чтоб для Release %{gear_release alt1} и были валидны ченжлоги от alt0.M00A.1 до alt1

> и подстановкой @release@ -> %release, пока не ясно.
Release %{gear_release alt1} -- alt1, чтоб не прыгало.

> > Т.е. если нельзя будет сделать симлинк, меня не устроит.
> Какой симлинк?
Симлинк на "separate spec files", если они станут необходимы.
Comment 12 Zerg 2011-10-21 22:53:01 MSK
(В ответ на комментарий №11)
> > и подстановкой @release@ -> %release, пока не ясно.
> Release %{gear_release alt1} -- alt1, чтоб не прыгало.
Или сделать @release@ и @gear_release@
Comment 13 Vitaly Lipatov 2012-11-25 11:56:13 MSK
Мне кажется, что необходимое значение релиза должно выставляться на стороне отправляющего и сохраняться у него в репозитории.
В etersoft-build-utils, например, есть 
$ rpmbph -b p6 -u
которая бэкпортирует спек, устанавливает нужный релиз и отправляет на сборку.

А так получается, что мы хотим сделать неявный бэкпорт: ничего не меняя в пакете, отправить его на сборку. В ряде случаев из-за несовместимости веток это и не получится...
Comment 14 Sergey V Turchin 2012-11-26 15:35:45 MSK
(В ответ на комментарий №13)
> В ряде случаев из-за несовместимости веток это
> и не получится...
Волшебства никто и не предполагает.
При правильно подготовленном заранее spec-файле получиться для всех веток, на которые рассчитано.
Comment 15 Dmitry V. Levin 2012-12-15 02:47:18 MSK
gear >= 2.0.0 позволяет с помощью тэгов выполнять достаточно произвольные подстановки в спеках.
Comment 16 Anton Farygin 2012-12-15 07:43:51 MSK
Дима, а можно поподробнее ?
Comment 17 enp 2013-01-11 16:53:43 MSK
И можно ли переложить новый gear в t6/p6 ?
Comment 18 Sergey V Turchin 2013-01-11 17:17:03 MSK
(В ответ на комментарий №15)
> gear >= 2.0.0 позволяет с помощью тэгов выполнять достаточно произвольные
> подстановки в спеках.
А gear-create-tag ?
Comment 19 Andrey Cherepanov 2013-01-13 00:04:18 MSK
(В ответ на комментарий №17)
> И можно ли переложить новый gear в t6/p6 ?
Переложил. Ночью появится и в t6.
Comment 20 Sergey V Turchin 2013-02-05 19:17:48 MSK
Осталось только получить возможность собирать один и тот же тэг в более чем один бранч.

Повесить отдельный баг?