piotreek23 Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 Witam wi?c tak pokusi?o mnie o napisanie spec file dla smplayera w wersji 0.5.0. Poniewa? nie ma paczek pod FC 7 zrobi?em swoje i z tego miejsca zapraszam do testowania (uwaga to moja pierwsza paczka !!) u mnie dzialaj? system wstaje %define name smplayer %define version 0.5.0 %define release rvm Name: %{name} Version: %{version} Release: 1%{?dist} Summary: A great front-end for MPlayer Group: Applications/Multimedia License: GPL URL: http://smplayer.sourceforge.net/ Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: qt-devel Requires: mplayer %description SMPlayer intends to be a complete front-end for MPlayer, from basic features like playing videos, DVDs, and VCDs to more advanced features like support for Mplayer filters and more. One of the main features is the ability to remember the state of a played file, so when you play it later it will resume at the same point and with the same settings. smplayer is developed with the Qt toolkit, so it's multi-platform. %prep %setup -q %build make %{?_smp_mflags} PREFIX=/usr %install rm -rf $RPM_BUILD_ROOT make %{?_smp_mflags} PREFIX=/usr DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) /usr/bin/smplayer /usr/share/applications/smplayer.desktop /usr/share/doc/packages/smplayer/Changelog /usr/share/doc/packages/smplayer/Configurable_shortcuts.txt /usr/share/doc/packages/smplayer/Copying.txt /usr/share/doc/packages/smplayer/Icon_themes.txt /usr/share/doc/packages/smplayer/Install.txt /usr/share/doc/packages/smplayer/Not_so_obvious_things.txt /usr/share/doc/packages/smplayer/Readme.txt /usr/share/doc/packages/smplayer/Release_notes.txt /usr/share/doc/packages/smplayer/Translations.txt /usr/share/icons/hicolor/16x16/apps/smplayer.png /usr/share/icons/hicolor/22x22/apps/smplayer.png /usr/share/icons/hicolor/32x32/apps/smplayer.png /usr/share/icons/hicolor/64x64/apps/smplayer.png /usr/share/smplayer/input.conf /usr/share/smplayer/shortcuts/default.keys /usr/share/smplayer/translations/smplayer_bg.qm /usr/share/smplayer/translations/smplayer_cs.qm /usr/share/smplayer/translations/smplayer_de.qm /usr/share/smplayer/translations/smplayer_en_US.qm /usr/share/smplayer/translations/smplayer_es.qm /usr/share/smplayer/translations/smplayer_fr.qm /usr/share/smplayer/translations/smplayer_hu.qm /usr/share/smplayer/translations/smplayer_it.qm /usr/share/smplayer/translations/smplayer_ja.qm /usr/share/smplayer/translations/smplayer_ka.qm /usr/share/smplayer/translations/smplayer_nl.qm /usr/share/smplayer/translations/smplayer_pl.qm /usr/share/smplayer/translations/smplayer_pt_BR.qm /usr/share/smplayer/translations/smplayer_ru_RU.qm /usr/share/smplayer/translations/smplayer_sk.qm /usr/share/smplayer/translations/smplayer_sr.qm /usr/share/smplayer/translations/smplayer_sv.qm /usr/share/smplayer/translations/smplayer_tr.qm /usr/share/smplayer/translations/smplayer_uk_UA.qm /usr/share/smplayer/translations/smplayer_zh_CN.qm /usr/share/smplayer/translations/smplayer_zh_TW.qm %changelog * Tue Jun 12 2007 Piotr Sabiniewicz <[email protected]> 0.5.0-1 - First Spec for Fedora 7 Teraz pliki przepraszam ze na megaupload ale musze jakie? konto za?o?y? to bed? na ftp Prosze o sugestie poprawki itp. http://rapidshare.com/files/36766580/smpla...7.i386.rpm.html http://rapidshare.com/files/36766581/smpla...7.i386.rpm.html Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Karlik Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 To może po kolei: nie testowałem paczki więc nie wiem jak z działaniem/przygotowaniem (nie widziałem źródeł) nie musisz robić define name, version etc (w Twoim przypadku), odpowiednie makra są zdefiniowane w preambule (przez Name: i Version: ) w Source0: powinieneś dać pełny url do źródeł (na stronie "producenta") Najbardziej boląca jest sekcja %files, używaj makr i globalnych znaków, to znacznie ułatwi Ci życie http://repo.dobremiasto.net/articles/kurs_...ow_rpm?longpage http://fedoraproject.org/wiki/Packaging/Guidelines Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 12, 2007 Autor Zgłoszenie Share Napisano Czerwiec 12, 2007 Dzieki poprawie na razie paczka działa więc nie zmieniam ale jak bede mial wiecej czasu to poćwicze. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 Najbardziej boląca jest sekcja %files Moim zdaniem ta sekcja to porażka na razie paczka działa Owszem - działa, ale próba usunięcia jej pozostawi po sobie wiele śmieci w systemie, a tego przecież chcemy uniknąć Umieść gdzieś SRPM-a to zrobię pełną recenzję. A jeśli chcesz mieć gdzie umieszczać to warto zainteresować sie serwerem http://nonlogic.org/. 2GB quoty są zadowalające Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 12, 2007 Autor Zgłoszenie Share Napisano Czerwiec 12, 2007 Tylko mi powiedzcie jak wygenerowac src.rpm bo do tego nie doszedlem. 2)Dlaczego zasmieci?? przeciez pliki ktore sa w %files istnieja i je usunie. BTW prosze nie bi? ja naprawde jestem newbie w paczkowaniu. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 Tylko mi powiedzcie jak wygenerowac src.rpm bo do tego nie doszedlem. rpmbuild -bs <abc>.spec 2)Dlaczego zasmieci?? przeciez pliki ktore sa w %files istnieja i je usunie. Owszem usunie pliki, ale zostaną katalogi. To znaczy, że cała zawartość katalogu /usr/share/smplayer zostanie wywalona, ale sam katalog się ostanie. BTW prosze nie bić ja naprawde jestem newbie w paczkowaniu. Ja nie mam zamiaru bić, tylko wskazywać właściwą drogę Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 12, 2007 Autor Zgłoszenie Share Napisano Czerwiec 12, 2007 Czyli w sekcji %preun trza by da? rm /usr/share/smplayer ?? Czy po prostu takie cos w %files %{_datadir}/* ? Pytam bo http://repo.dobremiasto.net/articles/kurs_...ia_pakietow_rpm nie ma mowy o tym. http://rapidshare.com/files/36788059/smpla...c7.src.rpm.html Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 Czyli w sekcji %preun trza by dać rm /usr/share/smplayer ?? Nie Jeszcze dzisiaj albo jutro sporządzę porządną recenzję - taką jakie się robi dla paczek chcących dostać się do repo. I tam opiszę wszystko co powinieneś wiedzieć na początek Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 12, 2007 Autor Zgłoszenie Share Napisano Czerwiec 12, 2007 Nie Jeszcze dzisiaj albo jutro sporządzę porządną recenzję - taką jakie się robi dla paczek chcących dostać się do repo. I tam opiszę wszystko co powinieneś wiedzieć na początek Super dzieki ;-) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Czerwiec 12, 2007 Zgłoszenie Share Napisano Czerwiec 12, 2007 Tak więc pierwsze co robi recenzent sprawdzając potencjalną paczkę to sprawdzą ją programem rpmlint. Jeśli brakuje go w systemie, to wpisujemy tylko yum install rpmlint Następnie rpmlinta włącza się zarówno na paczkę źródłową, jak i wynikową. W przypadku smplayera rpmlint milczy dla src.rpm, ale dla paczki wynikowej ma bardziej gadatliwe wyjście. W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Readme.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Install.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Icon_themes.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Translations.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Release_notes.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Not_so_obvious_things.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Copying.txt W: smplayer wrong-file-end-of-line-encoding /usr/share/doc/packages/smplayer/Configurable_shortcuts.txt E: smplayer invalid-desktopfile /tmp/smplayer-0.5.0-1.fc7.x86_64.rpm.4486/usr/share/applications/smplayer.desktop Sporo wartościowych informacji odnośnie tego, co robić w przypadku błędów rpmlina znajduje się tutaj. Ponieważ rzuca się w wielu plikach o złe kodowanie należy w sekcji %prep ów kodowanie poprawić. Najlepiej zrobić to sedem - odsyłam do strony, której link podałem wcześniej. Jeśli chodzi o błąd w przypadku pliku desktop to jeśli chcemy się dokładnie dowiedzieć o co chodzi warto zapoznać się z narzędziem desktop-file-validate dostępnym w paczce desktop-file-utils. [build@ecik tmp]$ desktop-file-validate smplayer.desktop smplayer.desktop: error: value "AudioVideo;Player;Video;Qt;KDE" for string list key "Categories" in group "Desktop Entry" does not have a semicolon (';') as trailing character smplayer.desktop: warning: key "Encoding" in group "Desktop Entry" is deprecated smplayer.desktop: error: value "audio/ac3;audio/mp4;audio/mpeg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-adpcm;audio/x-matroska;audio/x-mp2;audio/x-mp3;audio/x-ms-wma;audio/x-vorbis;audio/x-wav;video/avi;video/mp4;video/mpeg;video/quicktime;video/vnd.rn-realvideo;video/x-matroska;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ogm;video/x-theora" for string list key "MimeType" in group "Desktop Entry" does not have a semicolon (';') as trailing character Wszystkie błędy można naprawić albo samodzielnie dostarczając plik desktop do paczki, albo poprawiając to sedem, albo patchem. To już w zależności od woli paczkującego Rpmlinta mamy już za sobą to weźmy się za plik spec. Na samym początku jest bezsensowna deklaracja release, która i tak potem jest nadpisywana, więc najlepiej ją wywalić. Prawdę mówiąc moim zdaniem %define name i version też nie są potrzebne, gdyż o wiele ładniej jest, gdy znajduje się to w preambule. Tag Source0 powinien zawierać pełen adres URL do źródła, po to, żeby zawsze można było je sobie ściągnąć i przy okazji sprawdzić też czy źródła się zgadzają (tj. czy paczkujący niczego sobie w źródle nie zmienił). Teraz sekcja %files. Pozwolę ją sobie opisać trochę po swojemu. Zawsze należy się tak logicznie zastanowić: czy dany katalog powinien należeć do systemu czy do paczki. Jeżeli do paczki to wypisujemy tylko katalog, a jeśli do systemu to jego zawartość. Po drugie należy używać makr. Oto kilka bardziej przydatnych: %{_bindir} - /usr/bin %{_datadir} - /usr/share %{_libdir} - /usr/lib[64] (w zależności od architektury) %{_sysconfdir} - /etc %{_mandir} - /usr/share/man W związku z tym idźmy linia po linii (prawie ): /usr/bin/smplayer Oczywistym jest, że katalog z binarkami należy do systemu więc: %{_bindir}/smplayer /usr/share/applications/smplayer.desktop tu sytuacja jest podobna jak wyżej %{_datadir}/applications/smplayer.desktop (choć do pliku desktop jeszcze wrócę) /usr/share/doc/packages/smplayer/Changelog /usr/share/doc/packages/smplayer/Configurable_shortcuts.txt (...) /usr/share/doc/packages/smplayer/Translations.txt[code] Tych plików w ogóle nie powinno być. W sekcji %install już po make install należy te pliki usunąć (jeśli ich aplikacja w czasie działania nie wymaga) i zastosować makro %doc. [code]%doc Changelog Configurable_shortcuts.txt (...) Przyjęło się, że makro %doc jest na początku sekcji %files, a ścieżki, które podajemy w %doc są ścieżkami z katalogu ze źródłami, a nie z buildroota. /usr/share/icons/hicolor/16x16/apps/smplayer.png /usr/share/icons/hicolor/22x22/apps/smplayer.png /usr/share/icons/hicolor/32x32/apps/smplayer.png /usr/share/icons/hicolor/64x64/apps/smplayer.png tutaj wszystko można ładnie zastąpić wieloznakiem: %{_datadir]/hicolor/*/apps/smplayer.png Warto jednak zauważyć, że katalog %{_datadir}/hicolor nie należy jako tako do systemu, tylko do innej paczki zwanej hicolor-icon-theme. Oznacza to, że smplayer powinien mieć Requires: hicolor-icon-theme. /usr/share/smplayer/input.conf /usr/share/smplayer/shortcuts/default.keys (...) /usr/share/smplayer/translations/smplayer_zh_TW.qm A na koniec stos plików z katalogu programu. Ponieważ oczywistym jest, że katalog /usr/share/smplayer należy do tej paczki - i nikogo innego, zatem listujemy po prostu ten katalog: %{_datadir}/smplayer i gotowe - czyż to nie łatwiejsze Warto zapoznać się ze stroną ScripletSnippets, która mówi o tym jakich konkretnych sekcji %post i %postun należy używać w danych sytuacjach. Z dokumentu wynika, że jeśli paczka zawiera ikony w %{_datadir}/icons to należy dodać: %post touch --no-create %{_datadir}/icons/hicolor || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : %postun touch --no-create %{_datadir}/icons/hicolor || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : A ponieważ smplayer takowe ikony zawiera należy te sekcje dodać Zaś w pliku desktop znajduję się tag MimeType więc jeszcze trzeba dodać: %post update-desktop-database &> /dev/null ||: %postun update-desktop-database &> /dev/null ||: Oczywiście nie należy tworzyć dwóch sekcji %post i dwóch sekcji %postun tylko wszystko umieścić w jednej. W zasadzie to wszystko, co widzę, że jest nie tak. Koniecznie powinieneś zapoznać się z dokumentami: Packaging Guidelines, Review Guidelines i najlepiej z całą sekcją Packaging na wiki. Poza tym dokładnie przestudiować hoppke, przeglądać review requesty i uczyć się na cudzych specach. I oczywiście pytać tutaj Jeśli masz jakiekolwiek pytanie odnośnie mojej powyzszej (niepełnej jednak) recenzji to nie krępuj się - tylko pytaj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 13, 2007 Autor Zgłoszenie Share Napisano Czerwiec 13, 2007 Super dzięki wielkie jak tylko skoncze studia w tym miesiącu to wezme się za to na poważnie i poprawie te paczke z smplayerem bo brakuje mi go w F7. Jedno pytanie w jaki sposób rozpoznać czego dany progs wymaga. Bo np. z tym hicolor theme bym nie wpadł Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Karlik Napisano Czerwiec 13, 2007 Zgłoszenie Share Napisano Czerwiec 13, 2007 Jedno pytanie w jaki sposób rozpoznać czego dany progs wymaga. Bo np. z tym hicolor theme bym nie wpadł Tak naprawdę to te przypadki są bardzo specyficzne i jest ich niewiele. Requires używa się gdy coś ma być zainstalowane w systemie dla estetyki (np. hicolor, żeby nie mieszało się) lub działania, które nie są standardowo wykrywane przez rpm. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MC' Napisano Czerwiec 13, 2007 Zgłoszenie Share Napisano Czerwiec 13, 2007 Może wartało by przylepić tylko nie w tym dziale Ta recenzja ecika może się ludziom przydać Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
piotreek23 Napisano Czerwiec 13, 2007 Autor Zgłoszenie Share Napisano Czerwiec 13, 2007 %define name smplayer %define version 0.5.0 Name: %{name} Version: %{version} Release: 1%{?dist} Summary: A great front-end for MPlayer Group: Applications/Multimedia License: GPL URL: http://smplayer.sourceforge.net/ Source0: http://downloads.sourceforge.net/smplayer/...er-0.5.0.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: qt-devel Requires: mplayer hicolor-icon-theme %description SMPlayer intends to be a complete front-end for MPlayer, from basic features like playing videos, DVDs, and VCDs to more advanced features like support for Mplayer filters and more. One of the main features is the ability to remember the state of a played file, so when you play it later it will resume at the same point and with the same settings. smplayer is developed with the Qt toolkit, so it's multi-platform. %prep %setup -q %build make %{?_smp_mflags} PREFIX=/usr %install rm -rf $RPM_BUILD_ROOT make %{?_smp_mflags} PREFIX=/usr DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %doc Changelog Configurable_shortcuts.txt Copying.txt Icon_themes.txt Install.txt Not_so_obvious_things.txt Readme.txt Release_notes.txt Translations.txt %defattr(-,root,root,-) %{_bindir}/smplayer %{_datadir}/applications/smplayer.desktop %{_datadir}/icons/hicolor/* %{_datadir}/smplayer/* %post touch --no-create %{_datadir}/icons/hicolor || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : update-desktop-database &> /dev/null ||: %postun touch --no-create %{_datadir}/icons/hicolor || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : update-desktop-database &> /dev/null ||: %changelog * Tue Jun 12 2007 Piotr Sabiniewicz <[email protected]> 0.5.0-1 - First Spec for Fedora 7 Poprawiłem spec file ale kończy błędem Szukanie niespakietowanych plików: /usr/lib/rpm/check-files /var/tmp/smplayer-0.5.0-1.fc7-root-piotr błąd: Znaleziono zainstalowane (ale niespakietowane) pliki: /usr/share/doc/packages/smplayer/Changelog /usr/share/doc/packages/smplayer/Configurable_shortcuts.txt /usr/share/doc/packages/smplayer/Copying.txt /usr/share/doc/packages/smplayer/Icon_themes.txt /usr/share/doc/packages/smplayer/Install.txt /usr/share/doc/packages/smplayer/Not_so_obvious_things.txt /usr/share/doc/packages/smplayer/Readme.txt /usr/share/doc/packages/smplayer/Release_notes.txt /usr/share/doc/packages/smplayer/Translations.txt Błędy budowania RPM-a: Znaleziono zainstalowane (ale niespakietowane) pliki: /usr/share/doc/packages/smplayer/Changelog /usr/share/doc/packages/smplayer/Configurable_shortcuts.txt /usr/share/doc/packages/smplayer/Copying.txt /usr/share/doc/packages/smplayer/Icon_themes.txt /usr/share/doc/packages/smplayer/Install.txt /usr/share/doc/packages/smplayer/Not_so_obvious_things.txt /usr/share/doc/packages/smplayer/Readme.txt /usr/share/doc/packages/smplayer/Release_notes.txt /usr/share/doc/packages/smplayer/Translations.txt :/ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Czerwiec 13, 2007 Zgłoszenie Share Napisano Czerwiec 13, 2007 Przede wszystkim w polu Source0 masz używac pełnej ścieżki, ale wciąż powinieneś używać makr. To znaczy, że tag ten powinien wyglądać tak: http://downloads.sourceforge.net/smplayer/smplayer-%{version}.tar.gz (jeśli chcesz to możesz jeszcze zastąpić każde wystąpienie smplayer przez %{name} - za to %{version} musi być obowiązkowo) Po drugie linia %doc jest dość długa, co wygląda trochę nieestetycznie, lepiej podzielić to na kilka tagów, tj: %doc Changelog Configurable_shortcuts.txt Copying.txt Icon_themes.txt Install.txt %doc Not_so_obvious_things.txt Readme.txt Release_notes.txt Translations.txt i już to nie razi Następnie nie do końca zrozumiałeś to co pisałem o sekcji %files; dałeś tam linijkę: %{_datadir}/smplayer/* czyli w takim wypadku do paczki należą tylko pliki z katalogu %{_datadir}/smplayer, a nie sam katalog. Musisz dać po prostu: %{_datadir}/smplayer W przypadku hicolor wieloznak też jest niewłaściwie zastosowany, bo wtedy do paczki należą podkatalogi z %{_datadir}/icons/hicolor, a nie o to chodziło. Należy zrobić: %{_datadir]/hicolor/*/apps/smplayer.png Co do samego błędu to jest on jasny: Znaleziono zainstalowane (ale niespakietowane) pliki:. Ale te pliki, które są niespakietowane zgodnie z naszymi oczekiwaniami mają w ogóle z paczki zniknąć (tj. w tamtej lokalizacji), należy więc w sekcji %install po make install dopisać: rm -rf $RPM_BUILD_ROOT%{_datadir}/doc Bo cały ten katalog jest niepotrzebny. Poza tym, wspominałem w recenzji, że jeszcze wrócę do pliku desktop, a nie wróciłem - bo zapomniałem wracam więc teraz. W guidelines jest wspomniane o tym, co należy z plikami desktop robić - odsyłam tutaj. Warto zauważyć, że wtedy nazwa pliku z smplayer.desktop ulegnie zmianie na fedora-smplayer.desktop. Jeśli czegoś nie rozumiesz - oczywiście pytaj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się