guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: doc: Add "package Reference" and "origin Reference" sections.


From: Taylan Ulrich B.
Subject: 01/01: doc: Add "package Reference" and "origin Reference" sections.
Date: Tue, 19 May 2015 18:17:13 +0000

taylanub pushed a commit to branch master
in repository guix.

commit 87eafdbdbd45899bdb663c8adb5fdf2990c9b22e
Author: Taylan Ulrich Bayırlı/Kammer <address@hidden>
Date:   Fri May 15 21:54:11 2015 +0200

    doc: Add "package Reference" and "origin Reference" sections.
    
    * doc/guix.texi (Defining Packages): Link to "package Reference".  Add menu.
    (package Reference, origin Reference): New subsections.
---
 doc/guix.texi |  185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 184 insertions(+), 1 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 0d2a01f..8e1bdb6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -12,7 +12,8 @@
 @copying
 Copyright @copyright{} 2012, 2013, 2014, 2015 Ludovic address@hidden
 Copyright @copyright{} 2013, 2014 Andreas address@hidden
-Copyright @copyright{} 2013 Nikita Karetnikov
+Copyright @copyright{} 2013 Nikita address@hidden
+Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -1814,6 +1815,8 @@ However, any other dependencies need to be specified in 
the
 unavailable to the build process, possibly leading to a build failure.
 @end itemize
 
address@hidden Reference}, for a full description of possible fields.
+
 Once a package definition is in place, the
 package may actually be built using the @code{guix build} command-line
 tool (@pxref{Invoking guix build}).  @xref{Packaging Guidelines}, for
@@ -1858,6 +1861,186 @@ and operating system, such as 
@code{"mips64el-linux-gnu"}
 Configure and Build System}).
 @end deffn
 
address@hidden
+* package Reference ::          The package data type.
+* origin Reference::            The origin data type.
address@hidden menu
+
+
address@hidden package Reference
address@hidden @code{package} Reference
+
+This section summarizes all the options available in @code{package}
+declarations (@pxref{Defining Packages}).
+
address@hidden {Data Type} package
+This is the data type representing a package recipe.
+
address@hidden @asis
address@hidden @code{name}
+The name of the package, as a string.
+
address@hidden @code{version}
+The version of the package, as a string.
+
address@hidden @code{source}
+An origin object telling how the source code for the package should be
+acquired (@pxref{origin Reference}).
+
address@hidden @code{build-system}
+The build system that should be used to build the package (@pxref{Build
+Systems}).
+
address@hidden @code{arguments} (default: @code{'()})
+The arguments that should be passed to the build system.  This is a
+list, typically containing sequential keyword-value pairs.
+
address@hidden @code{inputs} (default: @code{'()})
+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 @code{"out"}.
+
address@hidden @code{propagated-inputs} (default: @code{'()})
+This field is like @code{inputs}, but the specified packages will be
+force-installed alongside the package they belong to.  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.
+
address@hidden @code{native-inputs} (default: @code{'()})
+This field is like @code{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.  For example, this is necessary for build tools such as Autoconf,
+Libtool, pkg-config, or Gettext.
+
address@hidden @code{self-native-input?} (default: @code{#f})
+This is a Boolean field telling whether the package should use itself as
+a native input when cross-compiling.
+
address@hidden @code{outputs} (default: @code{'("out")})
+The list of output names of the package.  @xref{Packages with Multiple
+Outputs}, for typical uses of additional outputs.
+
address@hidden @code{native-search-paths} (default: @code{'()})
address@hidden @code{search-paths} (default: @code{'()})
+A list of @code{search-path-specification} objects describing
+search-path environment variables honored by the package.
+
address@hidden @code{replacement} (default: @code{#f})
+This must either @code{#f} or a package object that will be used as a
address@hidden for this package.  @xref{Security Updates, grafts},
+for details.
+
address@hidden @code{synopsis}
+A one-line description of the package.
+
address@hidden @code{description}
+A more elaborate description of the package.
+
address@hidden @code{license}
+The license of the package; a value from @code{(guix licenses)}.
+
address@hidden @code{home-page}
+The URL to the home-page of the package, as a string.
+
address@hidden @code{supported-systems} (default: @var{%supported-systems})
+The list of systems supported by the package, as strings of the form
address@hidden, for example @code{"x86_64-linux"}.
+
address@hidden @code{maintainers} (default: @code{'()})
+The list of maintainers of the package, as @code{maintainer} objects.
+
address@hidden @code{location} (default: source location of the @code{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.
address@hidden table
address@hidden deftp
+
+
address@hidden origin Reference
address@hidden @code{origin} Reference
+
+This section summarizes all the options available in @code{origin}
+declarations (@pxref{Defining Packages}).
+
address@hidden {Data Type} origin
+This is the data type representing a source code origin.
+
address@hidden @asis
address@hidden @code{uri}
+An object containing the URI of the source.  The object type depends on
+the @code{method} (see below).  For example, when using the
address@hidden method of @code{(guix download)}, the valid @code{uri}
+values are: a URL represented as a string, or a list thereof.
+
address@hidden @code{method}
+A procedure that will handle the URI.
+
+Examples include:
+
address@hidden @asis
address@hidden @var{url-fetch} from @code{(guix download)}
+download a file the HTTP, HTTPS, or FTP URL specified in the
address@hidden field;
+
address@hidden @var{git-fetch} from @code{(guix git-download)}
+clone the Git version control repository, and check out the revision
+specified in the @code{uri} field as a @code{git-reference} object; a
address@hidden looks like this:
+
address@hidden
+(git-reference
+  (url "git://git.debian.org/git/pkg-shadow/shadow")
+  (commit "v4.1.5.1"))
address@hidden example
address@hidden table
+
address@hidden @code{sha256}
+A bytevector containing the SHA-256 hash of the source.  Typically the
address@hidden form is used here to generate the bytevector from a
+base-32 string.
+
address@hidden @code{file-name} (default: @code{#f})
+The file name under which the source code should be saved.  When this is
address@hidden, a sensible default value will be used in most cases.  In case
+the source is fetched from a URL, the file name from the URL will be
+used.  For version control checkouts, it's recommended to provide the
+file name explicitly because the default is not very descriptive.
+
address@hidden @code{patches} (default: @code{'()})
+A list of file names containing patches to be applied to the source.
+
address@hidden @code{snippet} (default: @code{#f})
+A quoted piece of code that will be run in the source directory to make
+any modifications, which is sometimes more convenient than a patch.
+
address@hidden @code{patch-flags} (default: @code{'("-p1")})
+A list of command-line flags that should be passed to the @code{patch}
+command.
+
address@hidden @code{patch-inputs} (default: @code{#f})
+Input packages or derivations to the patching process.  When this is
address@hidden, the usual set of inputs necessary for patching are provided,
+such as address@hidden
+
address@hidden @code{modules} (default: @code{'()})
+A list of Guile modules that should be loaded during the patching
+process and while running the code in the @code{snippet} field.
+
address@hidden @code{imported-modules} (default: @code{'()})
+The list of Guile modules to import in the patch derivation, for use by
+the @code{snippet}.
+
address@hidden @code{patch-guile} (default: @code{#f})
+The Guile package that should be used in the patching process.  When
+this is @code{#f}, a sensible default is used.
address@hidden table
address@hidden deftp
+
 
 @node Build Systems
 @section Build Systems



reply via email to

[Prev in Thread] Current Thread [Next in Thread]