libdlna

Paweł Zuzelski z w xatka.net
Pią, 25 Cze 2010, 11:15:15 CEST


On Fri, 25 Jun 2010, Daniel Dawid Majewski wrote:

> W odpowiedzi na wiadomość z dnia 24.06.2010 23:49, od Bartłomiej Zimoń:
> > Ps. --short-circuit bardzo pomaga przy pracy z rpm-ami bo pozwala
> > wykonywac sekcje z pliku spec krokowo, a przy tym w razie bledu
> > kompilacji po poprawieniu problemu mozesz wywolac samo %build
> > jeszcze.
> Możesz opisać to przystępniej (Po czym poznać że czeka na następny krok
> ? Co trzeba wcisnąć aby przejść do następnego kroku lub wykonać krok
> poprzedni ?), albo czy widziałeś gdzieś dokładny opis
> tej opcji ?

cd rpm/packages/moj_zajefajny_pakiet

../builder -bb *spec

(JEB, wywaliło się na etapie rozpakowywania źródeł)

vim *spec
#poprawiam speca

A teraz chcę przetestować tylko %prep:

../builder -bp *spec

(mieli, mieli, hura! rozpakowało się)

No to teraz chcę zobaczyć, czy się buduje, ale że źródła mają 2TB,
to nie chcę ich jeszcze raz rozpakowywać:

../builder -bc --short-circuit *spec

A teraz komentarz jak to działa:

opcje -bX oznaczają stadium budowania:
   -bp - %prep
   -bc - %build (nie mylić z -bb)
   -bi - %install
   -bb - %files

Normalnie jak wykonujemy ../builder -bX, to builder wykona wszystkie
stadia aż do X, czyli -bi wykona %prep, %build, %install. Opcja
--short-circuit oznacza, żeby wykonał TYLKO X. czyli
-bc --short-circuit oznacza wykonaj %build już przygotowanych
źródłach. Zauważ, że dzięki temu, jak masz aplikację która się
dłuuuugo buduje, na przykład kernel, możesz zrobić tak:

../builder -bb *spec
(zbudowało się)
zmieniasz jedną opcję w konfigu kernela, w związku z tym nie chcesz
przebudowywać całości, to robisz:
../builder -bc --short-circuit *spec
Make powinien dobudować tylko to co się zmieniło, jak to make.
Następnie trzeba wykonać jeszcze
-bi --short-circuit i -bb --short-circuit. W związku z tym, że to
częste połączenie opcji, mamy osobny skrypt który to robi:
../repackage.sh

Dobra, nie wiem, czy akurat kernel.spec nie jest zbyt
przekombinowany, żeby tak zadziałało, ale ogólnie taka jest koncepcja.

Kilka dodatkowych uwag:

Jeżeli repackage.sh lub compile.sh wykonamy bez argumentów, to to
jest tak, jakbyśmy wykonali go dla *spec, czyli dla pierwszego speca
w aktualnym katalogu.

builder -bp nie wymaga zainstalowanych BRów, dlatego kopiowanie
plików należących do innych pakietów powinno się odbywać w %build
(patrz paragraf 9 devel-hints).

-- 
Pozdrawiam,
Paweł


Więcej informacji o liście dyskusyjnej pld-devel-pl