[sisyphus] XawTV4
Slava Semushin
php-coder на ngs.ru
Пт Июл 28 09:06:22 MSD 2006
--- Хихин Руслан 2006-07-28 02:01:07 +0400
+++ Vyacheslav Semushin 2006-07-28 11:22:08 +0700
Позволю себе дать немного советов Вам. Вы вправе ими пренебречь :)
[skip]
ХР> 4 Хотелось-бы убрать из проги все Working-и в компиляции и трансляции -
ХР> обычно это скрытые ошибки.
Верной дорогой идёте! ;0)
ХР> 5 При упаковке пакетов идут сообщения об ненайденных функциях, правда
ХР> Working, а не Error, поэтому пакет собирается. С ними надо то-же
ХР> разобраться.
s/Working/Warning/, насколько понимаю :)
Обычно такие предупреждения достаточно легко фиксить -- достаточно
найти в каком заголовочном файле определена требуемая ф-ция и
подключить этот файл.
Ну и тпро спек:
ХР> %define dirlist app-defaults ru_RU.UTF-8/app-defaults ru_RU.CP1251/app-defaults ru_RU.KOI8-R/app-defaults
Все строчки, где используется этот макрос закоментированны => макрос
тоже можно закомментировать или вовсе удалить. В любом случае, не
стОило его вставлять в самое начало спека IMHO.
ХР> %define dateversion 20060615
Этот макрос используется ещё два раза на следующих пяти строчках. Я
думаю, что можно обойтись без него.
ХР> %define nomer 161048
s/nomer/number/ -- лучше использовать английские слова, а не транслит.
ХР> Release: alto
после alt должен следовать номер, к примеру, alt0
ХР> Prefix: %dateversion
Prefix AFAIK используется для указания корня при установке файлов из
пакета, у вас же он почему-то определён как число. В ALT Linux Prefix
вообще не принято использовать. Вообщем, эту строку можно удалить.
ХР> Source3: %name-32.png
ХР> Source4: %name-16.png
ХР> Source5: %name-48.png
Во Fluxbox все иконки упакованы в один тарболл. Мне кажется, так более
удобно.
ХР> Requires: common-licenses
IMHO это лишняя зависимость, потому что common-license всегда
присутствует в системе.
ХР> %package vdr
ХР> Summary: A X11 VDR frontend
ХР> Summary(ru_RU.UTF-8): X11 п╬п╠п╬п╩п╬я┤п╨п╟ п╢п╩я▐ VDR
ХР> Group: Video
ХР> Requires: libs%name = %version
ХР> Requires: %name-common = %version
ХР> Requires: %name = %version
ХР> Requires: vdr %origname
В последней строке не vdr-%origname должно ли быть?
ХР> %description -n xawtv
ХР> Xawtv is a Video4Linux Stream Capture Viewer, that is a X11 program for
ХР> watching TV.
[skip]
ХР> pushd gtk
ХР> mv xawtv.c xawtv4.c
ХР> mv mtt.c mtt4.c
ХР> mv pia.c pia4.c
ХР> popd
Я бы в цикле это сделал %)
pushd gtk
for file in xawtv.c mtt.c pia.c; do
mv $file ${file/.c/4.c}
dine
popd
ХР> CFLAGS="$RPM_OPT_FLAGS" \
use %optflags macros
Хотя лучше не передавать configure флаги вообще, т.к. если в этих
фалагах встретиться -Werror, то очень многие тесты configure-скрипта
обломятся и выдадут ошибку.
ХР> %make_build %add_optflags %optflags_shared
Эм.. это какая-то вообще странная конструкция и кажется не должна так
использоваться. Я лично вообще не использую макрос %add_optflags, а
передаю флаги прямо make'у следующим образом:
%make_build CFLAGS="%optflags" (для программ на Си)
%make_build CXXFLAGS="%optflags" (для программ на Си++)
ХР> %make_install DESTDIR=%buildroot \
ХР> ROOT=%buildroot \
ХР> SUID_ROOT="" install
Не уверен, т.к. не видел вашу программу, но точно ли нужны ROOT и
SUID_ROOT ?
ХР> find %buildroot -type f -print \
ХР> | sed -e 's|%buildroot||' \
ХР> | grep -v -e %_docdir \
ХР> | grep -v -e bin/v4l-conf \
ХР> > filelist
ХР> cat filelist
Судя по cat, это используется для отладки? Вообще, можно обернуть все
отладочные макросы/дейтвия и потом включать/выключать их по
%def_{enable,disable}.
Несколько идей:
- ключик -e для grep нужен при использовании регулярных выражений и
здесь IMHO избыточен
- макроса %docdir не существует, используется %_defaultdocdir
- два грепа можно объединить вместе:
egrep -v 'bin/v4l-conf|%_defaultdocdir'
- зачем сохранять в файл, если далее вы этот файл всё равно выводите
на stdout? Если файл более нигде не используется, то можно обойтись
без него :)
ХР> # Menu entries
ХР> %__install -d %buildroot%_miconsdir
ХР> %__install -d %buildroot%_liconsdir
ХР>
ХР> %__install -m 644 %SOURCE3 %buildroot%_niconsdir/motv.png
ХР> %__install -m 644 %SOURCE4 %buildroot%_liconsdir/motv.png
ХР> %__install -m 644 %SOURCE5 %buildroot%_miconsdir/motv.png
- можно использовать install вместо %__install
- можно использовать install -pD -m вместо install -d && install -m
ХР> %__install -d %buildroot%_menudir
ХР> cat > %buildroot%_menudir/xawtv4 <<EOF
ХР> ?package(xawtv): command="XawTV" icon="%name.png" section="Multimedia/Video" \
ХР> title="XawTV" longtitle="The X11 Video4Linux Stream Capture Viewer" \
ХР> needs="x11"
ХР> EOF
Я обычно .menu-файла прекрепляю отдельно, чтобы сделать спек более
компактным и читабельным.
ХР> mkdir -p %buildroot{%_iconsdir/{large,mini},%_menudir}
ХР> install -m 644 %SOURCE3 %buildroot%_iconsdir/
ХР> install -m 644 %SOURCE4 %buildroot%_miconsdir/%name.png
ХР> install -m 644 %SOURCE5 %buildroot%_liconsdir/%name.png
Не понял. Вы что одни и те же SOURCE пр два раза устанавливаете? Ага..
но с разными именами, да? В таком случае, я бы лучше сделать симлинки
вместо реальных файлов для экономии места на жестком диске ;)
ХР> cp %SOURCE1 .|| true
Лучше использовать install вместо cp, чтобы не было проблем с правами
на файлы.
ХР> %files -n libs%name
ХР> %dir %_libdir/%name
ХР> %_libdir/%name/*
У вас тут библиотека, а вызвать ldconfig вы не забыли? (см. макросы
%post_ldconfig/%postun_ldconfig)
ХР> %files common -f %origname.lang
ХР> %attr(4711,root,root) %_bindir/v4l-conf
Какие-то странные права. Почему группе и остальным только на запуск?
ХР> %_bindir/rootv
ХР> %_bindir/scantv
ХР> %_bindir/subtitles
ХР> %_bindir/v4l-info
ХР> %_bindir/record
ХР> %_bindir/mtt4
ХР> %dir %_mandir/
ХР> %_mandir/*
Не надо так делать. Теперь /usr/share/man и некоторые вложенные
подкаталоги принадлежат вашему пакету. Используйте макросы %_manXdir,
где X -- номер секции.
ХР> %dir %_datadir/xawtv
ХР> %_datadir/xawtv/*
Можно просто %_datadir/xawtv/
ХР> %_iconsdir/*
Тот же случай, что и с %_mandir. Используйте макрос %_liconsdir,
%_niconsdir и %_miconsdir.
ХР> %_mandir/man1/alevtd.1*
ХР> %_mandir/man1/webcam.1*
%_man1dir/alevtd.1.*
%_man1dir/webcam.1.*
ХР> %changelog
ХР> * Thu Jul 27 2006 Hihin Ruslan <hihin_c на t_narod_dot_ru> 4.0-alto
ХР> - new version
ХР> - add or reaire patchs :
ХР> - xawtv4-4.0-as-need.patch - fix dlopen
ХР> - xawtv4-4.0-gtkadd.patch - fix two xawtv
ХР> - xawtv4-4.0-fbtv-fix.patch - fix fbtv (no all fix)
ХР> - xawtv4-4.0-gcc4.patch - correct from Suse
ХР> xawtv4-3.999_0.20051018-0.pm.0.src.rpm
ХР> - xawtv4-4.0-aalib-fix.patch - delete aalib (bad upstream)
ХР> - xawtv4-4.0-libquictime-fix.patch - add patch for qt-pugins (Fix Mi :) )
ХР> - xawtv4-4.0-defwintitle.patch - correct from 3.95
ХР> - xawtv4-4.0-vdr.patch - correct from 3.95 + my patch (Fix Mi :) )
ХР> - xawtv4-4.0-russian.patch - correct from 3.95
ХР> - xawtv4-4.0-vdr-russian.patch - correct from 3.95
ХР>
s/reaire/require/
s/Mi/me/
Советую также ознакомиться с документом
http://wiki.sisyphus.ru/devel/TypicalPackagingErrors/changelog
Руслан, спасибо за вашу работу и помощь! Ждём в Team ;-)
--
+ Slava Semushin | php-coder @ ngs.ru
+ ALT Linux Team | php-coder @ altlinux.ru
+ Expand QA Team | vsemushin @ swsoft.com
Подробная информация о списке рассылки Sisyphus