Provided by: svn-buildpackage_0.8.7_all bug

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

       mergeWithUpstream erfordert, dass das Paketbausystem einen Tarball vorbereiten kann,
       üblicherweise mittels make dist und Autotools. Alle Pakete der Ursprungsautoren werden in
       irgendeiner Weise das Erstellen von Tarballs unterstützen und native Pakete, die Autotools
       benutzen oder die eine interne Tarball-Unterstützung haben, können mergeWithUpstream
       verwenden, um erzeugte Dateien handzuhaben, die zum Bauen des Pakets erforderlich sind,
       die aber nicht im SVN liegen. Beispiele, wie Sie vorgehen können, finden Sie in der
       Kurzanleitung. Native Pakete, die keine Autotools verwenden und keine interne
       Tarball-Unterstützung haben, können immer noch mittels des Make-Ziels useNativeDist auf
       der obersten Ebene des Makefiles dem Tarball erzeugte Dateien hinzufügen. Dieses
       benutzerdefinierte Ziel muss idempotent sein und die gewünschten Dateien nur mittels der
       exportierten SVN-Quelle und der Bauabhängigkeiten ändern bzw. erzeugen. Dies ermöglicht
       svn-buildpackage ein make native-dist-Ziel auf der obersten Ebene Ihres Makefiles zu
       benutzen. Setzen Sie die Eigenschaft useNativeDist auf das ./debian/-Verzeichnis:

           $ svn propset useNativeDist 1 debian

       Das voreingestellte Verhalten von svn-buildpackage ist wie folgt:

       Das Arbeitsverzeichnisses wird geprüft, nicht übergebene Dateien werden beanstandet (siehe
       auch --svn-ignore-new).

       Der Original-Tarball wird, wenn nötig, in den Baubereich kopiert (siehe auch
       --svn-no-links).

       Der Tarball wird extrahiert (im Zusammenführungsmodus) oder das SVN-Arbeitsverzeichnis
       wird in das Bauverzeichnis exportiert (siehe auch unten und --svn-no-links).

       Es wird mit dpkg-buildpackage gebaut (siehe auch --svn-builder, --svn-lintian, etc.).

       Es wird ein Changelog-Eintrag für die zukünftige Version erstellt.

OPTIONEN

       svn-buildpackage akzeptiert die folgenden Befehlszeilenoptionen:

       --svn-builder=BEFEHL
           gibt 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

       Um die Arbeit an einem existierenden Paket der Ursprungsautoren in Debian von einer
       *.dsc-Datei zu beginnen, importieren Sie das Depot mit dem Befehl:

           svn-inject -o package_0.1-2.dsc svn://host/debian/devel/packages

       Bevor Sie ein Paket der Ursprungsautoren bauen, stellen Sie sicher, dass die
       Originalquelle verfügbar ist, falls z.B. uscan funktioniert:

           svn mkdir ../tarballs
           svn propset svn:ignore "*" ../tarballs
           uscan --force-download --destdir ../tarballs

       Verwenden Sie den nachfolgenden Befehl, um das Bauen des Pakets aus dem Subversion-Depot
       zu testen. Sehen Sie für Optionen wie -us etc. in der dpkg-buildpackage(1)-Handbuchseite
       nach.

           svn-buildpackage --svn-lintian -us -uc -rfakeroot

       Um zu prüfen, ob das Paket in einem ordnungsgemäßen Status gebaut wurde, testen Sie es mit
       pbuilder(1):

           svn mkdir ../build-area  # zum Speichern der Ergebnisse
           svn propset svn:ignore "*" ../build-area
           svn-buildpackage --svn-ignore-new --svn-builder=pdebuild

       Wenn eine neue Veröffentlichung der Ursprungsautoren verfügbar wird, übertragen Sie alle
       Änderungen. Dann haben Sie den Arbeitsverzeichnisbaum in einem sauberen Zustand. Dann
       benutzen Sie svn-upgrade(1) zum Importieren der neuen Veröffentlichung:

           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, package
           der 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"

       Diese Befehle haben jeweils diese Bedeutungen: Bauen ohne Berücksichtigung neuer oder
       geänderter Dateien; Bauen ohne Berücksichtigung neuer oder geänderter Dateien und
       Wiederverwendung des Bauverzeichnisses; Bauen (zum Hochladen) und Kennzeichnen.

       SSH bietet die einfachste Möglichkeit, auf ferne Depots zuzugreifen, es benötigt
       allerdings normalerweise häufiger mit svn-buildpackage die Eingabe eines Passworts.
       Behelfslösungen umfassen die Verwendung eines SSH-Schlüssels ohne Passphrase (dies ist
       allerdings unsicher und relativ langsam) oder die Funktionalität zum Zwischenspeichern von
       Verbindungen, die aktuelle SSH-Versionen bieten. Einzelheiten finden Sie im
       svn-buildpackage-Handbuch.

       Eine weitere Möglichkeit, eine ferne Verbindung zu erhalten, ist die Benutzung des
       Subversion-DAV-Moduls (mit SSL und Apache-Benutzerauthentifizierung). Einzelheiten finden
       Sie in der svn-buildpackage-Kurzanleitung.

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 Bloch
           Diese 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 Bloch

FUßNOTEN

        1. http://svn-bp.alioth.debian.org/
           http://svn-bp.alioth.debian.org/