[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