Commit 9cfc93be30 changed the default
value of #:bootstrap-scripts to #f, which is invalid (it must be a list
of strings). That default value was used by build systems that inherit
phases from 'gnu-build-system', such as 'qt-build-system', which would
lead to wrong-type-arg errors in the 'boostrap' phase.
Reported by Raghav Gururajan <rg@raghavgururajan.name>.
* guix/build/gnu-build-system.scm (%bootstrap-scripts): New variable.
(bootstrap): Change #:bootstrap-scripts to default to it.
* guix/build-system/gnu.scm (%bootstrap-scripts): Change value.
(gnu-build): #:bootstrap-scripts defaults to %bootstrap-scripts. Remove
call to 'sexp->gexp'.
(gnu-cross-build): Likewise.
Those packages were importing (ice-9 match) & co. from the host Guile,
which could potentially lead to different derivations depending on the
Guile in use.
Uncovered by the warning emitted by 'gexp-modules'.
* gnu/packages/admin.scm (inxi-minimal)[arguments]: Remove Guile modules
from #:modules.
* gnu/packages/dns.scm (ddclient)[arguments]: Likewise.
* gnu/packages/tex.scm (texlive-latex-koma-script)[arguments]: Likewise.
* gnu/packages/java.scm (openjdk11)[arguments]: Likewise for #:imported-modules.
Fixes a bug whereby the "/gnu/store/.*qmlcachegen" string in the
'ktouch' phases would incorrectly be interpreted as a store item,
leading to an error while trying to build it:
$ ./pre-inst-env guix build ktouch -d --no-grafts
guix build: error: path ‘/gnu/store/.*qmlcachegen’ is not valid
Reported by Christopher Baines.
* guix/build-system/qt.scm (qt-build)[builder]: If PHASES is a pair,
pass it to 'sexp->gexp'.
This brings back the '%build-inputs' and '%outputs' global variables,
which some packages such as 'serf' expect.
* guix/build-system/scons.scm (scons-build): Use 'with-build-variables'.
Fixes a regression introduced in
2eafeb2f3d whereby extensions would not be
added as inputs of the resulting derivation.
* guix/gexp.scm (compiled-modules): Append EXTENSIONS to the second
argument of 'gexp-with-hidden-inputs'.
This reduces the number of 'add-text-to-store' RPCs by 15 (out of 3336)
oin "guix build -d --no-grafts libreoffice".
* guix/gexp.scm (gexp-with-hidden-inputs): New procedure.
(compiled-modules): Use it. Pass #:script-name. Augment #:env-vars.
Previously 'gexp->script' would unconditionally use the
default #:guile-for-build value of 'gexp->derivation'.
* guix/gexp.scm (gexp->script): Pass #:guile to 'load-path-expression'.
Pass #:guile-for-build to 'gexp->derivation'.
That was needlessly making the object cache grow.
* guix/gexp.scm (lower-object, lower+expand-object): Bypass the object
cache when OBJ is a derivation. This almost halves the number of
cache lookups and reduces the number of entries from 3.4K to 2.6K when
doing "guix build libreoffice -d --no-grafts".
* guix/gexp.scm (lower-reference-graphs, lower-references): Wrap
'lower-object' call in 'without-grafting' since these things never refer
to grafted inputs.
This reinstates pre-gexp behavior where 'expand-input' would explicitly
pass #:graft? #f in recursive calls, thereby preventing redundant calls
to 'bag-grafts'.
* guix/packages.scm (expand-input): Turn into a monadic procedure.
Lower INPUT when it's a package, passing #:graft? #f.
(bag->derivation, bag->cross-derivation): Adjust accordingly.
* tests/packages.scm ("search paths"): Adjust so BUILD aborts only when
passed the package of interest.
Using a gexp instead of a list means that 'gexp->sexp' & co. do not need
to scan that list for file-like objects.
* guix/packages.scm (<origin>)[patch-flags]: Default to
%DEFAULT-PATCH-FLAGS.
(%default-patch-flags): New variable.
(patch-and-repack): #:flags defaults to %DEFAULT-PATCH-FLAGS.
(origin->derivation): Don't expect FLAGS to be a list.
This plays better with the functional object cache, which is no longer
lost across calls to procedures created by 'store-lift'.
* guix/packages.scm (input-graft, input-cross-graft): Remove 'store'
parameter. Return a monadic procedure.
(bag-grafts): Remove 'store' parameter and turn into a monadic
procedure.
(graft-derivation*): New procedure.
(cached): Remove clause to match syntax without (=> CACHE).
(package-grafts): Define using 'store-lower'.
(package-grafts*): New procedure, from former 'package-grafts'. Remove
'store' parameter and turn into a monadic procedure.
(package->derivation): Rewrite using 'mcached' and a monadic variant of
the former 'package-derivation' procedure.
(package->cross-derivation): Likewise.
(package-derivation, package-cross-derivation): Rewrite in terms of
'store-lower'.
(%graft-cache): Remove.
* guix/packages.scm (patch-and-repack)[instantiate-patch]: Use
'local-file' instead of 'interned-file'. When PATCH is a struct, return
it. Use 'let' instead of 'mlet'.
* guix/packages.scm (bag->derivation): Turn into a monadic procedure by
remove 'store' parameter and removing the call to 'store-lower'.
(bag->cross-derivation): Likewise.
(bag->derivation*): New procedure.
(package-derivation, package-cross-derivation): Use it instead of
'bag->derivation'.
* tests/packages.scm ("bag->derivation"): Change to monadic style.
("bag->derivation, cross-compilation"): Likewise.
* gnu/packages/gnome.scm (glib-networking)[configure-flags]: Remove
libproxy_support flag and add openssl flag.
[inputs]: Add libproxy and openssl.
Signed-off-by: Léo Le Bouter <lle-bout@zaclys.net>
* gnu/packages/gtk.scm (gtkmm-2)[arguments]: Remove field.
[native-inputs]: Remove field.
[propagated-inputs]: Change; atkmm to atkmm-2.28, pangomm to pangomm-2.42,
cairomm to cairomm-1.13 and glibmm to glibmm-2.64.
Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
Signed-off-by: Léo Le Bouter <lle-bout@zaclys.net>