* gnu/packages/commencement.scm: Add comments that were originally
included only in the Git commit message of
f00b85ff8d.
Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/commencement.scm (gnu-make-boot0): Substitute INVOKE for
SYSTEM* and end phases with #t.
(glibc-final-with-bootstrap-bash)[arguments]: Use MODIFY-PHASES syntax
and end phase with #t.
(gcc-boot0)[arguments]: Do all of the above.
Fixes <https://bugs.gnu.org/30155>.
The effect can be seen in the package graph produced by:
guix graph -e '(@@ (gnu packages commencement) static-bash-for-glibc)'
This reduces the number of "duplicate" nodes in this graph, i.e.,
distinct package objects that correspond to the same derivation (objects
that are not 'eq?' but semantically equal.)
* gnu/packages/commencement.scm (linux-libre-headers-boot0): Make an
'mlambda' instead of a 'lambda'.
(hurd-core-headers-boot0): Ditto.
* gnu/packages/gcc.scm (gcc@4.9)[source]: Add snippet to adjust
linux-unwind.h to changes in glibc.
* gnu/packages/commencement.scm (gcc-for-libstdc++): New variable.
(libstdc++-boot0): Inherit from gcc-for-libstdc++, update note.
Suggested by Oleg Pykhalov <go.wigust@gmail.com>
and Roel Janssen <roel@gnu.org>.
* gnu/packages/base.scm (grep)[inputs]: New field.
* gnu/packages/commencement.scm (grep-final)[inputs]: New field.
By definition, these packages are not depended on at run time by any of
the packages we use. Thus it does not make sense to inherit grafts.
Furthermore, those grafts would often lead to extra overhead for users
who would end up downloading those "-boot0" packages just to build
package replacements that are in fact not going to be used.
This reverts parts of f1597427f2 and
ce27857f71.
Reported by Christopher Baines at
<https://lists.gnu.org/archive/html/guix-devel/2017-12/msg00058.html>.
* gnu/packages/commencement.scm (file-boot0, binutils-boot0): Use plain
'inherit' instead of 'package/inherit'.
Reported by Theodoros Foradis <theodoros@foradis.org>.
* gnu/packages/commencement.scm (gcc-toolchain): Rename to...
(make-gcc-toolchain): ... this.
(gcc-toolchain): New variable.
(gcc-toolchain-5): Turn into an alias for 'gcc-toolchain'.
Fixes bug #24069. perl is made a native input to all of the gcc-* packages
except for gcc-boot0; perl-boot0 is made a native input to gcc-final.
* gnu/packages/patches/gcc-fix-texi2pod.patch: Add patch file to fix texi2pod.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gcc.scm (gcc-4.7, gcc-4.8, gcc-4.9, gcc-5): Use it.
(gcc-4.7)[native-inputs]: Add perl.
(gcc-4.9)[native-inputs]: Likewise.
* gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Remove perl.
(gcc-final)[native-inputs]: Add perl-boot0.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This is a follow-up to several security grafts.
* gnu/packages/commencement.scm (file-boot0, glibc-final,
glibc-final-with-bootstrap-bash): Use '(package (inherit ...)'
in place of '(package/inherit'.
* gnu/packages/base.scm (binutils)[replacement]: New field.
(binutils/fixed): New variable.
* gnu/packages/commencement.scm (binutils-boot0, binutils-final): Use
'package/inherit' to correctly use replacement binutils.
* gnu/packages/file.scm (file)[replacement]: New field.
(file/fixed): New variable.
* gnu/packages/commencement.scm (file-boot0): Use package/inherit.
* gnu/packages/patches/file-CVE-2017-1000249.patch.
* gnu/local.mk (dist_patch_DATA): Register it.
This shrinks glibc:out from 37 MiB to 29 MiB.
* gnu/packages/base.scm (glibc/linux)[outputs]: Add "static".
[arguments]: Add #:modules. Add 'move-static-libs' phase.
* gnu/packages/commencement.scm (static-bash-for-glibc): Augment
#:configure-flags to pass "-L LIBC:STATIC". Add the "static" output of
GLIBC-FINAL to 'inputs'.
(%boot2-inputs, %final-inputs): Likewise.
(canonical-package): Adjust to deal with multiple-output packages.
* gnu/packages/cross-base.scm (cross-gcc): Add the "static" output of
LIBC to 'native-inputs'.
* gnu/packages/patches/glibc-memchr-overflow-i686.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]:
Add the patch conditionally for i686 systems.
* gnu/packages/base.scm (glibc/linux)[native-inputs]: Add the patch
conditionally for i686 systems.
[arguments]: Apply the patch conditionally on i686 systems.
Reported by Sergei Trofimovich <slyfox@inbox.ru>.
* gnu/packages/base.scm (make-ld-wrapper): Change #:guile to default to
GUILE-2.2.
* gnu/packages/commencement.scm (ld-wrapper): Define in terms of
'make-ld-wrapper' such that #:guile-for-build and #:guile are the same.
* gnu/packages/guile.scm (guile-2.0/fixed): Remove.
(guile-2.2)[source]: Switch from tar.lz to tar.xz.
(guile-2.2/fixed): New variable.
* gnu/packages/commencement.scm (guile-final): Use GUILE-2.2/FIXED
instead of GUILE-2.2/FIXED.
(canonical-package): Mention 2.2 instead of 2.0.
Previously the "include" output of BASH-FINAL would refer to
'bootstrap-binaries' via 'Makefile.inc'.
* gnu/packages/bash.scm (bash)[arguments]: In 'move-development-files'
phase, remove absolute file name of 'install' from the 'INSTALL'
variable in 'Makefile.inc'.
* gnu/packages/commencement.scm (bash-final)[arguments]: Pass
#:disallowed-references.
Fixes <http://bugs.gnu.org/24832>.
* gnu/packages/commencement.scm (ld-wrapper-boot0): Change the first
'make-ld-wrapper' argument to "ld-wrapper-boot0"; change #:target to
BOOT-TRIPLET.
Currently 'bash:include' of the final Bash depends on bootstrap stuff.
* build-aux/check-final-inputs-self-contained.scm (final-inputs): Add
clause for 'bash:include'.
* gnu/packages/commencement.scm (bash-final): Add FIXME comment.
This reinstates and adjusts
commit e3d0fcbf7e.
* gnu/packages/patches/gcc-libiberty-printf-decl.patch: New file.
* gnu/packages/gcc.scm (gcc-5)[source]: Use it.
[patches]: Add "gcc-arm-bug-71399.patch".
(gcc): Switch to GCC-5.
* gnu/packages/commencement.scm (libstdc++-boot0): New variable.
(gcc-boot0)[inputs]: Add it.
(gcc-toolchain-4.9): Switch to GCC-4.9.
(gcc-toolchain-5): Switch to GCC-FINAL.
* gnu/local.mk (dist_patch_DATA): Add 'gcc-libiberty-printf-decl.patch'.
Reported by Mark H Weaver <mhw@netris.org>
Partly fixes <http://bugs.gnu.org/24832>.
'ld-wrapper-boot0' was evaluating strictly instead of lazily, leading to
invalid system types.
* gnu/packages/base.scm (make-ld-wrapper): Turn #:target into a
one-argument procedure. Honor it.
* gnu/packages/commencement.scm (ld-wrapper-boot0): Fix 'name' argument
to 'make-ld-wrapper'. Make #:target argument a procedure.
* gnu/packages/cross-base.scm (cross-gcc): Adjust #:target argument.
This way, we no longer have this annoying warning:
$ guix build guile -n
guix build: warning: ambiguous package specification `guile'
guix build: warning: choosing guile-2.0.11 from gnu/packages/guile.scm:128:2
* gnu/packages/commencement.scm (guile-final): Use 'hidden-package'.
* tests/packages.scm ("fold-packages, hidden package"): New test.
* gnu/packages/patches/gcc-libiberty-printf-decl.patch: New file.
* gnu/packages/gcc.scm (gcc-5)[source]: Use it.
(gcc): Switch to GCC-5.
* gnu/packages/commencement.scm (libstdc++-boot0): New variable.
(gcc-boot0)[inputs]: Add it.
[native-inputs]: Remove.
(gcc-toolchain-4.9): Switch to GCC-4.9.
(gcc-toolchain-5): Switch to GCC-FINAL.
* gnu-system.am (dist_patch_DATA): Add 'gcc-libiberty-printf-decl.patch'.
* gnu/packages/commencement.scm (gcc-toolchain-4.8): Use gcc-4.8,
not gcc-final.
(gcc-toolchain-4.9): Use gcc-final, not gcc-4.9.
* gnu/packages/gcc.scm (gcc): Add reminder comment for the future.
* gnu/packages/patches/perl-CVE-2016-2381.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/perl.scm (perl)[replacement]: New field.
(perl-fixed): New variable.
* gnu/packages/commencement.scm (perl-boot0)[replacement]: New field.
This removes a round of Bison + Flex + M4 + Perl rebuild.
* gnu/packages/commencement.scm (bash-final): Add 'native-inputs'
field pointing to BISON-BOOT1.
This removes a redundant (yet different) "perl-boot0" node from the
early derivation graph.
* gnu/packages/commencement.scm (bison-boot1): Move 'native-inputs'
field to the final package. Previously PERL-BOOT0 got rebuilt with
%BOOT0-INPUTS, leading to a different derivation.
(static-bash-for-glibc): Likewise.
* gnu/packages/commencement.scm (diffutils-boot0)[name]: New field.
* gnu/packages/commencement.scm (findutils-boot0, file-boot0,
perl-boot0): Change 'name' field to include "-boot0".
* gnu/packages/multiprecision.scm (gmp-6.0): New variable.
* gnu/packages/commencement.scm (gcc-boot0, gcc-final): Use it.
* gnu/packages/patches/gmp-arm-asm-nothumb.patch: New file, reinstated
from before e414a7d.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/gcc.scm (gcc-4.7) <configure-flags>: Pass
'--with-system-zlib'.
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: Remove
'--with-system-zlib' from the configure flags.
* gnu/packages/commencement.scm (zlib-final): New variable.
(gcc-final)[arguments]: Add ZLIB-FINAL to #:allowed-references.
Pass -L and -Wl,-rpath for zlib in LDFLAGS, as a configure flag.
[inputs]: Add LD-WRAPPER-BOOT3 and ZLIB-FINAL.
This is made unnecessary by the use of 'GUIX_LOCPATH'.
* gnu/packages/commencement.scm (locale-proof-package): Remove.
(%boot5-inputs): Add on GLIBC-UTF8-LOCALES-FINAL. This reverts parts
of commit 28cbc58.
* gnu/packages/gawk.scm (gawk): Set 'GUIX_LOCPATH' instead of
'LOCPATH'.
* gnu/packages/commencement.scm (gcc-toolchain)[arguments]: Remove code that
deletes OUT/bin/sh and OUT/bin/bash, since those files no longer exist in
our libc package.
This avoids problems when installing 'glibc' in a profile, where glibc's
limited 'bash' would take precedence over the valid 'bash'.
* gnu/packages/base.scm (glibc)[arguments]: Do not copy STATIC-BASH to
OUT/bin. Instead, simply refer to it directly.
[inputs]: Use STATIC-BASH instead of BASH-LIGHT.
* gnu/packages/commencement.scm (static-bash-for-glibc): Likewise.
(glibc-final)[arguments]: Add STATIC-BASH-FOR-GLIBC to
#:allowed-references.
(gcc-final)[arguments]: Likewise.
[native-inputs]: Add "static-bash".
This reflects the new version numbering scheme for GCC 5 and up.
See <https://gcc.gnu.org/develop.html>.
* gnu/packages/gcc.scm (gcc-5.1): Rename to ...
(gcc-5): ... this.
(libstdc++-doc-5.1): Rename to ...
(libstdc++-doc-5): ... this, and use gcc-5.
* gnu/packages/commencement.scm (gcc-toolchain-5.1): Rename to ...
(gcc-toolchain-5): ... this, and use gcc-5.
* build-aux/hydra/gnu-system.scm (%core-packages): Use gcc-5.
* gnu/packages/texinfo.scm (texinfo)[native-inputs]: Add procps.
(texinfo-5, texinfo-4)[native-inputs]: Override to be empty.
* gnu/packages/commencement.scm (texinfo-boot0)[texinfo]: Override
native-inputs to be empty.
This removes ambiguity warnings when installing these packages.
* gnu/packages/commencement.scm (glibc-final, gcc-final,
glibc-utf8-locales-final): Make private.
* gnu/packages/commencement.scm: Replace all occurrences of "gcc-4.8" with
"gcc-4.9".
(gcc-boot0)[arguments]: Add --disable-libcilkrts --disable-libvtv.
This fixes a bug whereby the libc.mo files were not installed, and thus
translations of libc's messages were not available.
* gnu/packages/commencement.scm (gettext-boot0): New variable.
(glibc-final)[native-inputs]: New field.
* gnu/packages/base.scm (glibc)[native-inputs]: Add GNU-GETTEXT.
Suggested by Mark H Weaver.
* gnu/packages/ld-wrapper2.in: New file.
* gnu-system.am (MISC_DISTRO_FILES): Add it.
* gnu/packages/commencement.scm (fixed-ld-wrapper): New procedure.
* gnu/packages/commencement.scm (glibc-utf8-locales-final): Make public.
* guix/packages.scm (%standard-patch-inputs): Use
GLIBC-UTF8-LOCALES-FINAL instead of GLIBC-UTF8-LOCALES.
In <http://hydra.gnu.org/build/263170>, we see:
153: 12 [patch-usr-bin-file #:native-inputs #f ...]
[...]
?: 1 [regexp-exec # ...]
In ice-9/boot-9.scm:
106: 0 [#<procedure 1998ec0 at ice-9/boot-9.scm:97:6 (thrown-k . args)> encoding-error ...]
ice-9/boot-9.scm:106:20: In procedure #<procedure 1998ec0 at ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert narrow string to output locale" 84 #f #f)'.
This is due to that fact that 'patch-/usr/bin/file' read a line
containing a byte sequence with bytes > 127 (namely a copyright sign.)
But this build was running with a C locale, and so those bytes cannot be
represented in that locale, hence this error.
This commit makes the UTF-8 locales available earlier such that
everything can be represented in locale encoding.
* gnu/packages/commencement.scm (glibc-utf8-locales-final): Move
earlier; change "gzip" input to GZIP built with %BOOT4-INPUTS.
(%boot5-inputs): Define to %BOOT4-INPUTS plus
GLIBC-UTF8-LOCALES-FINAL.
(gnu-make-final, coreutils-final, grep-final): Use it instead of
%BOOT4-INPUTS.
(gzip-final): Remove.
(%boot6-inputs): New variable.
(%final-inputs): Use it instead of %BOOT5-INPUTS. Don't rely on
GZIP-FINAL.
* gnu/packages/patches/gmp-arm-asm-nothumb.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/multiprecision.scm (gmp): Add patch. Include --build triplet
in configure args when building natively.
* gnu/packages/commencement.scm (gcc-final): Use bootstrap guile to
build gmp-source.
This is a followup to 856ae5e. See <http://hydra.gnu.org/build/180506>
for an example of build failure.
* guix/build/gnu-build-system.scm (strip): Add #:archive-strip-flags
parameter. Use it when (ar-file? path).
* guix/build-system/gnu.scm (gnu-build): Add #:archive-strip-flags
parameter and pass it down.
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: Add
#:strip-flags.
* gnu/packages/base.scm (glibc)[arguments]: Likewise.
* gnu/packages/base.scm (make): Update to 4.1. Adapt 'default_shell'
substitution to new code.
* gnu/packages/commencement.scm (gnu-make-boot0): Remove code that
manually removed guile.c from list of things to build.
Based on a patch by Ludovic Courtès <ludo@gnu.org>.
* gnu/packages/bash.scm (%patch-series-4.3): Add two patches.
(bash)[source]: Add parser-oob patch. Add 'snippet'.
[native-inputs]: New field.
* gnu/packages/commencement.scm (bison-boot1): New variable.
(static-bash-for-glibc): Add 'native-inputs'.
Co-Authored-By: Ludovic Courtès <ludo@gnu.org>