User Tools

Site Tools


pl:developingpld:addnewspec

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pl:developingpld:addnewspec [2010-01-22 05:16]
SamChi - refer to latest revision
pl:developingpld:addnewspec [2010-01-22 14:37]
qwiat more cosmetics
Line 1: Line 1:
- 
- 
-====== 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ż [[:​pl:​DevelopingPLD:​PreparingWorkingEnvironment|środowisko budowania]] pakietów i mamy dostęp do [[:​pl:​Repositories|CVS-u]] do zapisu. Przechodzimy do katalogu ''​packages'': ​ 
- 
- 
- 
-<​file>​$ cd ~/​rpm/​packages 
-</​file>​ 
-tworzymy katalog o unikalnej nazwie (wg. zasad w devel-hints-pl.txt),​ jednoznacznie określające nazwę aplikacji: ​ 
- 
- 
- 
-<​file>​$ mkdir foo 
-</​file>​ 
- 
- 
-===== 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: ​ 
- 
- 
- 
-<​file>​$ cd foo 
-$ vim foo.spec 
-</​file>​ 
-Kiedy nasz spec nabrał wstępnego kształtu, robimy testowy build: ​ 
- 
- 
- 
-<​file>​$ builder -bb -ncs foo 
-</​file>​ 
-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//: ​ 
- 
- 
- 
-<​file>​$ ../adapter foo.spec 
-</​file>​ 
-skrypt pozwoli dostosować speca do reguł panujących w PLD. W tym momencie możemy dodać speca do CVS-u (oraz ewentualne łatki): ​ 
- 
- 
- 
-<​file>​$ cd ~/​rpm/​packages 
-$ cvs add foo 
-$ cd foo 
-$ cvs add foo.spec 
-$ cvs ci 
-</​file>​ 
- 
- 
-===== 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:  
- 
- 
-<​file>​$rpm --showrc 
-</​file>​ 
- 
-  * 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=HEAD;​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=HEAD;​content-type=text%2Fplain|rc-skryptów]]  ​ 
  
pl/developingpld/addnewspec.txt · Last modified: 2010-01-22 14:37 by qwiat