Suivant: Invoquer guix size
, Précédent: Invoquer guix style
, Monter: Utilitaires [Table des matières][Index]
guix lint
La commande guix lint
est conçue pour aider les développeur·euses
à éviter des erreurs communes et à utiliser un style cohérent lors de
l’écriture de recettes de paquets. Elle lance des vérifications sur un
ensemble de paquets donnés pour trouver des erreurs communes dans leur
définition. Les vérifieurs disponibles comprennent (voir
--list-checkers pour une liste complète) :
synopsis
description
Vérifie certaines règles typographiques et stylistiques dans les descriptions et les synopsis.
inputs-should-be-native
Identifie les entrées qui devraient sans doute plutôt être des entrées natives.
source
home-page
mirror-url
github-url
source-file-name
Sonde les URL home-page
et source
et rapporte celles qui sont
invalides. Suggère une URL en mirror://
lorsque c’est possible. Si
l’URL de source
redirige vers une URL GitHub, recommande d’utiliser
l’URL GitHub. Vérifie que le nom du fichier source a un sens, p. ex.
qu’il ne s’agisse pas juste d’un numéro de version ou « git-checkout », sans
avoir déclaré un file-name
(voir Référence de origin
).
source-unstable-tarball
Analyse l’URL source
pour déterminer si une archive de GitHub est
autogénérée ou s’il s’agit d’une archive de publication. Malheureusement
les archives autogénérées de GitHub sont parfois régénérées.
dérivation
Vérifiez que la dérivation des paquets donnés peut être calculée avec succès pour tous les systèmes pris en charge (voir Dérivations).
profile-collisions
Vérifiez si l’installation des paquets donnés dans un profil risque
d’entraîner des collisions. Des collisions se produisent lorsque plusieurs
paquets portant le même nom mais avec une version différente ou un nom de
fichier de stockage différent sont propagés. Voir propagated-inputs
, pour plus d’informations sur les entrées
propagées.
archivage
¶Vérifie si le code source du paquet est archivé à Software Heritage.
Lorsque le code source non archivé provient d’un système de contrôle de
version (VCS)—par exemple, il est obtenu avec git-fetch
, envoyez au
Software Heritage une requête « save » afin qu’il l’archive éventuellement.
Cela garantit que le code source restera disponible à long terme et que Guix
peut se retourner vers le Software Heritage si le code source disparaît de
son hôte d’origine. L’état des demandes récentes de « sauvegarde » peut
être consulté en
ligne.
Quand le code source est une archive obtenue avec url-fetch
, cela
affiche simplement un message quand il n’est pas archivé. Au moment où nous
écrivons ces lignes, le Software Heritage n’autorise pas les demandes de
sauvegarde d’archives arbitraires ; nous travaillons sur les moyens de
garantir que le code source non-VCS soit également archivé.
Software Heritage
limits the
request rate per IP address. Quand la limite est atteinte, guix
lint
affiche un message et le vérificateur archival
arrête de faire
quoi que ce soit jusqu’à ce que cette limite soit réinitialisée.
cve
¶Rapporte les vulnérabilités connues trouvées dans les bases de données CVE (Common Vulnerabilities and Exposures) de l’année en cours et de l’année précédente published by the US NIST.
Pour voir les informations sur une vulnérabilité en particulier, visitez les pages :
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-ANNÉE-ABCD
’
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ANNÉE-ABCD
’
où CVE-ANNÉE-ABCD
est l’identifiant CVE — p. ex.
CVE-2015-7554
.
On peut spécifier dans les recettes des paquets le nom Common Platform Enumeration (CPE) et la version du paquet s’ils diffèrent du nom et de la version que Guix utilise, comme dans cet exemple :
(package
(name "grub")
;; …
;; CPE nomme ce paquet "grub2".
(properties '((cpe-name . "grub2")
(cpe-version . "2.3"))))
Certaines entrées dans la base de données CVE ne spécifient pas la version du paquet auquel elles s’appliquent et lui restera donc attachée pour toujours. Les développeur·euses qui trouvent des alertes CVE et ont vérifié qu’elles peuvent être ignorées peuvent les déclarer comme dans cet exemple :
(package
(name "t1lib")
;; …
;; Ces CVE ne s'appliquent plus et peuvent être ignorée sans problème.
(properties `((lint-hidden-cve . ("CVE-2011-0433"
"CVE-2011-1553"
"CVE-2011-1554"
"CVE-2011-5244")))))
formatting
Avertit de problèmes de formatage du code source évidents : des espaces en fin de ligne, des tabulations, etc.
input-labels
Rapport les étiquettes de l’ancien style qui ne correspondent pas au nom du
paquet. Cela a pour but d’aider à migrer de « l’ancien style
». Voir Référence de package
, pour plus d’information sur les entrées des
paquets et les styles d’entrées. Voir Invoquer guix style
, pour la manière
de migrer vers le nouveau style.
La syntaxe générale est :
guix lint options package…
Si aucun paquet n’est donné par la ligne de commande, tous les paquets seront vérifiés. Les options peuvent contenir aucune ou plus des options suivantes :
--list-checkers
-l
Liste et décrit tous les vérificateurs disponibles qui seront lancés sur les paquets puis quitte.
--checkers
-c
N’active que les vérificateurs spécifiés dans une liste de noms séparés par des virgules parmi la liste renvoyée par --list-checkers.
--exclude
-x
Ne désactive que les vérifications spécifiés dans une liste de noms séparés par des virgules, en utilisant les noms de --list-checkers.
--expression=expr
-e expr
Considérer le paquet évalué par expr.
C’est utile pour désigner des paquets sans ambiguïté, comme dans cet exemple :
guix lint -c archival -e '(@ (gnu packages guile) guile-3.0)'
--no-network
-n
N’active que les vérificateurs qui ne dépendent pas d’un accès réseau.
--load-path=répertoire
-L répertoire
Ajoute répertoire au début du chemin de recherche de module de paquets (voir Modules de paquets).
Cela permet à des utilisateurs de définir leur propres paquets et les rendre disponibles aux outils en ligne de commande.
Suivant: Invoquer guix size
, Précédent: Invoquer guix style
, Monter: Utilitaires [Table des matières][Index]