[devel] WM resources packaging proposal

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Сен 19 14:50:12 MSD 2008


On Fri, Sep 19, 2008 at 12:30:01PM +0300, Igor Vlasenko wrote:
> On Fri, Sep 19, 2008 at 08:59:59AM +0000, Alexey Tourbin wrote:
> > > Если сказать по другому, то зависимость wm-common 
> > > на update-desktop-db по существу.
> > 
> > Сомнительно.  Получается, что wm-common -- это фантомный пакет,
> > который содержит набор зависимостей для некоторых "десктопных" wm.
> 
> В споре рождается истина :)
> (Подумав). Действительно, неправильно позиционировать этот 
> список как wm-common. Но этот список есть реальная сущность. 
> 
> Теперь я наверное сам понял.
> Этот список стандартных фич согласно freedesktop.org.
> Его правильно назвать freedesktop-common.

А сколько всего таких десктопов есть?
На ум приходят три штуки: gnome, kde и xfce.  

> Этот список открыт, поскольку freedesktop.org постоянно 
> добавляет стандарты.
> 
> Список этих зависимостей должен стоять у каждого DE/WM/FM,
> который грозится быть freedesktop compliant.

Зависимости должны быть конкретны.  Я даже исхожу из того, что все
зависимости по сути конкретны.  Например, если кто-то слинковался с
библиотекой libfoo, то будет конкретная зависимость на libfoo.so.0,
а если кто-то требует файл /foo/bar, то можно указать зависимость на
/foo/bar (зависимость на имя пакета уже является менее конкретной).

Так вот, все зависимости конкретны, но не все зависимости прозрачны,
и не все зависимости поддаются автоматическому поиску.  Зависимости
на menu прозрачны, а зависимости на update-desktop-db уже непрозрачны.

Но зависимости на update-desktop-db всё ещё можно считать конкретными.
Что на самом деле нужно WM/DE?  Ему нужен этот самый desktop db, а этот
desktop db существует в виде конкретных файлов.  Так что можно
проставить зависимость на /usr/share/applications/mimeinfo.cache.
(Остаётся правильно сгруппировать файлы "на другом конце", чтобы
эта связка хорошо работала.)  То есть какой-то бинарик в WM/DE загружает
этот mimeinfo.cache, просто такую зависимость очень трудно вытянуть из
бинарика автоматически.

А freedesktop-common уже не является конкретной зависимостью,
он, наоборот, является "фантомным" пакетом (нельзя получить естественную
зависимость на freedesktop-common, исходя из содержимого этого пакета).
Он предлагает механизм переходных зависимостей: пакет A по сути требует
пакет C, но эта зависимость непрозрачна; вместо этого пакет A требует
пакет B, который в свою очередь требует C (то есть в пакете B
перечислены все непрозрачные зависимости пакета A).

> > Получается, что, вообще говоря, разные window manager'ы могут
> > поддерживать разные списки desktop фич.  Зависимости должны быть
> > прозрачными и поддаваться автоматическому поиску, а если непрозрачны
> > и не поддаются автоматическому поиску, то нужно их гранулированно
> > указывать вручную
> 
> IMHO, freedesktop-common правильнее, чем гранулированно
> указывать вручную, так как бульдозер прогресса тащит все эти
> DE/WM/FM к поддержке всего списка.

С одной стороны, все зависимости по сути являются конкретными,
и тогда переходных зависимостей быть не должно (и тогда никаких
"реальных сущностей" тоже нет :).

С другой стороны, не все зависимости прозрачны; если freedesktop-common
в этом отношении окажется полезным в энном количестве случаев, тогда
надо его сделать.  Только в понятие полезности нужно заранее заложить
минимальное значение N.

> Они обязаны (стандарт требует) поддерживать все, 
> и если даже чего-то не далают, то быстро начнут.
> 
> А майнтайнер может элементарно проморгать, что в релизе X.Y
> поддержки такой-то не было, а в релизе X.Y+1 уже 
> появилась.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080919/6f5275b2/attachment-0002.bin>


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