[devel] I: Упаковка тем для GTK+/GNOME

Alexey Rusakov =?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Пт Окт 13 04:17:08 MSD 2006


QA Team Robot пишет:
> libgtk-engines-default - Default GTK+2 theme engines
> * Wed Oct 11 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt3
> - replaced 'gtk-engines' prefix with 'libgtk-engine' prefix, to better
>   reflect the nature of an engine and to clearly separate it from
>   a gtk-theme (ah, and to frighten a user with 'lib' prefix, too).
> - renamed the main package to libgtk-engines-default, and development
>   subpackage to libgtk-engines-devel.
> * Tue Sep 12 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt2
> - cleaning up the mess between gtk-engines and gnome-themes.
> * Sun Sep 10 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt1
> - new version 2.8.0 (with rpmrb script)
> * Sun Sep 03 2006 Alexey Rusakov <ktirf на altlinux> 1:2.7.8-alt1
>   
Спустя год после первого подхода у меня снова дошли лапы до зоопарка из 
GTK engines, GTK themes, Metacity themes, GNOME icon themes и GNOME 
themes. В недалёком будущем, видимо, я напишу наконец документ, 
раскладывающий всё по полкам и регламентирующий упаковку всего этого 
безобразия. Сразу скажу насчёт очень обсуждавшегося когда-то вопроса - 
GTK engines предпочтительно упаковывать отдельно, особенно в тех 
случаях, когда вы знаете/предполагаете, что они используются не одной 
GTK theme.
Теперь что касается последних веяний. Пока основное новшество - это 
изменение+фиксация именования пакетов и зависимостей между ними. 
Черновик правил именования приведен ниже и следует в порядке убывания 
приоритетности (на wiki я этот текст завтра тоже положу).
Итак,
0. общее правило: предпочтительно называть пакеты полностью в нижнем 
регистре, разделяя слова дефисами.
1. Если в пакет попадает файл %_datadir/themes/ThemeName/index.theme (то 
есть файл GNOME theme),
    пакету надлежит требовать (либо предоставлять, если он их содержит) 
соответствующие Metacity theme, GTK+ theme и GNOME icon theme;
    название - gnome-theme-<theme-name>, либо gnome-themes-<name>, если 
в пакете семейство тем.
*иначе*
2. Если в пакет попадает файл %_datadir/themes/ThemeName/gtk-2.0/gtkrc 
(то есть файл GTK+ theme),
    пакету надлежит требовать (либо предоставлять, если он их содержит) 
пакеты со всеми engines, используемыми этой темой (находятся по слову 
engine в файле gtkrc - в общем случае их может быть больше одного);
    название - gtk2-theme-<theme-name>, либо gtk2-themes-<name>, если в 
пакете семейство тем. Разрешается упаковывать в один пакет темы для 
GTK+1 и GTK+2, при этом рекомендуемое название - gtk-theme-<theme-name>
*иначе*
Следующие три варианта исключают друг друга: крайне не рекомендуется 
упаковывать в один пакет engine и icon theme, или engine и Metacity 
theme, или icon theme и Metacity theme. Возможна упаковка всех трёх 
частей в один пакет, если в этот же пакет попадает тема GTK+ (см. пункт 2).
3a. Если в пакет попадает файл 
%_datadir/themes/ThemeName/metacity*/metacity-theme-*.xml
    пакету надлежит требовать пакет metacity (не metacity-gnome);
    название - metacity-theme-<theme-name>, либо metacity-themes-<name>, 
если в пакете семейство тем.
3b. Если в пакет попадают файлы из %_iconsdir
    название - icon-theme[-gnome]-<name>; используйте префикс gnome-, 
когда известно, что тема сделана под GNOME.
3с. Если в пакет попадает файл 
%_libdir/gtk-2.0/*/engines/lib<engine_name>.so
    пакет должен требовать библиотеки из пакета libgtk+2 (об этом 
позаботится findreq, явную зависимость ставить не рекомендуется);
    название - libgtk-engine-<engine-name>, либо libgtk-engines-<name>, 
если речь о семействе.

Таким образом, engines получили префикс lib; для названий используется 
единственное число; если вы пакуете engine вместе с theme, вы называете 
пакет на gtk2-theme-; если вы пакуете всю колбасу целиком (или почти 
целиком, icon theme нередко идёт отдельно), вы называете пакет на 
gnome-theme-.

Любые вопросы, критика, предложения - принимаются.

> gtk-engines-default - Default GTK+2 theme engines
> * Wed Oct 11 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt3
> - replaced 'gtk-engines' prefix with 'libgtk-engine' prefix, to better
>   reflect the nature of an engine and to clearly separate it from
>   a gtk-theme (ah, and to frighten a user with 'lib' prefix, too).
> - the development subpackage is now called gtk-engines-devel, without
>   '-default'. The virtual package stays 'gtk-engines-default'.
> * Tue Sep 12 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt2
> - cleaning up the mess between gtk-engines and gnome-themes.
> * Sun Sep 10 2006 Alexey Rusakov <ktirf на altlinux> 1:2.8.0-alt1
>   
Э... Это была ошибка пьяного мейнтейнера - в obsolete, пожалуйста.

-- 
  Alexey "Ktirf" Rusakov



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