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: |
version=4
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)
[-_]?v?(\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:
component=Komponente
setzt den Namen des untergeordneten Quell-Tarballs für ein MUT-Paket als <Quellpaket>_<Originalversion>.orig-<Komponente>.tar.gz.
ctype=component-type
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.
compression=Methode
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). |
repack
erzwingt das erneute Packen der Tarballs der Ursprungsautoren mittels der Komprimierungs-Methode.
repacksuffix=Endung
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.
mode=Modus
setzt den Herunterlade-Modus.
LWP |
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. | ||
git |
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.
svn |
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.
pretty=Regel
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.
Wenn pretty=describe benutzt wird, ist die Versionszeichenkette der Ursprungsautoren stattdessen die Ausgabe des Befehls »git describe --tags | sed s/-/./g«. Falls das Commit zum Beispiel das 5. nach der letzten Markierung v2.17.12 und sein Kurz-Hash ged992511 ist, dann lautet die Zeichenkette v2.17.12.5.ged992511. In diesem Fall ist es eine gute Idee, uversionmangle=s/^/0.0~/ oder uversionmangle=s/^v// hinzuzufügen, um die Versionszeichenkette der Ursprungsautoren mit Debian kompatibel zu machen. uversionmangle=s/^v// funktioniert möglicherweise ebenfalls. Bitte beachten Sie, dass, damit pretty=describe gut klappt, die Ursprungsautoren das Markieren mit zufälligen alphabetischen Markierungen vermeiden müssen.
pretty=describe erzwingt die Einstellung gitmode=full, um das Depot automatisch vollständig lokal zu klonen.
date=Regel
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.
gitexport=mode
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.
gitmode=Modus
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.
pgpmode=Modus
setzt den Modus zum
Prüfen von PGP-/GPG-Signaturen.
auto
uscan prüft, ob mögliche URLs eine Signaturdatei haben und erzeugt automatisch eine pgpsigurlmangle-Regel, um sie zu verwenden.
default
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.
mangle
verwendet pgpsigurlmangle=Regeln, um die zu Auswahl stehende URL-Zeichenkette der Signaturdatei für die Tarball-URL der Ursprungsautoren zu erzeugen.
next
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.
previous
prüft den in der vorhergehenden Watch-Zeile angegebenen heruntergeladenen Tarball mit dieser Signaturdatei. Die vorhergehende Watch-Zeile muss pgpmode=next lauten.
self
überprüft die heruntergeladene Datei foo.Erw mit ihrer eigenen Signatur und extrahiert die darin enthaltene Tarball-Datei als foo.
gittag
prüft die Markierungssignatur, falls mode=git.
none
keine Signatur verfügbar (keine Warnung)
searchmode=Modus
setzt den auswertenden
Suchmodus.
html (Voreinstellung): sucht Muster im
»href«-Parameter von
<a>-HTML-Markierungen
plain: sucht Muster in der gesamten Seite
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@
decompress
dekomprimiert vor der Prüfung der PGP-/GPG-Signatur komprimierte Archive.
bare
deaktiviert allen Site-spezifischen Kode für Sonderfälle wie den Gebrauch von URL-Weiterleitungen und Änderungen des Seiteninhalts. (beständig)
user-agent=User-Agent-Zeichenkette
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.
pasv, passive
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.
active, nopasv
verwendet bei der FTP-Verbindung nicht den PASV-Modus.
unzipopt=Optionen
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.
dversionmangle=Regeln
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@//.
dirversionmangle=Regeln
bringt die Verzeichnispfadzeichenkette, die zum regulären Ausdruck innerhalb von Klammern von http:// URL passt, 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.
pagemangle=Regeln
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.
uversionmangle=Regeln
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.
versionmangle=Regeln
syntaktische Kurzschrift für uversionmangle=Regeln,dversionmangle=Regeln
hrefdecode=percent-encoding
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.
downloadurlmangle=Regeln
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.
filenamemangle=Regeln
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.
pgpsigurlmangle=Regeln
erzeugt die Kandidaten-Signaturdatei-URL-Zeichenkette der Ursprungsautoren aus der Tarball-URL der Ursprungsautoren.
oversionmangle=Regeln
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 +dfsg1 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. |
s/regulärer_Ausdruck/Ersatz/Optionen
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).
y/Quelle/Ziel/ oder tr/Quelle/Ziel/
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+dfsg1-4) unstable; urgency=low |
lautet, ist der Name des Pakets bar und die neuste Paketversion von Debian 3:2.03+dfsg1-4.
Die neuste Version der Ursprungsautoren wird auf die Normalform 2.03+dfsg1 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+dfsg1 ist, zeigt dies an, dass der Tarball neu gepackt wurde. Die Endung +dfsg1 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:
• |
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 +dfsg1 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.
Fall A: Packen des Quelltext-Tarballs, so wie er ist
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.
Fall B: Paketieren des Tarballs
der Ursprungsautoren nach den Entfernen
der Nicht-DFSG-Dateien
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 +dfsg1 verwendet.
Daher werden die kombinierten Optionen stattdessen als opts="dversionmangle=s/\+dfsg\d*$// ,repacksuffix=+dfsg1" gesetzt.
Der neu gepackte Tarball der Ursprungsautoren könnte zum Beispiel so heißen:
• |
../bar_2.04+dfsg1.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=+dfsg1"
\
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. +dfsg1 kann
der Version der Ursprungsautoren zum Beispiel wie folgt
hinzugefügt werden:
version=4
opts=oversionmangle=s/(.*)/$1+dfsg1/ \
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
Für Projekte, die auf GitHub verwaltet werden,
können Sie die Markierungs- oder
Veröffentlichungsseite benutzen. Die Archiv-URL
verwendet nur die Version als Dateiname. Sie können den
heruntergeladenen Tarball der Ursprungsautoren mittels
filenamemangle in die Vorgabe
<Projekt>-<Version>.tar.gz
umbenennen:
version=4
opts="filenamemangle=s%(?:.*?)?v?@ANY_VERSION@(@ARCHIVE_EXT@)%@PACKAGE@-$1$2%"
\
https://github.com/<user>/<project>/tags \
(?:.*?/)?v?@ANY_VERSION@@ARCHIVE_EXT@
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 [AT] 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 [AT] 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.
--conffile, --conf-file
Standard-Konfigurationsdateien
hinzufügen oder ersetzen
("/etc/devscripts.conf" und
"~/.devscripts"). Dies kann nur als erste auf der
Befehlszeile angegebene Option benutzt werden.
replace:
uscan --conf-file test.conf --verbose
add:
uscan --conf-file +test.conf --verbose
If one --conf-file has no "+", default configuration files are ignored.
--no-conf, --noconf
liest keine Konfigurationsdateien. Dies kann nur als erste auf der Befehlszeile angegebene Option benutzt werden.
--no-verbose
gibt keine detaillierten Informationen aus. (Voreinstellung)
--verbose, -v
zeigt detaillierte Informationen an.
--debug, -vv
Report verbose information and some internal state values.
--extra-debug, -vvv
berichtet detaillierte Informationen einschließlich heruntergeladener Webseiten als verarbeitet zur Fehlersuche auf die Standardfehlerausgabe.
--dehs
sendet Ausgaben im DEHS-Stil (XML-Typ) an die Standardausgabe, während alle anderen Ausgaben von Uscan an die Standardfehlerausgabe gesandt werden.
--no-dehs
verwendet nur das traditionelle Uscan-Ausgabeformat.(Voreinstellung)
--download, -d
lädt die neue Veröffentlichung der Ursprungsautoren herunter. (Voreinstellung)
--force-download, -dd
lädt die neue Veröffentlichung der Ursprungsautoren sogar dann herunter, wenn sie aktuell ist (wird jedoch nicht die lokale Datei überschreiben).
--overwrite-download, -ddd
lädt die neue Veröffentlichung der Ursprungsautoren sogar dann herunter, wenn sie aktuell ist (kann die lokale Datei überschreiben).
--no-download, --nodownload
lädt die Informationen nicht herunter und meldet sie nicht.
Vorher heruntergeladene Tarbälle können verwendet werden.
ändert die Voreinstellung in --skip-signature.
--signature
lädt die Signatur herunter. (Voreinstellung)
--no-signature
lädt die Signatur nicht herunter, prüft jedoch, ob sie bereits heruntergeladen wurde.
--skip-signature
belästigt weder mit dem Herunterladen noch mit dem Prüfen der Signatur.
--safe, --report
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.
--report-status
Dies entspricht dem Setzen der Option »--verbose --safe«
--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 (eine bestmöglich erfüllte Funktionalität).
--download-debversion version
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).
--download-current-version
lädt die aktuelle paketierte Version herunter (eine bestmöglich erfüllte Funktionalität).
--check-dirname-level N
Die Erklärung dieser Option finden Sie im nachfolgenden Abschnitt Prüfung von Verzeichnisnamen.
--check-dirname-regex regulärer_Ausdruck
Die Erklärung dieser Option finden Sie im nachfolgenden Abschnitt Prüfung von Verzeichnisnamen.
--destdir Pfad
Normalerweise ändert uscan sein internes
aktuelles
Verzeichnis auf das Quellverzeichnis des Pakets, in dem
debian/ liegt.
Dann wird das Zielverzeichnis zum Herunterladen des Tarballs
und
anderer Dateien auf das übergeordnete Verzeichnis
../ dieses internen
aktuellen Verzeichnisses gesetzt.
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.
--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 setzt automatisch --no-download and --skip-signature. Sie 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 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.
--watchfile watch-Datei
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.
--bare
deaktiviert alle Site-spezifischen Codes für Sonderfälle, die URL-Weiterleitungen und Änderungen des Seiteninhalts durchführen.
--http-header
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:
The given baseUrl must exactly match the base url
before ’/’.
Examples:
| --http-header value | Good
for | Never used |
+------------------------------------+-----------------------------+------------+
| https://example.org.com@Hdr=Value |
https://example.org.com/... | |
| https://example.org.com/@Hdr=Value | | X |
| https://e.com:1879@Hdr=Value | https://e.com:1879/... | |
| https://e.com:1879/dir@Hdr=Value |
https://e.com:1879/dir/... | |
| https://e.com:1879/dir/@Hdr=Value | | X |
It is strongly recommended to
not use this feature to pass a secret
token over unciphered connection (http://)
You can use "USCAN_HTTP_HEADER" variable (in
"~/.devscripts") to
hide secret token from scripts
--no-exclusion
schließt Dateien, die in debian/copyright im Feld Files-Excluded erwähnt wurden, nicht automatisch aus.
--pasv
erzwingt bei FTP-Verbindungen den PASV-Modus.
--no-pasv
verwendet bei FTP-Verbindungen nicht den PASV-Modus.
--no-symlink
benennt den Original-Tarball weder um, noch wird er neu gepackt.
--timeout N
setzt die Zeitüberschreitung auf N Sekunden (Voreinstellung 20 Sekunden).
--user-agent, --useragent
setzt die vorgegebene User-Agent-Kopfzeile außer Kraft.
--help
gibt eine kurze Gebrauchsinformation.
--version
zeigt Versionsinformationen.
uscan
akzeptiert außerdem die folgenden Optionen und leitet
sie an mk-origtargz weiter:
--symlink
erstellt symbolische orig.tar.gz-Verweise (mit passender Endung) auf die heruntergeladenen Dateien. (Dies ist das Standardverhalten.)
--copy
kopiert die heruntergeladenen Dateien, statt, wie oben beschrieben, symbolische Verweise darauf zu erstellen.
--rename
benennt die heruntergeladenen Dateien um, statt, wie oben beschrieben, symbolische Verweise darauf zu erstellen.
--repack
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 and jar archives, the mozilla-devscripts package must be installed to repack 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.
--compression [ gzip | bzip2 | lzma | xz ]
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.
--copyright-file Copyright-Datei
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:
USCAN_DOWNLOAD
nur Herunterladen oder melden:
no: entspricht --no-download, neuere Dateien der
Ursprungsautoren
werden nicht heruntergeladen.
yes: entspricht --download, neuere Dateien der
Ursprungsautoren
werden heruntergeladen. Dies ist das Standardverhalten.
Siehe auch --force-download und --overwrite-download.
USCAN_SAFE
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.
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 die Zeitüberschreitung auf 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
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.
USCAN_EXCLUSION
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.
USCAN_HTTP_HEADER
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.
Vorversion 2
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.
Version 2
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.
Version 3
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. |
Version 4
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 [AT] debian.org> geschrieben. Bedeutende Verbesserungen, Änderungen und Fehlerbehebungen wurden von Julian Gilbey <jdg [AT] debian.org> vorgenommen. Piotr Roszatycki <dexter [AT] 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.