[devel] LSB init headers [was: fresh repocop report]

Igor Vlasenko =?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Чт Мар 6 13:10:58 MSK 2008


On Thu, Mar 06, 2008 at 02:50:06AM +0300, Денис Смирнов wrote:
> On Wed, Mar 05, 2008 at 05:20:58PM +0200, Igor Vlasenko wrote:
> 
> IV> 1) Дима что-то не проясняет свою позицию.
> 
> Насколько я понимаю -- загонять всех в светлое будущее в виде LSB пинками
> пока очень рано. А вот информировать мантейнеров о том, что
> LSB-initscripts могут быть для них полезны -- можно и нужно. 

Да, но лучше сейчас потратить время на обсуждение,
рассмотреть возможные проблемы и пути решения и зафиксировать
результат на вики, чем послать людей в никуда ;)

Наощупь можно таких дров наломать...
 
> IV> 2) К тесту не хватает странички на wiki -
> IV> кто-то должен заявить о своей компетентности в разрешении вопросов.
> Думаю та ссылка на Debian уже очень неплохой вариант.

Не хватает alt-specific. Например, вопрос ниже
> IV> например, есть ли у нас X-Start-Before/X-Stop-After?
> Не знаю. Но, скажу честно, _пока_ они мне не были ни разу нужны.
 
У меня был другой опыт, я сразу столкнулся с пакетом, где они были 
естественным образом нужны. я ниже поясню на примерах.

> Тут не X-.* нужны, а Should (в пику Requires). Например если конфигурация
> сервиса предусматривает что он может пользоваться услугами БД, то ему надо
> говорить что он Should-Start все виды БД, которыми он может пользоваться.

Надо небольшое отступление.
Should-Start и X-Start-Before представляют собой 
отношение и ко-отношение, логически эквивалентные друг другу. 

Т.е. если А хочет В, то В ко-хочет А.

но эквивалентные логически, они крайне не эквивалентны практически.

Вот простой критерий, когда нужно использовать отношение, 
а когда отношение:

Утверждение:
------------
отношение (ко-отношение) естественно, если в нем стрелки ведут 
_из_ пакета, порождающего это отношение (ко-отношение), 
и неестественно (изврат, по простому), если стрелки идут наоборот.

Поясню это на примере. Сначала возьмем Should-Start:

Пример 1 (Should-Start:)
--------
некий странный сервис bubbalizer использует mysql.
Этот факт порождает отношение bubbalizer <-> mysql.

В этом случае естественно писать в заголовке bubbalizer
Should-Start: mysql

и противоестественно писать в заголовке mysql
X-Start-Before: bubbalizer

В противном случае на майнтайнера mysql свалятся проблемы
работоспособности всех этих бесчисленных bubbalizer'ов :( 

Пример 2 (X-Start-Before:)
---------
Сервис hpiod (был в hplip 1.x-2.6.x) предоставляет cups (альтернативную)
возможность печати на принтеры hp, и должен запускаться перед cups.

В этом случае естественно писать в заголовке hpiod
X-Start-Before: cups

и противоестественно писать в заголовке cups
Should-Start: hpiod.

В противном случае на майнтайнера cups свалятся проблемы
работоспособности всех этих бесчисленных backend'ов :(
В основном это экзотика, никому не нужная кроме несчастного
их обладателя, с загрузкой firmware и другой гадостью. 
И даже если несчастный обладатель опакетит дрова, то
без X-Start-Before:
они просто так не заработают, нужно будет править заголовки
сторонних пакетов (cups). При чем и в Сизифе, и во всех branch...

Таким образом,
проще добавить поддержку (если еще ее нет)
X-Start-Before:. Патчи можно взять в SuSE.

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine




Подробная информация о списке рассылки Devel