Новости (май 2016)

Давненько не было месячных выпусков новостей, что вовсе не значит, что их нет. Просто некоторые изменения настолько важны, что им были посвящены отдельные темы.

Подготовка Calculate Linux 15.17

Наверное уже ни для кого не секрет, что скоро должен выйти новый релиз Calculate Linux. Скорей всего это произойдёт уже в этом месяце. Не смотря на то, что дистрибутив не будет содержать ключевых на наш взгляд изменений, продолжая 15-ю версию, всё же некоторые отличия заслуживают отдельного внимания. Мы постепенно замораживаем реализацию новых фич и переходим к тестированию и исправлению ошибок.

Calculate Linux Desktop с KDE 5

Дистрибутивы CLSK и CLD объединились, мы прекратили сборки CLS с Plasma 5, объединив профили. CLSK, на котором обкатывались настройки новых версий приложений позволил выполнить переход практически бесшовно. Лишь стабилизация KDE 5 в портежах вынудила нас выполнить миграцию. Если вы хотите установить дистрибутив с KDE, загружайте ночную сборку. В этом случае вам не придётся обновлять огромное количество пакетов, появившихся в репозитории с момента выхода CLD 15.12.

Новые дистрибутивы сборки пакетов

Отказ от KDE4 затронул по цепочке ряд других изменений. Известно, что пакеты с KDE 5 собирались в том же профиле, что и XFCE, MATE, а это значит, что после отказа от глобального USE-флага “kde”, необходимого для сборки KDE4, в отдельном сборочном дистрибутиве CLD+ отпала необходимость. Не потребовалось и собирать и копии таких монстров, как Libreoffice с флагом “kde”, что высвободило часть ресурсов. Особенно приятно было, что эти изменения совпали с апгрейдом сервера, на котором происходит сборка систем. Новый процессор, увеличенный объём ОЗУ и PCI-SSD сводят рутину сборки в развлечение. Выяснилось, что кто-то использует профили плюсовых дистрибутивов, не отдавая себе отчёт в том, что он содержит нестабильные изменения. В итоге мы не просто сократили количество сборочных систем до двух, но и переместили их в оверлей Calculate и переименовали из из CLDX+ и CDS+ в “desktop” и “server”. В завершении была выполнена чистка сборочной системы “server”, которая теперь содержит лишь не GUI версии приложений. Всё остальное, включая совместно используемые пакеты - в сборке “desktop”.

Что это дало?

# Перечень пакетов собираемых в бинарном виде хранится в оверлее ‘calculate’, в то время, как ‘distros’ содержит исключительно состав пакетов дистрибутивов, собираемых из бинарных пакетов, а так же их отличительные настройки. Это позволяет ещё больше минимизировать оверлей ‘distros’, сделав его проще для понимания и клонирования для последующей модификации под свои задачи. Вам не обязательно строить систему на четырёх профилях: ‘gentoo’ -> ‘calculate’ -> ‘distros’ -> ‘свой оверлей’, достаточно будет трёх: ‘gentoo’ -> ‘calculate’ -> ‘свой оверлей’.
# Исключив дубли пакетов и систематизировав состав сборочных дистрибутивов, появилась возможность по аналогии со сборкой ‘server’ создавать по необходимости дополнительные профили для сборки пакетов с поддержкой определённого функционала.

Новая структура зеркал

Какие-то вещи настолько приедаются, что перестаёшь на них обращать внимания, считая их вполне самодостаточными (где же ваша критика?). Проводимые опросы прекрасно позволяеют посмотреть на всё со стороны. В итоге начинающая напоминать помойку структура зеркала была полностью пересмотрена и систематизирована. Претерпели изменения и имена регулярных сборок, теперь это ночные сборки. Название играет здесь не последнюю роль, отражая суть регулярных сборок. Ночная, потому что почти на автомате, и всключает все последние изменения практически ничем не отличаясь от обновлённого дистрибутива. Но так как сборки “ночные”, то допустимо, что что-то в установщике может не работать. Такое бывает, к этому не стоит относиться критически, т.к. это “ночная” сборка :slight_smile: Просто сообщите нам об этом и в следующей версии ошибка уже будет устранена.

Жизнь со стабильными обновлениями

Прежде всего хочу заметить, что период стабилизации пакетов (время нахождения их в нестабильном виде) вовсе не означает, что это то самое время, которое отводится на тестирование пакетов. Если взять все этапы, начиная от наличия пакета или версии пакета в оверлее, перенос его в портежи, нахождение в нестабильном виде в портежах с внесением исправлений, иногда без выпуска r-ок и последующая стабилизация его и является периодом тестирования пакета. Пользовательские приложения мы стабилизируем раньше, сокращая таким образом время на тестирование. Разделение stage и unstable обновлений позволяет выявить другие моменты, больше связанные с особенностями сборки бинарных пакетов, например выявить “магические зависимости” добавленные в бинарный пакет из окружения, дополнительно протестировать работу приложений. Пока что до сих пор решение о стабилизации обновлений не происходит на автомате, но скоро мы к этому надеюсь придём.

Новая структура бинарного репозитория

До всего когда-то доходят руки. Когда-то тестовая поддержка xpak-пакетов в портежах по прошествии времени стабилизировалась, а переделка скрипта объединения сборочных бинарных пакетов позволила вновь вернуться к теме объединения пакетов в один бинарный репозиторий. Пакеты xpak по сути переименованные tbz2, в имени которых допустимо ставить цифру версии (возможно и слово). Если включить поддержку сборки xpak, портежи будут создавать новую версию для каждой новой сборки бинарного файла. Мы же используем их для того, чтобы объединить пакеты собранные с разными USE-ами. Например Midnight Commander, собираемый для сервера без поддержки USE-флага “samba”, чтобы исключить зависимость от Samba, которая в CSS может не стоять. В итоге в новом репозитории вместо пакета mc-4.8.15.tbz2 находится директория mc, в которой есть два бинарных файла mc-4.8.15-1.xpak и mc-4.8.15-2.xpak. Посмотреть с какими флагами был собран каждый из них можно посмотрев содержимое Packages.

Шаги по оптимизации

Обновления пакетов с включённой по умолчанию поддержкой Python 3.4 к счастью практически не сказалось на размере образов дистрибутивов. Если небольшие по размеру библиотеки питона увеличились практически в два раза, то сами пакеты в некоторых случаях увеличились, а в некоторых, как ни странно, даже уменьшились по размеру. Использование Python 3.4 в портежах заметно ускорило пересчёт зависимостей, сократив время примерно на 15-17%!

Воодушевлённые достигнутым результатом, мы начали пробовать другие пути оптимизации: использование PyPy, запаковка пакетов в XZ. Но, к сожалению, если в первом случае PyPy практически не влияет на работу портежей, лишь добавляя накладные расходы на объём образов дистрибутивов, то использование XZ может быть осуществлено только путём внесения изменений в код пакетного менеджера, что поломает совместимость с Gentoo.

Возможно использование Python 3 скажется на работе и других компонентов системы. К сожалению, утилиты Calculate, как и множество других пакетов, всё еще работают на Python 2. Поддержка Python 3 будет осуществлена не ранее релиза Calculate Linux 17.

Планы на будущее

В релиз не войдёт множество интересных и востребованных, как показало голосование, плюшек, среди которых:

  • Поддержка работы с дублирующими Git-зеркалами обновлений портежей.
  • Поддержка работы с закрытыми профилями.
  • Тюнинг отзывчивости работы десктопов при помощи CGroups.
  • Новый вид установки и обновления системы без распаковки ISO образа.

Всё это будет оставлено до лучших времён. Сразу же после выпуска мы планируем вернуться к работе над реорганизацией пакета утилит sys-apps/calculate-server.

Новый вид установки и обновления системы без распаковки ISO образа!!!
Я так понимаю это новый принцип установки системы (она будет существенно переделана) и обновления системы?
**+
Поддержка xpak-пакетов!!!
Поддержка со временем будем повсеместно на все пакеты распространяться, то есть они все с формата .tbz2 переедут на формат .xpak?

Александр, когда-то это уже было, систему можно было установить в builder-режиме на жесткий диск. Если повторить, убрав лишние слои и упростив некоторые вещи, получится очень даже скромные ресурсы и временные затраты для установки системы.
Все пакеты в репозитории уже xpak. Это не новый формат, emerge при скачивании его сразу переименовывает в привычный tbz2