User Tools

Site Tools


pl:developingpld:addnewspec

Dodanie nowego speca

Zanim zaczniemy pisanie speca koniecznie należy zapoznać się ze wskazówkami dla dewelopera w devel-hints-pl.txt. Zakładam, że przygotowaliśmy już środowisko budowania pakietów i mamy dostęp do 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 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 innych dystrybucji.

Kompletne zestawienie reguł można znaleźć w dokumencie devel-hints-pl.txt.

Linki

pl/developingpld/addnewspec.txt · Last modified: 2010-01-22 14:37 by qwiat