NAME
svn-buildpackage - baut Debian-Pakete aus einem SVN-DepotÜBERSICHT
svn-buildpackage
[[
OPTIONEN ...] [ OPTIONEN für
dpkg-buildpackage ]]
BESCHREIBUNG
baut ein Debian-Paket aus einem Subversion-Depot. Das Quellcodeverzeichnis muss in dem von svn-inject erzeugten Format vorliegen und dieses Skript muss aus dem Arbeitsverzeichnis (trunk/ package) ausgeführt werden. Standardmäßig wird das Arbeitsverzeichnis als Hauptquellverzeichnis benutzt (unter der Annahme, dass die gesamte Ursprungsquelle in dem Verzeichnis gespeichert wurde). Die Alternative ist der sogenannte »Zusammenführungsmodus«. Bei dieser Methode wird nur das debian-Verzeichnis (und vielleicht ein paar weitere veränderte Dateien) im Depot gespeichert. Während des Bauens wird der Inhalt des SVN-Hauptzweiges (»trunk«) zum extrahierten Inhalt des Tarballs kopiert (er kann Teile davon überschreiben). Um dieses Arbeitsmodell zu wählen, setzen Sie die Eigenschaft mergeWithUpstream auf das debian-Verzeichnis.$ svn propset mergeWithUpstream 1 debian
$ svn propset useNativeDist 1 debian
OPTIONEN
svn-buildpackage akzeptiert die folgenden Befehlszeilenoptionen: --svn-builder=BEFEHLgibt einen alternativen Baubefehl anstelle von
dpkg-buildpackage an, z.B. debuild, pdebuild, etc. Jeder
Parameter, den svn-buildpackage nicht kennt ( --svn-*), wird an
BEFEHL weitergegeben. Es gibt keinen Unterschied zwischen der
Befehlszeile und den Parametern in der Konfigurationsdatei. Sie werden
gleichzeitig benutzt.
WARNUNG: Shell-Maskierungsregeln gelten hier nicht in vollem Umfang. Verwenden
Sie für komplexe Konstrukte besser Wrapper. Die Verwendung dieser
Option kann die Funktionalität von --svn-lintian und
--svn-move stören. Einige Funktionen werden
möglicherweise deaktiviert, wenn ein benutzerdefinierter Baubefehl
benutzt wird, da der Speicherort der Ausgabedatei nicht verhersehbar ist.
Voreinstellung: verwendet dpkg-buildpackage
--svn-ignore-new | --svn-ignore
stoppt nicht bei SVN-Konflikten oder
neuen/geänderten Dateien. Um dieses Verhalten für einzelne
Dateien zu einzurichten, setzen Sie die Eigenschaft deb:ignoreM
für diese Dateien auf 1. Lesen Sie auch die Dokumentation der
Eigenschaft svn:ignore im SVN-Buch.
Voreinstellung: stoppt bei Konflikten oder neuen/geänderten Dateien
--svn-dont-clean
führt nicht »debian/rules
clean« aus
Voreinstellung: räumt zuerst auf
--svn-no-links
verwendet keine Dateiverweise, versucht aber
das Arbeitsverzeichnis zu exportieren oder Schwarzpausen davon zu erstellen.
Dies ist nützlich, falls das Bauen Ihres Pakets aufgrund irgendwelcher
Dateien, leerer Verzeichnisse, kaputter Verweise, ... fehlschlägt und
nicht mit dem voreingestellen Modus zum Kopieren von Verweisen transportiert
werden kann.
Voreinstellung: verwendet Verweise, wo dies möglich ist
--svn-dont-purge
entfernt nach dem Bauen nicht das
Bauverzeichnis.
Voreinstellung: entfernt es nach erfolgreichem Bauen.
--svn-reuse
verwendet, falls möglich, bei
nachfolgendem Bauen ein existierendes Bauverzeichnis. Das Bauverzeichnis wird
nach dem Bauen nicht vollständig entfernt, es wird nicht umbenannt,
wenn das Bauen beginnt und die Dateien werden nur darüberkopiert. Dies
ist im mergeWithUpstream-Modus bei großen Paketen
nützlich.
Voreinstellung: Bauverzeichnis wird entfernt
--svn-rm-prev-dir
Falls ein vorheriges Bauverzeichnis gefunden
wird, wird es vor dem Bauen entfernt statt es umzubenennen. Falls
--svn-reuse in der selben Zeile ebenfalls angegeben wurde, tritt das
Verhalten der Wiederverwendung ein.
Voreinstellung: Alte Verzeichnisse werden mit einer »
obsolete«-Endung umbenannt.
--svn-export
exportiert nur das Arbeitsverzeichnis,
führt zum Zusammenführen des Codes notwendige Transaktionen
durch und beendet sich dann.
Voreinstellung: aus
--svn-tag
Abschließendes Bauen: kennzeichnet,
exportiert, baut sauberes &, schreibt einen neuen Changelog-Eintrag
Voreinstellung: aus
--svn-tag-only | --svn-only-tag
baut nicht das Paket, kopiert nur das
Kennzeichen.
Voreinstellung: aus
--svn-retag
entfernt das Zielverzeichnis zuerst, falls
beim Versuch, die Kennzeichenkopie zu erstellen, ein existierendes
Zielverzeichnis gefunden wird.
Voreinstellung: aus
--svn-noautodch
Es wird nicht automatisch ein neuer
Debian-Changelog-Eintrag hinzugefügt.
Voreinstellung: Mittels dch wird eine neuer
UNRELEASED-Changelog-Eintrag erstellt.
--svn-lintian
führt nach Abschluss Lintian für
die resultierende Changes-Datei aus.
Voreinstellung: aus
--svn-move
verschiebt nach Abschluss die erstellten
Dateien (die in .changes aufgeführt sind) in das übergeordnete
Verzeichnis, relativ zu dem, in dem svn-buildpackage gestartet wurde.
Voreinstellung: aus
--svn-move-to=...
gibt das Zielverzeichnis an, in das die
erzeugten Dateien verschoben werden sollen.
Voreinstellung: aus (Dateien bleiben dort, wo der Baubefehl sie ablegt.)
--svn-pkg=packagename
überschreibt den entdeckten Paketnamen.
Benutzen Sie dies mit Vorsicht, da es während der Verarbeitung
möglicherweise zu spät gesetzt wird (z.B. kann der alte Wert
beim Expandieren von Shell-Variablen immer noch dort stehen).
Voreinstellung: aus
--svn-arch=ARCHITEKTUR
Ermöglicht die Angabe der
Bauarchitektur (z.B. zum Bau von i386 auf einem amd64-Rechner.
Voreinstellung: aus
--svn-override=Variable=Wert,weitereVariable=Wert
überschreibt jede
Konfigurationsvariable, die automatisch entdeckt oder in
.svn/deb-layout gefunden wurde.
Voreinstellung: aus
--svn-prebuild | --svn-postbuild | --svn-pretag |
--svn-posttag
Befehle (Hooks), die vor/nach dem Aufrufen des
Bau-/Kennzeichenbefehls ausgeführt werden sollen, z.B. um die
Original-Tarballs aus dem Archiv herunterzuladen. Hier kann Shell-Code
eingebettet werden, dies wird jedoch nicht empfohlen. In der Umgebung sind
verschiedene Hilfsvariablen verfügbar, eine ausführliche
Erklärung finden Sie nachfolgend unter UMGEBUNGSVARIABLEN.
Bitte beachten Sie, dass die Hooks Prebuild und Postbuild die normalen Aktionen
Prebuild und Postbuild von svn-buildpackage ersetzen. Für
Prebuild bedeutet dies, dass die Bauabhängigkeiten nicht geprüft
werden. Für Postbuild heißt das, dass die resultierenden Dateien
nicht verschoben und Lintian nicht ausgeführt wird.
Voreinstellungen: aus
--svn-noninteractive
Mit diesem Parameter wird
svn-buildpackage nicht mit dem Benutzer interagieren.
Voreinstellung: aus
--svn-savecfg
svn-buildpackage wird
standardmäßig benutzt, um bei jedem Aufruf .svn/deb-layout zu
erstellen. Seit Version 0.6.22 wird dieses Verhalten missbilligt.
Mit diesem Parameter wird svn-buildpackage das frühere Verhalten
(teilweise) nachahmen. Im Gegensatz zum missbilligten Verhalten, wird
.svn/deb-layout als lokaler Eingriff angesehen. Das frührere
Verhalten ignorierte einfach alle Layout-Informationen mit
berücksichtigter Version, falls .svn/deb-layout gefunden wurde.
Diese Option wurde bereitgestellt, da sie beim Erstellen einer lokalen Datei zum
Überschreiben nützlich sein kann.
Voreinstellung: aus
--svn-download-orig
Diese Option lässt
svn-buildpackage versuchen, den Tarball der Ursprungsautoren mittels
apt und uscan herunterzuladen.
Voreinstellung: aus
--svn-verbose
detailliertere Ausgabe des Programms
Voreinstellung: aus
-h | --help
zeigt den Hilfstext.
BEISPIELE
Detailliertere Informationen über die Benutzung von svn-buildpackage finden Sie in der Kurzanleitung http://svn-bp.alioth.debian.org/[1]. Um die Arbeit an einem existierenden nativen Debian-Paket von einer *.dsc-Datei zu beginnen, importieren Sie das Depot mit dem Befehl:svn-inject package_0.1.dsc svn://host/debian/devel/packages
svn-inject -o package_0.1-2.dsc svn://host/debian/devel/packages
svn mkdir ../tarballs svn propset svn:ignore "*" ../tarballs uscan --force-download --destdir ../tarballs
svn-buildpackage --svn-lintian -us -uc -rfakeroot
svn mkdir ../build-area # zum Speichern der Ergebnisse svn propset svn:ignore "*" ../build-area svn-buildpackage --svn-ignore-new --svn-builder=pdebuild
svn status # prüft, ob es noch nicht übergebene Änderungen gibt svn-upgrade --verbose ../package-2.0.tar.gz
KONFIGURATIONSDATEI
Das Verhalten von svn-buildpackage kann mittels der Datei ~/.svn-buildpackage.conf verändert werden. Zusätzliche Teile können in jedem Paketarbeitsverzeichnis mittels der Datei .svn/svn-buildpackage.conf hinzugefügt werden. Es ist im wesentlichen eine Liste der langen Befehlszeilenoptionen (ohne führende Minuszeichen, ein Argument je Zeile (ohne Anführungszeichen, die Argumente aus mehreren Wörtern umgeben). Die Variablen werden mit der System-Shell expandiert, falls Shell-Variablen gefunden werden. Vermeiden Sie das Zeichen »~«, da es nicht zuverlässig expandiert wird: Es ist besser, stattdessen $HOME zu verwenden. Beispiel:svn-builder=debuild -EPATH svn-no-links svn-override=origDir=$HOME/debian/upstream/$PACKAGE # svn-ignore-new #svn-lintian
HANDHABUNG DES VERZEICHNIS-LAYOUTS
svn-buildpackage erwartet standardmäßig eine Konfigurationsdatei mit Pfad/URL-Deklaration, .svn/deb-layout. Die Werte können mit der Option --svn-override außer Kraft gesetzt werden, siehe oben. Falls eine Konfigurationsdatei nicht auffindbar war, werden die Werte automatisch bestimmt. Dabei werden die üblichen Annahmen über lokale Verzeichnisse und das Depot-Layout getroffen. Zusätzlich wird während der Konfiguration zu Beginn der Inhalt einer benutzerdefinierten debian/svn-deblayout-Datei importiert. Paketbetreuer können diese Datei im Depot speichern, um korrekte Voreinstellungen an neue svn-buildpackage-Benutzer weiterzugeben. Das Format ist dasselbe wie das der Datei .svn/deb-layout. Als Alternative zur Datei debian/svn-deblayout können Paketbetreuer Subversion-Eigenschaften für das Verzeichnis debian/ setzen. Alle Eigenschaften von debian/, die einen Namen der Form svn-bp:EIGENSCHAFT haben, werden die Quelle der Einstellung EIGENSCHAFT sein, deren Wert über die erste Zeile des Eigenschaftswerts angegeben wird. Falls keine vollständige SVN-URL angegeben wurde, wird das Wurzelverzeichnis des Depots diesem Wert vorangestellt.UMGEBUNGSVARIABLEN
Die folgenden Umgebungsvariablen werden durch svn-buildpackage exportiert und können in Hook-Befehlen oder vom Paketbausystem benutzt werden. PACKAGE, packageder Name des Quellpakets
SVN_BUILDPACKAGE
Version von svn-buildpackage
TAG_VERSION, debian_version
die vollständige
Debian-Versionszeichenkette, die auch für die Kennzeichenkopie benutzt
wird
non_epoch_version
entspricht debian_version, jedoch ohne
irgendwelche Epochenzeichenketten.
upstream_version
entspricht »debian_version«,
aber ohne Debian-Erweiterungen
guess_loc
vermuteter Ursprungspaketname im Pool, etwas
wie libm/libmeta-html-perl_3.2.1.0.orig.tar.gz
DIFFSRC
(experimentell) zeigt den Speicherort der
erstellten Diff-Datei
Alle Layout-Eigenschaften werden ebenfalls in die Umgebung exportiert. Die
Folgenden sind für svn-buildpackage von Bedeutung.
buildArea
der Speicherort des
Baubereichsverzeichnisses
trunkUrl
die URL des Hauptzweigverzeichnisses (trunk)
des aktuellen Pakets
tagsUrl
die URL des Kennzeichenbasisverzeichnisses des
aktuellen Pakets
origDir
das lokale Verzeichnis, in dem der
Original-Tarball liegen sollte
origUrl
die URL, von der der Original-Tarball des
aktuellen Pakets bezogen werden kann
svn-buildpackage kennt die folgenden Variablen:
FORCETAG
ignoriert die Anzeichen eines
unvollständigen Changelogs und kennzeichnet das Depot trotzdem.
FORCEEXPORT
exportiert die Ursprungsquelle sogar dann aus
dem Depot, wenn die Eigenschaft mergeWithUpstream gesetzt ist.
DEBIAN_FRONTEND
Falls DEBIAN_FRONTEND auf
»noninteractive« gesetzt ist, wird --svn-noninteractive
stillschweigend aufgerufen.
EMPFEHLUNGEN
Benutzen Sie Shell-Alias. Hier sind einige Beispiele für Bash:alias svn-b="svn-buildpackage -us -uc -rfakeroot --svn-ignore" alias svn-br="svn-b --svn-dont-purge --svn-reuse" alias svn-bt="svn-buildpackage --svn-tag -rfakeroot"
SIEHE AUCH
/usr/share/doc/svn-buildpackage/()Die Svn-buildpackage-Kurzanleitung
svn-inject(1)
legt ein Debian-Quellpaket in ein
Subversion-Depot.
svn-upgrade(1)
aktualisiert ein Quellpaket aus einer neuen
Revision der Originalautoren.
svn(1)
Client-Befehlszeilenwerkzeug von
Subversion
dpkg-buildpackage(1)
Debian-Quellpaketwerkzeuge
lintian(1)
Debian-Paketprüfer
AUTOREN
Eduard BlochDiese Handbuchseite wurde von Eduard Bloch in
Roff geschreiben.
Goneri Le Bouder
wandelte die Handbuchseiten in SGML um
Neil Williams
wandelte die Handbuchseiten in DocBook-XML um
und ist aktueller Debian-Paketbetreuer
COPYRIGHT
Copyright © 2009 Eduard BlochFUßNOTEN
Mai 2009 | Release: 0.8.2 |