[devel] создание Стабильного бранча и Национальной ОС
Alexey Tourbin
at на altlinux.ru
Вс Окт 10 22:35:49 UTC 2010
On Mon, Oct 11, 2010 at 12:35:05AM +0400, Dmitry V. Levin wrote:
> On Sun, Oct 10, 2010 at 03:06:37AM +0400, Alexey Tourbin wrote:
> > Кажется, скоро придётся отфоркивать новый Стабильный бранч, вследствие
> > того, что необходимо создать Национальную ОС! Для этого ещё нужно сделать
> > много дел. Ниже список дел по моей части. По-видимому, времени у нас
> > мало; хуже того, дела идут медленно. Для осуществления задуманного мне
> > потребуются специальные административные полномочия (обход ACL при сборке
> > пакетов).
>
> Обход ACL требует особого внимания: из самых лучших побуждений можно
> совершенно случайно что-то сломать или помешать мейнтейнеру.
С обходом ACL я собираюсь выполнять только ограниченные действия,
которые преследуют определенную цель. В некоторых случаях это просто
полуавтоматическая пересборка пакета для обрастания зависимостями.
В некоторых случаях надо дополнительно отключить symbol versioning.
> > Последние трое суток сборочница парализована из-за очень больших заданий
> > с qt4 и kde, а теперь и gnome. По-видимому, потребуются ещё
> > дополнительные полномочия срубать неугодные мне задания.-)
>
> Может, лучше договориться с людьми? Я думаю, что ради всеобщего блага они
> пойдут навстречу.
Ну да, про срубание заданий это уже очень круто, поэтому я поставил
смайлик. Хотя всё-таки защёлка в виде 'AWAITING [locked]' иногда
практикуется.
> > 1) Пересборка библиотек с set-versions. Надо пересборать достаточно
> > большой набор библиотек, чтобы у них появились set-version provides.
> > Тогда впоследствии не придётся пересобирать пакеты, слинкованные
> > с этими библиотеками (чтобы у этих пакетов появились set-versioned
> > requires).
>
> Это очевидно, хотя в некоторых случаях лучше сразу собрать более свежие
> версии библиотек.
Пока мы собираем более свежую версию библиотеки, прошли уже 10 пакетов,
которые слинковались со старой библиотекой и не обросли зависимостями.
Значит, вместо того, чтобы лишний раз обновить один пакет (библиотеку),
придется потом пересобирать 10 пакетов. Хотя это не настолько просто,
пакеты потом всё равно придётся пересобирать. Но в первом приближении
быстро пересобрать библиотеки смысл есть.
> > Кроме того, у всех библиотек надо оторвать наши самодельные
> > versioned scripts - их функция теперь перекладывается на set-versions;
> > а также отрывание version scripts улучшит совместимость альтовских
> > бинариков с не-альт lsb средами.
>
> Это спорно. Наши самодельные versioned scripts лучше всего заапстримить
> ко всеобщей пользе. По крайней мере, мне это иногда удавалось.
По-моему, symbol versioning глобально не прижился. И если за последние
несколько лет в этом направлении было удивительно мало движений, то мы
сейчас не сделаем погоды. Вот два относящихся к делу соображения.
1) У symbol versioning компромиссный и уродский дизайн: неверсионированный
символ может разрешаться в версионированный, а версионированный -
в неверсионированный. Казалось бы, неужели такое возможно?
2) Скрипты надо делать очень аккуратно вручную, и желательно понимать код
и логику релиз-процесса. Например, у нас есть самодельный интерфейс
GLIB_2.15.6. Но это была последняя бета-версия перед релизом 2.16,
так что надо было набивать интерфейс GLIB_2.16 (которого у нас нет).
Но на стадии 2.15.6 ещё не было понятно, каким будет окончательный набор
новых символов в 2.16. Это очень хрупкая конструкция, я сам несколько раз
облажался когда делал version scripts. Короче, я бы за наши version
scripts не поручился. А в этот скрипт не возьмут просто по причине
GLIB_2.15.6.
> > 2) perl-5.12.2 - в основном собран. Надо ставить запрет на perl-5.8
> > и набивать таск. На первом этапе надо пересобрать архитектурно-зависимые
> > пакеты в количестве примерно 300 штук.
> >
> > Основное отличие - от perl-base оторваны подляторы (perl-Pod-Parser,
> > perl-podlators и т.д.), а при сборке перловых пакетов man-страницы
> > по умолчанию генерироваться не будут.
>
> Некоторые люди по разным причинам любят man-страницы. Для того, чтобы они
> не страдали от того, что одни мейнтейнеры пакуют их, а другие рекомендуют
> использовать perldoc, хорошо бы запаковать пакет с файлтриггером. Кому
> нужны автосгенерированные man-страницы, тот сможет установить этот пакет и
> получить их все.
Триггер можно запаковать потом (к тому же основная его часть уже написана,
просто там вместо триггера стоит cronjob), а мигрировать на перл надо
сейчас. А то не успеем собрать Национальную ОС!
Кстати, вопрос по триггеру, что он должен делать по файлам? cronjob
складывает генерат в /var/cache/perlman и расставляет/удаляет симлинки
в /usr/local/man.
Подробная информация о списке рассылки Devel