Ero sivun ”Deb-paketin tekeminen” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 012 merkkiä lisätty ,  26. huhtikuuta 2007
patchit (miten suomeksi?)
(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 ==

Navigointivalikko