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 уже > появилась.