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.