====== Спецификация FEM (Frenzy Extension Modules) ====== //"You are not expected to understand this"// FIXME Этот документ - черновой вариант спецификации модульной структуры Frenzy и нуждается в доработке. ===== Общее описание ===== Cделать модульную структуру наподобие той, что присутствует в SLAX и Damn Small Linux. Отдельные программные пакеты (или наборы программ) распространяются в виде модулей расширения Frenzy. Пользователь скачивает их и помещает на жесткий диск либо интегрирует в ISO-образ. При загрузке Frenzy находит модули и подключает их. Таким образом мы можем легко добавлять программы на LiveCD, расширяя его функциональность. ===== Структура модуля ===== Модуль - это сжатый с помощью uzip образ файловой системы ISOFS, содержащий следующие файлы: | fem-desc | Описание модуля, текст. :?: описание на нескольких языках - как реализовать? | | fem-depend | Зависимости модуля - от каких модулей он зависит | | fem-menu | Пункт меню в формате fluxbox - добавляется в файл menu.fem, подключаемый к основному меню fluxbox | | fs/ | Каталог с программами из модуля - монтируется поверх корневой FS | На FTP должны быть следующие файлы: modname.fem - файл модуля modname.feminfo - файл описания модуля ===== Подключение модуля ===== Файловая система модуля монтируется поверх корневой файловой системы с помощью unionfs. Как следствие, модули могут быть установлены только до загрузки системы (иначе получится большая путаница с union). После подключения модуля производится запуск соответствующих pkg_install-скриптов и добавление в fluxbox нужного пункта меню. ===== Известные проблемы ===== * Пока неясно, как отслеживать зависимости. Модули могут быть собраны кем угодно. * Для сборки модулей нужна та же версия дерева портов, которая использовалась при сборке основной системы.