[devel] RPM: icons

Ivan Zakharyaschev =?iso-8859-1?q?vanyaz_=CE=C1_mccme=2Eru?=
Пт Ноя 24 21:29:52 MSK 2000


Вот еще ряд небольших проблем:

В преамбуле пакета указывается файл-иконка, соответсвующая этому пакету:

Icon: ...

Сам файл ищется в SOURCES. И он рассматривается как имеющий тот же статус,
что файлы, заданные в Source: или Patch: -- без него не совершаются многие
операции с пакетом.

Можно было бы разрешить говорить NoIcon по аналогии с NoSource и NoPatch
(можно еще много чего напридумывать с иконками, но не стоит: это не так
важно). NoIcon был бы удобен при работе с rpm --rmsource: например, есть
два spec-файла -- один оригинальный, другой с добавленными патчами. Во
втором все остальные исходники объявлены в No{Source,Patch}. Теперь, если
закрыть глаза на иконку, после rpm --rmsource <2nd spec> можно работать с
первым оригинальным (все, что было в No*: не было удалено). С иконкой же
хуже: если она задана в обоих spec-файлах, то выполнение rpm --rmsource
на одном из них вызовет удаление файла с иконкой и сделает невозможной
работу с другим spec-файлом. Исключение иконки из преамбулы spec-файла --
неправильное решение, т.к. иконка -- атрибут пакета.


Другое предложение: Mandrake'овские пакеты обычно включают несколько
иконок (уже не тех, что объявляются в Icon). И они, наверное, много где
устанавливаются таким образом:

%install

install -m 644 -D %{SOURCE5} $RPM_BUILD_ROOT%{_miconsdir}/%{name}.xpm
install -m 644 -D %{SOURCE6} $RPM_BUILD_ROOT%{_iconsdir}/%{name}.xpm
install -m 644 -D %{SOURCE7} $RPM_BUILD_ROOT%{_liconsdir}/%{name}.xpm

Почему бы не обозначить это действие макросом:

%install_icons 6 -m 5 -l 7

Можно было бы выделить отдельный тип исходных данных для иконок наравне с
Source и Patch и объявлять их в преамбуле так:

# RPM standard icon
Icon: ...

# Mandrake icons (mini, large etc.):
Icon1:...
Icon2:...

Ввести тэг NoIcon с арнументами-номерами.


Кстати: можно ли в одном тэге NoSource указывать несколько номеров,
задавать промежутки вида 0-8? (А вообще, система с номерами мне кажется
неудобной: можно было бы делать что-нибудь типа "enum { NameOne, NameTwo};"
для имен исходников, а потом объявлять файлы для них уже как
SourceNameOne, ...; я думаю, что макроопределение, соответсвующее по
эффекту enum, можно было бы написать на существующем макроязыке RPM).


Можно было бы также ввести тэги Doc и NoDoc для указания исходных файлов
с дополнительной документацией. Номера этих Doc'ов можно использовать для
работы с ними (в специальных разделах spec-файла, описанных в другом
письме). Принципиальное отличие иконок и документации от многих остальных
данных, указываемых в Source и Patch, в том, что они не нужны для
компиляции программы и что они даже имеют большее отношение к пакету как
таковому, а не к самой программе (особенно иконки). Не уверен, что это
правильное направление: мало ли какой тип исходных данных еще можно
придумать? Например, конфигурационные файлы. И что: для каждого свой тэг?
Можно их всех просто поделить на две категории: нужные для компиляции
программы и прочие. (Тогда можно было бы исполнять стадию %build, не
жалуясь на то, что нет чего-то из Прочего.)

-- 
Best regards,
      Ivan Z.


_______________________________________________
Devel mailing list
Devel на linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel



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