Takie różne uwagi dopieszczające
Marcin 'Qrczak' Kowalczyk
qrczak w knm.org.pl
Sob, 26 Wrz 1998, 17:42:17 CEST
Skoro to ma być takie porządne, to wydaje mi się, że na koniec warto by
wymyśleć, co da się sprawdzić zupełnie automatycznie, hurtem, a mogło ujść
uwadze. Na przykład:
1. Czy któryś spec odwołuje się do /sbin/install-info albo /sbin/chkconfig
bez Prereq?
2. Gdzie brakuje polskich tłumaczeń? Wywiesić listę, niech ludzie dodadzą.
3. Czy atrybut czegoś w %files jest nieokreślony?
4. Jeśli przyjmujemy jednoznaczne stanowisko względem `install -d' kontra
`mkdir -p', to czy nic się z tego nie wyłamuje?
5. Czy gdzieś jest cośtam=$RPM_OPT_FLAGS zamiast cośtam="$RPM_OPT_FLAGS"?
Spotkałem ten błąd w paru pakietach z RedHat{a,-contrib}.
6. Czy gdzieś brakuje odwołania do $RPM_OPT_FLAGS? Ale to nie musi być błąd
(np. raz znalazłem to w patchu).
7. Brak BuildRoot chyba byłby zauważony natychmiast, no i wyjdzie
w praniu - nie, to jest zbyt banalne.
8. Może gdzieś plik z /etc nie jest %config?
9. Jeśli należy ustalić, że ma nie być Packagerów bezpośrednio w specu,
a są, to wywalić.
10. Jeśli jednoznacznie decydujemy się na nazwę speca postaci %{name}.spec
albo %{name}-%{version}.spec, to sprawdzić, czy coś się nie wyłamuje.
Ja konsekwektnie używam %{name}.spec - mam nadzieję, że dobrze...
11. Może pozostał jakiś %setup bez -q?
12. Jeśli decydujemy się na jednolity format odstępów i znaków
przestankowych w %changelogu, to wygładzić.
13. Jeśli jakiś spec ma spacje na końcu linii, to usunąć :-)
14. Jeśli decydujemy się na jednolite sformatowanie nagłówków w specu...
15. Jeśli decydujemy się na BuildRoot: /var/tmp zamiast /tmp... i w ogóle
nazwa katalogu z BuildRootem - pewnie nigdzie nie ma powodu, żeby
różniła się od /var/tmp/%{name}-%{version}-root - no, chyba że /var
ma być noexec, wtedy nie wiem.
16. Jeśli gdzieś brakuje rm -rf $RPM_BUILD_ROOT w %install albo w %clean...
17. Czy każdy devel requires: %{name} = %{version}, a %{static} requires:
%{name}-devel = %{version}?
Większość z powyższego można załatwić prostymi kombinacjami grepa czy
perla. Pewnie najprościej jednym skrypem w perlu, który czyta speca,
parsuje sekcje i pola nagłówka, po czym wykonuje serię testów. A może
warto by dać taki skrypt obok opracowanych i spisanych w jednym miejscu
reguł przyzwoitości pakietów - zdaje się, że Debian ma coś takiego, więc
i my powinniśmy.
Druga faza - po zainstalowaniu wszystkiego od zera - czy binarki
stripnięte, czy nikt nie przywłaszczył sobie katalogu /usr/bin albo
podobnego, czy każdy katalog /usr/doc/* jest czyjś, czy w żadnym pliku nie
pojawia się tekst /var/tmp (pewnie mało gdzie ma prawo, a mogło pozostać
z czegoś źle przystosowanego do BuildRoot), czy coś się nie zlinkowało
statycznie bez potrzeby, czy nie pozostało gdzieś COPYING albo
niepotrzebne INSTALL... A niczyje katalogi sprywatyzować - może któryś
powstał niejawnie. Upewnić się, że wszystkie (?) symlinki są względne
(u mnie w Redhacie niektóre nie są, a powinny) - program symlinks.
A tak ogólnie, już nie automatycznie... Po uzgodnieniu treści profile
i odpowiedników bashrc sprawdźmy ewentualne wersje przychodzące z różnymi
szelami. Uzupełnijmy komentarze w /etc/*. Sprawdźmy sens kolejności
wywoływania /etc/rc.d/rc*.d/*; ewentualnie dostosujmy wszystko do
chkconfig.
Mam nadzieję, że przynajmniej część z tych rzeczy nie przyszłaby właściwej
osobie do głowy :-)
--
__("< Marcin Kowalczyk * qrczak w knm.org.pl http://qrczak.home.ml.org/
\__/ GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Więcej informacji o liście dyskusyjnej pld-devel-pl