Previous: Referencia de package
, Up: Definición de paquetes [Contents][Index]
origin
Esta sección documenta los orígenes. Una declaración de origen
(origin
) especifica datos que se deben “producir”—descargandose,
habitualmente—y el hash de su contenido se conoce de antemano. Los
origenes se usan habitualmente para reprensentar el código fuente de los
paquetes (see Definición de paquetes). Por esta razón la forma sintáctica
origin
le permite declarar tanto parches para aplicar al código
fuente original como fragmentos de código que para su modificación.
Este es el tipo de datos que representa un origen de código fuente.
uri
Un objeto que contiene el URI de las fuentes. El tipo de objeto depende del
valor de method
(véase a continuación). Por ejemplo, cuando se usa el
método url-fetch de (guix download)
, los valores adecuados para
uri
son: una cadena que contiene una URL, o una lista de cadenas.
method
A monadic procedure that handles the given URI. The procedure must accept
at least three arguments: the value of the uri
field and the hash
algorithm and hash value specified by the hash
field. It must return
a store item or a derivation in the store monad (see La mónada del almacén);
most methods return a fixed-output derivation (see Derivaciones).
Los métodos habitualmente usados incluyen url-fetch
, que obtiene
datos a partir de una URL, y git-fetch
, que obtiene datos de un
repositorio Git (véase a continuación).
sha256
Un vector de bytes que contiene el hash SHA-256 de las fuentes. Es
equivalente a proporcionar un objeto SHA256 content-hash
en el campo
hash
descrito a continuación.
hash
El objeto content-hash
de las fuentes—véase a continuación cómo
usar content-hash
.
Puede obtener esta información usando guix download
(see Invocación de guix download
) o guix hash
(see Invocación de guix hash
).
file-name
(predeterminado: #f
)El nombre de archivo bajo el que el código fuente se almacenará. Cuando este
es #f
, un valor predeterminado sensato se usará en la mayor parte de
casos. En caso de que las fuentes se obtengan de una URL, el nombre de
archivo de la URL se usará. Para copias de trabajo de sistemas de control de
versiones, se recomienda proporcionar el nombre de archivo explícitamente ya
que el predeterminado no es muy descriptivo.
patches
(predeterminados: '()
)Una lista de nombres de archivos, orígenes u objetos tipo-archivo (see objetos “tipo-archivo”) apuntando a parches que deben ser aplicados a las fuentes.
La lista de parches debe ser incondicional. En particular, no puede depender
del valor de %current-system
o %current-target-system
.
snippet
(predeterminado: #f
)Una expresión-G (see Expresiones-G) o expresión-S que se ejecutará en el directorio de fuentes. Esta es una forma conveniente de modificar el software, a veces más que un parche.
patch-flags
(predeterminadas: '("-p1")
)Una lista de opciones de línea de órdenes que deberían ser pasadas a la
orden patch
.
patch-inputs
(predeterminada: #f
)Paquetes o derivaciones de entrada al proceso de aplicación de los
parches. Cuando es #f
, se proporciona el conjunto habitual de
entradas necesarias para la aplicación de parches, como GNU Patch.
modules
(predeterminados: '()
)Una lista de módulos Guile que debe ser cargada durante el proceso de
aplicación de parches y mientras se ejecuta el código del campo
snippet
.
patch-guile
(predeterminado: #f
)El paquete Guile que debe ser usado durante la aplicación de parches. Cuando
es #f
se usa un valor predeterminado.
Construye un objeto del hash del contenido para el algoritmo
proporcionado, y con valor como su valor. Cuando se omite
algoritmo se asume que es sha256
.
valor puede ser una cadena literal, en cuyo caso se decodifica en base32, o un vector de bytes.
Las siguientes opciones equivalentes entre sí:
(content-hash "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj") (content-hash "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj" sha256) (content-hash (base32 "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj")) (content-hash (base64 "kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=") sha256)
Técnicamente, content-hash
se implementa actualmente con un
macro. Realiza comprobaciones de seguridad en tiempo de expansión, cuando es
posible, como asegurarse de que valor tiene el tamaño adecuado para
algoritmo.
Como se ha visto previamente, la forma exacta en la que un origen hace
referencia a los datos se determina por su campo method
. El módulo
(guix download)
proporciona el método más común, url-fetch
,
descrito a continuación.
Devuelve una derivación de salida fija que obtiene datos desde url (una cadena o una lista de cadenas indicando URL alternativas), la cual se espera que tenga el hash hash del tipo algo-hash (un símbolo). De manera predeterminada el nombre de archivo es el identificador final de la URL; de manera opcional se puede usar nombre para especificar un nombre de archivo diferente. Cuando executable? es verdadero se proporciona el permiso de ejecución al archivo descargado.
Cuando una de las URL comienza con mirror://
, la parte de la máquina
se interpreta como el nombre de un esquema de espejos, obtenido de
%mirror-file.
De manera alternativa, cuando URL comienza con file://
, devuelve el
nombre de archivo del almacén correspondiente.
De igual modo el módulo (guix git-download)
define el método de
origen git-fetch
, que descarga datos de un repositorio de control de
versiones Git, y el tipo de datos git-reference
, que describe el
repositorio y la revisión que se debe obtener.
Devuelve una derivación de salida fija que obtiene ref, un objeto
<git-reference>
. El hash recursivo de la salida se espera que tenga
el valor hash del tipo algo-hash (un símbolo). Se usa
nombre para el nombre de archivo, o un nombre genérico si su valor es
#f
.
This is a variant of the git-fetch
procedure that supports the Git
LFS (Large File Storage) extension. This may be useful to pull
some binary test data to run the test suite of a package, for example.
Este es el tipo de datos que representa una referencia de Git que debe
obtener el módulo git-fetch
.
url
La URL del repositorio Git que debe clonarse.
commit
This string denotes either the commit to fetch (a hexadecimal string), or
the tag to fetch. You can also use a “short” commit ID or a git
describe
style identifier such as v1.0.1-10-g58d7909c97
.
recursive?
(predeterminado: #f
)Este valor booleano indica si se obtienen los sub-modulos de Git de manera recursiva.
El siguiente ejemplo representa la etiqueta v2.10
del repositorio de
GNU Hello:
(git-reference
(url "https://git.savannah.gnu.org/git/hello.git")
(commit "v2.10"))
Es equivalente a la siguiente referencia, la cual nombra de manera explícita la revisión:
(git-reference
(url "https://git.savannah.gnu.org/git/hello.git")
(commit "dc7dc56a00e48fe6f231a58f6537139fe2908fb9"))
For Mercurial repositories, the module (guix hg-download)
defines the
hg-fetch
origin method and hg-reference
data type for support
of the Mercurial version control system.
Return a fixed-output derivation that fetches ref, a
<hg-reference>
object. The output is expected to have recursive hash
hash of type hash-algo (a symbol). Use name as the file
name, or a generic name if #f
.
This data type represents a Mercurial reference for hg-fetch
to
retrieve.
url
The URL of the Mercurial repository to clone.
changeset
This string denotes the changeset to fetch.
For Subversion repositories, the module (guix svn-download)
defines
the svn-fetch
origin method and svn-reference
data type for
support of the Subversion version control system.
Devuelve una derivación de salida fija que obtiene ref, un objeto
<svn-reference>
. El hash recursivo de la salida se espera que tenga
el valor hash del tipo algo-hash (un símbolo). Se usa
nombre para el nombre de archivo, o un nombre genérico si su valor es
#f
.
This data type represents a Subversion reference for svn-fetch
to
retrieve.
url
The URL of the Subversion repository to clone.
revision
This string denotes the revision to fetch specified as a number.
recursive?
(predeterminado: #f
)This Boolean indicates whether to recursively fetch Subversion “externals”.
user-name
(default: #f
)The name of an account that has read-access to the repository, if the repository isn’t public.
password
(predeterminada: #f
)Password to access the Subversion repository, if required.
For Bazaar repositories, the module (guix bzr-download)
defines the
bzr-fetch
origin method and bzr-reference
data type for
support of the Bazaar version control system.
Devuelve una derivación de salida fija que obtiene ref, un objeto
<bzr-reference>
. El hash recursivo de la salida se espera que tenga
el valor hash del tipo algo-hash (un símbolo). Se usa
nombre para el nombre de archivo, o un nombre genérico si su valor es
#f
.
This data type represents a Bazaar reference for bzr-fetch
to
retrieve.
url
The URL of the Bazaar repository to clone.
revision
This string denotes revision to fetch specified as a number.
For CVS repositories, the module (guix cvs-download)
defines the
cvs-fetch
origin method and cvs-reference
data type for
support of the Concurrent Versions System (CVS).
Devuelve una derivación de salida fija que obtiene ref, un objeto
<cvs-reference>
. El hash recursivo de la salida se espera que tenga
el valor hash del tipo algo-hash (un símbolo). Se usa
nombre para el nombre de archivo, o un nombre genérico si su valor es
#f
.
This data type represents a CVS reference for cvs-fetch
to retrieve.
root-directory
The CVS root directory.
module
Module to fetch.
revision
Revision to fetch.
The example below denotes a version of gnu-standards to fetch:
(cvs-reference
(root-directory ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards")
(module "gnustandards")
(revision "2020-11-25"))
Previous: Referencia de package
, Up: Definición de paquetes [Contents][Index]