USCAN.FR(1)

NOM
uscan - Tester ou surveiller la disponibilité d’une nouvelle version amont

SYNOPSIS
uscan [options] [chemin]

DESCRIPTION
Pour une utilisation basique, uscan est exécuté sans aucun paramètre à partir de la racine d’une arborescence source debianisée où on voit le répertoire debian/ ou un répertoire contenant plusieurs arborescences sources.

Sauf si --watchfile est indiqué, uscan recherche récursivement les arborescences source valides en partant du répertoire courant (voir la section "Vérification du nom du répertoire" ci-dessous pour plus de détails).

Pour chaque arborescence valide trouvée, typiquement la séquence est la suivante :

•   uscan lit la première entrée dans debian/changelog pour déterminer le nom du paquet source <spkg> et la dernière version amont.

•   uscan traite les lignes de veille debian/watch de haut en bas en une passe unique.

    •   uscan télécharge une page web à partir de l’URL spécifiée dans debian/watch.

    •   uscan extrait les références href pointant vers l’archive amont (ou les archives) à partir de la page web en utilisant le motif_correspondant dans debian/watch.

    •   uscan télécharge l’archive amont avec la version la plus haute plus récente que la dernière version amont.

    •   uscan sauvegarde l’archive téléchargée dans le répertoire parent ../ : ../<upkg>-<uversion>.tar.gz

    •   uscan invoque mk-origtargz pour créer l’archive source : ../<spkg>_<oversion>.orig.tar.gz

        •   Pour un paquet MUT ("multiple upstream tarball" - archive amont multiple), l’archive amont secondaire sera plutôt nommée ../<spkg>_<oversion>.orig-<composante>.tar.gz.

    •   L’action est répétée jusqu’à ce que toutes les lignes de debian/watch soient traitées.

•   Si demandé, uscan invoque uupdate pour créer l’arborescence source debianisée : ../<spkg>-<oversion>/* ou un script personnalisé.

Veuillez noter les informations suivantes.

•   Pour des raisons de simplicité, la méthode de compression utilisée dans les exemples est gzip avec le suffixe .gz. Les autres méthodes telles que xz, bzip2 et lzma, avec les suffixes xz, bz2 et lzma correspondants peuvent également être utilisées.

•   Depuis la version 4 de debian/watch, uscan permet la gestion des paquets avec multiples sources (MUT), mais ce sont des cas rares parmi les paquets Debian. Pour un paquet d’archive simple, il n’y a qu’une ligne de veille et pas de ../<spkg>_<oversion>.orig-<composante>.tar.gz .

•   uscan avec l’option --verbose produit un rapport lisible de son exécution.

•   uscan avec l’option --debug produit un rapport lisible de son exécution avec l’état des variables internes.

•   uscan avec l’option --extra-debug produit un rapport lisible de son exécution avec l’état des variables internes et le contenu distant lors de la phase "recherche".

•   uscan avec l’option --dehs produit un rapport d’état du paquet amont au format XML pour que d’autres programmes tels que Debian External Health System.

•   L’objectif premier d’uscan est d’aider à déterminer si c’est bien la dernière version de l’archive amont qui est utilisée et de télécharger cette version d’archive. L’ordre des versions est déterminée par dpkg --compare-versions.

•   L’option --safe d’uscan limite ses fonctionnalités à ses objectifs premiers. À la fois le repaquetage des fichiers téléchargés et la mise à jour de l’arborescence source sont sautés pour éviter l’exécution de scripts non sécurisés. Cela change aussi les options par défaut à --no-download et --skip-signature.

FORMAT DU FICHIER DE VEILLE
Le format actuel de debian/watch est décrit dans la page de manuel debian-watch(5). Les formats précédents (versions 1 à 4) le sont dans la page debian-watch-4(5).

Pour convertir un fichier version <= 4 dans la dernière version, utiliser simplement:

  uscan --update-watchfile

et examiner le résultat.

EXEMPLES DE FICHIER DE COPYRIGHT
Voici un exemple de fichier debian/copyright qui déclenche le rempaquetage automatique de l’archive amont en <spkg>_<oversion>.orig.tar.gz (dans debian/copyright, les alinéas Files-Excluded et Files-Excluded-component font partie du premier paragraphe et il existe un ligne vide avant les paragraphes suivants qui contiennent Files et d’autres alinéas.) :

  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: ...
  ...

Voici un autre exemple de fichier debian/copyright qui déclenche le rempaquetage automatique d’archives amont multiples en <spkg>_<oversion>.orig.tar.gz et <spkg>_<oversion>.orig-bar.tar.gz:

  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: ...
  ...

Le fichier debian/copyright peut également contenir des entrées Files-Included et Files-Included-component qui ré-incluent des fichiers précédemment exclus. C'est pratique pour exclure un répertoire à l'exception de quelques fichiers :

  Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
  Files-Excluded: vendor-dir
  Files-Included:
   vendor-dir/directory/to/keep
   vendor-dir/*/file-to-keep

  Files: *
  Copyright: ...
  ...

Voir mk-origtargz(1).

EXEMPLES DE FICHIER DE TROUSSEAU
Supposons que la "clef de test d’uscan (non secrète) <none@debian.org>" amont signe son paquet avec une clef secrète OpenPGP et publie la clef publique OpenPGP correspondante. Cette clef publique OpenPGP peut être identifiée de trois façons différentes avec sa forme hexadécimale.

•   L’empreinte sous la forme des 20 octets de données calculés à partir de la clef publique OpenPGP. Par exemple "CF21 8F0E 7EAB F584 B7E2 0402 C77E 2D68 7254 3FAF

•   L’identificateur long " long keyid") sous la forme des 8 derniers octets de données de l’empreinte. Par exemple, "C77E2D6872543FAF"

•   L’identificateur court ("short keyid") sous la forme des 4 derniers octets de données de l’empreinte. Par exemple, "72543FAF"

Compte tenu de l’existence des attaques par collisions sur les identificateurs courts, il est recommandé d’utiliser l’identificateur long pour recevoir des clefs à partir des serveurs de clefs publiques. Vous devez vérifier la clef OpenPGP téléchargée en utilisant la valeur de son empreinte complète dont vous savez qu’elle est sûre.

Le fichier de trousseau blindé debian/upstream/signing-key.asc peut être créé en utilisant la commande gpg comme suit.

  $ 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 chemin/vers/<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

Les fichiers de trousseau binaires, debian/upstream/signing-key.pgp et debian/upstream-signing-key.pgp, sont encore gérés, mais ils sont obsolètes.

Si un groupe de développeurs signe le paquet, il faut la liste des empreintes de chacun d’entre eux dans le paramètre pour gpg --export ... afin que le trousseau contienne toutes leurs clefs OpenPGP.

Parfois, on se demande qui a créé le fichier de signature. Il est possible d’obtenir l’identificateur de la clef publique utilisé pour créer le fichier de signature séparé toto-2.0.tar.gz.asc en exécutant gpg ainsi :

  $ gpg -vv toto-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 `toto-2.0.tar.gz'
  gpg: Signature made Sun 18 Oct 2015 11:11:09 PM JST using RSA key ID 72543FAF
  ...

OPTIONS DE LIGNE DE COMMANDE
Pour un usage basique d’uscan, la configuration de ces options n’est pas nécessaire.

--conffile, --conf-file
    Ajoute ou remplace les fichiers de configuration par défaut ("/etc/devscripts.conf" and "~/.devscripts"). L’option ne peut être utilisée qu’en première position de la ligne de commande.

    remplacer :
          uscan --conf-file test.conf --verbose

    ajouter :
          uscan --conf-file +test.conf --verbose

        Si l’un des --conf-file ne contient pas de "+", les fichiers de configuration par défaut sont ignorés.

--no-conf, --noconf
    Ne lire aucun fichier de configuration. L’option ne peut être utilisée qu’en première position de la ligne de commande.

--no-verbose
    Ne pas rapporter d’informations verbeuses. (Par défaut).

--verbose, -v
    Rapporter des informations verbeuses.

--debug, -vv
    Rapporter des informations verbeuses et les valeurs de certains états internes.

--extra-debug, -vvv
    Rapporter des informations verbeuses y compris les pages web téléchargées traitées sur la sortie d’erreur standard pour débogage.

--dehs
    Envoyer la sortie de style DEHS (type XML) sur la sortie standard, tout en envoyant toutes les autres sorties de uscan sur la sortie d’erreur standard.

--no-dehs
    Utiliser seulement le format de sortie traditionnel de uscan. (Par défaut)

--download, -d
    Télécharger la nouvelle version amont. (Par défaut)

--force-download, -dd
    Télécharger la nouvelle version amont même si elle est à jour (peut ne pas écraser les fichiers locaux).

--overwrite-download, -ddd
    Télécharger le fichier amont même si le paquet est à jour (peut écraser les fichiers locaux).

--no-download, --nodownload
    Ne pas télécharger ni rapporter d’information.

    Des archives précédemment téléchargées peuvent être utilisées.

    Passage du comportement par défaut à --skip-signature.

--signature
    Télécharger la signature. (Par défaut)

--no-signature
    Ne pas télécharger la signature, mais vérifier si elle a déjà été téléchargée.

-skip-signature
    Ne pas s’occuper de télécharger ni de vérifier la signature.

--safe, --report
    Éviter l’exécution de scripts non sécurisés en sautant à la fois le rempaquetage du paquet téléchargé et la mise à jour de l’arborescence de la nouvelle source.

    Passage du comportement par défaut à --no-download et --skip-signature.

    Quand l’objectif de l’exécution de uscan est de recueillir l’état du paquet amont sous un environnement conscient de la sécurité, veuillez vous assurer d’utiliser cette option.

--report-status
    Équivaut à utiliser l’option --verbose --safe.

--download-version version
    Indiquer la version à laquelle la version amont doit correspondre pour être prise en compte, plutôt qu’utiliser celle avec le numéro de version le plus important (fonctionnalité optimale).

--download-debversion version
    Préciser la version du paquet Debian dont il faut télécharger la version amont correspondante. Les règles dversionmangle et uversionmangle sont prises en compte (fonctionnalité au meilleur effort).

--download-current-version
    Télécharger la version actuelle du paquet. (fonctionnalité optimale)

--check-dirname-level N
    Veuillez consulter la section "Vérification du nom du répertoire" ci-dessus pour une explication de cette option.

--check-dirname-regex regex
    Veuillez consulter la section "Vérification du nom du répertoire" ci-dessus pour une explication de cette option.

--destdir chemin Normalement, uscan change son répertoire courant interne pour le répertoire source du paquet où le répertoire debian/ est situé. Ensuite, le répertoire de destination de l’archive téléchargée et des autres fichiers est défini sur le répertoire parent ../ à partir de ce répertoire courant interne.
    Le répertoire de destination par défaut peut être remplacé en définissant l’option --destdir vers un chemin particulier. Si ce chemin est un chemin relatif, le répertoire de destination est déterminé relativement au répertoire courant interne d’exécution d’uscan. Si ce chemin est un chemin absolu, le répertoire de destination est fixé à cheminindépendamment du répertoire courant interne d’exécution d’uscan.

    Ce qui précède est vrai non seulement pour l’exécution unique d’uscan dans une arborescence de sources unique, mais aussi pour l’exécution par uscan d’une recherche avancée dans des sous-répertoires contenant plusieurs arborescences de sources.

    Une exception existe quand les options --watchfile et --package sont utilisées ensemble. Dans ce cas, le répertoire courant interne d’exécution d’uscan et le répertoire de destination par défaut sont définis au répertoire courant . où uscan est lancé. Le répertoire de destination par défaut peut être remplacé en définissant aussi l’option --destdir.

--package paquet
    Indiquer le nom du paquet à contrôler plutôt qu’examiner debian/changelog ; cela nécessite les options --upstream-version (à moins qu’une option ne soit précisée dans le fichier watch) et --watchfile. De plus, aucun répertoire ne sera scanné et rien ne sera téléchargé. Cette option configure automatiquement --no-download et --skip-signature ; elle est probablement la plus utile en conjonction avec le système DEHS (et --dehs).

--upstream-version version-amont
    Indiquer la version amont actuelle plutôt qu’examiner le fichier debian/watch ou le journal des modifications de Debian pour le déterminer. C’est ignoré si un balayage de répertoire est fait et que plus d’un fichier debian/watch est trouvé.

--vcs-export-uncompressed
    Supprimer la compression d’archives exportées depuis un système de contrôle de versions (Git ou Subversion). Cela occupe plus d’espace, mais permet de gagner du temps si mk-origtargz doit réempaqueter l’archive pour exclure des fichiers. Force le réempaquetage de toutes les archives exportées.

--watchfile watchfile
    Indiquer le fichier watch plutôt que faire un balayage de répertoire pour le déterminer. Si cette option est utilisée sans --package, uscan devra être appelé depuis l’arborescence du paquet Debian source (de sorte que debian/changelog puisse être trouvé simplement par une recherche dans l’arborescence).

    Une exception existe quand les options --watchfile et --package sont utilisées ensemble. uscan peut être appelé à partir de n’importe quel répertoire et le répertoire courant interne d’exécution d’uscan et le répertoire de destination par défaut sont définis au répertoire courant . où uscan est lancé.

    Vous trouverez plus d’informations dans l’explication de --destdir.

--bare
    Désactiver tout le code "special code" spécifique au site pour réaliser les redirections d’URL et les altérations de contenu de page.

--http-header
    Ajoute l’en-tête spécifié dans les requêtes HTTP correspondant à l’url. Cette option peut être multivaluée, les valeurs doivent être de la forme "baseUrl@NomEnTête=valeur". Exemple :

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

    Sécurité :

    L’URL baseUrl doit exactement correspondre à l’URL de base avant "/". Exemples :
          |        valeur --http-header        |           Bonne pour        | Inutilisée |
          +------------------------------------+-----------------------------+------------+
          | 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      |

    Il est vivement recommandé de ne pas utiliser cette fonctionnalité pour passer un jeton secret via une connexion non chiffrée (http://)
    On peut utiliser la variable "USCAN_HTTP_HEADER" (dans "~/.devscripts") pour masquer les jetons secrets des scripts
--no-exclusion
    Ne pas exclure automatiquement les fichiers mentionnés dans le champ Files-Excluded de debian/copyright.

--no-symlink
    Ne pas renommer ni rempaqueter l’archive amont.

--timeout N
    Définir le temps d’attente à N secondes (20 secondes par défaut).

--user-agent, --useragent
    Utiliser un champ "user agent" différent de celui par défaut.

--help
    Afficher un bref message d’aide.

--version
    Afficher les informations sur la version.

uscan accepte aussi les options suivantes et les passe à mk-origtargz :

--symlink
    Faire des fichiers résultants orig.tar.gz (avec l’extension appropriée) des liens symboliques vers les fichiers téléchargés (c’est le comportement par défaut).

--copy
    Au lieu de créer des liens symboliques comme décrit précédemment, copier les fichiers téléchargés.

--rename
    Au lieu de créer des liens symboliques comme décrit précédemment, renommer les fichiers téléchargés.

--repack
    Après avoir téléchargé une archive lzma tar, xz tar, bzip tar, gz tar, lz tar, zip, jar, xpi, zstd, la réempaqueter à la compression spécifiée (voir --compression).

    Le paquet unzip doit être installé pour réempaqueter les archives zip, jar et xpi, le paquet xz-utils pour les archives tar compressées avec lzma ou xz, le paquet zstd pour les archives zstd et le paquet lzip pour les archives lz tar.

--compression [ gzip | bzip2 | lzma | xz ]
    Au cas où les sources amont sont rempaquetés (soit parce que l’option --repack est donnée, soit parce que debian/copyright contient le champ Files-Excluded), la méthode de compression peut être contrôlée avec le paramètre comp. La méthode par défaut est gzip pour les archives normales, et xz pour les archives générées directement à partir du dépôt git.

--copyright-file fichier_de_copyright
    Exclure les fichiers mentionnés dans le champ Files-Excluded du fichier_de_copyright donné. C’est utile lors de l’utilisation d’uscan en dehors d’un répertoire de paquet source.

VARIABLES DE CONFIGURATION DE DEVSCRIPT
Pour une utilisation de base d’uscan, la configuration de ces variables n’est pas nécessaire.

Les deux fichiers de configuration /etc/devscripts.conf et ~/.devscripts sont évalués dans cet ordre par un interpréteur de commandes ("shell") pour placer les variables de configuration. Des options de ligne de commande peuvent être utilisées pour neutraliser les paramètres des fichiers de configuration. Les paramètres des variables d’environnement sont ignorés à cette fin. Si la première option donnée en ligne de commande est --noconf, alors ces fichiers ne sont pas évalués. Les variables actuellement identifiées sont :

USCAN_DOWNLOAD
    Télécharger ou rapporter l’information seulement:

    no : équivaut à --no-download, les nouveaux fichiers ne seront pas téléchargés.
    yes: equivaut à --download, les nouveaux fichiers amont seront téléchargés. C’est le comportement par défaut.
        Voir aussi --force-download and --overwrite-download.

USCAN_SAFE
    Si elle est définie à yes, alors uscan évite l’exécution de scripts non sécurisés en sautant à la fois le rempaquetage du paquet téléchargé et la mise à jour de l’arborescence de la nouvelle source ; c’est l’équivalent des options --safe ; cela définit aussi les options par défaut à --no-download et --skip-signature.

USCAN_TIMEOUT
    Si cette option est définie à un nombre N, alors définir le temps limite à N secondes. C’est équivalent à l’option --timeout.

USCAN_SYMLINK
    Si cette option est mise à no, un lien symbolique vers paquet_version.orig.tar.{gz|bz2|lzma|xz} ne sera pas créé (équivalent à l’option --no-symlink). Si elle est à yes ou symlink, les liens symboliques seront créés. Si elle est à rename, les fichiers sont renommés (équivalent à l’option --rename).

USCAN_DEHS_OUTPUT
    Si cette option est à yes, alors la sortie sera de type DEHS, comme si l’option --dehs était utilisée.

USCAN_VERBOSE
    Si elle est définie à yes, alors la sortie sera verbeuse, comme si l’option --verbose était utilisée.

USCAN_USER_AGENT
    Si elle est définie, elle spécifie la chaîne à utiliser pour annoncer le navigateur ("user agent") à la place de la valeur par défaut. C’est équivalent à l’option --user-agent.

USCAN_DESTDIR
    Si elle est définie, elle désigne le répertoire où les fichiers téléchargés seront placés. C’est équivalent à l’option --destdir.

USCAN_REPACK
    Si elle est définie à yes, alors après avoir téléchargé une archive tar compressée avec bzip, lzma, xz ou zstd ou une archive ZIP, uscan recréera une archive compressée du type défini (voir --compression). C’est équivalent à l’option --repack.

USCAN_EXCLUSION
    Si elle est définie à no, les fichiers mentionnés dans le champ Files-Excluded de debian/copyright seront ignorés et aucune exclusion de fichiers ne sera tentée. C’est équivalent à l’option --no-exclusion.

USCAN_HTTP_HEADER
    Si définie, l’en-tête spécifié sera utilisé pour toutes les URLs correspondantes. C’est équivalent à l’option --http-header.

USCAN_VCS_EXPORT_UNCOMPRESSED
    Si elle est définie à yes, les archives exportées depuis un système de contrôle de versions ne seront pas compressées. C’est équivalent à l’option --vcs-export-uncompressed.

VALEURS DE RETOUR
Le code de retour indique si une nouvelle version a été trouvée ; il est conseillé de lire la sortie pour déterminer exactement ce qui s’est passé et pour voir s’il n’y a pas eu d’avertissement.

0   Soit les options --help ou --version ont été utilisées, soit une nouvelle version amont a été trouvée pour un des fichiers watch examinés.

1   Aucune nouvelle version amont n’a été trouvée pour les fichiers watch examinés.

FONCTIONNALITÉS AVANCÉES
uscan possède beaucoup d’autres fonctionnalités qui sont sautées dans la section ci-dessus, pour être plus simple. Regardons leurs points marquants.

uscan peut être exécuté avec chemin comme paramètre pour passer le répertoire de départ de recherche du répertoire courant à chemin.

Si vous ne savez pas exactement ce qui se passe dans les coulisses, veuillez activer l’option --verbose. Si ce n’est pas suffisant, activez l’option --debug pour voir toutes les actions internes.

Voir "OPTIONS DE LIGNE DE COMMANDE" et "VARIABLES DE CONFIGURATION DE DEVSCRIPT" pour d’autres variantes.

  Script personnalisé
After processing other stuff uscan will run script if requested in debian/watch. Otherwise there will be no extra action.

Pour des raisons de compatibilité avec d’autres outils tels que git-buildpackage, il peut être judicieux de ne pas créer des scripts personnalisés au comportement aléatoire. En général, uupdate est le meilleur choix pour un paquet non natif, et les scripts personnalisés, s’ils existent, devraient se comporter comme uupdate. Pour des cas d’utilisation potentiels, voir <http://bugs.debian.org/748474> comme exemple.

For info on how to request this script, please see debian-watch(5) for recommended version 5 format or debian-watch-4(5) for old version 4 format.

Voir "HISTORIQUE ET MISE À NIVEAU" pour voir comment uscan invoque le <script> personnalisé.

  Détournement d’URL
Certains sites populaires ont changé leur structure de page web provoquant des problèmes de maintenance du fichier de veille. Des services de redirection ont été créés pour faciliter sa maintenance. Actuellement, uscan fait un détournement automatique des requêtes d’URL pour les URL suivantes afin de gérer cette situation.

•   <http://sf.net>

•   <http://pypi.python.org>

  Vérification du nom du répertoire
Comme plusieurs autres scripts du paquet devscripts, uscan parcourt l’arborescence du répertoire demandé à la recherche de fichiers debian/changelog et debian/watch. Pour se protéger contre certains fichiers égarés qui pourraient poser problème, et pour des raisons d’efficacité, il examine le nom du répertoire parent une fois qu’il a trouvé le fichier debian/changelog, et vérifie que le nom du répertoire correspond au nom du paquet. Il ne cherchera à télécharger les nouvelles versions d’un paquet et à effectuer l’action demandée que si le nom du répertoire correspond au nom du paquet. La façon précise utilisée est contrôlée par les deux variables du fichier de configuration DEVSCRIPTS_CHECK_DIRNAME_LEVEL et DEVSCRIPTS_CHECK_DIRNAME_REGEX, et les options en ligne de commande associées --check-dirname-level et --check-dirname-regex.

DEVSCRIPTS_CHECK_DIRNAME_LEVEL peut prendre les valeurs suivantes :

0   Ne jamais vérifier le nom du répertoire.

1   Ne vérifie le nom du répertoire que s’il a fallu changer de répertoire pour trouver le fichier debian/changelog, c’est-à-dire que le répertoire qui contient debian/changelog n’est pas le répertoire dans lequel uscan a été invoqué. C’est le comportement par défaut.

2   Toujours vérifier le nom du répertoire.

Le nom du répertoire est vérifié en testant si le nom du répertoire actuel (donné par pwd(1)) correspond à l’expression rationnelle donnée par la variable DEVSCRIPTS_CHECK_DIRNAME_REGEX du fichier de configuration ou par l’option --check-dirname-regex expression_rationnelle. Il s’agit d’une expression rationnelle Perl (voir perlre(1)), qui sera ancrée à son début et à sa fin. Si elle contient un /, alors elle doit correspondre au chemin complet. Sinon, elle doit correspondre au nom de répertoire complet. Si elle contient la chaîne paquet, cette chaîne sera remplacée par le nom du paquet source déterminé par le fichier debian/changelog. La valeur par défaut de cette expression rationnelle est : paquet(-.+)?, ce qui correspond aux répertoires nommés paquet ou paquet-version.

HISTORIQUE ET MISE À NIVEAU
Cette section décrit brièvement les incompatibilités inverses des fonctionnalités du fichier watch qui ont été ajoutées dans chaque version du fichier watch et la première version du paquet devscripts qui les comprenait.

Versions antérieures à 2
    La syntaxe du fichier watch était très différente à l’époque. Ne l’utilisez plus. Si vous mettez votre fichier watch à niveau depuis une version antérieure à 2, il est recommandé de lire cette page de manuel et de recommencer à zéro.

Version 2
    devscripts version 2.6.90 : la première incarnation du style actuel de fichier watch. Cette version est également dépréciée et sera rejetée dès la publication de Debian 11.

Version 3
    devscripts version 2.8.12 a introduit les choses suivantes : manipulation correcte des expressions rationnelles dans la partie du chemin, recherche de motif d’un répertoire/chemin, numéro de version dans plusieurs parties, numéro de version modifiable. Les versions suivantes ont introduit la modification des liens.

    Si vous êtes en train de vous mettre à niveau depuis la version 2, l’incompatibilité principale est lorsqu’il existe plusieurs groupes dans la partie des motifs. Alors que seul le premier était utilisé dans la version 2, ils le seront tous dans la version 3. Pour éviter ce comportement, modifiez les groupes non liés au numéro de version en (?: ... ) au lieu d’un groupe ordinaire ( ... ).

    •   uscan invoque le script personnalisé comme ceci : script --upstream-version version ../spkg_version.orig.tar.gz.

    •   uscan invoque uupdate standard comme ceci : "uupdate --no-symlink --upstream-version version ../spkg_version.orig.tar.gz".

Version 4
    devscripts version 2.15.10 : la première incarnation des fichiers watch prenant en charge les archives amont multiples.

    La syntaxe du fichier de veille est assouplie pour permettre plus d’espaces de lisibilité.

    Si vous avez un script personnalisé à la place de uupdate, vous pouvez aussi rencontrer des problèmes lors de la mise à jour à partir de la version 3.

    •   uscan invoque le script personnalisé comme ceci : "script --upstream-version version".

    •   uscan invoque uupdate standard comme ceci : "uupdate --find --upstream-version version".

    Les restrictions pour --dehs sont levées en redirigeant les autres sorties sur la sortie d’erreur standard lorsque elle est active.

VOIR AUSSI
dpkg(1), mk-origtargz(1), perlre(1), uupdate(1), devscripts.conf(5), debian-watch(5), debian-watch-4(5)

AUTEUR
La version initiale de uscan a été écrite par Christoph Lameter <clameter@debian.org>. Des améliorations significatives, d’autres modifications et des corrections de bogues ont été apportées par Julian Gilbey <jdg@debian.org>. La prise en charge de HTTP a été ajouté par Piotr Roszatycki <dexter@debian.org>. Le programme a été réécrit en Perl par Julian Gilbey. Xavier Guimard l’a convertit en Perl orienté-objet en utilisant Moo.

TRADUCTION
Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>, 2006

Thomas Huriaux <thomas.huriaux@gmail.com>, 2006

David Prévot <david@tilapin.org>, 2010-2013

Xavier Guimard <yadd@debian.org>, 2018-2024