pk-crypto: Improve documentation of 'key-type'.
* guix/pk-crypto.scm (key-type): Improve docstring.
gnu: Add agg.
* gnu/packages/graphics.scm (agg): New variable.
* gnu/packages/patches/agg-am_c_prototype.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
gnu: Add xcape.
* gnu/packages/xdisorg.scm (xcape): New variable.
build: ruby: Set $GEM_HOME that matches Ruby's $GEM_PATH.
* guix/build/ruby-build-system.scm (install): Ignore the Ruby patch version
when creating $GEM_HOME.
services: guix-service: Remove extraneous monadism.
* gnu/services/base.scm (guix-build-accounts): Remove unneeded
'with-monad'.
(guix-service): Adjust accordingly.
gexp: Move the package and origin compilers to (guix packages).
From now own, (guix packages) depends on (guix gexps); it was the other
way around now. This means that (guix packages) code can use gexps.
* guix/gexp.scm (origin-compiler, package-compiler): Remove.
(default-guile-derivation): New procedure.
(gexp->derivation): Use it instead of 'default-guile' +
'package->derivation'.
* guix/packages.scm (default-guile-derivation): New procedure.
(package-compiler, origin-compiler): New variables.
* doc/guix.texi (G-Expressions): Mention extensibility.
packages: Move grafting parameter to (guix derivations).
* guix/packages.scm (%graft?, set-grafting): Move to...
* guix/derivations.scm: ... here.
gexp: Separate "compilers" for origins and packages from the core.
* guix/gexp.scm (<gexp-compiler>): New record type.
(%gexp-compilers): New variable.
(register-compiler!, lookup-compiler): New procedures.
(define-gexp-compiler): New macro.
(origin-compiler, package-compiler): New compilers.
(lower-inputs): Remove clauses for 'origin?' and 'package?'. Add
clause with 'lookup-compiler' instead.
(lower-references): Likewise.
(gexp-inputs)[add-reference-inputs]: Likewise.
(gexp->sexp)[reference->sexp]: Likewise.
gexp: Remove special meaning of forms (PACKAGE OUTPUT) in ungexp.
* guix/gexp.scm (gexp-inputs)[add-reference-inputs]: Remove clause for
inputs of the form (PACKAGE OUTPUT).
(gexp->sexp)[reference->sexp]: Likewise.
* tests/gexp.scm ("input list splicing"): Change 'list' to 'gexp-input'
for glibc:debug.
("text-file*"): Likewise for %bootstrap-guile:out.
("input list splicing + gexp-input + ungexp-native-splicing"): Remove,
now redundant.
profiles: Use 'gexp-input' instead of two-element lists.
* guix/profiles.scm (package->manifest-entry): Use 'gexp-input' instead
of two-element lists to denote specific package outputs.
(manifest-inputs): Likewise.
(profile-derivation)[info-dir]: Likewise.
gexp: Export 'gexp-input' constructor.
* guix/gexp.scm (<gexp-input>)[gexp-input]: Rename to...
[%gexp-input]: ... this. Adjust callers accordingly.
(gexp-input): New procedure.
(gexp-inputs)[add-reference-inputs]: When the input is a list, check
whether each item is already 'gexp-input?' and to not rewrap those.
(gexp-outputs)[add-reference-output]: Likewise.
(gexp->sexp): Likewise.
* tests/gexp.scm ("input list splicing + gexp-input +
ungexp-native-splicing"): New test.
gexp: Add <gexp-input>.
* guix/gexp.scm (<gexp-input>): New record type.
(gexp-inputs)[add-reference-inputs]: Adjust clauses to expect
<gexp-input> objects.
(gexp-outputs)[add-reference-output]: Likewise.
(gexp->sexp)[reference->sexp]: Likewise.
(canonicalize-reference): Remove.
(gexp)[escape->ref]: Use 'gexp-input' for all the references.
Remove use of 'canonicalize-reference'.
gexp: Rename <output-ref> to <gexp-output>.
* guix/gexp.scm (<output-ref>): Rename to...
(<gexp-output>): ... this. Adjust constructor/accessor names and
users accordingly.
tests: Add an indirection for white-box testing.
* tests/gexp.scm (gexp-inputs, gexp-native-inputs, gexp-outputs,
gexp->sexp): Make an indirection, to facilitate live testing with
Geiser.
gnu: Add DBIx-Class-Schema-Loader.
* gnu/packages/databases.scm (perl-dbix-class-schema-loader): New variable.
gnu: Add String-ToIdentifier-EN.
* gnu/packages/language.scm (perl-string-toidentifier-en): New variable.
gnu: Add Text-Unidecode.
* gnu/packages/perl.scm (perl-text-unidecode): New variable.
gnu: Add String-CamelCase.
* gnu/packages/perl.scm (perl-string-camelcase): New variable.
gnu: Add Lingua-EN-Inflect-Phrase.
* gnu/packages/language.scm (perl-lingua-en-inflect-phrase): New variable.
gnu: Add Lingua-EN-Tagger.
* gnu/packages/language.scm (perl-lingua-en-tagger): New variable.