[devel] Q: personal package repositories: user PoV

George V. Kouryachy george на altlinux.org
Пн Фев 6 13:38:12 MSK 2012


On Thu, Feb 02, 2012 at 04:36:49AM +0400, Alexey Tourbin wrote:
> Упорядочить по BUILDTIME само по себе никакого смысла нету, можно только
> упорядочить (умозрительно) по ингредиентам C, так что пакет, собранный
> в чруте С1 с новыми версиями, должен быть "немножко больше" пакета,
> собранного в среде C0 со старыми версиями.  Это частичный порядок,
> и BUILDTIME плохо его аппроксимирует.
Возможно, существуют условия, внутри которых постоянно увеличивающийся
счётчик всё-таки имеет смысл. Например, для репозитория на git.alt в рамках
одного подновляемого разделяемого задания NSVR+такой счётчик дадут
картину не хуже, чем просто NSVR.

А вот когда репозиториев _несколько_ -- возможны неприятности. Но,
например, если NSVR в этих репозиториях различаются, проблем опять не
должно быть. Возможно, при сборке в карман надо один раз увеличивать
релиз, а затем использовать какой-то счётчик типа BUILDTIME. Или как-то
ранжировать сами репозитории, чтобы при совпадении NSVR выигрывал всегда
один из них, не взирая на BUILDTIME.

> Вообще, для чего всё это нужно?  Кто-то установил предварительную сборку,
> а сборочная система потом ещё раз пересобрала пакет, и он автоматически
> уже не обновится.  Ну в принципе это достаточно частная проблема,
На самом деле не такая уж и частная. Это проблема тестирования сборок,
которй у нас нет именно потому, что нет тестовых репозитариев.

И в этом смысле возникает ещё один кусок workflow, который непонятно как
зашить в банальное расширение NSVR: человек подключает тестовый
репозиторий, обновляется из него, ничего не работает, он отключает
тестовый репозиторий, и... дальше что? В идеале хотелсь бы снова
обновиться, и всё. То есть, чтобы при наличии репозиториев A и B
побеждали бы пакеты из B, а при одном только A -- пакеты из A.

> Если он достаточно хитрый из армян, то
> cd /ALT/Sisyphus/files/x86_64/RPMS && rpm -Fv perl-*.rpm
Нет-нет, не только. Для начала нужно rsync с git.alt (речь ведь идёт о
расширении возможностей сборочницы, в локальной сборке можно что угодно
намутить и так). Заметим, rsync по timestamp в качестве последнего
сравнения. Затем rpm -F, но не на всех пакетах их rsync-нутого
репозтория (а то вдруг их там стопятьсот), а на свежеобновлённых
(опять-таки вычисляемых по timestamp, если всё остальное внезапно
совпадает). Ergo, в этой процедуре _тоже_ участвует инкрементальный
счётчик. Если не BUILDTIME, то номер сборочной итерации в данном
задании.

-- 
			George V. Kouryachy (aka Fr. Br. George)
			Mailto/JID: george на altlinux.org
			Mobile: (8)9161738325


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