[devel] indexhtml policy
Artem Zolochevskiy
=?iso-8859-1?q?artem=2Ezolochevskiy_=CE=C1_gmail=2Ecom?=
Сб Апр 26 13:13:12 MSD 2008
hi all
Господа,
у нас есть indexhtml-пакеты. Это такие дистрибутивоспецифичные приветственные
html-странички.
На сегодняшний день эти пакеты находятся в плачевном состоянии во многом по
причине того, что нет стандарта. Они конфликтуют друг с другом, содержат
вызовы никому уже не понятных скриптов для "прописывания" себя в систему итп.
Я попытался написать черновик простого policy. Оно завязано на технологию
альтернатив, в кторой я ещё не очень силён.
Прошу заинтересованных ознакомиться/высказаться и после принятия полиси, я
обновлю все indexhtml-пакеты до соответствия.
--
Артём Золочевский
----------- следующая часть -----------
indexhtml-distro пакеты представляют из себя дистрибутивоспецифичную "приветственную" страничку, которая открывается по умолчанию браузерами.
Кроме этого, ссылка на такую страницу должна находится в меню (и на рабочем столе?) на случай смены умолчательной домашней страницы пользователем.
Этот простой html-файл содержит как правило:
- приветствие
- ссылки на локально установленную документацию
- ссылки на web-ресурсы
Требования к indexhtml-пакетам:
===============================
1.
Именование:
indexhtml-название_дистрибутива
Группа: System/Base (Books/Other?)
Пример:
Name: indexhtml-server
Group: System/Base
2.
Идея в том, что, пакет должен устанавливать _один_ index.html в /usr/share/doc/HTML/index.html, который устанавливается по умолчанию в браузерах. (это месторасположение нужно согласовать с мантейнерами браузеров).
Для того, чтобы можно было на иметь несколько установленных indexhtml-пакетов, файл /usr/share/doc/HTML/index.html должен быть реализован как "альтернатива".
Собственно же файл с содержанием устанавливается в /usr/share/doc/HTML/ с именем, отличным от index.html (либо придумать другое месторасположение: где-то внутри /usr/share/doc/alt-docs?)
Для того, чтоб избежать теоретических конфликтов по именам файлов между двумя indexhtml-пакетами, файл следует именовать так:
/usr/share/doc/HTML/имя_пакета.html
а файл альтернатив так:
%_altdir/имя_пакета
НЕ должна применяться система "весов". Ибо невозможно сказать, какой indexhtml более предпочтителен.
Поэтому у всех indexhtml-пакетов в обязательном порядке должен быть одинаковый вес (например 10).
Предполагается, что пользователь сможет самостоятельно задать желаемую альтернативу.
Пример:
/usr/sahre/doc/HTML/index.html /usr/share/doc/HTML/indexhtml-server.html 10
3.
Т.к. при использовании одинакового веса и автоматических альтернатив выбор альтернативы осуществляется по алфавитному принципу, то дабы исключить алфавитную "случайность" простановки альтернатив при установке пакетов, необходимо устанавливать альтернативу принудительно в ручной режим. Это приводит к тому, что по умолчанию устанавливается та альтернатива, которая была установлена последней, что представляется вполне логичным. (Если ставится пакет, то пусть он работает). При удалении пакета с выставленной альтернативой, к сожалению, снова будет действовать алфавитный принцип выбора альтернативы.
поэтому к стандартным %register_alternatives/%unregister_alternatives добавляется:
%post
%register_alternatives имя_пакета
alternatives-manual %_defaultdocdir/HTML/index.html %_defaultdocdir/HTML/имя_пакета.html > /dev/null
alternatives-update
%preun
%unregister_alternatives %name > /dev/null
Подробная информация о списке рассылки Devel