[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