Preambuła

Preambuła służy do określenia podstawowych właściwości pakietu jak nazwa, wersja czy programy wymagane do instalacji. W preambule mogą (gwiazdka oznacza, że muszą) występować następujące pola:

Summary *
Pole Summary zawiera krótki opis programu po angielsku. W kolejnych liniach można ten opis tłumaczyć na inne języki używając jako argumentu dwuliterowego skrótu języka. Pakiety dla PLD powinny mieć conajmniej dwa pola Summary:
Summary: Short description
Summary(pl): Krótki opis
Name *
Pole Name określa nazwę programu.
Version *
Pole Version określa wersję programu.
Release *
Pole Release określa rewizję pakietu. Jeżeli wprowadzisz jakieś istotne zmiany do SPECa powinieneś zwiększyć wartość tego pola o 1. Pierwsza wersja pakietu powinna mieć rewizję 1 (nie 0).
Group *
Pole Group określa do jakiej grupy należy program. Pole to jest wykorzystywane główie przez graficzne front-end'y do RPMa (np. glint) do układania pakietów w kategoriach tematycznych. Podobnie jak pole Summary tak i Group może mieć jako argument dwuliterowy skrót języka. Pakiety dla PLD powinny mieć dwa pola Group:
Group: Some/Group
Group(pl): Jakaś/Grupa
Listę istniejących grup możesz znaleźć w dokumentacji RPMa.
Copyright *
Pole Copyright określa na jakiej licencji jest dostępny dany program. Najczęściej jest to:
Copyright: GPL
Vendor
??? Pakiety dla PLD powinny mieć następującą wartość pola Vendor:
Vendor: PLD
Domyślną wartość tego pola można ustalić w pliku rpmrc.
Packager
Pole Packager zawiera dane osoby, która stworzyła pakiet. Jeżeli pakujesz program powinieneś umieścić tu swoje imię, nazwisko i adres e-mail. Pakiety dla PLD powinny mieć następującą wartość pola Packager:
Packager: ???
Domyślną wartość tego pola można ustalić w pliku rpmrc.
Distribution
Pole Distribution określa dystrybucję, do której należy dany pakiet. Pakiety dla PLD powinny mieć następującą wartość pola Distribution:
Distribution: PLD
Domyślną wartość tego pola można ustalić w pliku rpmrc.
Serial
???
URL
Pole URL powinno zawierać adres strony domowej programu.
Source *
Pole Source określa nazwę pliku ze źródłami programu. W miarę możliwości należy nazwę pliku podać wraz z pełną ścieżką do głównego serwera FTP programu. Pól Source może być kilka:
Source0: ftp://ftp.serwer.com/pub/katalog/%{name}-%{version}.tar.gz Source1: %{name}.wmconfig
Pakiety dla PLD powinny używać Source jeżeli źródło jest jedno i Source0 jeżeli źródeł jest więcej, ale jest to uwarunkowane wyłącznie względami estetycznymi.
Patch
Pole Patch określa nazwę pliku z poprawkami do programu. Często po ściągnięciu źródeł okazuje się, że nie chcą się one skompilować, albo wymagają uprawnień root'a do instalacji. W takich wypadkach powinniśmy poprawić źródła programu i stworzyć odpowiednią łatkę (patch). Kiedy już to zrobimy musimy podać nazwę tej łatki w polu Patch:
Patch: %{name}-make.patch
Pakiety dla PLD powinny używać Patch jeżeli jest jedna łatka i Patch0 jeżeli jest ich więcej, ale jest to uwarunkowane wyłącznie względami estetycznymi.
Icon
Pole Icon określa nazwę pliku z ikoną programu. Pole to jest wykorzystywane głównie przez front-end'y do RPMa (np. glint) do umieszczania ikonek obok nazw programów.
BuildPrereq (rpm >= 2.90)
W polu BuildPrereq należy wymienić pakiety, które są niezbędne do poprawnej kompilacji pakietu. Zazwyczaj są to pakiety zawierające biblioteki lub pliki nagłówkowe (*-devel). Np. w vim.spec możemy zobaczyć:
BuildPrereq: ncurses-static
BuildPrereq: lesstif-devel
BuildPrereq: gtk+-devel
BuildPrereq: glib-devel
BuildPrereq: gpm-devel
Prereq
Pole Prereq ma znaczenie przy instalacji większej ilości pakietów jednocześnie. Pakiety zawierające coś w tym polu są przesuwane na początek kolejki i instalowane na początku.
Requires
Pole Requires zawiera nazwy pakietów, które są wymagane do instalacji danego pakietu. Nie trzeba tu umieszczać nazw podstawowych bibliotek jak np. glibc, gdyż to RPM zrobi automatycznie (wykonując polecenie 'ldd' dla każdego pliku binarnego w pakiecie). W polu tym można też określić w jakiej wersji pakiet ten jest wymagany. Na przykład pakiet util-linux wymaga pakietu pam w wersji 0.66 lub wyższej:
Requires: pam >= 0.66
Używać można następującycj znaków arytmetycznych dla określenia wymaganej wersji: =, >, <, >=, <=. W PLD począwszy od rpm-2.5.6-5 zmieniony jest nieco skrypt find-requires, którym RPM automatycznie wyszukuje zależności, co powoduje, że wpisów do pola Requires należy dokonywać wyłącznie w sytuacjach, gdy wymagana jest konkretna wersja pakietu.
Provides
Pole Provides określa jakie usługi udostępnia pakiet. Na przykład pakiety sendmail i zmailer udostępniają demona smtp:
Provides: smtpdaemon
Dzięki temu niezależnie od tego, który z nich jest zainstalowany to pakiety wymagające demona smtp (np. mutt) będą mogły być instalowane.
Autoreqprov
Pole Autoreqprov pozwala zablokować opcję automatycznego wyszukiwania wymagań (Requires) i udostępnianych przez pakiet usług (Provides):
Autoreqprov: no
BuildArch
Pole BuildArch pozwala określić dla jakiej architektury pakiet ma być robiony. Najczęściej używa się go, żeby zaznaczyć, że dany pakiet jest niezależny od platformy (np. dokumentacja):
BuildArch: noarch
BuildRoot
Pole BuildRoot pozwala określić katalog roboczy przy budowaniu pakietu. Dzięki temu prawie wszystkie pakiety można budować z konta zwykłego użytkownika. Pakiety dla PLD powinny mieć następującą wartość pola BuildRoot:
BuildRoot: /tmp/buildroot-%{name}-%{version}
ExclusiveArch
Pole ExclusiveArch pozwala określić na jakich architekturach pakiet może być budowany.
ExclusiveOS
Pole ExclusiveOS pozwala określić na jakich systemach operacyjnych pakiet może być budowany (RPM istnieje także dla innych systemów niż Linux).
ExcludeArch
Pole ExcludeArch pozwala określić na jakich architekturach pakiet NIE może być budowany.
ExcludeOS
Pole ExcludeOS pozwala określić na jakich systemach operacyjnych pakiet NIE może być budowany.
%description
Makro %description jest specyficzną częścią preambuły. Służy do umieszczenia dłuższego opisu pakietu. Jak każde makro rozpoczyna się od znaku procenta ('%'). W odróżnieniu od pozostałych części preambuły %description może zajmować więcej niż jedną linię. Parametrem tego makra może być -l, a wartością tego parametru -- dwuliterowy skrót języka. Pakiety dla PLD powinny mieć conajmniej dwa makra %description:
%description
Longer package description.

%description -l pl
Dłuższy opis pakietu.


Dalej | Cofnij | Do góry | Spis treści