Gtk Gnome Themes Policy: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
м (переименовал «GtkGnomeThemesPolicy» в «Gtk Gnome Themes Policy»)
 
(не показано 6 промежуточных версий 6 участников)
Строка 1: Строка 1:
[[Category:Policy]]
{{DraftPolicy
{{MovedFromFreesourceInfo|AltLinux/Policy/GtkGnomeThemes}}
|responsible=ktirf
}}


== Упаковка тем GTK+ и GNOME ==
== Упаковка тем GTK+ и GNOME ==
Строка 6: Строка 7:


=== Определения ===
=== Определения ===
1. '''GTK+ engine''': файл <tt>%_libdir/gtk-2.0/*/engines/lib<engine_name>.so</tt>
#'''GTK+ engine''': файл <tt>%_libdir/gtk-2.0/*/engines/lib<engine_name>.so</tt>
2. '''GTK+1 theme''': каталог <tt>%_datadir/themes/<theme_name>/gtk</tt> и его содержимое
#'''GTK+1 theme''': каталог <tt>%_datadir/themes/<theme_name>/gtk</tt> и его содержимое
3. '''GTK+2 theme''': каталог <tt>%_datadir/themes/<theme_name>/gtk-2.0</tt> и его содержимое
#'''GTK+2 theme''': каталог <tt>%_datadir/themes/<theme_name>/gtk-2.0</tt> и его содержимое<br /><br />
 
#'''Metacity theme''': каталог <tt>%_datadir/themes/<theme_name>/metacity-*</tt> и его содержимое
4. '''Metacity theme''': каталог <tt>%_datadir/themes/<theme_name>/metacity-*</tt> и его содержимое
#'''Icon theme''': каталог <tt>%_iconsdir/<theme_name></tt> и его содержимое
5. '''Icon theme''': каталог <tt>%_iconsdir/<theme_name></tt> и его содержимое
#'''GNOME theme''': файл <tt>%_datadir/themes/<theme_name>/index.theme</tt>
6. '''GNOME theme''': файл <tt>%_datadir/themes/<theme_name>/index.theme</tt>


=== Разбиение сущностей по пакетам ===
=== Разбиение сущностей по пакетам ===
Этот раздел касается упаковки сущностей по бинарным пакетам (.rpm), а не по исходным (.src.rpm). Упаковка сущностей по исходным пакетам может быть произвольной.
Этот раздел касается упаковки сущностей по бинарным пакетам (.rpm), а не по исходным (.src.rpm). Упаковка сущностей по исходным пакетам может быть произвольной.
Помимо очевидного разбиения &laquo;пакет на сущность&raquo; рекомендуются к использованию следующие варианты:
Помимо очевидного разбиения &laquo;пакет на сущность&raquo; рекомендуются к использованию следующие варианты:
1. '''Bundled GTK+2 theme''': ''GTK+ engine'' вместе с ''GTK+2 theme''
*'''Bundled GTK+2 theme''': ''GTK+ engine'' вместе с ''GTK+2 theme''
2. '''Bundled GNOME theme''': ''Metacity theme'' вместе с ''GNOME theme''
*'''Bundled GNOME theme''': ''Metacity theme'' вместе с ''GNOME theme''
Не рекомендуется, но допускается в силу имеющейся практики:
Не рекомендуется, но допускается в силу имеющейся практики:
1. '''(Bundled) GTK+1/2 theme''': ''GTK+1 theme'' вместе с ''GTK+2 theme'' и, опционально, ''GTK+ engine''
*'''(Bundled) GTK+1/2 theme''': ''GTK+1 theme'' вместе с ''GTK+2 theme'' и, опционально, ''GTK+ engine''
2. '''(Bundled) GTK+/GNOME theme''': ''GTK+2 theme'' вместе с ''GNOME theme'' и, опционально, ''Metacity theme''
*'''(Bundled) GTK+/GNOME theme''': ''GTK+2 theme'' вместе с ''GNOME theme'' и, опционально, ''Metacity theme''
Не допускается:
Не допускается:
1. '''KDE/XFCE/GTK+/GNOME theme''', т.е. любая из тем GTK+ или GNOME,  упакованная вместе с темами для других графических сред: такая упаковка делает невозможной простановку зависимостей на компоненты среды и с большой вероятностью приводит к установке ненужных пользователю файлов.
*'''KDE/XFCE/GTK+/GNOME theme''', т.е. любая из тем GTK+ или GNOME,  упакованная вместе с темами для других графических сред: такая упаковка делает невозможной простановку зависимостей на компоненты среды и с большой вероятностью приводит к установке ненужных пользователю файлов.
2. '''Любая сущность вместе с ''Icon theme''''': ''Icon theme'' может использоваться с любой средой, поддерживающей спецификации freedesktop.org, и не связана ни с какой графической библиотекой.
*'''Любая сущность вместе с ''Icon theme''''': ''Icon theme'' может использоваться с любой средой, поддерживающей спецификации freedesktop.org, и не связана ни с какой графической библиотекой.
3. Другие '''сочетания, пересекающие границу''' между GTK+ и GNOME (например, ''GTK+ engine'' вместе с ''GNOME theme'').
*Другие '''сочетания, пересекающие границу''' между GTK+ и GNOME (например, ''GTK+ engine'' вместе с ''GNOME theme'').


Каталог <tt>%_datadir/themes/<theme_name></tt> может независимо использоваться любой из трёх сущностей: ''GTK+1 theme'', ''GTK+2 theme'' и ''Metacity theme'', поэтому должен упаковываться вместе с каждой из них. Возможны исключения, но должно выдерживаться общее правило: при любом сочетании (с учётом зависимостей) установленных пакетов каталог должен принадлежать хотя бы одному пакету.
Каталог <tt>%_datadir/themes/<theme_name></tt> может независимо использоваться любой из трёх сущностей: ''GTK+1 theme'', ''GTK+2 theme'' и ''Metacity theme'', поэтому должен упаковываться вместе с каждой из них. Возможны исключения, но должно выдерживаться общее правило: при любом сочетании (с учётом зависимостей) установленных пакетов каталог должен принадлежать хотя бы одному пакету.
Строка 33: Строка 33:


Пакеты различных типов должны иметь следующие префиксы в названиях:
Пакеты различных типов должны иметь следующие префиксы в названиях:
* ''GTK+ engine''&nbsp;&mdash; <tt>libgtk-engine-</tt>;
* ''GTK+ engine''&nbsp;&mdash; <tt>libgtk-engine-</tt>;
* ''GTK+1 theme''&nbsp;&mdash; <tt>gtk1-theme-</tt>;
* ''GTK+1 theme''&nbsp;&mdash; <tt>gtk1-theme-</tt>;
* ''GTK+2 theme'', ''Bundled GTK+2 theme''&nbsp;&mdash; <tt>gtk2-theme-</tt>;
* ''GTK+2 theme'', ''Bundled GTK+2 theme''&nbsp;&mdash; <tt>gtk2-theme-</tt>;
* ''GTK+1/2 theme''&nbsp;&mdash; <tt>gtk-theme-</tt>;
* ''GTK+1/2 theme''&nbsp;&mdash; <tt>gtk-theme-</tt>;
* ''Metacity theme''&nbsp;&mdash; <tt>metacity-theme-</tt>;
* ''Metacity theme''&nbsp;&mdash; <tt>metacity-theme-</tt>;
* ''Icon theme''&nbsp;&mdash; <tt>icon-theme-</tt> (не <tt>gnome-icon-theme</tt>, поскольку те же темы можно использовать не только в GNOME, см. выше);
* ''Icon theme''&nbsp;&mdash; <tt>icon-theme-</tt> (не <tt>gnome-icon-theme</tt>, поскольку те же темы можно использовать не только в GNOME, см. выше);
* ''GNOME theme'', ''Bundled GNOME theme'', ''(Bundled GTK+/GNOME theme''&nbsp;&mdash; <tt>gnome-theme-</tt>;
* ''GNOME theme'', ''Bundled GNOME theme'', ''(Bundled) GTK+/GNOME theme''&nbsp;&mdash; <tt>gnome-theme-</tt>;


=== Зависимости пакетов ===
=== Зависимости пакетов ===
Общие правила:
Общие правила:
1. Рекомендуется указанные ниже Requires-зависимости всегда указывать. В некоторых случаях указанные зависимости могут этим же пакетом и предоставляться, тогда разрешается опускать Requires-зависимость.
#Рекомендуется указанные ниже Requires-зависимости всегда указывать. В некоторых случаях указанные зависимости могут этим же пакетом и предоставляться, тогда разрешается опускать Requires-зависимость.
2. Указанные зависимости всегда должны корректно разрешаться apt'ом. Из этого следует, в частности, что если пакет, содержащий указанную сущность, не предоставляет требующиеся ей зависимости, он должен сам требовать их.
#Указанные зависимости всегда должны корректно разрешаться apt'ом. Из этого следует, в частности, что если пакет, содержащий указанную сущность, не предоставляет требующиеся ей зависимости, он должен сам требовать их.


В соответствии с типом попадающих в пакет ''сущностей'', должны быть проставлены следующие зависимости:
В соответствии с типом попадающих в пакет ''сущностей'', должны быть проставлены следующие зависимости:
* ''GTK+ engine'': <tt>Requires: libgtk+2</tt> (проставляется автоматически как зависимость на соответствующую библиотеку в пакете; <u>явным образом проставлять ничего не нужно</u>);
* ''GTK+ engine'': <tt>Requires: libgtk+2</tt> (проставляется автоматически как зависимость на соответствующую библиотеку в пакете; <u>явным образом проставлять ничего не нужно</u>);
* ''GTK+1 theme'': <tt>Requires: gtk+</tt>;
* ''GTK+1 theme'': <tt>Requires: gtk+</tt>;
* ''GTK+2 theme'': <tt>Requires: libgtk-engine-<name></tt> (возможно, не один; требуемые engines берутся из файла <tt>gtk-2.0/gtkrc</tt> поиском слова <tt>engine</tt>);
* ''GTK+2 theme'': <tt>Requires: libgtk-engine-<name></tt> (возможно, не один; требуемые engines берутся из файла <tt>gtk-2.0/gtkrc</tt> поиском слова <tt>engine</tt>);
* ''Metacity theme'': <tt>Requires: metacity</tt> (не <tt>metacity-gnome</tt> и не <tt>libmetacity</tt>), <tt>Provides: metacity-theme = %version-%release</tt>;
* ''Metacity theme'': <tt>Requires: metacity</tt> (не <tt>metacity-gnome</tt> и не <tt>libmetacity</tt>), <tt>Provides: metacity-theme</tt>;
* ''Icon theme'' не имеет специальных зависимостей;
* ''Icon theme'' не имеет специальных зависимостей;
* ''GNOME theme'': <tt>Requires: libgnome</tt> (не <tt>gnome-control-center</tt>);
* ''GNOME theme'': <tt>Requires: libgnome</tt> (не <tt>gnome-control-center</tt>);
 
''Bundled'' темы должны содержать Provides тех компонент, которые в себя включают. Например, если в gnome-theme-myprecious содержится тема для Metacity, в этом пакете должны быть: <tt>Provides: metacity-theme-myprecious metacity-theme</tt> и <tt>Requires: metacity libgnome</tt>


При упаковке нескольких сущностей в один пакет зависимости объединяются.
При упаковке нескольких сущностей в один пакет зависимости объединяются.

Текущая версия от 06:36, 21 июля 2010

Stub.png
Черновик политики Sisyphus
Автор(ы) — ktirf


Упаковка тем GTK+ и GNOME

Этот документ определяет порядок упаковки GTK+ engines, GTK+ themes, Metacity themes и GNOME themes.

Определения

  1. GTK+ engine: файл %_libdir/gtk-2.0/*/engines/lib<engine_name>.so
  2. GTK+1 theme: каталог %_datadir/themes/<theme_name>/gtk и его содержимое
  3. GTK+2 theme: каталог %_datadir/themes/<theme_name>/gtk-2.0 и его содержимое

  4. Metacity theme: каталог %_datadir/themes/<theme_name>/metacity-* и его содержимое
  5. Icon theme: каталог %_iconsdir/<theme_name> и его содержимое
  6. GNOME theme: файл %_datadir/themes/<theme_name>/index.theme

Разбиение сущностей по пакетам

Этот раздел касается упаковки сущностей по бинарным пакетам (.rpm), а не по исходным (.src.rpm). Упаковка сущностей по исходным пакетам может быть произвольной. Помимо очевидного разбиения «пакет на сущность» рекомендуются к использованию следующие варианты:

  • Bundled GTK+2 theme: GTK+ engine вместе с GTK+2 theme
  • Bundled GNOME theme: Metacity theme вместе с GNOME theme

Не рекомендуется, но допускается в силу имеющейся практики:

  • (Bundled) GTK+1/2 theme: GTK+1 theme вместе с GTK+2 theme и, опционально, GTK+ engine
  • (Bundled) GTK+/GNOME theme: GTK+2 theme вместе с GNOME theme и, опционально, Metacity theme

Не допускается:

  • KDE/XFCE/GTK+/GNOME theme, т.е. любая из тем GTK+ или GNOME, упакованная вместе с темами для других графических сред: такая упаковка делает невозможной простановку зависимостей на компоненты среды и с большой вероятностью приводит к установке ненужных пользователю файлов.
  • Любая сущность вместе с Icon theme: Icon theme может использоваться с любой средой, поддерживающей спецификации freedesktop.org, и не связана ни с какой графической библиотекой.
  • Другие сочетания, пересекающие границу между GTK+ и GNOME (например, GTK+ engine вместе с GNOME theme).

Каталог %_datadir/themes/<theme_name> может независимо использоваться любой из трёх сущностей: GTK+1 theme, GTK+2 theme и Metacity theme, поэтому должен упаковываться вместе с каждой из них. Возможны исключения, но должно выдерживаться общее правило: при любом сочетании (с учётом зависимостей) установленных пакетов каталог должен принадлежать хотя бы одному пакету.

Именование пакетов

Общее правило: рекомендуется называть пакеты полностью в нижнем регистре, разделяя слова дефисами. Префиксы в единственном числе используются при упаковке одной сущности одного типа (напр., GTK+ theme), во множественном — при упаковке нескольких сущностей одного типа. Примеры: gnome-theme-long-name, libgtk-engines-default.

Пакеты различных типов должны иметь следующие префиксы в названиях:

  • GTK+ engine — libgtk-engine-;
  • GTK+1 theme — gtk1-theme-;
  • GTK+2 theme, Bundled GTK+2 theme — gtk2-theme-;
  • GTK+1/2 theme — gtk-theme-;
  • Metacity theme — metacity-theme-;
  • Icon theme — icon-theme- (не gnome-icon-theme, поскольку те же темы можно использовать не только в GNOME, см. выше);
  • GNOME theme, Bundled GNOME theme, (Bundled) GTK+/GNOME theme — gnome-theme-;

Зависимости пакетов

Общие правила:

  1. Рекомендуется указанные ниже Requires-зависимости всегда указывать. В некоторых случаях указанные зависимости могут этим же пакетом и предоставляться, тогда разрешается опускать Requires-зависимость.
  2. Указанные зависимости всегда должны корректно разрешаться apt'ом. Из этого следует, в частности, что если пакет, содержащий указанную сущность, не предоставляет требующиеся ей зависимости, он должен сам требовать их.

В соответствии с типом попадающих в пакет сущностей, должны быть проставлены следующие зависимости:

  • GTK+ engine: Requires: libgtk+2 (проставляется автоматически как зависимость на соответствующую библиотеку в пакете; явным образом проставлять ничего не нужно);
  • GTK+1 theme: Requires: gtk+;
  • GTK+2 theme: Requires: libgtk-engine-<name> (возможно, не один; требуемые engines берутся из файла gtk-2.0/gtkrc поиском слова engine);
  • Metacity theme: Requires: metacity (не metacity-gnome и не libmetacity), Provides: metacity-theme;
  • Icon theme не имеет специальных зависимостей;
  • GNOME theme: Requires: libgnome (не gnome-control-center);

Bundled темы должны содержать Provides тех компонент, которые в себя включают. Например, если в gnome-theme-myprecious содержится тема для Metacity, в этом пакете должны быть: Provides: metacity-theme-myprecious metacity-theme и Requires: metacity libgnome

При упаковке нескольких сущностей в один пакет зависимости объединяются.