Вход:  Пароль:  
FreeSource: TZ/AltLinux/WhiteLabel ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия TZ/AltLinux/WhiteLabel за 2008-02-13 16:48:58..

ТЗ: white labeling

Оглавление документа

intro

В процессе разработки mkimage-profiles-ltsp на базе mkimage-profiles-desktop и наблюдения за пробным камнем на пути whitelabeling, а именно школьным проектом (где часть разницы и есть в смене дизайна и текстовых строк) — начало формироваться понимание не только гибкости mkimage, но и желательности удобной схемы её использования для предотвращения непродуктивного форканья профилей (и целей сборки внутри них), инсталеров (и настроечных скриптов внутри них) и вообще блуждания фич вместе с багами в лучшей китайской манере copy-paste (например, идентичные копии postinstall.d/06-pxe.sh присутствуют ныне в installer-{hpc,ltsp{,-school},junior} — как их предполагается улучшать, если, скажем, сделают control portmap server?).


По результатам предварительного обдумывания и обсуждения с boyarsh@, legion@, led@ решил написать с листов на столе не длинное письмо, а структурированную страничку.

цель ТЗ 

Максимальная разумная ортогонализация профилей и инсталеров с тем, чтобы тратить время и силы на

а не на


Попросту говоря, вместо git-fetch git.alt:/people/boyarsh/repo/mkimage-profiles-desktop master:desktop и последующего мержа (муторного, если мои и апстримные правки пересекаются) — охота делать хотя бы --with-installer=ltsp-school --with-design=ltsp-school, а когда-то — ./configure --with-distro=junior --with-features=ltsp,school :)


Это подразумевает также построение дерева («водопада»?) требуемой для сборки информации — от наиболее общей (тип дистрибутива) к частной (дизайн и мелкие особенности) с осмысленным наследованием значений по умолчанию частностями от общностей. При этом дизайн/носитель определяются вместе постановкой задачи для дистрибутива; не уверен насчёт их порядка или вообще зависимости друг от друга.


Предлагаемый порядок: DISTRO; FLAVOUR; DESIGN; MEDIA; набор FEATURE; DOCS. Пример: DISTRO=Desktop, FLAVOUR=Lite, MEDIA=cd, остальное наследуется от предшественников (с заглавными буковками решено завязывать в пользу прописных).


Или а-ля Rails: замена кучи перекладываний одного и того же набором договоренностей.

installer

Предлагается обдумать и произвести вынос часто используемых скриптов в пакеты с «фичами» инсталятора вида installer-feature-$(DISTRO)-$(FEATURE) для тех, которые могут иметь специфическое отношение к «кусту» инсталяторов (например, десктопных), или installer-feature-$(FEATURE) для наиболее неинтрузивных фич. Например, пресловутый postinstall.d/06-pxe.sh просится в исходный пакет installer-feature-pxeboot и бинарный installer-feature-pxeboot-stage2.


При таком подходе возможно как выстроить схему зависимостей (например, installer-feature-ltsp-stage2 Requires: installer-feature-pxeboot-stage2), так и конфликты между скриптами, которые производят несовместимые изменения в одном и том же конфигурацинном файле.

mkimage-profiles

Наблюдаются следующие проблемы (на примере mkimage-profiles-desktop как наиболее развитого набора):

дизайн

Предлагается переключать по --with-design= (умолчание наследуется от значения --with-distro или установленного в профиле). Затрагиваемые группы пакетов:


Реализация подразумевает добавление в profiles/base/Makefile.in::IMAGE_PACKAGES (параметризованных) имён либо пакетов, либо списков таковых (при этом внутри списка параметризации уже нет).


Первый способ обеспечивает гибкость на этапе сборки без модификации профиля: в параметрах configure можно передать произвольный суффикс — но ограничивает таковую по части полноты набора дизайна: все пакеты должны быть, а некоторые из них при этом недостаточно даже скопировать, поскольку этот же суффикс используется в имени каталога).


Второй способ позволяет класть частично адаптированный дизайн (например, design-graphics-ltsp-school, design-alterator-browser-qt-junior и alterator-design-desktop), а также не класть его вообще — но приводит к обязательности форка (части) профиля.


Таким образом, первый способ должен хорошо подходить для «серьёзного» подхода к делу, когда дизайн делается полным по определению, но менять его желательно с минимальными затратами времени; второй — для «домашнего», когда перекурочить профиль куда проще, чем возиться со всей стопкой дизайн-пакетов.


Здесь разумным компромиссом пока выглядит первый вариант с разумным fallback на заведомо существующий вариант дизайна и упакованные «пустышки» для дизайна с именем none на случай, когда таковой не требуется (пакет design-none, который Provides: всё (не)нужное).

документация

Размышления аналогичны дизайну; предлагается docs-issue-$(DISTRO)_$(FLAVOUR).


Страницы, ссылающиеся на данную: AltLinux/Sisyphus/SolutionProcess


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]