Next: , Up: Defining Packages   [Contents][Index]


5.1.1 package Reference

This section summarizes all the options available in package declarations (see Defining Packages).

Data Type: package

This is the data type representing a package recipe.

name

The name of the package, as a string.

version

The version of the package, as a string.

source

An origin object telling how the source code for the package should be acquired (see origin Reference).

build-system

The build system that should be used to build the package (see Build Systems).

arguments (default: '())

The arguments that should be passed to the build system. This is a list, typically containing sequential keyword-value pairs.

inputs (default: '())

Package or derivation inputs to the build. This is a list of lists, where each list has the name of the input (a string) as its first element, a package or derivation object as its second element, and optionally the name of the output of the package or derivation that should be used, which defaults to "out".

propagated-inputs (default: '())

This field is like inputs, but the specified packages will be force-installed alongside the package they belong to (see guix package, for information on how guix package deals with propagated inputs.)

For example this is necessary when a library needs headers of another library to compile, or needs another shared library to be linked alongside itself when a program wants to link to it.

native-inputs (default: '())

This field is like inputs, but in case of a cross-compilation it will be ensured that packages for the architecture of the build machine are present, such that executables from them can be used during the build.

This is typically where you would list tools needed at build time but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison. guix lint can report likely mistakes in this area (see Invoking guix lint).

self-native-input? (default: #f)

This is a Boolean field telling whether the package should use itself as a native input when cross-compiling.

outputs (default: '("out"))

The list of output names of the package. See Packages with Multiple Outputs, for typical uses of additional outputs.

native-search-paths (default: '())
search-paths (default: '())

A list of search-path-specification objects describing search-path environment variables honored by the package.

replacement (default: #f)

This must either #f or a package object that will be used as a replacement for this package. See grafts, for details.

synopsis

A one-line description of the package.

description

A more elaborate description of the package.

license

The license of the package; a value from (guix licenses).

home-page

The URL to the home-page of the package, as a string.

supported-systems (default: %supported-systems)

The list of systems supported by the package, as strings of the form architecture-kernel, for example "x86_64-linux".

maintainers (default: '())

The list of maintainers of the package, as maintainer objects.

location (default: source location of the package form)

The source location of the package. It’s useful to override this when inheriting from another package, in which case this field is not automatically corrected.


Next: , Up: Defining Packages   [Contents][Index]