PLDWWW: pl/DevelopingPLD/BasicSpecUpdate

qwiat qwiat at pld-linux.org
Sun Sep 27 14:10:23 CEST 2009


Author: qwiat   Date: Sun Sep 27 12:10:23 2009 GMT
Module: PLDWWW   URL: http://pld-linux.org/pl/DevelopingPLD/BasicSpecUpdate?action=diff&rev2=3&rev1=2
---- Log message:


---- Page affected: pl/DevelopingPLD/BasicSpecUpdate

---- Diffs:

================================================================
- = Aktualizacja Speca =
+ = Aktualizacja pliku spec w przykładach =
  
  Zakładam, że mamy już [wiki:pl/DevelopingPLD/PreparingWorkingEnvironment przygotowane środowisko budowania], dlatego przejdziemy od razu do rzeczy. W przykładach będziemy aktualizować fikcyjny pakiet '''foo''' z  wersji 1.5 do 1.6.
  
- == Trywialna aktualizacja ==
+ Zaczynamy od pobrania całej paczki z HEAD (ewentualnie z odpowiedniego brancha):
  
- Pobieramy całą paczkę z HEAD (ewentualnie z odpowiedniego brancha):
+ {{{
+ $ builder -g foo
+ }}}
  
- {{{$ builder -g foo}}}
+ == Aktualizacja aplikacji w specu ==
  
  Teraz za pomocą edytora tekstu otwieramy plik spec:
  
+ {{{
- {{{$ vim ~/rpm/packages/foo/foo.spec}}}
+ $ vim ~/rpm/packages/foo/foo.spec
+ }}}
  
  i odszukujemy sekcje odpowiedzialne za wersję, które mogą wyglądać następująco:
  
@@ -21, +25 @@

  
  wartość '''Version:''' zmieniamy na '''1.6''' zaś '''Release:''' na '''1'''. Zmiana wersji wymaga, by Release ustawić na wartość 1. Wyjątkiem jest sytuacja gdy chyba zasygnalizować, że spec nie jest skończony, wtedy nadajemy ułamkową wartość  np.: 0.1. Teraz musimy sprawdzić czy pakiet się buduje.
  
- 
- == Test budowania ==
- 
  Musimy sprawdzić czy pakiet się buduje zanim wykonamy commit lub wyślemy łatkę do jakiegoś dewelopera. Zaczniemy od aktualizacji sum md5 źródeł w pakiecie:
  
+ {{{
- {{{$ builder -5 foo}}}
+ $ builder -5 foo
+ }}}
  
- teraz możemy budować, w poniższym przykładzie budujemy tylko binarne wersje (-bb) żeby szczedzić na czasie.
+ teraz możemy budować, w poniższym przykładzie budujemy tylko binarne wersje (-bb) żeby oszczędzić na czasie.
  
+ {{{
- {{{$ builder -bb foo}}}
+ $ builder -bb foo
+ }}}
  
  Jeśli pakiet się zbudował możemy wykonać commit, dodaniem odpowiedniego komentarza (-m):
  
+ {{{
- {{{$ cvs ci -m "- updated to 1.6" foo.spec}}}
+ $ cvs ci -m "- updated to 1.6" foo.spec
+ }}}
  
- Jeśli pakiet się nie buduje to czytaj dalej
+ Jeśli pakiet się nie buduje to czytaj o Rozwiązywaniu problemów poniżej.
+ 
+ 
+ == Inne aktualizacje w specu ==
+ 
+ Każde zmiany nie dotyczące aktualizacji samej aplikacji np.:
+  * nałożenie łatek
+  * poprawienie zależności: '''Requires''' i '''BuildRequires'''
+  * modyfikacje opisów
+ wymagają podbicia tagu '''Release''', tak by pakiet mógł być zbudowany i zaktualizowany. Podbicia dokonuje się także wtedy, gdy żadne zmiany nie są robione w specu, robi się tak by aplikacja została na nowo zbudowana, np. w celu zlinkowania z nowszą wersją  bibliotek.
+ 
+ Po każdej zmianie, a zwłaszcza po nałożeniu łatek musimy się przekonać czy pakiet się buduje, zatem:
+ 
+ {{{
+ $ builder -bb foo
+ }}}
+ 
+ Kiedy wszystko jest w porządku możemy dokonać commit speca (i ewentualnie łatek).
  
  
  == Rozwiązywanie problemów ==
  
  Przy aktualizacji może pojawić się każdy możliwy problem jednak najczęściej pojawia się problem z łatami i/lub niespakietowanymi plikami.
  
- === Błąd przy nakładaniu łat ===
+ === Błąd przy nakładaniu łatek ===
  
- TODO
+ Zdarza sie, że w nowszej wersji aplikacji autorzy nałożyli już taką łatkę i jedyne co pozostaje nam zrobić to usunąć ją ze speca. W gorszym przypadku kod źródłowy zmienił się na tyle, że łatka po prostu nie da się nałożyć. Musimy porównać źródło z łatką i podjąć odpowiednie kroki: usunąć łatkę lub ją zmodyfikować, tak by się nakładała. Przy okazji można sprawdzić czy łatka w ogóle jest potrzebna, trzeba sprawdzić w historii rewizji po co w ogóle została dodana.
  
- === Niespakietowane pliki ===
+ Aby wyłączyć łatkę usuwamy ze speca odpowiedni tag '''Patch{NR}''' z nagłówka speca i  polecenie nakładające go z '''%prep'''. Teraz próbujemy budować (jak powyżej). Jeśli wszystko działa poprawnie usuwamy łatkę, w tym celu wchodzi my do katalogu ~/rpm/packages/foo/ i usuwamy plik o odpowiedniej nazwie np.:
  
- TODO
+ {{{
+ $ rm foo-special-fix.patch
+ }}}
+ 
+ usuwamy łatkę ze CVS-u:
+ 
+ {{{
+ $ cvs remove foo-special-fix.patch
+ }}}
+ 
+ i teraz możemy zrobić commit wszystkich zmian:
+ 
+ {{{
+ $ cvs ci
+ }}}
  
  
- == Podbicie Release ==
+ === Niespakietowane pliki/brak plików ===
  
- TODO
+ Rozwój aplikacji powoduje czasami większe lub mniejsze zmiany w liście plików. Builder nas poinformuje, w takim wypadku musimy dokonać zmian w sekcjach '''%files'''. Musimy to pamiętać by używać makr zamiast konkretnych ścieżek.
  


More information about the pld-cvs-commit mailing list