BESCHREIBUNG¶
uscan - durchsucht/beobachtet Quellen der Ursprungsautoren nach neuen
Veröffentlichungen der Software
ÜBERSICHT¶
uscan [
Optionen] [
Pfad-zu-Debian-Quellpaketen …]
BESCHREIBUNG¶
uscan durchsucht die angegebenen Verzeichnisse (oder das aktuelle
Verzeichnis, falls keine angegeben wurden) und sämtliche
Unterverzeichnisse nach Paketen, die eine Steuerdatei
debian/watch
enthalten. Parameter werden dann aus diesen Steuerdateien gelesen und FTP-
oder HTTP-Sites der Ursprungsautoren werden auf neue verfügbare
Aktualisierungen geprüft (indem sie mit der Versionsnummer der
Ursprungsautoren verglichen werden, die wiederum aus der Datei
debian/changelog im gleichen Verzeichnis geholt wird). Die neusten
Aktualisierungen werden wieder heruntergeladen (wie durch ihre Versionsnummer
bestimmt) und falls in der
watch-Datei angegeben, könnte ein
Programm für die neu heruntergeladene Quelle ausgeführt werden.
Die herkömmlichen
debian/watch-Dateien können immer noch
benutzt werden, aber das aktuelle Format ist sowohl einfacher als auch
flexibler. Hier wird das alte Format nicht beschrieben; dessen Dokumentation
finden Sie im Quellcode von Uscan.
Im Folgenden wird vorgeführt, welche Typen von Einträgen in einer
debian/watch-Datei erscheinen können. Offensichtlich würden
nicht alle davon in einer solchen Datei auftauchen; üblicherweise
würde eine eine Zeile für das aktuelle Paket enthalten.
# Format der Versionsnummer, derzeit 3; diese Zeile ist vorgeschrieben!
version=3
# Zeilen werden mit \ fortgesetzt
# Dies ist das Format für eine FTP-Site:
# Vollständige-Site-mit-Mustern [Version [Aktion]]
ftp://ftp.tex.ac.uk/tex-archive/web/c_cpp/cweb/cweb-(.+)\.tar\.gz \
debian uupdate
# Dies ist das Format einer FTP-Site mit Metazeichen regulärer Ausdrücke im
# Dateinamensteil.
ftp://ftp.worldforge.org/pub/worldforge/libs/Atlas-C++/transitional/Atlas-C\+\+-(.+)\.tar\.gz
# Dies ist das Format für eine FTP-Site mit Verzeichnismusterabgleich
ftp://ftp.nessus.org/pub/nessus/nessus-([\d\.]+)/src/nessus-core-([\d\.]+)\.tar\.gz
# Dies kann benutzt werden, falls Sie die PASV-Einstellung für eine
# spezielle Site außer Kraft setzen möchten.
# opts=pasv ftp://…/…
# Dies ist ein Format für eine HTTP-Site, das dem Format einer FTP-Site
# entspricht. uscan startet mit dem Herunterladen der Homepage, die es
# durch Entfernen des letzten URL-Bestandteils erhält, in diesem Fall
# http://www.cpan.org/modules/by-module/Text/
http://www.cpan.org/modules/by-module/Text/Text-CSV_XS-(.+)\.tar\.gz
Dies ist ein abweichendes HTTP-Format, das die direkte Angabe der Homepage
gestattet:
# Homepage Muster [Version [Aktion]]
http://www.dataway.ch/~lukasl/amph/amph.html \
files/amphetamine-([\d\.]*).tar.bz2
# Dies zeigt, dass rekursives Durchsuchen von Verzeichnissen in beiden
# Formen funktioniert, solange die Website Anfragen der Form
# http://site/inter/mediate/dir/ handhaben kann
http://tmrc.mit.edu/mirror/twisted/Twisted/(\d\.\d)/ \
Twisted-([\d\.]*)\.tar\.bz2
http://tmrc.mit.edu/mirror/twisted/Twisted/(\d\.\d)/Twisted-([\d\.]*)\.tar\.bz2
# qa.debian.org führt eine Weiterleitung aus, die eine einfachere Form für
# eine URL Sourceforge-basierter Projekte bietet. Das nachfolgende Format
# wird automatisch umgeschrieben, um den Weiterleitungsdienst zu verwenden.
http://sf.net/audacity/audacity-src-(.+)\.tar\.gz
# githubredir.debian.net ist ein Weiterleitungsdienst für GitHub-Projekte.
# Er kann wie folgt benutzt werden:
http://githubredir.debian.net/github/<user>/<project> (.+).tar.gz
# Dies ist das Format für eine Site, die komische Versionsnummern hat;
# die Klammergruppen werden mit Punkten verbunden, um eine bereinigte
# Versionsnummer zu erzeugen
http://www.site.com/pub/foobar/foobar_v(\d+)_(\d+)\.tar\.gz
# Dies ist ein weiterer Weg, eine Site mit komischen Versionsnummern zu
# handhaben, diesmal mittels Mangling (Anpassen von Paketnamen). (Beachten
# Sie, dass mehrere Gruppen vor dem Mangling zusammengefügt werden und dass
# dieses Mangling nur für die Versionsnummer des Basispfads und nicht für
# die Versionsnummern aller Pfade durchgeführt wird.)
opts="uversionmangle=s/^/0.0./" \
ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/Wine-(.+)\.tar\.gz
# Genauso kann der Teil der Ursprungsautoren an der Debian-Versionsnummer
# verändert werden:
opts=dversionmangle=s/\.dfsg\.\d+$// \
http://some.site.org/some/path/foobar-(.+)\.tar\.gz
# Der Dateiname wird ermittelt, indem der letzte Bestandteil der URL
# genommen und alles nach einem » ?« entfernt wird. Falls dies nicht zu
# einem brauchbaren Dateinamen führt, soll Filenamemangle verwendet werden.
# Zum Beispiel könnte <ein
# href="http://foo.bar.org/download/?path=&download=foo-0.1.1.tar.gz">
# gehandhabt werden wie
# opts=filenamemangle=s/.*=(.*)/$1/ \
# http://foo.bar.org/download/\?path=&download=foo-(.+)\.tar\.gz.
#
# <Ein href="http://foo.bar.org/download/?path=&download_version=0.1.1">
# könnte wie
# opts=filenamemangle=s/.*=(.*)/foo-$1\.tar\.gz/ \
# http://foo.bar.org/download/\?path=&download_version=(.+)
# gehandhabt werden.
# Die Option »downloadurlmangle« kann benutzt werden, um die URL der Datei
# zu ändern, die heruntergeladen werden soll. Dies kann nur mit
# http://-URLs benutzt werden. Dies kann nötig sein, falls der auf der
# Webseite angegebene Verweis automatisch auf irgendeine Weise in einen
# umgewandelt werden muss, der funktioniert, zum Beispiel:
# opts=downloadurlmangle=s/prdownload/download/ \
# http://developer.berlios.de/project/showfiles.php?group_id=2051 \
# http://prdownload.berlios.de/softdevice/vdr-softdevice-(.+).tgz
Kommentarzeilen können mit einem »
#«-Zeichen eingeleitet
werden. Zeilen können mit einem abschließenden
Rückwärtsschrägstrich fortgesetzt werden.
Die erste (Nicht-Kommentar-)Zeile der Datei muss mit »version=3«
beginnen. Dies ermöglicht zukünftige Erweiterungen, ohne dass der
Name der Datei geändert werden muss.
Es gibt zwei Möglichkeiten für die Syntax einer HTTP-
watch-Dateizeile und nur eine für eine FTP-Zeile. Wir beginnen mit
dem üblichen (und einfacheren) Format. Nachfolgend wird das optionale
erste Feld »opts=…« beschrieben und im Folgenden ignoriert.
Das erste Feld gibt das vollständige Muster der URLs an, nach denen gesucht
wird. Im Fall einer FTP-Site wird der Inhalt des abgefragten Verzeichnisses
angefordert und dieser wird nach Dateien mit passendem Basisnamen durchsucht
(alles nach dem letzten »
/«). Im Falle einer HTTP-Site wird
alles nach dem letzten Schrägstrich weggelassen und die so erhaltene URL
heruntergeladen und nach Hrefs durchsucht (Verweise der Form <a
href=…>), entweder nach dem vollständigen angegebenen URL-Muster
oder nach dem absoluten Teil (alles ohne den
http://Rechner.Name/-Teil) oder
dem Basisnamen (nur dem Teil nach dem
/ am Ende). Alles bis zum
Schrägstrich am Ende wird als wortgetreue URL genommen, solange in diesem
Teil der URL keine Klammern vorkommen (»
(« und
»
)«): falls doch, wird der Verzeichnisname auf die selbe
Weise abgeglichen, wie es nachfolgend für den letzten Bestandteil der URL
beschrieben wird. (Beachten Sie, dass Zeichen mit Sonderbedeutung für
reguläre Ausdrücke wie »
+« buchstäblich
betrachtet werden, solange sie in einem Pfadbestandteil vorkommen, der
Klammern enthält; siehe das vorhergehende Atlas-C++-Beispiel.
Außerdem müssen die Klammern in jedem Pfadbestandteil passen.)
Das Muster (nach dem Schrägstrich am Ende) ist ein regulärer
Perl-Ausdruck (Einzelheiten darüber sind unter
perlre(1) zu
finden). Sie müssen das Muster so streng gestalten, dass es nur auf die
Software der Ursprungsautoren passt, an der Sie interessiert sind und auf
nichts anderes. Außerdem wird das Muster an den Anfang und das Ende
verankert, so dass es zum vollständigen Namen passen muss. (Beachten sie,
dass die Href für HTTP-URLs den absoluten Pfad oder die vollständige
Site und den Pfad enthalten kann und immer noch akzeptiert wird.) Das Muster
muss mindestens eine Perl-Gruppe enthalten, wie im nächsten Absatz
erläutert.
Ist eine Liste von »Dateien« mit passendem Muster vorhanden, werden
ihre Versionsnummern extrahiert, indem der Teil, der zu den Gruppen
regulärer Perl-Ausdrücke passt, gekennzeichnet durch »
(...)«, durch Punkte »
.« getrennt
zusammengesetzt wird. Das Ergebnis wird als Versionsnummer der Datei
verwendet. Dann wird ein Mangling der Versionsnummer durchgeführt, falls
dies von der nachfolgend beschriebenen Option »uversionmangle«
benötigt wird. Am Ende werden die Dateiversionen verglichen, um diejenige
mit der größten Versionsnummer zu finden, wie durch
dpkg
--compare-versions festgelegt. Beachten Sie, falls Sie Perl-Gruppen
benötigen, die nicht in der Versionsnummer verwendet werden, dass Sie
entweder »
(?:...)« oder die Option
»uversionmangle« verwenden, um die Unordnung zu beseitigen.
Die aktuelle Version (der Ursprungsautoren) kann als zweiter Parameter in der
watch-Dateizeile angegeben werden. Falls dies
debian ist oder
fehlt, wird die aktuelle Debian-Version (wie durch
debian/changelog
bestimmt) benutzt, um die aktuelle Version der Ursprungsautoren zu bestimmen.
Die aktuelle Version der Ursprungsautoren kann außerdem als
Befehlszeilenoption
--upstream-version angegeben werden, die die
Versionsnummer der Ursprungsautoren des aktuell installierten Pakets angibt
(d.h. die Debian-Versionsnummer ohne Epoche und Debian-Revision). Für die
Versionsnummer der Ursprungsautoren wird dann mittels der Option
»dversionmangle«, falls angegeben, ein Mangling durchgeführt,
wie nachfolgend beschrieben. Falls die neuste verfügbare Version neuer
ist als die aktuelle Version, wird sie in das übergeordnete Verzeichnis
heruntergeladen, es sei denn, die Optionen
--report oder
--report-status werden verwendet. Sobald die Datei heruntergeladen wurde, wird
ein symbolischer Verweis zur Datei von
<Paket>_<Version>.orig.tar.{gz|bz2|lzma|xz} erstellt, wie
in der Hilfe für die Option
--symlink beschrieben.
Falls schlussendlich ein dritter Parameter (eine Aktion) in der
watch-Dateizeile angegeben wurde, wird dieser als Name des Befehls
genommen und der Befehl
Befehl --upstream-version Version Dateiname
wird ausgeführt, entweder mit der Originaldatei oder des Namens des
symbolischen Verweises. Ein üblicher derartiger Befehl wäre
uupdate(1). (Beachten Sie, dass sich die Aufrufsyntax geringfügig
unterscheidet, wenn die
watch-Datei ohne eine
»
version=…«-Zeile benutzt wird; der dort
ausgeführte Befehl war »
Befehl Dateiname
Version«.) Falls der Befehl
uupdate ist, wird die Option
--no-symlink als erste Option an
uupdate übergeben, da das
angefragte Erstellen eines symbolischen Verweises bereits durch
uscan
erledigt wurde.
Die alternative Variante der
watch-Dateisyntax für HTTP-URLs ist wie
folgt: Das erste Feld ist die Homepage, die heruntergeladen und dann nach
Hrefs durchsucht werden soll, die dem im zweiten Feld übergebenen Muster
entsprechen. (Dieses Muster wird wieder an den Anfang und das Ende verankert,
so dass es der ganzen Href entsprechen muss. Falls Sie nur den Basisnamen der
Href vergleichen möchten, können Sie ein Muster wie
».*/Name-(.+)\.tar\.gz« verwenden, falls Sie wissen, dass dort eine
vollständige URL vorliegt oder besser immer noch:
»(?:.*/)?Name-(.+)\.tar\.gz«, falls dies der Fall ist oder nicht.
Beachten Sie, (?...) zu benutzen, um einen Rückwärtsbezug zu
vermeiden.) Falls irgendwelche der Hrefs auf der Homepage, die zum
(verankerten) Muster passen, relative URLs sind, werden sie als relativ zur
Basis-URL der Homepage betrachtet (d.h. mit allem nach dem entfernten
abschließenden Schrägstrich) oder relativ zur auf der Homepage
selbst mit einer als <base href="…">-Markierung
angegebenen Basis-URL. Das dritte und vierte Feld sind die Felder
Versionsnummer und Aktion wie vorher.
OPTIONEN JE SITE¶
Einer
watch-Dateizeile kann »
opts=Optionen«
vorangestellt werden, wobei
Optionen eine durch Kommas getrennte Liste
von Optionen ist. Die ganze
Optionen-Zeichenkette kann in doppelte
Anführungszeichen eingeschlossen werden, was nötig ist, wenn
Optionen irgendwelche Leerzeichen enthalten. Folgende Optionen werden
erkannt:
- active und passive (oder pasv)
- Falls dies auf einer FTP-Zeile verwendet wird, setzt es die
Wahl außer Kraft, ob der PASV-Modus verwendet wird oder nicht, und
erzwingt die Benutzung des angegebenen Modus für diese Site.
- uversionmangle=Regeln
- Dies wird für das Mangling der Versionsnummer der
Ursprungsautoren verwendet, wie sie durch die ftp://…- oder
http://-Regeln wie folgt abgeglichen wird. Zuerst wird die
Regel-Zeichenkette bei jedem » ;« in mehrere
Regeln unterteilt. Dann wird ein Mangling der Versionsnummer der
Ursprungsautoren durchgeführt, indem Regel auf die Version in
ähnlicher Weise wie für das Ausführen des Perl-Befehls
$version =~ Regel;
auf jede Regel angewandt wird. Daher könnten geeignete Regeln »
s/^/0./« sein, um 0. an die Versionsnummer
anzuhängen und » s/_/./g«, um Unterstriche in Punkte
zu ändern. Beachten Sie, dass die Regel-Zeichenkette Kommas
enthalten kann; dies sollte kein Problem sein.
Regel kann nur die Operationen »s«,
»tr« und » y« verwenden. Wenn die
Operation » s« benutzt wird, sind nur die Schalter
»g«, »i« und » x«
verfügbar und Regel kann keine Ausdrücke enthalten, die
die Möglichkeit haben, Code auszuführen (d.h. die Gebilde (?{})
und (??{}) werden nicht unterstützt.
Falls die Operation » s« benutzt wird, kann die Ersetzung
Rückwärtsbezüge auf Ausdrücke innerhalb von Klammern
im passenden regulären Ausdruck wie »
s/-alpha(\d*)/.a$1/« enthalten. Diese
Rückwärtsbezüge müssen die »
$1«-Syntax verwenden, da die » \1«-Syntax
nicht unterstützt wird.
- dversionmangle=Regeln
- Dies wird für das Mangling der Debian-Versionsnummer
des aktuell installierten Pakets auf die gleiche Art wie bei der Option
uversionmangle benutzt. Daher könnte eine geeignete Regel
» s/\.dfsg\.\d+$//« lauten, um eine
».dfsg.1«-Endung von der Debian-Versionsnummer zu
entfernen oder Versionsnummern des Typs » .pre6« zu
handhaben. Die Regeln-Zeichenkette kann wieder Kommas enthalten;
dies sollte kein Problem sein.
- versionmangle=Regeln
- Dies ist eine syntaktisches Abkürzung für
uversionmangle= Regeln,dversionmangle=Regeln,
es wendet die selben Regeln sowohl auf die Versionsnummern der
Ursprungsautoren als auch auf die von Debian an.
- filenamemangle=Regeln
- Dies wird für das Mangling des Dateinamens benutzt,
unter dem die heruntergeladene Datei gespeichert wird und auf die selbe
Weise ausgewertet wie die Option uversionmangle. Beispiele für
die Verwendung finden sich im vorhergehenden Abschnitt.
- downloadurlmangle=Regeln
- Dies wird für das Mangling der URL verwendet, die zum
Herunterladen benutzt wird. Die URL wird zuerst basierend auf der
heruntergeladenen Homepage und des passenden Musters berechnet, dann wird
die Versionsnummer aus dieser URL bestimmt. Am Ende werden alle durch
diese Option angegebenen Regeln angewandt, bevor tatsächlich versucht
wird, sie herunterzuladen. Ein Beispiel für die Verwendung findet
sich im vorhergehenden Abschnitt.
Prüfung von Verzeichnisnamen¶
Ähnlich wie viele andere Skripte im Paket
devscripts, erkundet
uscan die abgefragten Verzeichnisbäume nach
debian/changelog- und
debian/watch-Dateien. Als eine
Schutzmaßnahme gegen verirrte Dateien, die potenziell Probleme bereiten
und um die Leistung zu steigern, wird es den Namen des übergeordneten
Verzeichnisses untersuchen, sobald es eine
debian/changelog-Datei
findet, und prüfen ob der Verzeichnisname dem Paketnamen entspricht. Es
wird nur versuchen, neuere Versionen des Pakets herunterzuladen und dann jede
angefragte Aktion durchführen, falls der Verzeichnisname zum Paketnamen
passt. Wie dies genau geschieht, wird durch die beiden
Konfigurationsdateivariablen
DEVSCRIPTS_CHECK_DIRNAME_LEVEL und
DEVSCRIPTS_CHECK_DIRNAME_REGEX sowie ihre entsprechenden
Befehlszeilenoptionen
--check-dirname-level und
--check-dirname-regex gesteuert.
DEVSCRIPTS_CHECK_DIRNAME_LEVEL kann die folgenden Werte annehmen:
- 0
- prüft den Verzeichnisnamen nie.
- 1
- prüft nur den Verzeichnisnamen, falls bei der Suche
nach debian/changelog das Verzeichnis geändert werden muss,
das heißt, das Verzeichnis, das debian/changelog enthält
nicht das Verzeichnis ist, aus dem uscan aufgerufen wurde. Dies ist
das Standardverhalten.
- 2
- prüft den Verzeichnisnamen immer.
Der Verzeichnisname wird geprüft, indem getestet wird, ob der aktuelle
Verzeichnisname (wie er durch
pwd(1) bestimmt wurde) zum regulären
Ausdruck passt, der durch die Konfigurationsdateioption
DEVSCRIPTS_CHECK_DIRNAME_REGEX oder die Befehlszeilenoption
--check-dirname-regex regulärer_Ausdruck angegeben wurde.
Hierbei ist
regulärer_Ausdruck ein regulärer Perl-Ausdruck
(siehe
perlre(3perl)), der an den Anfang und das Ende verankert wird.
Falls
regulärer_Ausdruck ein »/« enthält, muss er
auf den vollständigen Verzeichnispfad passen. Wenn nicht, dann muss er
auf den vollständigen Verzeichnisnamen passen. Falls
regulärer_Ausdruck die Zeichenkette »PACKAGE«
beinhaltet, wird diese durch den Namen des Quellpakets ersetzt, wie er aus dem
Changelog bestimmt wird. Der vorgegebene Wert für den
regulären Ausdruck ist: »PACKAGE(-.+)?«, daher entspricht er
Verzeichnisnamen wie PACKAGE und PACKAGE-Version.
BEISPIEL¶
Dieses Skript wird eine vollautomatische Aktualisierung aus den Ursprungsquellen
durchführen.
#!/bin/sh -e
# wird aufgerufen mit »--upstream-version« <Version> <Datei>
uupdate "$@"
package=`dpkg-parsechangelog | sed -n 's/^Source: //p'`
cd ../$package-$2
debuild
Beachten Sie, dass
dupload oder
dput nicht automatisch aufgerufen
werden, da der Betreuer Plausibilitätsprüfungen für die
Software durchführen sollte, bevor sie nach Debian hochgeladen wird.
OPTIONEN¶
- --report, --no-download
- berichtet nur über neue verfügbare Versionen,
lädt aber nichts herunter.
- --report-status
- berichtet über den Zustand aller Pakete, sogar von
denen, die aktuell sind, lädt aber nichts herunter.
- --download
- berichtet und lädt herunter. (Dies ist das
Standardverhalten.)
- --destdir
- Pfad des Verzeichnisses in das heruntergeladen werden soll.
Falls der angegebene Pfad nicht absolut ist, wird er entweder relativ zum
aktuellen Verzeichnis oder, falls Verzeichnisauswertung aktiviert ist, zum
Quellverzeichnis des Pakets sein.
- --force-download
- lädt von der Ursprungsquelle sogar dann herunter, wenn
es aktuell ist (wird jedoch keine lokalen Dateien
überschreiben).
- --pasv
- erzwingt bei FTP-Verbindungen den PASV-Modus.
- --no-pasv
- verwendet bei FTP-Verbindungen nicht den PASV-Modus.
- --timeout N
- setzt die Zeitüberschreitung auf N Sekunden (Vorgabe
20 Sekunden).
- --symlink
- erstellt symbolische orig.tar.gz-Verweise zu allen
heruntergeladenen Dateien, falls ihre Erweiterungen .tar.gz oder
.tgz sind. Dies wird außerdem für orig.tar.bz2 (für
.tar.bz2, .tbz und .tbz2 der Ursprungsautoren),
orig.tar.lzma (für .tar.lzma, .tlz, .tlzm und
.tlzma der Ursprungsautoren) und orig.tar.xz (für
.tar.xz und .txz der Ursprungsautoren) so gehandhabt. (Dies
ist das Standardverhalten.)
- --rename
- benennt, wie oben beschrieben, die heruntergeladenen
Dateien in ihre Debian- orig.tar.gz-, -orig.tar.bz2-,
-orig.tar.lzma- oder - orig.tar.xz-Namen um, anstatt
symbolische Verweise darauf zu erstellen.
- --repack
- Nachdem ein LZMA-Tar-, Xz-Tar, Bzip-Tar oder Zip-Archiv
heruntergeladen wurde, wird es neu als Gzip-Tar-Archiv gepackt, das
derzeit immer noch als Teil eines Debian-Quell-Pakets benötigt wird.
Falls das heruntergeladene Archiv kein LZMA-Tar-, Xz-Tar, Bzip-Tar oder
Zip-Archiv ist (d.h. es hat keine .tlz-, .tlzm-, .tlzma-, .tar.lzma-,
.txz-, .tar.xz-, .tbz-, .tbz2-, .tar.bz2- oder .zip-Endung), wird nichts
getan. Das Paket Unzip muss installiert sein, um LZMA- oder Xz-Archive neu
zu packen.
- --no-symlink
- erstellt nicht diese symbolischen Verweise und benennt die
Dateien nicht um.
- --dehs
- benutzt für die Ausgabe ein XML-Format, wie es vom
DEHS-System benötigt wird.
- --no-dehs
- verwendet das traditionelle Uscan-Ausgabeformat. (Dies ist
das Standardverhalten.)
- --package Paket
- gibt den Namen des zu prüfenden Pakets an, anstatt
debian/changelog zu untersuchen; dies erfordert die Optionen
--upstream-version (es sei denn, in der Datei watch wurde
eine Version angegeben) sowie --watchfile. Zudem wird kein
Verzeichnis durchsucht und es wird nichts heruntergeladen. Diese Option
ist wahrscheinlich in Verbindung mit dem DEHS-System (und --dehs)
an nützlichsten.
- --upstream-version Version der
Ursprungsautoren
- gibt die aktuelle Version der Ursprungsautoren an, statt
die watch- oder changelog-Datei zu untersuchen, um sie zu
bestimmen. Dies wird ignoriert, falls ein Verzeichnis-Scan
durchgeführt und mehr als eine watch-Datei gefunden wird.
- --watchfile watch-Datei
- gibt die watch-Datei an, statt einen
Verzeichnis-Scan durchzuführen, um sie zu bestimmen. Falls diese
Option ohne --package benutzt wird, muss uscan aus dem
Debian-Paketquellenverzeichnisbaum aufgerufen werden (so dass
debian/changelog einfach beim Durchlaufen des Verzeichnisbaums
gefunden werden kann).
- --download-version Version
- gibt die Version an, zu der die Veröffentlichung der
Ursprungsautoren passen muss, um anstelle der Veröffentlichung mit
der höchsten Versionsnummer berücksichtigt zu werden.
- --download-current-version
- lädt die aktuelle paketierte Version herunter.
- --verbose
- erzeugt eine detaillierte Ausgabe.
- --no-verbose
- erzeugt keine detaillierte Ausgabe. (Dies ist das
Standardverhalten.)
- --debug
- gibt die heruntergeladenen Webseiten auf der
Standardausgabe für die Fehlersuche in Ihrer Watch-Datei aus.
- --check-dirname-level N
- Die Erklärung dieser Option finden Sie im
vorhergehenden Abschnitt Prüfung von
Verzeichnisnamen.
- --check-dirname-regex
regulärer_Ausdruck
- Die Erklärung dieser Option finden Sie im
vorhergehenden Abschnitt Prüfung von
Verzeichnisnamen.
- --user-agent, --useragent
- setzt die vorgegebene User-Agent-Kopfzeile außer
Kraft.
- --no-conf, --noconf
- keine Konfigurationsdateien lesen, Dies kann nur als erste
auf der Befehlszeile angegebene Option benutzt werden.
- --help
- gibt eine kurze Gebrauchsinformation.
- --version
- zeigt Versionsinformationen.
KONFIGURATIONSVARIABLEN¶
Die beiden Konfigurationsdateien
/etc/devscripts.conf und
~/.devscripts werden durch eine Shell in dieser Reihenfolge eingelesen,
um Konfigurationsvariablen zu setzen. Diese können durch
Befehlszeilenoptionen außer Kraft gesetzt werden. Zu diesem Zweck werden
Umgebungsvariablen ignoriert. Falls die erste angegebene Befehlszeilenoption
--noconf ist, werden diese Dateien nicht gelesen. Die derzeit bekannten
Variablen sind:
- USCAN_DOWNLOAD
- Falls dies auf no gesetzt ist, werden neuere Dateien
der Ursprungsautoren nicht heruntergeladen; dies entspricht den Optionen
--report oder --no-download.
- USCAN_PASV
- Falls dies auf yes oder no gesetzt ist, wird
dies erzwingen, dass FTP-Verbindungen den PASV-Modus verwenden
beziehungsweise nicht verwenden. Falls dies auf default gesetzt
ist, wird Net::FTP(3) eine Auswahl treffen (basiert
hauptsächlich auf der Umgebungsvariable FTP_PASSIVE).
- USCAN_TIMEOUT
- Falls dies auf eine Zahl N gesetzt ist, wird eine
Zeitüberschreitung nach N Sekunden eingestellt. Dies
entspricht der Option --timeout.
- USCAN_SYMLINK
- Falls dies auf no gesetzt ist, wird kein
symbolischer Verweis für Paket_Version.orig.tar.{gz|bz2|lzma|xz}
erstellt (entspricht der Option --no-symlink). Falls es auf
yes oder symlink gesetzt ist, dann werden symbolische
Verweise erstellt. Falls es auf rename gesetzt ist, werden die
Dateien umbenannt (entspricht der Option --rename).
- USCAN_DEHS_OUTPUT
- Falls dies auf yes gesetzt ist, wird eine Ausgabe im
DEHS-Stil verwendet. Dies entspricht der Option --dehs.
- USCAN_VERBOSE
- Falls dies auf yes gesetzt ist, wird eine
detaillierte Ausgabe erzeugt. Dies entspricht der Option
--verbose.
- USCAN_USER_AGENT
- Falls gesetzt, wird die angegebene User-Agent-Zeichenkette
anstelle der vorgegebenen benutzt. Dies entspricht der Option
--user-agent.
- USCAN_DESTDIR
- Falls gesetzt, werden heruntergeladene Dateien in diesem
Verzeichnis abgelegt. Dies entspricht der Option --destdir.
- USCAN_REPACK
- Falls dies auf yes gesetzt ist, dann wird
uscan nach dem Herunterladen ein Bzip-Tar-, LZMA-Tar, Xz-Tar- oder
Zip-Archiv neu zu einem Gzip-Tar packen. Dies entspricht der Option
--repack.
EXIT-STATUS¶
Der Exit-Status gibt einige Hinweise, ob eine neuere Version gefunden wurde oder
nicht; es wird geraten, die Ausgabe zu lesen, um genau zu bestimmen, was
geschehen ist und ob irgendwelche Warnungen zu beachten sind.
- 0
- Es wurde entweder --help oder --version
benutzt oder es wurde für eine untersuchte watch-Datei eine
neuere Version der Originalautoren gefunden.
- 1
- Es wurde für keine der untersuchten
watch-Dateien eine neuere Version der Ursprungsautoren
gefunden.
CHRONIK UND AKTUALISIERUNG¶
Dieser Abschnitt beschreibt kurz die rückwärtskompatiblen
watch-Dateifunktionalitäten, die in jeder
watch-Dateiversion hinzugefügt wurden und die erste Version des
Devscripts-Pakets, das sie verstand.
- Vorversion 2
- An jenen Tagen war die watch-Dateisyntax signifikant
anders. Verwenden Sie sie nicht. Falls Sie ein Upgrade von einer
watch-Datei der Vorversion 2 durchführen, wird Ihnen
empfohlen, diese Handbuchseite zu lesen und von Grund auf neu zu
beginnen.
- Version 2
- Devscripts-Version 2.6.90: die erste Verkörperung des
aktuellen watch-Dateistils
- Version 3
- Devscripts-Version 2.8.12 führte das Folgende ein:
korrekte Handhabung von Sonderzeichen regulärer Ausdrücke im
Pfadteil, Verzeichnis-/Pfadabgleich, Versionsnummern in mehreren Teilen,
Versionsnummer-Mangling. Neuere Versionen haben außerden URL-Mangling
eingeführt.
Falls Sie ein Upgrade von Version 2 durchführen, besteht die
Hauptinkomatibilität, wenn Sie mehrere Gruppen im Musterteil haben;
während die erste in Version 2 benutzt würde, werden sie alle in
Version 3 verwendet. Um dieses Verhalten zu vermeiden, ändern Sie die
Nichtversionsnummergruppen so, dass sie (?:...)- anstelle von einfachen
(...)-Gruppen sind.
SIEHE AUCH¶
dpkg(1),
perlre(1),
uupdate(1) und
devscripts.conf(5)
AUTOR¶
Die Originalversion wurde von Christoph Lameter <clameter@debian.org>
geschrieben. Bedeutende Verbesserungen, Änderungen und Fehlerbehebungen
wurden von Julian Gilbey <jdg@debian.org> vorgenommen. Piotr Roszatycki
<dexter@debian.org> fügte FTTP-Unterstützung hinzu. Das
Programm wurde neu in Perl von Julian Gilbey geschrieben.