Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Przy pracach nad Hagiem potrzebuję zrobić kilka pakietów w bardziej profesjonalny sposób. Mam jednak przy tym kilka wątpliwości, których [i]Podręcznik dla nowych opiekunów pakietów[/i] nie rozwiał. Jest na DUG-u kilku opiekunów, a może nawet jakiś deweloper, może ktoś mi pomoże. :)
Na początek takie pytanie: czy format daty w changelogu jest ściśle określony? Czy musi to być koniecznie np.:
Sun, 04 Nov 2007 00:12:56 +0100
czy może być standardowy format date'a, np.:
Fri Jun 20 11:05:34 CEST 2008
?
Offline
Nie jestem opiekunem ani deweloperem ;p ale z tego co wiem format daty w changelogu jest ściśle określony, tylko nie pamiętam jaki.
Offline
To ja się podłączę z prostszym pytaniem.
Mam aplikację do obsługi kamerki internetowej, wymaga ona dirac. Spakietowałem sobie dirac, ale chciałbym z niego zrobić trzy oddzielne pakiety: dirac-bin libdirac0 i libdirac-dev, dirac-doc
dirac-bin :
/usr/bin/dirac_instrumentation /usr/bin/dirac_encoder /usr/bin/UYVYtoYUV422 /usr/bin/create_dirac_testfile.pl /usr/bin/UYVYtoRGB /usr/bin/YUV420toYUV422 /usr/bin/RGBtoYUV422 /usr/bin/RGBtoBMP /usr/bin/YUV444toRGB /usr/bin/RGBtoYUV444 /usr/bin/YUV411toRGB /usr/bin/dirac_decoder /usr/bin/BMPtoRGB /usr/bin/YUV422toYUV420 /usr/bin/RGBtoUYVY /usr/bin/YUV422toRGB /usr/bin/YUV422toUYVY /usr/bin/RGBtoYUV420 /usr/bin/YUV420toRGB /usr/bin/RGBtoYUV411
libdirac0
/usr/lib/libdirac_encoder.so.0 /usr/lib/libdirac_encoder.so.0.0.0 /usr/lib/libdirac_decoder.so.0 /usr/lib/libdirac_decoder.so.0.0.0
libdirac-dev
/usr/include/dirac/libdirac_encoder /usr/include/dirac/libdirac_encoder/dirac_encoder.h /usr/include/dirac/libdirac_decoder /usr/include/dirac/libdirac_decoder/decoder_types.h /usr/include/dirac/libdirac_decoder/dirac_parser.h /usr/include/dirac/libdirac_common /usr/include/dirac/libdirac_common/common_types.h /usr/include/dirac/libdirac_common/dirac-stdint.h /usr/include/dirac/libdirac_common/dirac_inttypes.h /usr/include/dirac/libdirac_common/dirac_types.h /usr/lib/libdirac_decoder.a /usr/lib/pkgconfig /usr/lib/pkgconfig/dirac.pc /usr/lib/libdirac_decoder.la /usr/lib/libdirac_encoder.la /usr/lib/libdirac_encoder.a /usr/lib/libdirac_decoder.la
dirac-doc wsio w dokumentacji
I problem:
Nie potrafię rozdzielić dirac na te pakiety. Modyfikacja libdirac0.install nie działa. Powstają tylko puste pliki .deb libdirac0 ma tylko katalog /usr/share/.
Offline
harry666t: dzięki. Format jest taki, jak w pierwszym przykładzie. To będę musiał sobie podrasować [tt]date[/tt] w skrypcie...
AgayKhan: pokaż plik [tt]rules[/tt]. (Niecne podłączanie się do mojego wątku przemilczę :P)
Ostatnio edytowany przez azhag (2008-06-20 11:59:38)
Offline
opiekunem nie jestem, ale przypomne ze jest narzedzie do zarzadzania changelogiem - [tt]debchange[/tt] ... moze sie przyda ...
Ostatnio edytowany przez bercik (2008-06-20 12:09:12)
Offline
Niestety nie tym razem, chcę dopiero changelog utworzyć (a z pewnych względów nie chcę tego robić za pomocą [tt]dh_make[/tt]).
Ale dzięki, przyda się na przyszłość.
PS. Zanim ktoś następny napisze "wprawdzie nie jestem opiekunem/dewelopere", powiedzmy że miałem na myśli kogoś, kto się zna na budowaniu "profesjonalnych" pakietów. ;)
Offline
Dobra, już mniej więcej wiem, gdzie był błąd.
dh_make robiło takie coś w rules
binary-arch: build install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples # dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_installinit # dh_installcron # dh_installinfo dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_python # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb
Po zmianie na
binary-arch: build install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_installinit # dh_installcron # dh_installinfo dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_python dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb
działa.
Opcja instalacji była wywalona z rules, dlatego nie instalowało.
Dzięki azhag, jesteś wielki.
Przepakietowałem sobie ffmpeg z obsługo dirac i wykrywa jako zależnośc libdirac0. Super.
Ostatnio edytowany przez AgayKhan (2008-06-20 13:05:07)
Offline
[quote=azhag]PS. Zanim ktoś następny napisze "wprawdzie nie jestem opiekunem/deweloperem"(...)[/quote]
Czytujesz slashdota? (: tam połowa postów w dziale "your rights online" zaczyna się od "IANAL, but..." :P
Offline
Patryk -> Prezu jest opiekunem
Offline
Następne pytanie tyczy się pola [tt]Replaces[/tt] w pliku [tt]control[/tt]. Wg wymienionego w pierwszym poście podręcznika pliki z pakietu "zastępującego" nadpiszą pliki "zastępowanego". Jasna sprawa.
Co jednak, jeśli odwrócimy kolejność instalacji? Pakiet "zastępujący" jest już zaisntalowany, do niego chcemy doinstalować "zastępowany". Czy w takim wypadku konfliktujący plik z "zastępowanego" pozostanie nie zainstalowany? Logicznie rzecz ujmując tak będzie, ale wolę się upewnić, zanim się natyram na darmo.
PS. Jeszcze takie głupie pytanie — czy można zakomentować linię w [tt]control[/tt] lub innych (poza [tt]rules[/tt] ;]) debianowych plikach?
—
kurcze, nic nie było jak zaczynałem pisać, a teraz nagle 3 posty :)
[quote=harry666t][quote=azhag]PS. Zanim ktoś następny napisze "wprawdzie nie jestem opiekunem/deweloperem"(...)[/quote]
Czytujesz slashdota? (: tam połowa postów w dziale "your rights online" zaczyna się od "IANAL, but..." :P[/quote]
nie czytuję :)
co znaczy AL?
[quote=Bodzio]Patryk -> Prezu jest opiekunem[/quote]
wiem, ale nie chciałem zgłaszać nikogo na ochotnika ;)
[quote=AgayKhan]qnapi i kadu ?[/quote]
[url=http://qa.debian.org/developer.php?login=patryk%40prezu.one.pl]nie tylko[/url] :) (nie ma to jak prywatność :P)
Ostatnio edytowany przez azhag (2008-06-20 21:20:53)
Offline
azhag:
http://en.wikipedia.org/wiki/IANAL
Offline
A ja sie pochwalę, iż w debian-multimedia pojawił sie dirac, prawie identycznie spakowany jak mój. Tylko zamiast dirac-bin jest dirac.
Offline
Wcześniej nie widziałem tego wątku, dlatego nie pisałem nic.
Azhag, w changelog'u data ma być w formacie zdefiniowanym w RFC822 -- czyli takim, jaki zwraca:
$ date -R
Jeśli używasz Sida, to zainstaluj paczkę debian-policy. Jeśli testing, lub stable, to wejdź na http://debian.org/devel i tam masz Debian Policy (Zasady Polityki Debiana jak to przetłumaczono :). O formatach wszystkich plików esencjonalnych dla paczki źródłowej tam wszystko znajdziesz. Np. o formacie daty jest mowa w punkcie "4.4 Debian changelog: debian/changelog".
Co do komentarzy w debian/control, to nie wolno. Ale w debian/rules jak najbardziej -- ten plik to zwykły plik z regułami dla make'a, więc obowiązują dokładnie te same zasady co dla Makefile'i.
W pozostałych plikach, jak na przykład debian/pakiet.install, debian/pakiet.postrm itd, to zależy. Np. ten drugi (postrm/prerm/postinst itd) to zwykłe skrypty powłoki. Ale .install to już plik dla jednego z narzędzi debhelpera (w tym przypadku dh_install -- korzystanie z narzędzi debhelpera jest oczywiście opcjonalne -- można robić sobie na piechotę to co za nas robią dh_*, ale widzę w powyższych przykładach, że lubicie dh_*, ja z resztą też :). Co do formatu plików dla debhelpera, to trzeba poczytać manuale dla poszczególnych dh_whatever -- ja też nie znam ich wszystkich na pamięć i zaglądam do mana od czasu do czasu. Zwróć uwagę, że pliki .install jest plikiem dla dh_install, który jest opcjonalnym narzędziem. Nie jest to plik esencjonalny dla paczki źródłowej, dlatego jego dokumentacji szukasz nie w Debian Policy, tylko dokumentacji debhelpera (tu konkretnie dh_install(1)).
Jak by się zdarzyło pytanie do mnie, a bym nie odpowiadał (może mi umknąć post), to szturchnięcie na PMa proszę. :)
Offline
[quote=Prezu]Azhag, w changelog'u data ma być w formacie zdefiniowanym w RFC822 — czyli takim, jaki zwraca:
$ date -R
[/quote]
lol, a ja wyskrobałem jakiegoś potwora:
LC_ALL=en_EN date +"%a, %d %b %Y %T %z"
:D
Dzięki wielkie, cenne informacje. O zajrzeniu do Debian Policy nawet nie pomyślałem. :)
Jakbym miał jakieś pytania jeszcze, nie omieszkam Cię zmolestować przez PM. :)
Offline
Spoko. :)
Jeszcze apropos changelog'a — zainstaluj sobie pakiet devscripts. Jest tam m. in. tulik dch. Służy on do zarządzania chagnelog'iem właśnie. W katalogu ze źródłami paczki, gdy dodajesz wpis dla nowej wersji upstreamowej:
$ dch -v nowa_wersja
Lub jeśli puszczasz nową rewizję tej samej wersji:
$ dch -i
Jak widzisz, sam tworzy nowe wpisy. :) Jeśli chcesz np. tylko uaktualnić datę do ostatniego wpisu (bo ostatnią modyfikację zrobiłeś np. kilka dni temu) to
$ dch -e
To służy do edycji ostatniego wpisu, ale przy okazji "odświeża" datę.
Zmienną środowiskową EDITOR wybierasz edytor. Jeśli EDITOR nie jest ustawiony, to użyty zostanie skrypt /usr/bin/sensible-editor do wyboru edytora.
[b]EDIT:[/b] Aha, ustaw sobie jeszcze mienną DEBEMAIL (najlepiej w .bashrc, czy co tam używasz), bo inaczej dch nie będzie wiedział jakie imię, nazwisko, email wpisać. Szczegóły w dch(1).
Ostatnio edytowany przez Prezu (2008-07-09 10:15:02)
Offline
A jak to jest z nazwami pakietów? Który z wymienionych jest nowszy: [tt]pakiet_0.1[/tt] czy [tt]pakiet_0.1-0dev1337[/tt]?
Czy taki ([tt]0.1[/tt], bez sufiksu) schemat nazywania finalnych wersji pakietów przejdzie, czy muszę im nadawać wersję [tt]0.1-1[/tt]?
Edit: głupie pytanie, oczywiscie, że muszę dać [tt]0.1-1[/tt]...
Ostatnio edytowany przez azhag (2008-07-13 17:02:29)
Offline
To co jest po "-" to rewizja debianowa. Ma ona najmniejsze znaczenie w wersji paczki dla apta. Jeśli jej nie ma, to tak jak by była równa 0. Czyli 0.1 to tak na prawdę 0.1-0, a to znaczy, że 0.1 jest starsze niż 0.1-0dev1337. Można nie dać wcale rewizji debianowej, ale zalecane jest jej dodanie zaczynając zawsze od 1. Normalnie to powinny być kolejne liczby naturalne. Ale w niektórych wypadkach jest inaczej, np. NMU (Non Maintainer Upload), czy poprawki bezpieczeństwa dla stable.
Wszystkie pola wersji paczki debianowej i ich wzajemnej relacji jest w policy w punkcie 5.6.12. Warto przyjrzeć się np. znaczeniu tyldy ("~") w wersji. :) Przydaje się release candidate'ach, czy betach. Sam w Kadu wykorzystywałem.
Ostatnio edytowany przez Prezu (2008-07-14 14:39:58)
Offline
O, jak zwykle wielkie dzięki. Muszę się wreszcie wczytać w Policy. :)
PS. Tak trochę a propos wersji, ostatnio jeden z DD pokpiwał z wersji pakietów w Ubuntu:
matt@krypton:~$ dpkg -s flashplugin-nonfree | grep Version Version: 10.0.1.218+10.0.0.525ubuntu1~hardy1+really9.0.124.0ubuntu2
to jest dopiero wersja. ;)
Ostatnio edytowany przez azhag (2008-07-14 15:15:24)
Offline
hehehehe pewnie nawet opiekun tego nie ogarnia po kilku tygodniach od ostatniego uploadu... :D
Offline
Jak najłatwiej wymusić nadpisanie chronionego pliku innego pakietu ([tt]conffiles[/tt])? Pole [tt]Replaces[/tt] z control wydaje się nie mieć "wystarczającej mocy".
Pewnie da się przez stosowny skrypt w [tt]postinst[/tt], ale może istnieje mniej barbarzyńska metoda.
Offline
na razie udało mi się ustalić, że powinienem się dpkg-divert zainteresować
ale jego obsłuiga jeszcze jest dla mnie tajemnicą :)
Offline
Osobiście tego nie przerobiłem. :] Mogę tylko się domyślać. Anyway, jeśli jeszcze nie rozwiązałeś tego problemu to zagadaj do mnie na jabbera.
Offline
Już to przerobiłem — problem leżał w tym miejscu, że ów plik już raz był dywersyfikowany, kolejna próba dywersyfikacji wywalała błąd.
Kombinowałem z napisaniem reguły dla [tt]dpkg-divert[/tt], która najpierw usuwa starą dywersyfikację i dopiero tworzy nową, ale dałem za wygraną po nastej próbie.
Ostatecznie uznałem, że patchowanie felernego pakietu będzie prostszym rozwiązaniem. :)
Ostatnio edytowany przez azhag (2008-08-19 16:14:34)
Offline
Zna ktoś jakiś dokument dotyczący alternatyw w Debianie? [tt]update-alternatives(8)[/tt] nie w pełni mnie usatysfakcjonował. W Debian Policy, Debian Reference, Debian Developer's Reference i Debian New Maintainers' Guide właściwie nic nie znalazłem.
Najbardziej interesuje mnie zasada nadawania priorytetów. Ich zakres, metodologia nadawania, znaczenie (co np. znaczy ujemny priorytet?). Innymi informacjami też bym nie pogardził :)
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00108 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.191.165.192' WHERE u.id=1 |
0.00089 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.165.192', 1732759978) |
0.00055 | SELECT * FROM punbb_online WHERE logged<1732759678 |
0.00069 | SELECT topic_id FROM punbb_posts WHERE id=94532 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=11682 ORDER BY posted |
0.00060 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=11682 AND t.moved_to IS NULL |
0.00011 | SELECT search_for, replace_with FROM punbb_censoring |
0.00360 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=11682 ORDER BY p.id LIMIT 0,25 |
0.00086 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=11682 |
Total query time: 0.00855 s |