Начиная с ядер 3.7.10 и 3.8 calculate-sources использует новую систему сборки.
Все патчи и настройки ядра перемещены в шаблоны
Что это даёт?
Этот подход чем-то напоминает е-классы, когда поведение ebuild-а может измениться без изменения версии. Это конечно неудобно с точки зрения создания бинарных пакетов обновлений, но сильно облегчает рутинные операции. Мы же планируем извлечь из этого перехода следующие преимущества:
# Обновления ядра будут выходить максимально быстро за счёт того, что ebuild не будет содержать в себе патчей.
# По маске можно будет понять, в какой стадии находится поддержка пакета:
## hard mask будет говорить о том, что у пакета как минимум нет поддержки aufs, т.е. собрать livecd на таком ядре будет невозможно;
## маска по архитектуре будет говорить о том, что ядро при желании можно будет собрать. Оно замаскировано, т.к. не хватает полного набора патчей и оно соответственно ещё не протестировано.
## стабильное состояние говорит о том, что для актуальной версии него есть бинарный пакет обновления, если оно последней версии.
# Патчей будет больше. Будем добавлять то, что будет востребовано. Используя шаблоны вы сможете сами добавлять патчи.
# Настройки ядра также теперь хранятся в шаблонах (см. /var/lib/layman/calculate/profiles/templates/3.1/6_ac_install_patch/sys-kernel/calculate-sources/3.8/config-desktop-i686). Вы можете опять же сделать свои шаблоны с настройками ядра, либо с патчами к настройкам ядра (см. /var/lib/layman/calculate/profiles/templates/3.1/6_ac_install_patch/sys-kernel/calculate-sources/3.8/zzz-config-desktop-bfq-tuxonice.patch).
Для чего всё это надо?
Как сейчас происходит обновление ядер 3.x? Мы ждём патча aufs, затем смотрим на поддержку ati и nvidia и после этого создаём настройки и собираем ядро. Тестируем и выпускаем обновление. Проблема в том, что времени на тестирование отводится недостаточно. За это время многие успевают поставить другое ядро, например pf-sources. Новое ядро - новые сюрпризы, отследить которые можно только на большом количестве железа.
При удалении пакета, полностью удаляется ядро
Тема удаления старых ядер неоднократно поднималась на форуме. После этого мы подняли вопрос об полном удалении ядра при удалении пакета в рассылке и наконец внесли изменение в шаблоны. В этом нам помогло событие вызова шаблонов во время удаления пакета (/var/lib/layman/calculate/profiles/templates/3.1/6_ac_install_unmerge).
Я могу установить новое ядро 3.8.x, удалить старое 3.7.x, какое-то время поработать и затем перезагрузить компьютер. Какие могут быть риски:
# По какой-то причине я не смогу загрузиться на новом ядре.
Такое может произойти, если по невероятной причине поддержка вашего железа вдруг “отвалилась” в новом ядре. Вероятность небольшая.
# Я не смогу корректно отмонтировать какие-то файловые системы, т.к. модулей уже нет.
Поэтому прежде, чем подчистить пакеты без зависимостей командой emerge -ac
, если среди обновлений было ядро, сперва перезагрузите компьютер и после этого выполните удаление пакетов с отсутствующими зависимостями.
Вообще calculate-sources по гентушным меркам необычное ядро. Теперь оно вполне подпадает под определение любого другого пакета - ядро устанавливается и удаляется как любой другой пакет.
Заключение
Изменения коснулись не только ядра. Для всех патчей, используемых в Calculate Linux написаны шаблоны (/var/lib/layman/calculate/profiles/templates/3.1/6_ac_install_patch). Один раз изучив шаблоны Calculate, вы можете управлять системой на всех её стадиях работы. Если у вас будут вопросы, пишите на форум Шаблоны.