[devel] rpmbph with git branches
Aleksey Avdeev
solo на solin.spb.ru
Пн Май 18 23:49:29 MSD 2009
Anton Farygin пишет:
> Aleksey Avdeev пишет:
>> Anton Farygin пишет:
>>> Eugene Prokopiev пишет:
>>>> 18.05.09, Anton
>>>> Farygin<rider-u2l5PoMzF/VWk0Htik3J/w на public.gmane.org> написал(а):
>>>>> Eugene Prokopiev пишет:
>>>>>
>>>>>
>>>>>>> Пакеты в бранчи я собираю такой командой:
>>>>>>> $ rpmbph -n -M50 -u global.spec
>>>>>>> Пока не представляю, как это сделать на основе git, поскольку
>>>>>>> пока не готов изобретать правила для хранения в репозитории
>>>>>>> разных веток (или они уже где-то опубликованы).
>>>>>>> Если Вы считаете, что автоматическое создание ветки в git для
>>>>>>> бранча имеет смысл, я готов рассмотреть пример репозитория с
>>>>>>> правильной структурой и адаптировать rpmbph к сборке из git.
>>>>>>>
>>>>>> Как минимум для меня некоторая автоматика для управления ветками в
>>>>>> git
>>>>>> имеет смысл, только сделать никак не соберусь :( В качестве примера
>>>>>> структуры репозитория предлагаю взглянуть на
>>>>>> http://www.altlinux.org/Git/SomeDestReposViaBranches
>>>>>>
>>>>>>
>>>>> Скажу вам по секрету, только никому не говорите - при сборке
>>>>> пакетов ветки
>>>>> не имеют никакого значения, важны только тэги.
>>>>
>>>> А можно развить эту мысль дальше?
>>>>
>>>> Мне было показалось, что вы хотели предложить собирать в разные
>>>> репозитории из одной ветки, но я не смог понять как быть с Release и
>>>> changelog ...
>>>
>>> А дальше - вы пишете скрипт, который будет из master делать тэги с
>>> нужными изменениями (через временный бранч). Release и changelog надо
>>> будет править.
>>>
>>> Кстати, почему-то у нас в Release: не получается использовать
>>> макросы, определённые в /etc/rpm/macros.d/ ? Они вообще должны
>>> работать ?
>>
>> Можно, и оно работает. См.
>> <http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=blob;f=apache2.spec;h=2d4284a637889841f6dba3f089bcfc55372a0e21;hb=ALT/apache2/spec>:
>>
>> часть макросов, на основе которых вычисляется Release (%distr_switch,
>> в частности) определена в другом пакете (в rpm-macros-apache2). Для
>> данного пакета требуется использовать BuildRequires(pre).
>
> Интересно было бы полностью вычислить Release в /etc/rpm/macros.d/
>
> Всё, что еу нужно передавать - это номер релиза - циферку.
>
> Т.е. - в итоге должно получиться что-то вроде
>
> %_altrelease 1
> Release: %alt_release
Примерно так и сделано, только я использую 2 цифры в формате х{,.у}, где:
%release_base_num -- обязательный x;
%release_base_num2 -- не обязательный y (если он %nil, то в релизе одна
цифра).
Всё остальное -- вычисляется на базе констант, тоже определённых в спеке.
>
>>
>>> а так можно было бы release вычислять на основании какого-нить
>>> %branchver
>>
>> Я давно этим (вычислением нужного Release, в зависимости от
>> дистрибутива/бранча, через макросы) пользуюсь (и как-то сюда писал об
>> этом).
>
> что-то у тебя в спеке страшно всё очень. Вынести бы это в отдельную
> функцию...
Напрашивается, но пока не придумал как это лучше сделать...
--
С уважением. Алексей.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 552 байтов
Описание: OpenPGP digital signature
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090518/4b5cf5d5/attachment.bin>
Подробная информация о списке рассылки Devel