guix-devel/guix
Ludovic Courtès 05962f2958 packages: Implement grafts.
Thanks to Mark H. Weaver <mhw@netris.org> for insightful discussions
and suggestions.

* guix/packages.scm (<package>)[graft]: New field.
  (patch-and-repack): Invoke 'package-derivation' with #:graft? #f.
  (package-source-derivation): Likewise.  Do not use (%guile-for-build)
  in call to 'patch-and-repack', and we could end up using a grafted
  Guile.
  (expand-input): Likewise, also for 'package-cross-derivation' call.
  (package->bag): Add #:graft? parameter.  Honor it.  Use 'strip-append'
  instead of 'package-full-name'.
  (input-graft, input-cross-graft, bag-grafts, package-grafts): New
  procedures.
  (package-derivation, package-cross-derivation): Add #:graft? parameter
  and honor it.
* gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Add
  recursive call on 'graft'.
* guix/build-system/gnu.scm (package-with-explicit-inputs,
  package-with-extra-configure-variable, static-package): Likewise.
  (gnu-build): Use the ungrafted Guile to avoid full rebuilds.
  (gnu-cross-build): Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/glib-or-gtk.scm (glib-or-gtk-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/ruby.scm (ruby-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* tests/packages.scm ("package-derivation, direct graft",
  "package-cross-derivation, direct graft", "package-grafts,
  indirect grafts", "package-grafts, indirect grafts, cross",
  "package-grafts, indirect grafts, propagated inputs",
  "package-derivation, indirect grafts"): New tests.
  ("bag->derivation", "bag->derivation, cross-compilation"): Wrap in
  'parameterize'.
* doc/guix.texi (Security Updates): New node.
  (Invoking guix build): Document --no-graft.
2014-11-02 21:22:12 +01:00
..
build download: Add "Accept: */*" to the headers. 2014-10-19 12:07:53 +02:00
build-system packages: Implement grafts. 2014-11-02 21:22:12 +01:00
import import: snix: Handle license attributes. 2014-10-29 14:03:46 +01:00
scripts packages: Implement grafts. 2014-11-02 21:22:12 +01:00
base32.scm Update license headers. 2013-01-06 00:47:50 +01:00
base64.scm substitute-binary: Support the Signature field of a narinfo file. 2014-03-30 12:02:10 +02:00
build-system.scm build-system: Bags record their system and target. 2014-10-05 21:58:42 +02:00
config.scm.in build: Change state and log directories to $localstatedir/.../guix. 2014-03-09 22:10:01 +01:00
derivations.scm derivations: Add 'derivation-name'. 2014-11-02 21:22:12 +01:00
download.scm download: Append (effective-version) to '%load-path' for GnuTLS. 2014-10-30 15:46:36 +01:00
ftp-client.scm ftp-client: Add missing CR in "USER" command. 2014-05-03 00:46:51 +02:00
gexp.scm gexp: 'gexp->script' returns a script that can easily be compiled. 2014-09-08 00:03:38 +02:00
git-download.scm download: Allow use of substitutes. 2014-10-16 23:40:10 +02:00
gnu-maintenance.scm gnu-maintenance: Add missing type check. 2014-05-05 09:00:00 +02:00
gnupg.scm gnupg: Correctly parse current 'SIG_ID' lines. 2014-09-24 19:08:03 +02:00
hash.scm hash: Add 'open-sha256-input-port', for Guile > 2.0.9. 2014-01-24 00:01:49 +01:00
http-client.scm download: Enlarge your receive buffer. 2014-05-23 22:19:37 +02:00
licenses.scm licenses: Add 'imlib2'. 2014-10-26 22:22:43 +03:00
monad-repl.scm Add (guix monad-repl). 2014-08-15 16:26:28 +02:00
monads.scm monads: Add 'mbegin'. 2014-10-08 23:35:20 +02:00
nar.scm Break module cycle involving (guix store) and (guix ui). 2014-10-09 23:51:19 +02:00
packages.scm packages: Implement grafts. 2014-11-02 21:22:12 +01:00
pk-crypto.scm pk-crypto: Add pretty-printer to 'gcry-error' exceptions. 2014-04-22 11:41:52 +02:00
pki.scm pki: Introduce 'write-acl', and fix wrong conversion in 'ensure-acl'. 2014-04-04 00:23:17 +02:00
profiles.scm profiles: Add 'relative-generation'. 2014-10-12 08:45:38 +04:00
records.scm records: Improve the docstring of 'define-record-type*'. 2014-10-17 23:23:20 +02:00
serialization.scm Break module cycle involving (guix store) and (guix ui). 2014-10-09 23:51:19 +02:00
store.scm Break module cycle involving (guix store) and (guix ui). 2014-10-09 23:51:19 +02:00
svn-download.scm download: Allow use of substitutes. 2014-10-16 23:40:10 +02:00
tests.scm tests: Move some of the narinfo test tools to (guix tests). 2014-10-29 00:31:23 +01:00
ui.scm profiles: Add condition types for profiles and generations. 2014-10-12 08:45:37 +04:00
utils.scm gnu: Add 'version-prefix' and 'version-major+minor'; use them. 2014-10-20 15:32:54 +02:00