Scroll to navigation

USCAN.DE(1) USCAN.DE(1)

BEZEICHNUNG

uscan - durchsucht/beobachtet Quellen der Ursprungsautoren nach neuen Veröffentlichungen der Software

ÜBERSICHT

uscan [Optionen] [Pfad]

BESCHREIBUNG

For basic usage, uscan is executed without any arguments from the root of the Debianized source tree where you see the debian/ directory, or a directory containing multiple source trees.

Unless --watchfile is given, uscan looks recursively for valid source trees starting from the current directory (see the below section "Directory name checking" for details).

For each valid source tree found, typically the following happens:

  • uscan liest den ersten Eintrag in debian/changelog, um den Namen des Quellpakets <Quellpaket> und die neueste Version der Ursprungsautoren zu bestimmen.
  • uscan verarbeitet die Watch-Zeilen debian/watch von oben nach unten in einem einzigen Durchlauf.
  • uscan lädt eine Web-Seite von der in debian/watch angegebenen URL herunter.
  • uscan extrahiert Hrefs, die auf Tarbälle der Ursprungsautoren von der durch Suchmuster in debian/watch angegebenen Web-Seite zeigen.
  • uscan lädt den Tarball der Ursprungsautoren mit der höchsten Version, die neuer ist, als die letzte Version der Ursprungsautoren, herunter.
  • uscan speichert den heruntergeladenen Tarball ins übergeordnete ../ Verzeichnis: ../<Ursprungsautorenpaket>-<neueste-Ursprungsautorenversion>.tar.gz
  • uscan ruft mk-origtargz auf, um den Quell-Tarball zu erstellen: ../<Quellpaket>_<Originalversion>.orig.tar.gz
Bei einem Paket aus mehreren Tarbällen der Ursprungsautoren (MUT) wird der untergeordnete Tarball der Ursprungsautoren stattdessen ../<Quellpaket>_<Originalversion>.orig-<Komponente>.tar.gz genannt.
Dies wird wiederholt, bis alle Zeilen in debian/watch verarbeitet wurden.
uscan ruft uupdate auf, um den an Debian angepassten Quellverzeichnisbaum zu erstellen: ../<Quellpaket>-<Originalversion>/*

Bitte beachten Sie Folgendes:

  • For simplicity, the compression method used in examples is gzip with .gz suffix. Other methods such as xz, bzip2, and lzma with corresponding xz, bz2 and lzma suffixes may also be used.
  • Die neue Version=4 aktiviert die Behandlung von Paketen mit mehreren Tarbällen der Ursprungsautoren (MUT), dies ist aber ein seltener Fall bei der Debian-Paketierung. Für ein einzelnes Tarball-Paket der Ursprungsautoren gibt es nur eine Watch-Zeile und kein ../<Quellpaket>_<Originalversion>.orig-<Komponente>.tar.gz .
  • uscan erzeugt mit der Option --verbose einen für Menschen lesbaren Bericht über die Ausführung von uscan.
  • uscan erzeugt mit der Option --debug einen für Menschen lesbaren Bericht über die Ausführung von uscan einschließlich der Status interner Variablen.
  • uscan with the --extra-debug option produces a human readable report of uscan's execution including internal variable states and remote content during "search" step.
  • uscan erzeugt mit der Option --dehs einen Bericht über den Paketstatus der Ursprungsautoren im XML-Format für andere Programme, wie das Debian External Health System.
  • Der vorrangige Zweck von uscan ist es, festzustellen, ob die neueste Version des Tarballs der Ursprungsautoren verwendet wird oder nicht und den neuesten Tarball der Ursprungsautoren herunterzuladen. Die Ordnung der Versionen wird durch dpkg --compare-versions festgelegt.
  • uscan beschränkt mit der Option --safe seine Funktionalität auf seinen vorrangigen Zweck. Sowohl das erneute Packen heruntergeladener Dateien als auch das Aktualisieren des Quellverzeichnisbaums werden übersprungen, um die Ausführung unsicherer Skripte zu vermeiden. Dies ändert außerdem die Voreinstellung auf --no-download und --skip-signature.

FORMAT DER WATCH-DATEI

Das derzeitig Format der Version 4 von debian/watch kann wie folgt zusammengefasst werden

  • Führende Leerzeichen und Tabulatoren werden weggelassen.
  • Leere Zeilen werden weggelassen.
  • Eine Zeile, die mit # (Doppelkreuz) beginnt, ist eine Kommentarzeile und wird weggelassen.
  • Ein einzelner \ (Rückwärtsschrägstrich) am Ende einer Zeile wird weggelassen und die nächste Zeile wird nach dem Entfernen führender Leerzeichen und Tabulatoren angehängt. Die verbundene Zeile wird als einzelne Zeile ausgewertet. (Es ist maßgeblich, ob das Leerzeichen vor dem einzelnen \ vorhanden ist oder nicht.)
  • Die erste Nichtkommentarzeile ist:

Dies ist eine benötigte Zeile und die empfohlene Versionsnummer.

Falls Sie hier stattdessen »version=3« benutzen, funktionieren einige Funktionalitäten möglicherweise nicht wie hier beschrieben. Siehe "CHRONIK UND UPGRADES DURCHFÜHREN".

Die folgenden Nichtkommentarzeilen (Watch-Zeilen) geben die Regeln für die Auswahl der Kandidaten für Tarball-URLs der Ursprungsautoren in einem der folgenden drei Formate an:
  • opts=" " http://URL Suchmuster [Version [Skript]]
  • http://URL Suchmuster [Version [Skript]]
  • opts=" "

Hier gibt

  • opts=" " das Verhalten von uscan an. Siehe »WATCH«-DATEIOPTIONEN.
  • http://URL gibt die Web-Seite an, auf der die Ursprungsautoren den Link auf das neueste Quellarchiv veröffentlichen.
  • https://URL kann ebenfalls verwendet werden sowie
  • ftp://URL
  • Einige Teile der URL können im Suchmuster des regulären Ausdrucks in ( und ) eingeschlossen werden, wie etwa /foo/bar-([\.\d]+)/. (Falls mehrere Verzeichnisse passen, wird die höchste Version herausgegriffen). Andernfalls wird die URL wörtlich genommen.
Suchmuster gibt die vollständige Zeichenkette des Suchmusters für Hrefs auf der Web-Seite an. Siehe »WATCH«-DATEIBEISPIELE.
  • Alle passenden Teile in ( und ) werden mit . (Punkt) verbunden, um die Version der Ursprungsautoren zu bilden.
  • Falls die Hrefs keine Verzeichnisse enthalten, können Sie diese mit dem vorherigen Eintrag kombinieren. D.h., http://URL/Suchmuster .
version schränkt ein, welcher Tarball der Ursprungsautoren heruntergeladen werden kann. Auf jeden Fall wird die neueste verfügbare Version ausgewählt.
  • debian Voreinstellung erfordert, dass der herunterzuladende Tarball der Ursprungsautoren neuer als die aus debian/changelog erhaltene Version ist.
  • Versionsnummer wie beispielsweise 12.5 erfordert, dass der Tarball der Ursprungsautoren neuer als die Versionsnummer ist.
  • same erfordert, dass die heruntergeladene Version des untergeordneten Tarballs exakt dieselbe wie die des ersten heruntergeladenen Tarballs der Ursprungsautoren ist. (nur nützlich bei MUT)
  • previous schränkt die Version der Signaturdatei ein. (verwendet mit pgpmode=previous)
  • ignore schränkt die Version des untergeordneten Tarballs nicht ein. (kann für MUT nützlich sein)
  • group erfordert, dass der herunterzuladende Tarball der Ursprungsautoren neuer als die aus debian/changelog erhaltene Version ist. Die Paketversion ist aus allen »group«-Versionen der Ursprungsautoren zusammengesetzt.
  • checksum requires the downloading upstream tarball to be newer than the version obtained from debian/changelog. Package version is the concatenation of the version of the main tarball, followed by a checksum of all the tarballs using the "checksum" version system. At least the main upstream source has to be declared as "group".
Skript wird am Ende der uscan-Ausführung mit den von uscan bereitgestellten geeigneten Argumenten ausgeführt Voreinstellung: keine Aktion.
  • Das typische Debian-Paket ist ein nichtnatives Paket, das aus einem Tarball der Ursprungsautoren erstellt wurde. Üblicherweise wird nur eine einzelne Zeile der Watch-Zeile in einem der beiden ersten Formate benutzt. Dabei wird version auf debian und script auf uupdate gesetzt.
  • Ein natives Paket sollte script nicht angeben.
  • Ein Paket aus mehreren Tarbällen der Ursprungsautoren (MUT) sollte uupdate als script in der letzten Watch-Zeile angeben und die Angabe von script in den restlichen Watch-Zeilen überspringen.
  • Das letzte Format einer Watch-Zeile ist nützlich, um beständige Parameter zu setzen: user-agent, compression. Falls dieses Format benutzt wird, muss darauf die URL folgen, die Watch-Zeilen definiert.
  • [ und ] sind im im obigen Format, um die optionalen Teilen zu kennzeichnen und sollten nicht eingetippt werden.

Es gibt ein paar spezielle Zeichenketten, die durch uscan ersetzt werden, um das Schreiben der Watch-Datei zu erleichtern.

@PACKAGE@
Dies wird durch den Quellpaketnamen aus der ersten Zeile der Datei debian/changelog ersetzt.
@ANY_VERSION@
Dies wird durch den regulären Ausdruck der gültigen Version der Ursprungsautoren ersetzt. (aufnehmend)

  [-_]?[Vv]?(\d[\-+\.:\~\da-zA-Z]*)
    
@ARCHIVE_EXT@
Dies wird durch den regulären Ausdruck der typischen Archiverweiterung ersetzt. (nicht aufnehmend)

  (?i)(?:\.(?:tar\.xz|tar\.bz2|tar\.gz|tar\.zstd?|zip|tgz|tbz|txz))
    
@SIGNATURE_EXT@
Dies wird durch den regulären Ausdruck der typischen Signaturdateierweiterung ersetzt. (nicht aufnehmend)

  (?i)(?:\.(?:tar\.xz|tar\.bz2|tar\.gz|tar\.zstd?|zip|tgz|tbz|txz))'(?:\.(?:asc|pgp|gpg|sig|sign))'
    
@DEB_EXT@
Dies wird durch den regulären Ausdruck der typischen Debian-Dateinamenerweiterung ersetzt. (einfangend)

  [\+~](debian|dfsg|ds|deb)(\.)?(\d+)?$
    

Einige Dateierweiterungen sind absichtlich nicht enthalten, um falsche Treffer zu vermeiden. Sie können solche Muster für Dateierweiterungen aber immer noch manuell setzen.

»WATCH«-DATEIOPTIONEN

uscan liest die in opts=" " angegebenen Optionen, um sein Verhalten anzupassen. Mehrere Optionen Option1, Option2, Option3, … können als opts="Option1, Option2, Option3, " gesetzt werden. Die doppelten Anführungszeichen werden nötig, falls Optionen irgendwelche Leerräume enthalten.

Sofern sie nicht als beständig notiert sind, sind die meisten Optionen nur innerhalb der Watch-Zeile gültig, in der sie stehen.

Die verfügbaren Watch-Optionen sind:

setzt den Namen des untergeordneten Quell-Tarballs für ein MUT-Paket als <Quellpaket>_<Originalversion>.orig-<Komponente>.tar.gz.
Set the type of component (only "nodejs" and "perl" are available for now). This will help uscan to find current version if component version is ignored.

When using ctype=nodejs, uscan tries to find a version in "package.json", when using ctype=perl, uscan tries to find a version in "META.json". If a version is found, it is used as current version for this component, regardless version found in Debian version string. This permits a better change detection when using ignore or checksum as Debian version.

setzt die Komprimierungs-Methode, wenn ein Tarball erneut gepackt wird (beständig).

Verfügbare Methoden sind die, die mk-origtargz unterstützt, also xz, gzip (alias gz), bzip2 (alias bz2), lzma, default. Die Voreinstellung ist derzeit xz. Wenn Uscan in einem Debian-Quelldepot, dessen Format »1.0« oder nicht definiert ist, gestartet wird, wechselt die Methode zu gzip.

Bitte beachten Sie, dass das erneute Packen des Tarballs der Ursprungsautoren durch mk-origtargz nur vorkommt, wenn eine der folgenden Bedingungen erfüllt ist:

  • USCAN_REPACK ist in der Devscripts-Konfiguration gesetzt. (Siehe DEVSCRIPT-KONFIGURATIONSVARIABLEN.
  • --repack wurde auf der Befehlszeile gesetzt. Siehe <BEFEHLZEILENOPTIONEN>.
  • repack wurde in der Watch-Zeile als opts="repack," gesetzt.
  • Das Archiv der Ursprungsautoren ist vom Typ zip einschließlich jar, xpi, …
  • The upstream archive is of zstd (Zstandard) type.
  • In debian/copyright sind Files-Excluded- oder Files-Excluded-Komponente-Absätze gesetzt, damit das von uscan aufgerufene mk-origtargz Dateien aus dem Tarball der Ursprungsautoren entfernt und ihn erneut packt. Siehe "BEISPIELE FÜR COPYRIGHT-DATEIEN" und mk-origtargz(1).
erzwingt das erneute Packen der Tarballs der Ursprungsautoren mittels der Komprimierungs-Methode.
fügt der Debian-Paketversion der Ursprungsautoren nur die Endung hinzu, wenn der Quelltext-Tarball erneut gepackt wird. Diese Regel sollte nur für einen einzelnen Tarball der Ursprungsautoren verwendet werden.
setzt den Herunterlade-Modus.
Dieser Modus ist die Voreinstellung, durch den der angegebene Tarball von der Archiv-URL im Web heruntergeladen wird. Der interne Modus wird je nach URL automatisch auf http oder ftp aktualisiert.
Dieser Modus greift mit dem Befehl git direkt auf das Git-Archiv der Ursprungsautoren zu und packt den Quelltextverzeichnisbaum mit der angegebenen Markierung über Vergleichsmuster in Quellpaketversion.tar.xz.

Falls die Ursprungsautoren den veröffentlichten Tarball über ihre Web-Schnittstelle veröffentlichen, verwenden Sie bitte diese anstelle dieses Modus. Dieser Modus ist die letzte Rückfalloption.

Für den Git-Modus gibt Vergleichsmuster das vollständige Zeichenkettenmuster für Markierungen anstelle von Hrefs an. Falls Vergleichsmuster auf refs/tags/Markierungsvergleichsmuster gesetzt ist, lädt uscan die Quelle von der refs/tags/passenden-Markierung des Git-Depots herunter. Die Version der Ursprungsautoren wird aus dem Zusammenhängen der passenden Teile in () mit . extrahiert. Siehe »WATCH«-DATEIBEISPIELE.

Falls Vergleichsmuster auf HEAD gesetzt ist, lädt uscan die Quelle vom HEAD des Git-Depots herunter und die passende Version wird automatisch mit dem Datum und dem Hash von HEAD des Git-Depots erzeugt.

Falls Vergleichsmuster auf refs/heads/Zweig gesetzt ist, lädt uscan die Quelle von dem angegebenen Zweig des Git-Depots herunter.

Das lokale Depot wird vorübergehend als ein Bare-Git-Depotverzeichnis unterhalb des Zielverzeichnisses erzeugt, in dem das heruntergeladene Archiv erstellt wird. Dies wird normalerweise nach dem Ausführen von Uscan gelöscht. Dieses lokale Depot wird aufbewahrt, falls die Option --debug benutzt wird.

Falls das aktuelle Verzeichnis ein Git-Depot ist und das gesuchte Depot eine der registrierten »externen« aufgeführt ist, wird Uscan es benutzen, statt es separat zu klonen. Die einzige lokale Änderung besteht darin, dass Uscan einen »fetch«-Befehl zum Erneuern des Depots ausführt.

This mode accesses the upstream Subversion archive directly with the svn command and packs the source tree.

For svn mode, matching-pattern specifies the full string matching pattern for directories under Subversion repository directory, specified via URL. The upstream version is extracted from concatenating the matched parts in ( ... ) with . .

If matching-pattern is set to HEAD, uscan downloads the latest source tree of the URL. The upstream version is then constructed by appending the last revision of the URL to 0.0~svn.

As commit signing is not possible with Subversion, the default pgpmode is set to none when mode=svn. Settings of pgpmode other than default and none are reported as errors.

setzt die Versionszeichenkette der Ursprungsautoren auf ein beliebiges Format als optionales opts-Argument, wenn das Vergleichsmuster HEAD oder heads/Zweig für den git-Modus ist. Die genaue Syntax finden Sie in der Handbuchseite von git-log unter tformat. Die Voreinstellung ist pretty=0.0~git%cd.%h. In diesem Fall können keine uversionmangle-Regeln angewendet werden.

When pretty=describe is used, the upstream version string is the output of the "git describe --tags | sed s/-/./g" command instead. For example, if the commit is the 5-th after the last tag v2.17.12 and its short hash is ged992511, then the string is v2.17.12.5.ged992511 . For this case, it is good idea to add uversionmangle=s/^/0.0~/ or uversionmangle=s/^v// to make the upstream version string compatible with Debian. Please note that in order for pretty=describe to function well, upstream need to avoid tagging with random alphabetic tags.

pretty=describe erzwingt die Einstellung gitmode=full, um das Depot automatisch vollständig lokal zu klonen.

setzt die durch die Option pretty benutzte Datumszeichenkette auf ein beliebiges Format als ein optionales opts-Argument, wenn Vergleichsmuster HEAD oder heads/Zweig für den git-Modus ist. Die genaue Syntax finden Sie in der strftime-Handbuchseite. Die Voreinstellung ist date=%Y%m%d.
Set the git archive export operation mode. The default is gitexport=default. Set this to gitexport=all to include all files in the .orig.tar archive, ignoring any export-ignore git attributes defined by the upstream.

This option is valid only in git mode.

setzt den Git-Klonbetriebs-<Modus>. Voreinstellung ist gitmode=shallow. Für einige dumme Git-Server müssen Sie möglicherweise manuell gitmode=full setzen, um das vollständige Klonen zu erzwingen.

Falls das aktuelle Verzeichnis ein Git-Depot ist und das gesuchte Depot inmitten der registrierten »fernen« aufgeführt ist, wird Uscan es benutzen, statt es separat zu klonen.

setzt den Modus zum Prüfen von PGP-/GPG-Signaturen.
uscan prüft, ob mögliche URLs eine Signaturdatei haben und erzeugt automatisch eine pgpsigurlmangle-Regel, um sie zu verwenden.
verwendet pgpsigurlmangle=Regeln, um die zur Auswahl stehende URL-Zeichenkette der Signaturdatei für die Tarball-URL der Ursprungsautoren zu erzeugen. (Voreinstellung)

Falls die angegebene pgpsigurlmangle fehlt, überprüft uscan mögliche URLs auf Signaturdateien und schlägt die Aufnahme einer pgpsigurlmangle-Regel vor.

verwendet pgpsigurlmangle=Regeln, um die zu Auswahl stehende URL-Zeichenkette der Signaturdatei für die Tarball-URL der Ursprungsautoren zu erzeugen.
prüft diesen heruntergeladenen Tarball mit der Signaturdatei, die in der nächsten Watch-Zeile angegeben ist. Die nächste Watch-Zeile muss pgpmode=previous lauten, sonst findet keine Prüfung statt.
prüft den in der vorhergehenden Watch-Zeile angegebenen heruntergeladenen Tarball mit dieser Signaturdatei. Die vorhergehende Watch-Zeile muss pgpmode=next lauten.
überprüft die heruntergeladene Datei foo.Erw mit ihrer eigenen Signatur und extrahiert die darin enthaltene Tarball-Datei als foo.
prüft die Markierungssignatur, falls mode=git.
keine Signatur verfügbar (keine Warnung)
setzt den auswertenden Suchmodus.
Dies ist nützlich, falls der Seiteninhalt JSON statt HTML ist. Beispiel mit npmjs.com:

  version=4
  opts="searchmode=plain" \
   https://registry.npmjs.org/aes-js \
   https://registry.npmjs.org/aes-js/-/aes-js-(\d[\d\.]*)@ARCHIVE_EXT@
    
dekomprimiert vor der Prüfung der PGP-/GPG-Signatur komprimierte Archive.
deaktiviert allen Site-spezifischen Kode für Sonderfälle wie den Gebrauch von URL-Weiterleitungen und Änderungen des Seiteninhalts. (beständig)
setzt die verwendete User-Agent-Zeichenkette, um den HTTP(S)-Server als user-agent-string zu kontaktieren. (beständig)

Die Option user-agent sollte allein in der Watch-Zeile ohne URL angegeben werden, um die Verwendung von Strichpunkten oder Kommas darin zu ermöglichen.

benutzt bei FTP-Verbindungen den PASV-Modus.

Falls der PASV-Modus aufgrund der Client-seitigen Netzwerkumgebung benötigt wird, richten Sie stattdessen uscan per BEFEHLSZEILENOPTIONEN oder DEVSCRIPT-KONFIGURATIONSVARIABLEN ein, dass es den PASV-Modus benutzt.

verwendet bei der FTP-Verbindung nicht den PASV-Modus.
fügt die zusätzlichen Optionen hinzu, die mit dem Befehl unzip verwendet werden, wie beispielsweise -a, -aa und -b, wenn er durch mk-origtargz ausgeführt wird.
bringt die letzte in debian/changelog gefundene Versionszeichenkette der Ursprungsautoren in Normalform, um sie mit der verfügbaren Tarball-Version der Ursprungsautoren zu vergleichen. Üblicherweise wird hier die Debian-spezifische Erweiterung wie s/@DEB_EXT@// entfernt.

Sie können auch dversionmangle=auto benutzen, dies ist identisch mit dversionmangle=s/@DEB_EXT@//.

bringt die Verzeichnispfadzeichenkette, die zum regulären Ausdruck innerhalb von Klammern von http://URLpasst, als sortierbare Versionsindexzeichenkette in Normalform. Dies wird nur als Index zum Sortieren des Verzeichnispfads benutzt.

Ersetzung wie s/PRE/~pre/; s/RC/~rc/ kann hilfreich sein.

bringt die heruntergeladene Webseiten-Zeichenkette in Normalform. (Verwenden Sie dies nur, wenn es unbedingt nötig ist. Üblicherweise ist für diese Regeln der Schalter g erforderlich.)

Dies ist praktisch, falls Sie auf Amazon AWS oder Subversion-Depots zugreifen wollen, bei denen <a href="…"> nicht verwendet wird.

bringt die aus den Hrefs in der Quelle der Webseite extrahierten Kandidaten-Versionszeichenketten der Ursprungsautoren in Normalform. Dies wird als Sortierindex für Versionen benutzt, wenn die neueste Version der Ursprungsautoren ausgewählt wird.

Ersetzung wie s/PRE/~pre/; s/RC/~rc/ kann hilfreich sein.

syntaktische Kurzschrift für uversionmangle=Regeln,dversionmangle=Regeln
wandelt die ausgewählten Href-Zeichenkette zum Tarball der Ursprungsautoren aus eine prozentkodierten hexadezimalen Zeichenkette in einer dekodierten URL-Zeichenkette für verschleierte Web-Sites um. Nur percent-encoding ist verfügbar und es ist mit s/%([A-Fa-f\d]{2})/chr hex $1/eg dekodiert.
wandelt die Href-Zeichenkette des ausgewählten Tarballs der Ursprungsautoren in eine barrierefreie URL für verschleierte Websites um. Dies wird nach hrefdecode ausgeführt.
erzeugt aus der ausgewählten Href-Zeichenkette den Tarball-Dateinamen der Ursprungsautoren, falls Suchmuster die <neueste-Ursprungsautorenversion> aus der ausgewählten Href-Zeichenkette extrahieren kann. Andernfalls wird der Tarball-Dateiname der Ursprungsautoren aus seiner vollständigen URL-Zeichenkette erzeugt und die fehlende <neueste-Ursprungsautorenversion> aus dem erzeugten Tarball-Dateinamen der Ursprungsautoren gesetzt.

Ohne diese Option wird der Standard-Tarball-Dateiname erzeugt, indem der letzte Bestandteil der URL genommen und alles nach einem »?« oder »#« entfernt wird.

erzeugt die Kandidaten-Signaturdatei-URL-Zeichenkette der Ursprungsautoren aus der Tarball-URL der Ursprungsautoren.
erzeugt die Versionszeichenkette <Originalversion> des Quell-Tarballs <Quellpaket>_<Originalversion>.orig.tar.gz aus <neueste-Ursprungsautorenversion>. Dies sollte verwendet werden, um einem MUT-Paket eine Erweiterung wie +dfsg hinzuzufügen.

Hier werden die Regeln zum Zerlegen die Regeln auf die entsprechende Zeichenkette anwenden. In einer Zerlegungsregelzeichenkette können mehrere Regeln angegeben werden, indem die zusammengesetzte Zeichenkette jede Zerlegungs-Regel durch einen ; (Strichpunkt) trennt.

Keine Zerlegungs-Regel kann ; (Strichpunkt), , (Komma) oder " (doppeltes Anführungszeichen) enthalten.

Jede Zerlegungs-Regel verhält sich, als ob ein Perl-Befehl »$Zeichenkette =~ Regel« ausgeführt würde. Es gibt einige beachtenswerte Einzelheiten.

Regel kann nur die Aktionen s, tr und y benutzen.
gleicht Muster eines regulären Ausdrucks ab und ersetzt die Zielzeichenkette. Nur die Schalter g, i und x sind verfügbar. Verwenden Sie für Rückwärtsreferenzen die $1-Syntax (nicht die \1-Syntax). Das Ausführen von Code ist nicht erlaubt (d.h. keine (?{})- oder (??{})-Konstrukte).
kodiert die Zeichen in der Zielzeichenkette um.

AUSFÜHRUNGSBEISPIEL

uscan liest den ersten Eintrag in debian/changelog, um den Namen des Quellpakets und die neuste Version der Ursprungsautoren zu bestimmen.

Wenn zum Beispiel der erste Eintrag in debian/changelog

bar (3:2.03+dfsg-4) unstable; urgency=low

lautet, ist der Name des Pakets bar und die neuste Paketversion von Debian 3:2.03+dfsg-4.

Die neuste Version der Ursprungsautoren wird auf die Normalform 2.03+dfsg gebracht, indem die Epoche und die Debian-Revision entfernt werden.

Falls die Regel dversionmangle existiert, wird die neuste Version der Ursprungsautoren zusätzlich durch Anwenden dieser Regel darauf in Normalform gebracht. Falls zum Beispiel die neuste Version der Ursprungsautoren 2.03+dfsg ist, zeigt dies an, dass der Tarball neu gepackt wurde. Die Endung +dfsg wird durch die Zeichenkettenersetzung s/\+dfsg\d*$// entfernt, um die neuste Version der Ursprungsautoren 2.03 nach Dversionmangle zu erzeugen. Sie wird mit den Kandidaten-Tarball-Versionen der Ursprungsautoren wie 2.03, 2.04, … verglichen, die auf deren Site gefunden wurden. Setzen Sie diese Regel daher wie folgt:

opts="dversionmangle=s/\+dfsg\d*$//"

uscan lädt eine in debian/watch angegebene Webseite von http://URL herunter.

  • Falls der Verzeichnisnamensteil von URL keine Klammern, ( und ), hat, wird er als wortgetreu angesehen.
  • Falls der Verzeichnisnamensteil von URL keine Klammern, ( und ), hat, durchsucht uscan rekursiv alle möglichen Verzeichnisse, um eine Seite mit der neuesten Version zu finden. Wenn die Regel dirversionmangle existiert, wird der erzeugte Sortierindex zum Finden der neuesten Version benutzt. Falls eine spezielle Version zum Herunterladen angegeben wurde, hat die passende Versionszeichenkette eine höhere Priorität als die neueste Version.

Diese http://URL könnte beispielsweise so angegeben werden:

http://www.example.org/@ANY_VERSION@/

Please note the trailing / in the above to make @ANY_VERSION@ as the directory.

Falls die Regel pagemangle existiert, wird die ganze heruntergeladene Webseite als eine Zeichenkette in Normalform gebracht, indem diese Regel darauf angewendet wird. Dies ist ein sehr mächtiges Werkzeug und sollte mit Vorsicht benutzt werden. Verwenden Sie diese Regel nicht, falls Sie andere Zerlegungsregeln zum Erreichen dieses Ziels einsetzen können.

Die heruntergeladene Webseite wird nach Hrefs gescannt, die in der Markierung <a href=" "> definiert sind, um die Kandidaten-Tarball-Hrefs der Ursprungsautoren zu orten. Diese Kandidaten-Tarball-Hrefs der Ursprungsautoren werden mit dem regulären Perl-Ausdrucksmuster Suchmuster wie DL-(?:[\d\.]+?)/foo-(.+)\.tar\.gz verglichen, um die Auswahl der Kandidaten zu begrenzen. Diese Mustersuche muss mit dem Anfang und dem Ende verankert werden. Kandidaten-Hrefs können zum Beispiel wie folgt aussehen:

  • DL-2.02/foo-2.02.tar.gz
  • DL-2.03/foo-2.03.tar.gz
  • DL-2.04/foo-2.04.tar.gz

Hier wird die passende Zeichenkette von (.+) im Suchmuster als Kandidatenversion der Ursprungsautoren angesehen. Falls es mehrere passende Zeichenketten zu Übereinstimmungsmustern in Suchmuster gibt, werden Sie alle mit . (Punkt) aneinandergehängt, um die Kandidatenversion der Ursprungsautoren zu bilden. Stellen Sie sicher, dass Sie den nicht übereinstimmenden regulären Ausdruck wie (?:[\d\.]+?) anstelle des variablen passenden Textteils ohne Bezug zur Version verwenden.

Dann sind die Kandidatenversionen der Ursprungsautoren:

  • 2.02
  • 2.03
  • 2.04

Der Dateiname des heruntergeladenen Tarballs wird grundsätzlich auf denselben Dateinamen gesetzt, wie der in der fernen URL der ausgewählten Href.

Falls die Regel uversionmangle existiert, werden die Kandidatenversionen der Ursprungsautoren durch Anwenden dieser Regel in Normalform gebracht. (Diese Regel kann nützlich sein, falls das Versionsschema der Ursprungsautoren nicht korrekt sortierbar ist, um die neueste Version zu identifizieren.)

Die Tarball-Href der Ursprungsautoren, die zur neuesten (von Uversionmangle) Kandidatenversion der Ursprungsautoren gehört, die neuer als die neuste (von Dversionmangle) Version der Ursprungsautoren, wird ausgewählt.

Falls mehrere Tarball-Hrefs der Ursprungsautoren zu einer einzigen Version mit verschiedenen existierenden Erweiterungen gehören, wird die am höchsten komprimierte ausgewählt. (Priorität: tar.xz > tar.lzma > tar.bz2 > tar.gz.)

Falls die ausgewählte Tarball-Href der Ursprungsautoren eine relative URL ist, wird sie mittels der Basis-URL der Webseite in eine absolute URL umgewandelt. Falls die Markierung <base href=" "> auf der Webseite existiert, wird die ausgewählte Tarball-Href der Ursprungsautoren stattdessen mittels der angegebenen Basis-URL in der Basis-Markierung in eine absolute URL umgewandelt.

Falls die Regel downloadurlmangle existiert, wird die ausgewählte Tarball-Href der Ursprungsautoren durch Anwenden dieser Regel in Normalform gebracht. (Dies ist für einige Sites mit verschleierter Herunterlade-URL nützlich.)

Falls die Regel filenamemangle existiert, wird der Dateiname des heruntergeladenen Tarballs durch Anwenden dieser Regel auf die ausgewählte Href erzeugt, falls Suchmuster die neueste Version <neueste-Ursprungsautorenversion> der Ursprungsautoren aus der ausgewählten Href-Zeichenkette extrahieren kann. Andernfalls wird der Tarball-Dateiname der Ursprungsautoren aus seiner vollständigen URL-Zeichenkette und die fehlende <neueste-Ursprungsautorenversion> aus dem erzeugten Tarball-Dateinamen der Ursprungsautoren erzeugt.

Ohne die Regel filenamemangle wird der Vorgabe-Tarball-Dateiname der Ursprungsautoren erzeugt, indem vom letzten Bestandteil der URL alles nach jedem »?« oder »#« entfernt wird.

uscan lädt den ausgewählten Tarball der Ursprungsautoren in das übergeordnete Verzeichnis ../ herunter. Die heruntergeladene Datei kann zum Beispiel sein:

../foo-2.04.tar.gz

Diese heruntergeladene Version im vorhergehenden Beispiel soll 2.04 heißen, im Folgenden allgemein <neueste-Ursprungsautorenversion> genannt.

Falls die Regel pgpsigurlmangle existiert, wird die Signaturdatei-URL der Ursprungsautoren durch Anwenden dieser Regel auf die (von Downloadurlmangle) ausgewählte Tarball-Href der Ursprungsautoren erzeugt und es wird versucht, die Signatur von dort herunterzuladen.

Falls die Regel pgpsigurlmangle nicht existiert, warnt uscan den Benutzer, falls die Signaturdatei der Ursprungsautoren unter derselben URL verfügbar ist und am Dateinamen die fünf üblichen Erweiterungen asc, gpg, pgp, sig und sign anhängen. (Sie können diese Warnung durch Setzen von pgpmode=none vermeiden.)

Falls die Signaturdatei heruntergeladen wird, wird der Tarball der Ursprungsautoren anhand dieser Signaturdatei auf seine Echtheit hin überprüft. Dies geschieht mittels des gehärteten Schlüsselbunds debian/upstream/signing-key.asc (siehe "BEISPIELE FÜR SCHLÜSSELBUNDDATEIEN"). Falls seine Signatur ungültig ist oder nicht durch einen der aufgeführten Schlüssel erstellt wurde, wird uscan einen Fehler melden.

Falls die Regel oversionmangle existiert, wird die Quellcode-Tarball-Version Originalversion aus der heruntergeladenen neueste-Ursprungsautorenversion erzeugt, indem diese Regel angewendet wird. Diese Regel ist nützlich, um eine Erweiterung wie +dfsg an die Version aller Quellpakete des MUT-Pakets anzuhängen, bei denen der Mechanismus »repacksuffix« nicht funktioniert.

uscan ruft mk-origtargz auf, um den Quell-Tarball korrekt benannt für das Quellpaket mit .orig. (oder .orig-<Komponente>. für die untergeordneten Tarbälle) im Dateinamen zu erzeugen.

mk-origtargz erstellt einen symbolischen Verweis ../bar_<Originalversion>.orig.tar.gz, der auf den heruntergeladenen lokalen Tarball der Ursprungsautoren verweist. bar ist hier der in debian/changelog gefundene Quellpaketname. Der erzeugte symbolische Verweis könnte lauten:
../bar_2.04.orig.tar.gz -> foo-2.04.tar.gz (in der vorliegenden Form)

Normalerweise ist es in diesem Fall nicht nötig, opts="dversionmangle= " zu setzen.

mk-origtargz prüft den Dateinamenschnipsel des Files-Excluded-Abschnitts im ersten Teil von debian/copyright und entfernt entsprechende Dateien, um einen neu gepackten Tarball der Ursprungsautoren zu erstellen. Normalerweise wird der neu gepackte Tarball der Ursprungsautoren mit der Endung in ../bar_<Originalversion><Endung>.orig.tar.gz umbenannt. Für das einzelne Paket der Ursprungsautoren wird die Option repacksuffix benutzt. <Originalversion> wird hier auf <Originalversion><Endung> aktualisiert.

Das Entfernen von Dateien ist nötig, falls Dateien nicht DFSG-konform sind. In diesem Fall wird als Endung +dfsg verwendet.

Daher werden die kombinierten Optionen stattdessen als opts="dversionmangle=s/\+dfsg\d*$// ,repacksuffix=+dfsg" gesetzt.

Der neu gepackte Tarball der Ursprungsautoren könnte zum Beispiel so heißen:

../bar_2.04+dfsg.orig.tar.gz (neu gepackt)

uscan ruft normalerweise »uupdate --find --upstream-version Originalversion« für die »version=4«-Watch-Datei auf.

Bitte beachten Sie, dass hier die Option --find benutzt wird, da mk-origtargz bereits aufgerufen wurde, um die Datei *.orig.tar.gz zu erstellen. uscan nimmt bar aus debian/changelog.

Es erstellt einen neuen Quellverzeichnisbaum der Ursprungsautoren unter dem Verzeichnis ../bar-<Originalversion> und nutzt den Paketinhalt zum Anpassen an Debian.

»WATCH«-DATEIBEISPIELE

Wenn Sie die Watch-Datei schreiben, sollten Sie sich auf die Webseite verlassen, die zuletzt die Quelle der Ursprungsautoren ankündigte. Sie sollten wenn möglich nicht versuchen, die Archivstruktur der Ursprungsautoren vorauszusagen. Es folgen typische debian/watch-Dateien.

Bitte beachten Sie, dass das Ausführen von uscan mit -v oder -vv offenbart, was intern genau passiert.

Es ist maßgeblich, ob vor dem abschließenden \ (Rückwärtsschrägstrich) ein Leerzeichen existiert oder nicht.

In den BEISPIELEN unterhalb werden einige nicht dokumentierte kürzere Konfigurationszeichenketten benutzt, um Ihnen Tipparbeit zu ersparen. Dies ist gewollt. uscan wurde so geschrieben, dass es einige häufige sinngemäße Abkürzungen akzeptiert, aber treiben Sie es nicht auf die Spitze.

HTTP-Site (einfach)

Es folgt ein Beispiel für einen einfachen einzelnen Tarball der Ursprungsautoren.

  version=4
  http://example.com/~user/release/@PACKAGE@.html \
      files/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

Or without using the substitution strings (not recommended):
http://example.com/~user/release/foo.html \
files/foo-([\d\.]+)\.tar\.gz

  version=4

Diese Watch-Datei lädt für das Quellpaket foo-2.0.tar.gz der Ursprungsautoren die Debian-orig.tar-Datei foo_2.0.orig.tar.gz herunter.

HTTP-Site (pgpsigurlmangle)

Es folgt ein Beispiel für einen einfachen einzelnen Tarball der Ursprungsautoren mit der passenden Signaturdatei im selben Dateipfad.

  version=4
  opts="pgpsigurlmangle=s%$%.asc%" http://example.com/release/@PACKAGE@.html \
      files/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

Für das Quellpaket foo-2.0.tar.gz der Ursprungsautoren und die Signaturdatei foo-2.0.tar.gz.asc der Ursprungsautoren lädt diese Watch-Datei diese Dateien herunter, prüft die Echtheit mittels des Schlüsselbunds debian/upstream/signing-key.asc und erstellt die Debian-orig.tar-Datei foo_2.0.orig.tar.gz.

Es folgt ein Beispiel für einen einfachen einzelnen Tarball der Ursprungsautoren mit der passenden Signaturdatei zum entpackten Tarball im selben Dateipfad.

  version=4
  opts="pgpsigurlmangle=s%@ARCHIVE_EXT@$%.asc%,decompress" \
      http://example.com/release/@PACKAGE@.html \
      files/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

Für das Quellpaket foo-2.0.tar.gz der Ursprungsautoren und die Signaturdatei foo-2.0.tar.asc der Ursprungsautoren lädt diese Watch-Datei diese Dateien herunter, prüft die Echtheit mittels des Schlüsselbunds debian/upstream/signing-key.asc und erstellt die Debian-orig.tar-Datei foo_2.0.orig.tar.gz.

HTTP-Site (pgpmode=next/previous)

Es folgt ein Beispiel für einen einfachen einzelnen Tarball der Ursprungsautoren mit der passenden Signaturdatei im nicht zugehörigen Dateipfad.

  version=4
  opts="pgpmode=next" http://example.com/release/@PACKAGE@.html \
      files/(?:\d+)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
  opts="pgpmode=previous" http://example.com/release/@PACKAGE@.html \
      files/(?:\d+)/@PACKAGE@@ANY_VERSION@@SIGNATURE_EXT@ previous

Der Teil (?:\d+) kann ein zufälliger Wert sein, Der Tarball kann 53 haben, während die Signaturdatei 33 haben kann.

Der Teil ([\d\.]+) für die Signaturdatei hat eine strikte Voraussetzung, zum in der vorhergehenden Zeile angegebenen Tarball der Ursprungsautoren zu passen, die in der Watch-Zeile als Version previous enthält.

HTTP-Site (flexibel)

Es folgt ein Beispiel für die maximale Flexibilität beim Tarball der Ursprungsautoren und Signaturdateierweiterungen.

  version=4
  opts="pgpmode=next" http://example.com/DL/ \
      files/(?:\d+)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
  opts="pgpmode=previous" http://example.com/DL/ \
      files/(?:\d+)/@PACKAGE@@ANY_VERSION@@SIGNATURE_EXT@ \
      previous

HTTP-Site (einfache MUT)

Hier ein Beispiel für die einfachen Pakete mit mehreren Tarbällen der Ursprungsautoren (»Multiple Upstream Tarballs«/MUT).

  version=4
  opts="pgpsigurlmangle=s%$%.sig%" \
      http://example.com/release/foo.html \
      files/foo-@ANY_VERSION@@ARCHIVE_EXT@ debian
  opts="pgpsigurlmangle=s%$%.sig%, component=bar" \
      http://example.com/release/foo.html \
      files/foobar-@ANY_VERSION@@ARCHIVE_EXT@ same
  opts="pgpsigurlmangle=s%$%.sig%, component=baz" \
      http://example.com/release/foo.html \
      files/foobaz-@ANY_VERSION@@ARCHIVE_EXT@ same

Für das Hauptquellpaket der Ursprungsautoren foo-2.0.tar.gz und die untergeordneten Quellpakete der Ursprungsautoren foobar-2.0.tar.gz und foobaz-2.0.tar.gz, die unter bar/ und baz/ installiert werden, lädt diese Watch-Datei die Debian-orig.tar-Dateien foo_2.0.orig.tar.gz, foo_2.0.orig-bar.tar.gz und foo_2.0.orig-baz.tar.gz herunter und erstellt sie. Außerdem werden diese Tarbälle der Ursprungsautoren anhand ihrer Signaturdateien überprüft.

HTTP-Site (rekursives Durchsuchen des Verzeichnisses)

Es folgt ein Beispiel mit dem rekursiven Durchsuchen des Verzeichnisses nach dem Tarball der Ursprungsautoren und seiner Signaturdatei, die in einem Verzeichnis veröffentlicht wurden, das nach seiner Version benannt ist.

  version=4
  opts="pgpsigurlmangle=s%$%.sig%, dirversionmangle=s/-PRE/~pre/;s/-RC/~rc/" \
      http://tmrc.mit.edu/mirror/twisted/Twisted/@ANY_VERSION@/ \
      Twisted-@ANY_VERSION@@ARCHIVE_EXT@

Hier sollte die Website unter folgender URL erreichbar sein:

  http://tmrc.mit.edu/mirror/twisted/Twisted/

Hier wird die Regel dirversionmangle benutzt, um die Sortierreihenfolge der Verzeichnisnamen in die Normalform zu bringen.

HTTP-Site (alternative Kurzschreibweise)

Für die blanke HTTP-Site, auf der Sie direkt die Archivdateinamen sehen können, ist die normale Watch-Datei:

  version=4
  opts="pgpsigurlmangle=s%$%.sig%" \
      http://www.cpan.org/modules/by-module/Text/ \
      Text-CSV_XS-@ANY_VERSION@@ARCHIVE_EXT@

Dies kann in einer alternativen Kurzform neu geschrieben werden, die mit einer einzelnen Zeichenkette URL und Dateiname abdeckt:

  version=4
  opts="pgpsigurlmangle=s%$%.sig%" \
      http://www.cpan.org/modules/by-module/Text/Text-CSV_XS-@ANY_VERSION@@ARCHIVE_EXT@

In version=4 werden zu Beginn vorhandene Leerräume weggelassen. Daher kann diese alternative Kurzform auch wie folgt geschrieben werden:

  version=4
  opts="pgpsigurlmangle=s%$%.sig%" \
      http://www.cpan.org/modules/by-module/Text/\
      Text-CSV_XS-@ANY_VERSION@@ARCHIVE_EXT@

Bitte beachten Sie den feinen Unterschied eines Leerzeichens vor dem abschließenden \ zwischen den ersten und letzten Beispielen.

HTTP-Site (komische Version)

Für eine Site mit komischen Versionsnummern werden die eingeklammerten Gruppen mit einem . (Punkt) verbunden, um eine saubere Versionsnummer zu erstellen.

  version=4
  http://www.site.com/pub/foobar/foobar_v(\d+)_(\d+)@ARCHIVE_EXT@

HTTP-Site (DFSG)

Der Ursprungsautorenteil der Debian-Versionsnummer kann verarbeitet werden, um anzuzeigen, dass das Quellpaket zum Entfernen von Nicht-DFSG-Dateien neu gepackt wurde:

  version=4
  opts="dversionmangle=s/\+dfsg\d*$//,repacksuffix=+dfsg" \
  http://some.site.org/some/path/foobar-@ANY_VERSION@@ARCHIVE_EXT@

Siehe "BEISPIELE FÜR COPYRIGHT-DATEIEN"

HTTP-Site (filenamemangle)

Der Tarball-Dateiname der Ursprungsautoren wird gefunden, indem der letzte Bestandteil der URL genommen und alles nach »?« oder »#« entfernt wird.

Falls dies nicht ihren Bedürfnissen entspricht, benutzen Sie filenamemangle. <A href="http://foo.bar.org/dl/?path=&dl=foo-0.1.1.tar.gz"> könnte zum Beispiel wie folgt gehandhabt werden:

  version=4
  opts=filenamemangle=s/.*=(.*)/$1/ \
  http://foo.bar.org/dl/\?path=&dl=foo-@ANY_VERSION@@ARCHIVE_EXT@

<A href="http://foo.bar.org/dl/?path=&dl_version=0.1.1"> könnte wie folgt gehandhabt werden:

  version=4
  opts=filenamemangle=s/.*=(.*)/foo-$1\.tar\.gz/ \
  http://foo.bar.org/dl/\?path=&dl_version=@ANY_VERSION@

Falls die Href-Zeichenkette mittels Suchmuster keine Version aufweist, kann sie anhand der vollständigen URL mittels filenamemangle ermittelt werden.

  version=4
  opts=filenamemangle=s&.*/dl/(.*)/foo\.tar\.gz&foo-$1\.tar\.gz& \
  http://foo.bar.org/dl/@ANY_VERSION@/ foo.tar.gz

HTTP-Site (downloadurlmangle)

Die Option downloadurlmangle kann benutzt werden, um die URL der Datei zu verarbeiten, die heruntergeladen werden soll. Dies kann nur mit http://-URLs benutzt werden. Dies kann nötig sein, falls der auf der Webseite angegebene Verweis auf irgendeine Weise in einen umgewandelt werden muss, der automatisch funktioniert, zum Beispiel:

  version=4
  opts=downloadurlmangle=s/prdownload/download/ \
  http://developer.berlios.de/project/showfiles.php?group_id=2051 \
  http://prdownload.berlios.de/softdevice/vdr-softdevice-@ANY_VERSION@@ARCHIVE_EXT@

HTTP-Site (oversionmangle, MUT)

Die Option oversionmangle kann benutzt werden, um die Version des Quell-Tarballs (.orig.tar.gz und .orig-bar.tar.gz) zu verarbeiten. +dfsg kann der Version der Ursprungsautoren zum Beispiel wie folgt hinzugefügt werden:

  version=4
  opts=oversionmangle=s/(.*)/$1+dfsg/ \
  http://example.com/~user/release/foo.html \
  files/foo-@ANY_VERSION@@ARCHIVE_EXT@ debian
  opts="component=bar" \
  http://example.com/~user/release/foo.html \
  files/bar-@ANY_VERSION@@ARCHIVE_EXT@ same

Siehe "BEISPIELE FÜR COPYRIGHT-DATEIEN"

HTTP-Site (pagemangle)

Die Option pagemangle kann benutzt werden, um die heruntergeladene Webseite vor dem Anwenden anderer Regeln zu verarbeiten. Die Nichtstandard-Webseite ohne ordnungsgemäße <a href=" << … >> ">-Einträge kann umgewandelt werden. Falls foo.html zum Beispiel <a bogus=" "> benutzt, kann dies wie folgt in das Standardseitenformat umgewandelt werden:

  version=4
  opts=pagemangle="s/<a\s+bogus=/<a href=/g" \
  http://example.com/release/foo.html \
  files/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

Bitte beachten Sie, dass die Verwendung von g hier jedes Vorkommen ersetzt.

Falls foo.html <Key> </Key> verwendet, kann dies wie folgt in das Standardseitenformat umgewandelt werden:

  version=4
  opts="pagemangle=s%<Key>([^<]*)</Key>%<Key><a href="$1">$1</a></Key>%g" \
  http://example.com/release/foo.html \
  (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

FTP-Site (einfach):

  version=4
  ftp://ftp.tex.ac.uk/tex-archive/web/c_cpp/cweb/cweb-@ANY_VERSION@@ARCHIVE_EXT@

FTP-Site (Sonderzeichen für reguläre Ausdrücke):

  version=4
  ftp://ftp.worldforge.org/pub/worldforge/libs/\
  Atlas-C++/transitional/Atlas-C\+\+-@ANY_VERSION@@ARCHIVE_EXT@

Bitte beachten Sie, dass diese URL mit libs/Atlas-C++/ verbunden ist. Das erste ++ im Verzeichnispfad wird wörtlich verstanden, während es im Dateinamen durch \ maskiert wird.

FTP-Site (komische Version)

Dies ist eine weitere Art, eine Site mit komischen Versionsnummern zu handhaben, diesmal mittels Verarbeiten. (Beachten Sie, dass mehrere Gruppen vor dem Verarbeiten zusammengefügt werden und dass dieses Verarbeiten nur für die Versionsnummer des Basispfads und nicht für die Versionsnummern aller Pfade durchgeführt wird.)

  version=4
  opts="uversionmangle=s/^/0.0./" \
  ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/\
  development/Wine-@ANY_VERSION@@ARCHIVE_EXT@

sf.net

qa.debian.org führt eine Weiterleitung aus, die eine einfachere Form für eine URL von Sourceforge-basierten Projekten bietet. Das nachfolgende Format wird automatisch umgeschrieben, um den Weiterleitungsdienst mit der Watch-Datei zu verwenden:

  version=4
  https://sf.net/<project>/ <tar-name>-@ANY_VERSION@@ARCHIVE_EXT@

Schreiben Sie die Watch-Datei für audacity wie folgt:

  version=4
  https://sf.net/audacity/ audacity-minsrc-@ANY_VERSION@@ARCHIVE_EXT@

Bitte beachten Sie, dass Sie auch weiterhin normale Funktionalitäten von uscan benutzen können, um eine Watch-Datei für diese Site einrichten zu können, ohne dabei die Weiterleitung zu verwenden.

  version=4
  opts="uversionmangle=s/-pre/~pre/, \
    filenamemangle=s%(?:.*)audacity-minsrc-(.+)\.tar\.xz/download%\
                         audacity-$1.tar.xz%" \
    http://sourceforge.net/projects/audacity/files/audacity/@ANY_VERSION@/ \
    (?:.*)audacity-minsrc-@ANY_VERSION@@ARCHIVE_EXT@/download

% wird hier als Trenner anstelle des vorgegebenen / benutzt.

github.com

For GitHub based projects, you can use the releases or tags API page. If upstream releases properly named tarballs on their releases page, you can search for the browser download URL (API key browser_download_url):

  version=4
  opts="searchmode=plain" \
      https://api.github.com/repos/<user>/<project>/releases?per_page=100 \
      https://github.com/<user>/<project>/releases/download/[^/]+/@PACKAGE@-@ANY_VERSION@@ARCHIVE_EXT@

If the release page only contains the auto-generated tar.gz source code tarball, search for the tarball URL (API key tarball_url). The tarball URL uses only the version as the filename. You can rename the downloaded upstream tarball into the standard <project>-<version>.tar.gz using filenamemangle:

  version=4
  opts="filenamemangle=s%.*/@ANY_VERSION@%@PACKAGE@-$1.tar.gz%,searchmode=plain" \
      https://api.github.com/repos/<user>/<project>/releases?per_page=100 \
      https://api.github.com/repos/<user>/<project>/tarball/@ANY_VERSION@

If there are no upstream releases, you can query the equivalent tags page:

  version=4
  opts="filenamemangle=s%.*/@ANY_VERSION@%@PACKAGE@-$1.tar.gz%,searchmode=plain" \
      https://api.github.com/repos/<user>/<project>/tags?per_page=100 \
      https://api.github.com/repos/<user>/<project>/tarball/refs/tags/@ANY_VERSION@

If upstream releases alpha/beta tarballs, you will need to make use of the uversionmangle option: uversionmangle=s/(a|alpha|b|beta|c|dev|pre|rc)/~$1/

PyPI

Für Projekte, die auf PyPI basieren, führt pypi.debian.net einen Weiterleitungsdienst aus, der eine einfachere Form der URL ermöglicht. Das nachfolgende Format wird automatisch umgeschrieben, um den Weiterleitungsdienst mit der Watch-Datei zu verwenden:

  version=4
  https://pypi.python.org/packages/source/<initial>/<project>/ \
      <tar-name>-@ANY_VERSION@@ARCHIVE_EXT@

Schreiben Sie die Watch-Datei für cfn-sphere wie folgt:

  version=4
  https://pypi.python.org/packages/source/c/cfn-sphere/ \
      cfn-sphere-@ANY_VERSION@@ARCHIVE_EXT@

Bitte beachten Sie, dass Sie auch weiterhin normale Funktionalitäten von uscan benutzen können, um eine Watch-Datei für diese Site einrichten zu können, ohne dabei die Weiterleitung zu verwenden.

  version=4
  opts="pgpmode=none" \
      https://pypi.python.org/pypi/cfn-sphere/ \
      https://pypi.python.org/packages/.*/.*/.*/\
      cfn-sphere-@ANY_VERSION@@ARCHIVE_EXT@#.*

code.google.com

Sites, die vom Google-Code-Dienst beherbergt wurden, sollten zu einer anderen Stelle (Github?) migriert worden sein. Bitte halten Sie Ausschau nach einer neueren Site der Ursprungsautoren, falls verfügbar.

npmjs.org (Knotenmodule)

npmjs.org-Module werden in JSON-Dateien veröffentlicht. Hier eine Möglichkeit, sie zu lesen:

  version=4
  opts="searchmode=plain" \
   https://registry.npmjs.org/aes-js \
   https://registry.npmjs.org/aes-js/-/aes-js-@ANY_VERSION@@ARCHIVE_EXT@

Gruppiertes Paket

Einige Knotenmodule werden in mehrere kleine Pakete der Ursprungsautoren zerteilt. Hier eine Möglichkeit, sie zu gruppieren:

  version=4
  opts="searchmode=plain,pgpmode=none" \
    https://registry.npmjs.org/mongodb \
    https://registry.npmjs.org/mongodb/-/mongodb-@ANY_VERSION@@ARCHIVE_EXT@ group
  opts="searchmode=plain,pgpmode=none,component=bson" \
    https://registry.npmjs.org/bson \
    https://registry.npmjs.org/bson/-/bson-@ANY_VERSION@@ARCHIVE_EXT@ group
  opts="searchmode=plain,pgpmode=none,component=mongodb-core" \
    https://registry.npmjs.org/mongodb-core \
    https://registry.npmjs.org/mongodb-core/-/mongodb-core-@ANY_VERSION@@ARCHIVE_EXT@ group
  opts="searchmode=plain,pgpmode=none,component=requireoptional" \
    https://registry.npmjs.org/require_optional \
    https://registry.npmjs.org/require_optional/-/require_optional-@ANY_VERSION@@ARCHIVE_EXT@ group

Die Paketversion ist dann zusammengesetzt aus den Versionen der Ursprungsautoren, getrennt durch »+~«.

To avoid having a too long version, the "checksum" method can be used. In this case, the main source has to be declared as "group":

  version=4
  opts="searchmode=plain,pgpmode=none" \
    https://registry.npmjs.org/mongodb \
    https://registry.npmjs.org/mongodb/-/mongodb-@ANY_VERSION@@ARCHIVE_EXT@ group
  opts="searchmode=plain,pgpmode=none,component=bson" \
    https://registry.npmjs.org/bson \
    https://registry.npmjs.org/bson/-/bson-@ANY_VERSION@@ARCHIVE_EXT@ checksum
  opts="searchmode=plain,pgpmode=none,component=mongodb-core" \
    https://registry.npmjs.org/mongodb-core \
    https://registry.npmjs.org/mongodb-core/-/mongodb-core-@ANY_VERSION@@ARCHIVE_EXT@ checksum
  opts="searchmode=plain,pgpmode=none,component=requireoptional" \
    https://registry.npmjs.org/require_optional \
    https://registry.npmjs.org/require_optional/-/require_optional-@ANY_VERSION@@ARCHIVE_EXT@ checksum

The "checksum" is made up of the separate sum of each number composing the component versions. Following is an example with 3 components whose versions are "1.2.4", "2.0.1" and "10.0", with the main tarball having version "2.0.6":

  Main: 2.0.6
  Comp1:         1 .     2 .     4
  Comp2:         2 .     0 .     1
  Comp3:        10 .     0
  ================================
  Result  : 1+2+10 . 2+0+0 .   4+1
  Checksum:     13 .     2 .     5
  ================================
  Final Version:   2.0.6+~cs13.2.5

uscan will also display the original version string before being encoded into the checksum, which can for example be used in a debian/changelog entry to easily follow the changes:

  2.0.6+~1.2.4+~2.0.1+~10.0

Note: This feature currently accepts only versions composed of digits and full stops (`.`).

direkter Zugriff auf ein Git-Depot (Markierungen)

Falls die Ursprungsautoren ihren Code nur über das Git-Depot veröffentlichen und ihr Code keine Web-Schnittstelle hat, um den Veröffentlichungs-Tarball zu bekommen, können Sie uscan mit den Markierungen des Git-Depots benutzen, um die neue Veröffentlichung der Originalautoren nachzuverfolgen und zu paketieren.

  version=4
  opts="mode=git, gitmode=full, pgpmode=none" \
  http://git.ao2.it/tweeper.git \
  refs/tags/v@ANY_VERSION@

Bitte beachten Sie, dass »git ls-remote« benutzt wird, um Bezüge zu Markierungen zu bekommen.

Falls eine Markierung v20.5 am neusten ist, lädt das vorhergehende Beispiel spkg-20.5.tar.xz herunter, nachdem das Git-Depot geklont wurde, was für dumme Git-Server notwendig ist.

Falls Markierungen signiert sind, setzen Sie pgpmode=gittag, um sie zu prüfen.

direkter Zugriff auf das Git-Depot (HEAD)

Falls die Ursprungsautoren ihren Code nur über das Git-Depot veröffentlichen und es weder eine Web-Schnittstelle noch Markierungen hat, um den Veröffentlichungs-Tarball zu bekommen, können Sie uscan mit dem HEAD des Git-Depots benutzen, um die neue Veröffentlichung der Ursprungsautoren nachzuverfolgen und mit einer automatisch erstellten Versionszeichenkette zu paketieren.

  version=4
  opts="mode=git, pgpmode=none" \
  https://github.com/Debian/dh-make-golang \
  HEAD

Bitte beachten Sie, dass eine lokale oberflächlich mit »git clone --bare --depth=1 …« angelegte Kopie des Git-Depots normalerweise im Zielverzeichnis erstellt wird. uscan erzeugt standardmäßig die neue Version der Ursprungsautoren mit »git log --date=format:%Y%m%d --pretty=0.0~git%cd.%h« auf dieser lokalen Kopie des Depots.

Das Erzeugen der Versionszeichenkette der Ursprungsautoren kann nach Ihrem Geschmack angepasst werden, indem Sie die den opts-Argumenten die Optionen pretty und date hinzufügen.

direct access to the Subversion repository (tags)

If the upstream only publishes its code via the Subversion repository and its code has no web interface to obtain the release tarball, you can use uscan with the tags of the Subversion repository to track and package the new upstream release.

  version=4
  opts="mode=svn, pgpmode=none" \
  svn://svn.code.sf.net/p/jmol/code/tags/ \
  @ANY_VERSION@\/

direct access to the Subversion repository (HEAD)

If the upstream only publishes its code via the Subversion repository and its code has no web interface to obtain the release tarball, you can use uscan to get the most recent source of a subtree in the repository with an automatically generated version string.

  version=4
  opts="mode=svn, pgpmode=none" \
  svn://svn.code.sf.net/p/jmol/code/trunk/ \
  HEAD

By default, uscan generates the new upstream version by appending the revision number to "0.0~svn". This can later be changed using uversionmangle.

BEISPIELE FÜR COPYRIGHT-DATEIEN

Es folgt ein Beispiel für die Datei debian/copyright die ein automatisches erneutes Packen des Tarballs der Ursprungsautoren in <Quellpaket>_<Originalversion>.orig.tar.gz anstößt (In debian/copyright sind die Absätze Files-Excluded und Files-Excluded-Komponente ein Teil des ersten Abschnitts und dort ist eine leere Zeile vor den folgenden Abschnitten, die Files und andere Absätze enthalten.):

  Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
  Files-Excluded: exclude-this
   exclude-dir
   */exclude-dir
   .*
   */js/jquery.js
   Files: *
   Copyright: …
   …

Hier ein weiteres Beispiel für die debian/copyright-Datei, die ein automatisches erneutes Packen der Tarbälle mit mehreren Paketen (MUT) der Ursprungsautoren in <Quellpaket>_<Originalversion>.orig.tar.gz und <Quellpaket>_<Originalversion>.orig-bar.tar.gz anstößt.

  Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
  Files-Excluded: exclude-this
   exclude-dir
   */exclude-dir
   .*
   */js/jquery.js
  Files-Excluded-bar: exclude-this
   exclude-dir
   */exclude-dir
   .*
   */js/jquery.js
   Files: *
   Copyright: …
   …

Siehe mk-origtargz>(1).

BEISPIELE FÜR SCHLÜSSELBUNDDATEIEN

Nehmen wir einmal an, dass »Uscan-Testschlüssel (kein Geheimnis) <none@debian.org> der Ursprungsautoren Pakete mit einem geheimen OpenPGP-Schlüssel signiert und den zugehörigen öffentlichen OpenPGP-Schlüssel veröffentlicht. Dieser öffentliche OpenPGP-Schlüssel kann mittels der hexadezimalen Form auf drei Arten identifiziert werden.

  • Der Fingerabdruck als die 20 Byte Daten, die vom öffentlichen OpenPGP-Schlüssel berechnet wurden. Z.B.»CF21 8F0E 7EAB F584 B7E2 0402 C77E 2D68 7254 3FAF«
  • Die lange Schlüsselkennung als die letzten acht Byte des Fingerabdrucks. Z.B. »C77E2D6872543FAF«
  • Die kurze Schlüsselkennung als die letzten vier Byte des Fingerabdrucks. Z.B. »72543FAF«

In Anbetracht, dass es Kollisionsangriffe auf die kurze Schlüsselkennung gibt, wird empfohlen, die lange Schlüsselkennung zum Empfang von Schlüsseln des öffentlichen Schlüsselservers zu verwenden. Sie müssen den heruntergeladenen OpenPGP-Schlüssel mittels seines vollständigen und Ihnen bereits bekanntenFingerabdruckwerts prüfen, um festzustellen, ob es der vertrauenswürdige ist.

Die ASCII-Hülle der Schlüsselbunddatei debian/upstream/signing-key.asc kann mit dem Befehl gpg (oder gpg2) wie folgt erstellt werden:

  $ gpg --recv-keys "C77E2D6872543FAF"
  ...
  $ gpg --finger "C77E2D6872543FAF"
  pub   4096R/72543FAF 2015-09-02
        Key fingerprint = CF21 8F0E 7EAB F584 B7E2  0402 C77E 2D68 7254 3FAF
  uid                  uscan test key (no secret) <none@debian.org>
  sub   4096R/52C6ED39 2015-09-02
  $ cd path/to/<upkg>-<uversion>
  $ mkdir -p debian/upstream
  $ gpg --export --export-options export-minimal --armor \
        'CF21 8F0E 7EAB F584 B7E2  0402 C77E 2D68 7254 3FAF' \
        >debian/upstream/signing-key.asc

Die binären Schlüsselbunddateien debian/upstream/signing-key.pgp und debian/upstream-signing-key.pgp werden immer noch unterstützt, sind jedoch missbilligt.

Falls eine Gruppe von Entwicklern das Paket signiert, müssen Sie die Fingerabdrücke von ihnen allen im Argument für gpg --export … aufführen, damit der Schlüsselbund alle ihre OpenPGP-Schlüssel enthält.

Manchmal fragen Sie sich vielleicht, wer die Signaturdatei erstellt hat. Sie können die öffentliche Schlüsselkennung erhalten, um die abgetrennte Signaturdatei foo-2.0.tar.gz.asc zu erstellen, indem Sie gpg wie folgt ausführen:

  $ gpg -vv foo-2.0.tar.gz.asc
  gpg: armor: BEGIN PGP SIGNATURE
  gpg: armor header: Version: GnuPG v1
  :signature packet: algo 1, keyid C77E2D6872543FAF
        version 4, created 1445177469, md5len 0, sigclass 0x00
        digest algo 2, begin of digest 7a c7
        hashed subpkt 2 len 4 (sig created 2015-10-18)
        subpkt 16 len 8 (issuer key ID C77E2D6872543FAF)
        data: [4091 bits]
  gpg: assuming signed data in `foo-2.0.tar.gz'
  gpg: Signature made Sun 18 Oct 2015 11:11:09 PM JST using RSA key ID 72543FAF
  ...

BEFEHLZEILENOPTIONEN

Für die einfache Benutzung benötigt uscan diese Optionen nicht.

Standard-Konfigurationsdateien hinzufügen oder ersetzen ("/etc/devscripts.conf" und "~/.devscripts"). Dies kann nur als erste auf der Befehlszeile angegebene Option benutzt werden.
  uscan --conf-file test.conf --verbose
    
  uscan --conf-file +test.conf --verbose
    

If one --conf-file has no "+", default configuration files are ignored.

liest keine Konfigurationsdateien. Dies kann nur als erste auf der Befehlszeile angegebene Option benutzt werden.
gibt keine detaillierten Informationen aus. (Voreinstellung)
zeigt detaillierte Informationen an.
Report verbose information and some internal state values.
berichtet detaillierte Informationen einschließlich heruntergeladener Webseiten als verarbeitet zur Fehlersuche auf die Standardfehlerausgabe.
sendet Ausgaben im DEHS-Stil (XML-Typ) an die Standardausgabe, während alle anderen Ausgaben von Uscan an die Standardfehlerausgabe gesandt werden.
verwendet nur das traditionelle Uscan-Ausgabeformat.(Voreinstellung)
lädt die neue Veröffentlichung der Ursprungsautoren herunter. (Voreinstellung)
lädt die neue Veröffentlichung der Ursprungsautoren sogar dann herunter, wenn sie aktuell ist (wird jedoch nicht die lokale Datei überschreiben).
lädt die neue Veröffentlichung der Ursprungsautoren sogar dann herunter, wenn sie aktuell ist (kann die lokale Datei überschreiben).
lädt die Informationen nicht herunter und meldet sie nicht.

Vorher heruntergeladene Tarbälle können verwendet werden.

ändert die Voreinstellung in --skip-signature.

lädt die Signatur herunter. (Voreinstellung)
lädt die Signatur nicht herunter, prüft jedoch, ob sie bereits heruntergeladen wurde.
belästigt weder mit dem Herunterladen noch mit dem Prüfen der Signatur.
vermeidet die Ausführung unsicherer Skripte, indem sowohl das erneute Packen des heruntergeladenen Pakets als auch das Aktualisieren des neuen Quellcodeverzeichnisbaums übersprungen wird.

ändert die Voreinstellung in --no-download und --skip-signature.

Wenn uscan mit dem Ziel ausgeführt wird, den Status des Pakets der Ursprungsautoren in eine sicherheitsbewusste Umgebung aufzunehmen, stellen Sie sicher, dass Sie diese Option verwenden.

Dies entspricht dem Setzen der Option »--verbose --safe«
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 (eine bestmöglich erfüllte Funktionalität).
gibt die Debian-Paketversion an, um die entsprechende Veröffentlichungsversion der Ursprungsautoren herunterzuladen. Die Regeln dversionmangle und uversionmangle werden berücksichtigt (eine bestmöglich erfüllte Funktionalität).
lädt die aktuelle paketierte Version herunter (eine bestmöglich erfüllte Funktionalität).
Die Erklärung dieser Option finden Sie im nachfolgenden Abschnitt Prüfung von Verzeichnisnamen.
Die Erklärung dieser Option finden Sie im nachfolgenden Abschnitt Prüfung von Verzeichnisnamen.
Dieses Standardzielverzeichnis kann durch Setzen der Option --destdir auf einen bestimmten Pfad außer Kraft gesetzt werden. Falls dieser Pfad relativ ist, wird das Zielverzeichnis relativ zum internen aktuellen Verzeichnis bestimmt, in dem uscan ausgeführt wird. Falls dieser Pfad absolut ist, wird das Zielverzeichnis ungeachtet des internen aktuellen Verzeichnis, in dem uscan ausgeführt wird, auf Pfad gesetzt.

The above is true not only for the simple uscan run in the single source tree but also for the advanced scanning uscan run with subdirectories holding multiple source trees.

Eine Ausnahme liegt vor, wenn --watchfile und --package zusammen benutzt werden. In diesem Fall werden das interne aktuelle Ausführungsverzeichnis von uscan und das Standardzielverzeichnis auf das aktuelle Verzeichnis ., von dem uscan gestartet wird, gesetzt. Das Standardzielverzeichnis kann auch hier durch Setzen der Option --destdir außer Kraft gesetzt werden.

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 setzt automatisch --no-download and --skip-signature. Sie ist wahrscheinlich in Verbindung mit dem DEHS-System (und --dehs) an nützlichsten.
gibt die aktuelle Version der Ursprungsautoren an, statt die debian/watch- oder debian/changelog-Datei zu untersuchen, um sie zu bestimmen. Dies wird ignoriert, falls ein Verzeichnis-Scan durchgeführt und mehr als eine debian/watch-Datei gefunden wird.
gibt die Watch-Datei an, statt eine Verzeichnisdurchsuchung 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 Hochlaufen des Verzeichnisbaums gefunden werden kann).

Eine Ausnahme liegt vor, wenn --watchfile und --package zusammen benutzt werden. uscan kann von überall aufgerufen werden und das interne Ausführungsverzeichnis von uscan sowie das Standardzielverzeichnis werden auf das aktuelle Verzeichnis . gesetzt, von wo uscan gestartet wird.

Weitere Einzelheiten erfahren Sie in der Erläuterung von --destdir.

deaktiviert alle Site-spezifischen Codes für Sonderfälle, die URL-Weiterleitungen und Änderungen des Seiteninhalts durchführen.
Add specified header in HTTP requests for matching url. This option can be used more than one time, values must be in the form "baseUrl@Name=value. Example:

  uscan --http-header https://example.org@My-Token=qwertyuiop
    

Security:

schließt Dateien, die in debian/copyright im Feld Files-Excluded erwähnt wurden, nicht automatisch aus.
erzwingt bei FTP-Verbindungen den PASV-Modus.
verwendet bei FTP-Verbindungen nicht den PASV-Modus.
benennt den Original-Tarball weder um, noch wird er neu gepackt.
setzt die Zeitüberschreitung auf N Sekunden (Voreinstellung 20 Sekunden).
setzt die vorgegebene User-Agent-Kopfzeile außer Kraft.
gibt eine kurze Gebrauchsinformation.
zeigt Versionsinformationen.

uscan akzeptiert außerdem die folgenden Optionen und leitet sie an mk-origtargz weiter:

erstellt symbolische orig.tar.gz-Verweise (mit passender Endung) auf die heruntergeladenen Dateien. (Dies ist das Standardverhalten.)
kopiert die heruntergeladenen Dateien, statt, wie oben beschrieben, symbolische Verweise darauf zu erstellen.
benennt die heruntergeladenen Dateien um, statt, wie oben beschrieben, symbolische Verweise darauf zu erstellen.
After having downloaded an lzma tar, xz tar, bzip tar, gz tar, zip, jar, xpi, zstd archive, repack it to the specified compression (see --compression).

The unzip package must be installed in order to repack zip, jar, and xpi archives, the xz-utils package must be installed to repack lzma or xz tar archives, and zstd must be installed to repack zstd archives.

Falls die Quellen der Originalautoren neu gepackt wurden (entweder weil die Option --repack angegeben wurde oder debian/copyright das Feld Files-Excluded enthält), ist es möglich, die Komprimierungsmethode über diesen Parameter zu steuern. Voreinstellung ist für normale Tarbälle gzip und xz für Tarbälle, die direkt aus dem Git-Depot erstellt werden.
schließt Dateien aus, die in Files-Excluded in der angegebenen Copyright-Datei erwähnt werden. Dies ist nützlich, wenn uscan nicht innerhalb eines Quellpaketverzeichnisses ausgeführt wird.

DEVSCRIPT-KONFIGURATIONSVARIABLEN

Für den einfachen Gebrauch benötigt uscan das Setzen dieser Konfigurationsvariablen nicht.

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:

nur Herunterladen oder melden:
Falls dies auf yes gesetzt ist, verhindert uscan die Ausführung unsicherer Skripte, indem das erneute Packen heruntergeladener Pakete als auch das Aktualisieren des Quellverzeichnisbaums übersprungen werden. Dies entspricht den --safe-Optionen. Außerdem setzt dies die Voreinstellung auf --no-download und --skip-signature.
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).
Falls dies auf eine Zahl N gesetzt ist, wird die Zeitüberschreitung auf N Sekunden eingestellt. Dies entspricht der Option --timeout.
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).
Falls dies auf yes gesetzt ist, wird eine Ausgabe im DEHS-Stil verwendet. Dies entspricht der Option --dehs.
Falls dies auf yes gesetzt ist, wird eine detaillierte Ausgabe erzeugt. Dies entspricht der Option --verbose.
Falls gesetzt, wird die angegebene User-Agent-Zeichenkette anstelle der vorgegebenen benutzt. Dies entspricht der Option --user-agent.
Falls gesetzt, werden heruntergeladene Dateien in diesem Verzeichnis abgelegt. Dies entspricht der Option --destdir.
If this is set to yes, then after having downloaded a bzip tar, lzma tar, xz tar, zip or zstd archive, uscan will repack it to the specified compression (see --compression). This is equivalent to the --repack option.
Falls dies auf »no« gesetzt ist, werden im Feld Files-Excluded von debian/copyright erwähnte Dateien ignoriert und es wird nicht versucht, Dateien auszuschließen. Dies entspricht der Option --no-exclusion.
If set, the specified http header will be used if URL match. This is equivalent to --http-header option.

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 Ursprungsautoren gefunden.
1
Es wurde für keine der untersuchten watch-Dateien eine neuere Version der Ursprungsautoren gefunden.

FORTGESCHRITTENE FUNKTIONALITÄTEN

uscan hat viele weitere verbesserte Funktionalitäten, die im obigen Abschnitt der Einfachheit halber übersprungen wurden. Schauen wir uns ihre Glanzlicher an.

uscan kann mit Pfad als Argument ausgeführt werden, um das Startverzeichnis der Suche vom aktuellen Verzeichnis auf Pfad zu ändern.

Falls Sie nicht genau wissen, was im Hintergrund geschieht, aktivieren Sie bitte die Option --verbose. Falls dies nicht ausreicht, aktivieren Sie die Option --debug, um alle internen Aktivitäten zu sehen.

Weitere Variationen finden Sie unter BEFEHLZEILENOPTIONEN und DEVSCRIPT-KONFIGURATIONSVARIABLEN.

Benutzerdefiniertes Skript

Der optionale Parameter Skript in debian/watch bedeutet, dass Skript mit Optionen nach der Verarbeitung dieser Zeile ausgeführt wird, falls angegeben.

Wie uscan das benutzerdefinierte Skript aufruft, finden Sie unter "CHRONIK UND UPGRADES DURCHFÜHREN".

Um die Kompatibilität mit anderen Werkzeugen wie git-buildpackage zu wahren, ist es vermutlich keine gute Idee, benutzerdefinierte Skripte mit zufälligem Verhalten zu erstellen. Im Allgemeinen ist uupdate die beste Wahl für das nichtnative Paket und benutzerdefinierte Skripte, falls sie erstellt wurden, sollten sich wie uupdate verhalten. Einen möglichen Anwendungsfall finden Sie beispielsweise unter <http://bugs.debian.org/748474>.

URL-Umleitung

Einige populären Websites haben ihre Seitenstruktur geändert, was Wartungsprobleme mit der Watch-Datei verursachte. Es gibt einige Weiterleitungsdienste, die erstellt wurden, um die Wartung der Watch-Datei zu erleichtern. Derzeit leitet uscan URL-Anfragen automatisch an die folgenden URLs weiter, um diese Situation zu bewältigen.

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 die 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 ihren entsprechenden Befehlszeilenoptionen --check-dirname-level und --check-dirname-regex geregelt.

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. Falls nicht, dann muss er auf den vollständigen Verzeichnisnamen passen. Falls regulärer_Ausdruck die Zeichenkette Paket beinhaltet, wird dies durch den Namen des Quellpakets ersetzt, wie er aus debian/changelog bestimmt wird. Der vorgegebene Wert für den regulären_Ausdruck ist: Paket(-.+)?, daher entspricht er Verzeichnisnamen wie Paket und Paket-Version.

CHRONIK UND UPGRADES DURCHFÜHREN

Dieser Abschnitt beschreibt kurz die rückwärtsinkompatiblen watch-Dateifunktionalitäten, die in jeder watch-Dateiversion hinzugefügt wurden, und die erste Version des devscripts-Pakets, das sie verstand.

Zu jener Zeit war die watch-Dateisyntax signifikant anders. Verwenden Sie sie nicht. Falls Sie ein Upgrade von einer watch-Datei einer Version vor 2 durchführen, wird Ihnen empfohlen, diese Handbuchseite zu lesen und von Grund auf neu zu beginnen.
devscripts version 2.6.90: The first incarnation of the current style of watch files. This version is also deprecated and will be rejected after the Debian 11 release.
devscripts-Version 2.8.12 führte das Folgende ein: korrekte Handhabung von Sonderzeichen regulärer Ausdrücke im Pfadteil, Verzeichnis-/Pfadmusterabgleich, Versionsnummern in mehreren Teilen, Versionsnummerverarbeitung. Neuere Versionen haben außerden URL-Verarbeitung eingeführt.

Falls Sie ein Upgrade von Version 2 durchführen, besteht die Hauptinkomatibilität, wenn Sie mehrere Gruppen im Musterteil haben; während nur 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.

  • uscan ruft das benutzerdefinierte Skript als »Skript --upstream-version Version ../Quellpaket_Version.orig.tar.gz« auf.
  • uscan ruft das Standard-uupdate als »uupdate --no-symlink --upstream-version Version ../Quellpaket_Version.orig.tar.gz auf.
devscripts-Version 2.15.10: die erste Verkörperung der watch-Datei, die mehrere Tarbälle der Ursprungsautoren unterstützt.

Die Syntax der Watch-Datei wurde gelockert, um zur Lesbarkeit den Umgang mit mehr Leerräumen zu erlauben.

Falls Sie ein benutzerdefiniertes Skript anstelle von uupdate haben, stoßen Sie möglicherweise ebenfalls beim Aktualisieren von Version 3 auf Probleme.

  • uscan ruft das benutzerdefinierte Skript als »Skript --upstream-version Version« auf.
  • uscan ruft das Standard-uupdate als »uupdate --find --upstream-version Version« auf.

Die Beschränkung für --dehs wird aufgehoben, indem andere Ausgaben auf die Standardfehlerausgabe umgeleitet werden, wenn sie aktiviert ist.

SIEHE AUCH

dpkg(1), mk-origtargz(1), perlre(1), uupdate(1), 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 HTTP-Unterstützung hinzu. Das Programm wurde neu in Perl von Julian Gilbey geschrieben. Xavier Guimard hat es mittels Moo in objektorientiertes Perl umgewandelt.

2023-12-12 Debian-Hilfswerkzeuge