4 175
muokkausta
p (→Linkkejä: ++) |
(patchit (miten suomeksi?)) |
||
Rivi 305: | Rivi 305: | ||
Jos esimerkiksi et poistanut <tt>debian</tt>-hakemistosta <tt>.ex</tt>-päätteisiä tiedostoja, lintian ja linda varoittavat niistä. Yleensä paketin tulisi olla sellainen, etteivät lintian ja linda löydä niistä mitään valitettavaa. | Jos esimerkiksi et poistanut <tt>debian</tt>-hakemistosta <tt>.ex</tt>-päätteisiä tiedostoja, lintian ja linda varoittavat niistä. Yleensä paketin tulisi olla sellainen, etteivät lintian ja linda löydä niistä mitään valitettavaa. | ||
== Patchit == | |||
Joskus pakettia tehtäessä on tehtävä muutoksia myös itse ohjelman lähdekoodiin. Tällöin on siistiä pitää muutokset erillään [[patch]]-tiedostoissa. Kun binääripaketti sitten tehdään, otetaan patchit käyttöön ennen kääntämistä. | |||
Patchien hallintaan on monia aputyökaluja, mutta yksinkertaisimmillaan se hoituu näin: | |||
*Pura alkuperäinen lähdekoodipaketti polkuihin <tt>/tmp/new</tt> ja <tt>/tmp/old</tt> | |||
*Tee muutokset hakemistoon <tt>/tmp/new</tt> | |||
*Aja hakemistossa <tt>tmp</tt> komento | |||
[[diff]] -Nurp old new > 01_patchin-nimi | |||
:Joka luo patchin tiedostoon <tt>01_patchin-nimi</tt> (yleensä patchien edessä on numero, ja patchit otetaan käyttöön numerojärjestyksessä). Optiot -Nurp aiheuttavat sen, että diff ottaa huomioon myös uudet tiedostot (-N) ja käy hakemistot läpi rekursiivisesti (-r) | |||
*Luo paketin <tt>debian</tt>-hakemistoon alihakemisto <tt>patches</tt> ja kopioi äsken luomasi patchi sinne (<tt>cp /tmp/01_patchin-nimi debian/patches/</tt>) | |||
*Lisää <tt>debian/rules</tt>-tiedostoon seuraavat kohdat, jotka ottavat patchit käyttöön ennen ohjelman kääntämistä ja poistavat ne käytöstä hakemistoa "siivottaessa": | |||
patch: patch-stamp | |||
<pre> | |||
patch-stamp: | |||
dh_testdir | |||
@patches=debian/patches/*.patch; for patch in $$patches; do \ | |||
test -f $$patch || continue; \ | |||
echo "Applying $$patch"; \ | |||
patch -stuN -p1 < $$patch || exit 1; \ | |||
done | |||
touch $@ | |||
# Remove patches from the package | |||
unpatch: | |||
dh_testdir | |||
@if test -f patch-stamp; then \ | |||
patches=debian/patches/*.patch; \ | |||
for patch in $$patches; do \ | |||
reversepatches="$$patch $$reversepatches"; \ | |||
done; \ | |||
for patch in $$reversepatches; do \ | |||
test -f $$patch || continue; \ | |||
echo "Reversing $$patch"; \ | |||
patch -suRf -p1 < $$patch || exit 1; \ | |||
done; \ | |||
rm -f patch-stamp; \ | |||
fi | |||
</pre> | |||
*Huolehdi siitä, että patch: ja unpatch: -kohdat ajetaan oikeaan aikaan: muuta rivi | |||
build: build-stamp | |||
:muotoon | |||
build: patch-stamp build-stamp | |||
Ja rivi | |||
clean: | |||
:muotoon | |||
clean: unpatch | |||
== Pbuilder == | == Pbuilder == |