gnu: mesa: Propagate inputs libxshmfence and libxfixes. * gnu/packages/gl.scm (mesa): Propagate inputs libxshmfence and libxfixes.
gnu: mesa: Add input s2tc. * gnu/packages/gl.scm (mesa): Add input s2tc, patch sources to make the reference to libtxc_dxtn.so absolute since it's passed to dlopen(3).
gnu: Add s2tc. * gnu/packages/gl.scm (s2tc): New variable. (mesa-headers): New variable.
gnu: msmtp: Use mirror:// URI. * gnu/packages/mail.scm (msmtp): Use a mirror:// URI for the source.
gnu: claws-mail: Use mirror:// URI. * gnu/packages/mail.scm (claws-mail): Use a mirror:// URI for the source.
gnu: procps: Explain why a mirror:// URI isn't used. * gnu/packages/linux.scm (procps): Add a comment explaining why we don't use a mirror:// URI.
gnu: lcms: Use mirror:// URI. * gnu/packages/ghostscript.scm (lcms): Use a mirror:// URI for the source.
gnu: wxwidgets-2: Use mirror:// URI. * gnu/packages/wxwidgets.scm (wxwidgets-2): Use a mirror:// URI for the source.
gnu: liba52: Fix source URI. * gnu/packages/video.scm (liba52): Fix the source URI; SourceForge mirror URIs don't work for this project presumably because it's misconfigured.
substitute-binary: Fix recently-introduced regression. * guix/scripts/substitute-binary.scm (%cache-url): Fix regression introduced in 41c45e7.
store: Remove debugging leftover. * guix/store.scm (set-build-options): Remove leftover 'pk' call from 41c45e7.
store: Add preliminary support for client-supplied substitute URLs. * guix/store.scm (set-build-options): Rename #:binary-caches to #:substitute-urls. Actually pass it in 'pairs' under the "substitute-urls" key. * guix/scripts/substitute-binary.scm (%cache-url): Add comment for "untrusted-substitute-urls".
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.