Author: qwiat Date: Fri Jan 22 00:58:00 2010 GMT Module: PLDWWW URL: http://www.pld-linux.org/pl/DevelopingPLD/AddNewSpec ---- Log message:
---- Page affected: pl/DevelopingPLD/AddNewSpec ---- Diffs: ================================================================ New page: = Dodanie nowego speca = Zanim zaczniemy pisanie speca koniecznie należy zapoznać się ze [http://cvs.pld-linux.org/cgi-bin/cvsweb/PLD-doc/devel-hints-pl.txt wskazówkami dla dewelopera w devel-hints-pl.txt]. Zakładam, że przygotowaliśmy już [wiki:pl/DevelopingPLD/PreparingWorkingEnvironment środowisko budowania] pakietów i mamy dostęp do [wiki:pl/Repositories CVS-u] do zapisu. Przechodzimy do katalogu {{{packages}}}: {{{ $ cd ~/rpm/packages }}} tworzymy katalog o unikalnej nazwie (wg. zasad w devel-hints-pl.txt), jednoznacznie określające nazwę aplikacji: {{{ $ mkdir foo }}} == Tworzenie speca == Nic nie stoi na przeszkodzie by stworzyć speca od podstaw, lepiej jednak, zwłaszcza dla początkujących użyć jeden z [http://cvs.pld-linux.org/cgi-bin/cvsweb/template-specs/ dostępnych w CVS-ie szablonów]. Plik spec musi mieć nazwę zgodną z nazwą katalogu (o którym powyżej). Zaczynamy edycję speca za pomocą dowolnego edytora: {{{ $ cd foo $ vim foo.spec }}} Kiedy nasz spec nabrał wstępnego kształtu, robimy testowy build: {{{ $ builder -bb -ncs foo }}} Niemal na pewno pojawią się jakieś błędy (zwłaszcza u początkujących), dlatego teraz praca polega na poprawianiu błędów i kolejnych testowych buildach. == Prace końcowe i dodanie speca do CVS-u == Kiedy pakiet się buduje próbujemy go zainstalować, uruchomić i odinstalować. W takich momentach często wychodzą błędy w zależnościach ( {{{Requires}}} ) i skryptach ({{{%pre}}}, {{{%post}}}, {{{%preun}}}, {{{%postun}}}). Kiedy wszystko wygląda w porządku, to koniecznie uruchamiamy ''adapter'': {{{ $ ../adapter foo.spec }}} skrypt pozwoli dostosować speca do reguł panujących w PLD. W tym momencie możemy dodać speca do CVS-u (oraz ewentualne łatki): {{{ $ cd ~/rpm/packages $ cvs add foo $ cd foo $ cvs add foo.spec $ cvs ci }}} == Wskazówki == * pakiet musi się budować z poziomu zwykłego użytkownika * ostrożnie nadajemy uprawnienia w sekcji {{{%files}}}, unikamy jak ognia SUID, jeśli to absolutnie konieczne, używaj SGID i osobnej grupy. * nie musimy się biedzić z makrami RPM-a, zwłaszcza w sekcji {{{%files}}}, ''adapter'' ustawi je za nas. * lista makr RPM: {{{ $rpm --showrc }}} * generalnie nie powinny zostać żadne niespaczkowane pliki, są jednak wyjątki od tej zasady, np. pliki przeznaczone dla specyficznych dystrybucji. Kompletne zestawienie reguł można znaleźć w dokumencie [http://cvs.pld-linux.org/cgi-bin/cvsweb/PLD-doc/devel-hints-pl.txt devel-hints-pl.txt]. == Linki == * Oficjalna [http://rpm.org/wiki/Docs#PackagerDocumentation dokumentacja paczkowania] * Zestawienie: [http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/PLD-doc/uid_gid.db.txt?rev=1.302;content-type=text%2Fplain UID-ów i GID-ów] w PLD * Priorytety startu dla [http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/PLD-doc/rc-scripts.db.txt?rev=1.98;content-type=text%2Fplain rc-skryptów] _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
