[devel] gtk engines smooth

Alexey Morozov =?iso-8859-1?q?alex-altlinux_=CE=C1_idisys=2Eiae=2Ensk=2Esu?=
Вт Сен 7 15:07:23 MSD 2004


On Tue, Sep 07, 2004 at 12:31:10AM +0400, Вячеслав Диконов wrote:
> > В один и тот же пакет темы для разных версий GTK? 
> > Движок (engine) того же smooth'а потянет за собой GTK соответствующей
> > версии, что, вообще-то, нежелательно. 
> Именно. Над этим я думал три дня и ничего лучшего не выдумал. Все
> остальные варианты оказываются сложнее для упаковки и установки.
Тогда я против.
GTK+-1.x вообще-то доживает последние месяцы.

> Вот они:
> 1) gtk-themes-* в котором все библиотеки и gtkrc файлы тем
> для gtk1 и gtk2. Недостаток - двойная зависимость. Достоинство -
> простота установки и гарантированная синхронность переключения.
Вы путаете gtk-themes и gtk-engines.

Темы могут не зависеть от наличия libgtk+....so.X.Y.Z. Движки (engines)
_линкуются_ с ними, поэтому, если вы не намерены нарушать неприличным
образом процесс автоматического поиска зависимостей, то, GTK+-1 в
систему попадет.

С другой стороны, зависимость gtk-themes -> обе версии gtk-engines
приводит к появлению непрямой зависимости на GTK обеих версий.

> Сборка gtk1 части тем может быть отключена 1 переменной в spec. Я также
> думаю над возможностью искусственно отключить зависимоcти таких пакетов
> от gtk (Autoreq = 0) или заставить оба gtk предоставлять общее
> одинаковое имя и требовать уже его.
См. выше о природе этих зависимостей. Это _правильные_ зависимости. Без
них ничего работать не будет.

> 2) gtk1-themes-* + gtk2-themes-* Для установки темы для всей рабочей
> среды нужны _оба_ пакета и поэтому gnome-themes-* требует их вместе. Это
> значит, что двойная зависимость никуда не делась! Чтобы избавиться от
> нее нужны условные зависимости типа "ЕСЛИ УСТАНОВЛЕН GTK1, ТО
> ВИРТУАЛЬНЫЙ ПАКЕТ Х ТРЕБУЕТ ПАКЕТ Y, А В ПРОТИВНОМ СЛУЧАЕ - НЕ ТРЕБУЕТ"
> Я не согласен отказаться от зависимости на все темы в вершинных пакетах
> типа gnome-themes или kde-themes, потому что это лишает смысла такие
> пакеты и всю затею.
Ну, может, и ладно? :-) А если серьезно, то GNOME нынче уже весь GTK+-2
Реально осталось в пределах десятка приложений, которые вообще могут
потребовать GTK+1, да и то, прогресс по искоренению таких приложений
идет семимильными шагами.

> 3) gtk-engine-* + gtk-themes или gtk1/2-engine-* + gtk1/2-themes -
> CСчитаю это напрасным умножением пакетов так как с точки зрения
> пользователя устанавливающего темы существование engines - лишняя
> головная боль.
? Это способ отделить "код" от "хужожеств", поскольку это вполне
параллельно развивающиеся сущности. Не поймите меня превратно, но
мне кажется у тем и движков совершенно разный жизненный цикл.

> Все модули прорисовки имеют в комплекте как минимум 1
> стандартную тему. Дополнительных тем может быть много из других
> источников. Проще всего оказывается свалить всю гору исходных пакетов в
> общем srpm и на выходе получать один пакет, где все лежит по
> полочкам. Spec получается несложный (исключение - smooth, потому что
> какой-то мудрец додумался приделать automake к десятку файлов gtkrc) 
а почему нет? ;-) Это нормальный способ не думать о деталях установки
вообще. Промышленный.

> > Удобство переключения, это,
> > конечно, круто, но, во-первых, есть вопросы относительно того, всегда ли
> > такая синхронность нужна, 
> Она нужна до тех пор, пока в Сизифе есть gtk1. Поскольку он уходящее
> явление, то следует максимально упрощать всю сопутствующую
> инфраструктуру и не городить лишних пакетов. Собирать все с ним
> связанное я хочу в ifdef с возможностью легко отключить сборку.
Ну, вообще-то, я в smooth'е уже сделал этот самый ifdef :-)

А предлагать пользователю напоследок скачать GTK+-1.x из-за того, что
ему понравилась какая-нибудь смазливая темка для GTK+-2 - по-моему,
напрасная трата траффика. Даже не потому, что денег жалко, а непонятен
смысл такого действа.

> > а, во-вторых, породит вопли вида:
> > захотел поставить smooth, получил две версии библиотеки => зависимости в
> > ALT убитые.
> Я отчасти согласен, но это неверный вывод.
Да? Ну тогда объясните это всем тем, кто высказывает такое мнение на
форумах и прочих отстойниках общественного сознания.


> gtk1 сам по себе невелик на фоне всего, что неизбежно будет стоять в
> системе с графическим интерфейсом, и почти наверняка понадобится для
> вещей типа usbview или *drake.
У меня не стоит этих замечательных утилит. Я многое теряю?

> Кроме того, зависимость на gtk можно вообще убрать.
Нет. Смотри выше, почему.

> Пакеты icon-themes тоже можно поставить "в пустоту".
А вот зависимости библиотек, увы, нет. По крайней мере, если вы хотите
этими библиотеками пользоваться :-)


> > gtk-themes-smooth, который будет требовать gtk-engines-smooth и
> > gtk-themes-smooth обеих версий, то я не против.
> См. вариант 2. Можно и так, но тогда будет вместо одного толстого пакета
> орда мелких. Я как раз и хочу уменьшить этот эффект.
Почему не предоставить машине возможность выбирать всю мелочевку,
а человеку дать в руки "макроинструменты"?


> Идея в том, чтобы переключение темы оказывало единообразное действие на
> все установленные программы (или максимальное их число). С какой стати
Опс... Это значит, что мой любимый ксемакс из темно-серого на светло-сером
опять станет черным на ярко-белом? Увы, я не очень одобряю эту идею :-)


> пользователей, желающих просто сделать сменить надоевшее оформление,
> должны волновать различия версий gtk и вообще существование разных
> библиотек? В форточках интерфейс тоже не только на MFC бывает, но
> выглядит и управляется одинаково и это плюс, который следует перенять.
Как это связано с вопросами пакетизации?


> Хорошо. Это нужно сделать завтра, потому что за него цепляется целый
> паровозик.
Хех... Спешность хороша только при ловле блох. Да и то не всегда :-)

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20040907/def2fdfb/attachment-0001.bin>


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