Next: Invocación de guix size
, Previous: Invoking guix style
, Up: Utilidades [Contents][Index]
guix lint
La orden guix lint
sirve para ayudar a las desarrolladoras de
paquetes a evitar errores comunes y usar un estilo consistente. Ejecuta un
número de comprobaciones en un conjunto de paquetes proporcionado para
encontrar errores comunes en sus definiciones. Las comprobaciones
disponibles incluyen (véase --list-checkers para una lista
completa):
synopsis
description
Valida ciertas reglas tipográficas y de estilo en la descripción y sinopsis de cada paquete.
inputs-should-be-native
Identifica entradas que probablemente deberían ser entradas nativas.
source
home-page
mirror-url
github-url
source-file-name
Probe home-page
and source
URLs and report those that are
invalid. Suggest a mirror://
URL when applicable. If the
source
URL redirects to a GitHub URL, recommend usage of the GitHub
URL. Check that the source file name is meaningful, e.g. is not just a
version number or “git-checkout”, without a declared file-name
(see Referencia de origin
).
source-unstable-tarball
Analiza la URL source
para determinar si un archivador tar de GitHub
se genera de forma automática o es una publicación
oficial. Desafortunadamente los archivadores tar de GitHub a veces se
regeneran.
derivation
Comprueba que la derivación de los paquetes proporcionados pueden ser calculadas de manera satisfactoria en todos los sistemas implementados (see Derivaciones).
profile-collisions
Comprueba si la instalación de los paquetes proporcionados en el perfil
provocaría colisiones. Las colisiones se producen cuando se propagan varios
paquetes con el mismo nombre pero una versión diferente o un nombre de
archivo del almacén. See propagated-inputs
,
para más información sobre entradas propagadas.
archival
¶Comprueba si el código fuente del paquete se encuentra archivado en Software Heritage.
Cuando el código fuente que no se encuentra archivado proviene de un sistema
de control de versiones27—por ejemplo, se ha
obtenido con git-fetch
—, envía a Software Heritage una petición de
almacenamiento de manera que se archive cuando sea posible. Esto asegura que
las fuentes permanecen disponibles a largo plazo, y que Guix puede usar
Software Heritage como respaldo en caso de que el código fuente
desapareciese de la máquina que lo almacenaba originalmente. El estado de
las peticiones de almacenamiento recientes puede
verse en su
página web.
Cuando el código fuente es un archivo comprimido que se obtiene con
url-fetch
, simplemente imprime un mensaje cuando no se encuentra
archivado. En el momento de la escritura de este documento, Software
Heritage no permite el almacenamiento de archivos comprimidos arbitrarios;
estamos trabajando en formas de asegurar que también se archive el código
que no se encuentra bajo control de versiones.
Software Heritage
limita la
tasa de peticiones por dirección IP. Cuando se alcanza dicho límite,
guix lint
imprime un mensaje y la comprobación archival
no
hace nada hasta que dicho límite se reinicie.
cve
¶Informa de vulnerabilidades encontradas en las bases de datos de vulnerabilidades y exposiciones comunes (CVE) del año actual y el pasado publicadas por el NIST de EEUU.
Para ver información acerca de una vulnerabilidad particular, visite páginas como:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD
’
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD
’
donde CVE-YYYY-ABCD
es el identificador CVE—por ejemplo,
CVE-2015-7554
.
Las desarrolladoras de paquetes pueden especificar en las recetas del paquete el nombre y versión en la plataforma común de enumeración (CPE) del paquete cuando el nombre o versión que usa Guix son diferentes, como en este ejemplo:
(package
(name "grub")
;; …
;; CPE llama a este paquete "grub2".
(properties '((cpe-name . "grub2")
(cpe-version . "2.3"))))
Algunas entradas en la base de datos CVE no especifican a qué versión del paquete hacen referencia, y por lo tanto “permanecen visibles” para siempre. Las desarrolladoras de paquetes que encuentren alertas CVE y verifiquen que pueden ignorarse, pueden declararlas como en este ejemplo:
(package
(name "t1lib")
;; …
;; Estas alertas de CVE no aplican y pueden ignorarse
;; con seguridad.
(properties `((lint-hidden-cve . ("CVE-2011-0433"
"CVE-2011-1553"
"CVE-2011-1554"
"CVE-2011-5244")))))
formatting
Avisa de problemas de formato obvios en el código fuente: espacios en blanco al final de las líneas, uso de tabuladores, etc.
input-labels
Report old-style input labels that do not match the name of the
corresponding package. This aims to help migrate from the “old input
style”. See Referencia de package
, for more information on package inputs
and input styles. See Invoking guix style
, on how to migrate to the new
style.
La sintaxis general es:
guix lint opciones paquete…
Si no se proporciona ningún paquete en la linea de órdenes, todos los paquetes se comprueban. Las opciones pueden ser cero o más de las siguientes:
--list-checkers
-l
Enumera y describe todas las comprobaciones disponibles que se ejecutarán sobre los paquetes y finaliza.
--checkers
-c
Únicamente activa las comprobaciones especificadas en una lista separada por comas que use los nombres devueltos por --list-checkers.
--exclude
-x
Únicamente desactiva las comprobaciones especificadas en una lista separada por comas que use los nombres devueltos por --list-checkers.
--expression=expr
-e expr
Considera el paquete al que evalúa expr
This is useful to unambiguously designate packages, as in this example:
guix lint -c archival -e '(@ (gnu packages guile) guile-3.0)'
--no-network
-n
Activa únicamente las comprobaciones que no dependen del acceso a internet.
--load-path=directorio
-L directorio
Añade directorio al frente de la ruta de búsqueda de módulos de paquetes (see Módulos de paquetes).
Esto permite a las usuarias definir sus propios paquetes y hacerlos visibles a las herramientas de línea de órdenes.
Next: Invocación de guix size
, Previous: Invoking guix style
, Up: Utilidades [Contents][Index]