Skip to content
Snippets Groups Projects
  • Ludovic Courtès's avatar
    05962f29
    packages: Implement grafts. · 05962f29
    Ludovic Courtès authored
    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.
    05962f29
    History
    packages: Implement grafts.
    Ludovic Courtès authored
    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.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.