[devel] disttag и rebuild

Vladimir D. Seleznev vseleznv на altlinux.org
Вт Мар 26 13:45:46 MSK 2019


On Mon, Mar 25, 2019 at 04:10:52PM +0300, Ivan Zakharyaschev wrote:
> On Mon, 25 Mar 2019, Anton Farygin wrote:
> 
> > Вопрос в первую очередь к тем, кто придумывал disttag.
> > 
> > Хотелось бы понять, что будет с пакетом после того, как у нас появится p9 (на
> > базе sisyphus) и этому пакету сделаем rebuild в task'е.
> > 
> > Ведь sisyphus-<таск> будет точно больше, чем p9-<таск>.
> > 
> > Соответственно у нас отломается обновление этого пакета ?
> > 
> > Или я ошибаюсь ?
> 
> Я сконцентрировался на rpm-4.0.4 и пока реализовал такую штуку.
> 
> Пердполагаю перенести на rpm-4.13 и собирать в p9 rpm с %def_enable 
> default_priority_distbranch

Зачем rpm'у default_priority_distbranch? Мне кажется, эти лишнее
усложнение. Ведь для того, чтобы это работало, надо научить ещё apt
понимать default_priority_distbranch. Иначе они не договорятся. И это
также потребует ручного переключения distbranch при dist-upgrade.

Это похоже на перенос логики apt_preferences в rpm. Лучше отдать решение
про приоритет бранчей на откуп apt'у, и, например, научить
apt-repo-tools, альтератор переключать default branch в preferences при
переключении репозиториев. Или даже лучше устанавливать вот такой
конфиг:

$ cat /etc/apt/preferences.d/origin_priority
Explanation: Always prefer packages from repository
Package: *
Pin: release o=ALT Linux Team
Pin-Priority: 1001

Тогда всегда будут в приоритете пакеты из подключенных бранчей. Что
решит проблему установки пересборанного в бранче пакета, который при
бранчевании был в Сизифе. Локально собранные пакеты можно поставить на
холд или написать для них другие приоритеты.

> $ rpm -qp /ALT/c7.1/x86_64/RPMS.classic/rpm-4.0.4-alt100.77.M70P.3.M70C.2.x86_64.rpm --lastchange
> * Чт мар 14 2019 Ivan Zakharyaschev <imz на altlinux.org> 4.0.4-alt100.77.M70P.3.M70C.2
> Merged 4.0.4-alt101.M80P.5.2 into c7.1:
> [rpm]
> - Changes in what is considered "newer" by rpm -U  pertaining to disttag
>   comparison. (On the whole, to determine which package is "newer", first,
>   the EVRs are compared, then the branch prefixes of the disttags if the
>   disttags are present, and then the buildtimes.) The comparison of the disttags:
>   + (new!) If a disttag contains no + separator (old format), the branch prefix is
>     assumed to be empty (and hence "older" than any other branch prefix).
>   + (new!) If the branch prefix of a disttag is equal to %_priority_distbranch
>     (and it is not empty), then it is "newer" than any other ones.
>   + (as before, since 4.0.4-alt101.M80P.5) The branch prefixes of disttags are
>     ordered lexicographically.
> - (disabled in this release; %if_enabled default_priority_distbranch)
>   Give a default value to %_priority_distbranch based on the disttag
>   when this package is built (the prefix before +).

-- 
   С уважением,
   Владимир Селезнев


Подробная информация о списке рассылки Devel