[devel] Re: buildreq

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_binec=2Eru?=
Сб Май 24 02:48:06 MSD 2003


On Thu, May 22, 2003 at 05:32:38PM +0400, Dmitry V. Levin wrote:
> > > > Почему именно так? Не лучше ли:
> > > Кажется, лучше.
> > > Никто не против?
> > Надо бы какой-нибудь Package Naming Policy под это дело
> > подвести... На docs.altlinux.ru пусто ;-)
> Я принимаю пожелания в виде патчей к Sisyphus/doc/alt-packaging/.
Посмотрел-посмотрел в conventions.tex и что-то не получилось у
меня описать свою идею в соответствии с coding style. Может кто
здесь поможет? Хотя это даже наверно не идея, а описание того,
что сейчас есть в Sisyphus.

Библиотеки:
 а) начинаются с lib (libpng)
 б) содержат в своём имени lib (glibc, jamlib)
 в) имеют суффикс -libs (XFree86-libs)

1.
Stand-alone библиотеки могут быть только а) и б), все как обычно,
%name, %name-devel и %name-devel-static.
Примеры - jamlib, libffcall
Зависимости:
%name-devel: %name = %version-%release
%name-devel-static: %name-devel = %version-%release

2.
Пакеты (программы), содержащие в себе одну-две разделяемые
библиотеки разбиваются на %name, lib%name, %name-devel и
%name-devel-static (_НЕ_ lib%name-devel и lib%name-devel-static)
Примеры - ffmpeg, directfb.
( С другой стороны, xmms использует lib%name-devel )
Зависимости:
%name: lib%name = %version-%release
%name-devel: %name = %version-%release
%name-devel-static: %name-devel = %version-%release

3.
Библиотеки, содержащие некий набор утилит, разбиваются на %name
(в данном случае %name уже содержит "lib" - jamlib, libpng),
%name-devel, %name-devel-static и %name-utils.
Примеры - libjpeg, libdv.
Зависимости:
%name-devel: %name = %version-%release
%name-devel-static: %name-devel = %version-%release
%name-utils: %name = %version-%release

4.
Программы, содержащие большое количество разделяемых библиотек
разбиваются на %name, %name-libs, %name-devel и %name-static-libs.
Примеры - XFree86, quakeforge
Зависимости:
%name: %name-libs = %version-%release
%name-devel: %name = %version-%release
%name-static-libs: %name-devel = %version-%release

Учитывая всё это процесс "очистки" зависимостей должен выглядеть
следующим образом:

CLEAN_REQS=
for r in $REQS; do
    # Варианты 1. и 3.
    echo "$REQS" |grep -qs "^$r-devel" && continue ||:
    # Вариант 2.
    rs="${r#lib}"
    if [ "$rs" != "$r" ];then
        echo "$REQS" |grep -qs "^$rs-devel" && continue ||:
    fi
    # Вариант 4.
    rs="${r%-libs}"
    if ["$rs" != "$r" -a -n "${r#*-static-libs}" ];then
        echo "$REQS" |grep -qs "^$rs-devel" && continue ||:
    fi
    CLEAN_REQS="$CLEAN_REQS $r"
done

P.S. Спать надо если не больше, то регулярней... :-/ Это я про
себя.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20030524/2fed8b85/attachment-0001.bin>


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