* gnu/packages/commencement.scm (tcc-boot0)[source]: Update to
0.9.26-1136-g0fbeb2dd.
[native-inputs]: Add stage0-posix and mes-boot, remove
%bootstrap-mescc-tools and %bootstrap-mes-rewired.
* gnu/packages/commencement.scm (mes-boot)[source]: Update to
0.24.
[native-inputs]: Add stage0-posix, remove %bootstrap-mescc-tools and
%bootstrap-mes-rewired, and update nyacc to 1.00.2.
Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
get_machine, (mescc-tools), and M2-Planet.
* gnu/packages/commencement.scm (stage0-posix): New variable.
Without this the git-fetch GEXP is run in an environment that uses ASCII
character encoding when strings are crossing the Guile - C boundary. It means
that e.g. tag names that have Unicode chars in them will cause problems,
e.g. when walking and deleting the .git directory.
An example in the wild: https://github.com/klauspost/pgzip/tags
Fixes <https://issues.guix.gnu.org/54893>.
* guix/git-download.scm (git-fetch): Call 'setenv' and 'setlocale' to
set it to en_US.utf8.
* gnu/packages/commencement.scm (glibc-utf8-locales-final): Make public.
Add 'properties' field.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
* gnu/packages/commencement.scm (%boot-tcc-inputs): Remove
'gash-utils-boot' (it is already included in '%boot-gash-inputs'
under the name "coreutils").
This restores the package to how it was before the Scheme-only
bootstrap. See cb167958ea.
* gnu/packages/commencement.scm (binutils-mesboot0): Update to 2.20.1a.
(binutils-mesboot1)[arguments]: Remove #:phases substitution.
(binutils-mesboot): Inherit from binutils-mesboot1, changing only
the native-inputs field.
* gnu/packages/patches/gash-utils-ls-test.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/shells.scm (gash-utils): Update to 0.2.0.
[source]: Remove patch and Guile 3.0 snippet.
* gnu/packages/commencement.scm (gash-utils-boot)[source]: Do not
modify parent value.
[arguments]: Add "env" to the list of scripts to create in the
'pre-configure' phase; add the "gash-utils" module directory in the
'configure', 'build', and 'install' phases.
* guix/build/gnu-bootstrap.scm (bootstrap-configure,
bootstrap-build, bootstrap-install): Treat the 'modules' argument as
a list of directories.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Adjust call sites.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Add a 'name'
argument and use it to configure the PACKAGE_NAME variable.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Use the new argument.
This is to make it less surprising, given the common convention sets forth by
the kernel Linux command-line parameters.
* gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root'
and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system',
respectively. Adjust doc.
(find-long-option): Adjust doc.
* gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly.
* gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and
update doc. Use VERSION to conditionally return old style vs new style initrd
arguments.
(%boot-parameters-version): Increment to 1.
(operating-system-boot-parameters): Adjust doc.
(operating-system-boot-parameters-file): Likewise.
* gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise.
* doc/guix.texi: Adjust doc.
* gnu/build/activation.scm (boot-time-system): Adjust accordingly.
* gnu/build/hurd-boot.scm (boot-hurd-system): Likewise.
* gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment.
This reverts commits a95924c9ac and
defa85b265, which were used to build
nhc98@1.22 but are no longer needed.
* gnu/packages/base.scm (glibc-2.2.5): Remove.
* gnu/packages/commencement.scm (gcc-2.95-wrapper): Remove.
(glibc-mesboot0, gcc-mesboot0, binutils-mesboot): Keep private.
With "conflicts" resolved in (mostly in favor of master/staging):
gnu/packages/admin.scm
gnu/packages/gnuzilla.scm
gnu/packages/gtk.scm
gnu/packages/kerberos.scm
gnu/packages/linux.scm
guix/lint.scm
* gnu/packages/commencement.scm (%final-inputs-riscv64): New variable.
* guix/build-system/gnu.scm (standard-inputs): Use %final-inputs-riscv64
when targeting riscv64-linux.
* gnu/packages/commencement.scm (libstdc++-boot0-gcc7): New variable.
(gcc-boot0)[inputs]: On riscv64-linux use libstdc++-boot0-gcc7 instead
of libstdc++-boot0.
These two packages were made accidentally "hidden" in commit
2576e2019d.
* gnu/packages/commencement.scm (make-gcc-toolchain): Remove the
'hidden?' property.
* gnu/packages/commencement.scm (tcc-boot): Remove stale comments.
(gcc-core-mesboot0)[native-inputs]: Remove "boot-patch".
[arguments]: Turn flags and phases into gexps. Use 'local-file' in the
'apply-boot-patch' phase to refer to the patch.
(glibc-mesboot0)[native-inputs]: Remove "boot-patch" and "system-patch".
[arguments]: Turn flags and phases into gexps. Use 'local-file' in the
'apply-boot-patch' phase to refer to the patches.
(gcc-mesboot0)[native-inputs]: Remove "boot-patch".
[arguments]: Turn phases into a gexp.
(gcc-core-mesboot1)[native-inputs]: Remove "boot-patch".
[arguments]: Turn flags and phases into gexps. Use 'local-file' in the
'apply-boot-patch' phase to refer to the patch.
(gcc-mesboot1)[arguments]: Turn flags and phases into gexps.
(glibc-headers-mesboot)[arguments]: Likewise.
(glibc-mesboot)[arguments]: Likewise.
* gnu/packages/commencement.scm (python-boot0)[arguments]: Do not use
SUBSTITUTE-KEYWORD-ARGUMENTS to make it easier to change Python without a full
bootstrap.
This is a followup to c823b95825, fixing
tests for sed and diffutils on armhf-linux.
* gnu/packages/base.scm (sed)[source]: Add
"coreutils-gnulib-tests.patch".
(diffutils)[source]: Likewise.
* gnu/packages/commencement.scm (diffutils-boot0)[source]: New field.
Commit f08b070019 intended to skip
'test-fnmatch' on both x86_64-linux and i686-linux but it ended up
skipping it on x86_64-linux only.
* gnu/packages/commencement.scm (findutils-boot0)[arguments]: Use
'member' to test whether (%current-system) is "x86_64-linux" or
"i686-linux".
This is a followup to 4796b5d6d1.
Fixes the "fold-available-packages with/without cache" test in
'tests/packages.scm'.
* gnu/packages/commencement.scm (gcc-toolchain-8): Explicitly refer to
GCC-8.
(gcc-toolchain-10): Turn into an alias for GCC-TOOLCHAIN.
Fixes <https://bugs.gnu.org/48825>.
In short, this change adds the hard-coded "--with-long-double-128" configure
option in one place and removes it from two other places. This changes and
simplifies the use of this option for various architectures that start with
the string "powerpc".
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add a clause for
targets starting with "powerpc64le-" or "powerpc-" which adds the
"--with-long-double-128" option. This causes any package using this procedure
to be built using this new option on these architectures. In particular, this
affects the gcc package and the gcc-final package, in addition to all the
other versions of GCC defined in (gnu packages gcc).
* gnu/packages/commencement.scm (gcc-boot0)[#:configure-flags]: Remove the
code that adds the "--with-long-double-128" configure option for all
architectures starting with "powerpc", since it is now redundant on the
architectures where it is needed. The gcc-boot0 package uses (and adds to) the
gcc package's configure options. This means that the above change in gcc.scm
is sufficient to ensure that the gcc-boot0 package's configure options will
include "--with-long-double-128" on powerpc64le and powerpc architectures.
Additionally, since the option is apparently not required on the big-endian
powerpc64 architecture, this change also has the nice effect of omitting the
option in that case.
* gnu/packages/cross-base.scm (cross-gcc-arguments)[#:configure-flags]: Remove
the code that adds the "--with-long-double-128" configure option for
powerpc64le, since it is now redundant. The cross-gcc-arguments procedure uses
(and adds to) the configure options of its xgcc argument (a package). This
means that regardless of which gcc from gcc.scm is used as the xgcc, the above
change in gcc.scm is sufficient to ensure that the cross-gcc-arguments
procedure's configure options will include "--with-long-double-128" on the
powerpc64le and powerpc architectures.
* gnu/packages/python.scm (python2)[arguments]: Remove files built
during the test phase.
(python3)[arguments]: Also remove windows binaries shipped with the
sources.
The resulting packages are bit-identical, sans for a missing empty "uapi"
directory in versions < 5.3.
* gnu/packages/commencement.scm (rsync-boot0): Remove variable.
(linux-libre-headers-boot0)[native-inputs]: Remove RSYNC-BOOT0.
* gnu/packages/linux.scm (make-linux-libre-headers*)[native-inputs]: Remove
RSYNC.
[arguments]: For newer kernel versions, run "make headers" instead of
"make headers_check" before installing. Use FIND-FILES and INSTALL-FILE
instead of calling "make headers_install". Remove ".install" files workaround.
This is a follow-up to 3a0c7e7d1e.
* gnu/packages/commencement.scm (findutils-boot0)[arguments]: Only add
custom 'skip-fnmatch-test phase on x86_64-linux and i686-linux.
* gnu/packages/commencement.scm (binutils-final)[arguments]: When checking if
the system is a Power architecture, instead of hard-coding "powerpc-linux",
use the target-powerpc? procedure so it works on more Power architectures.
[inputs]: Likewise.
* gnu/packages/commencement.scm (binutils-final)[arguments]: On
powerpc-linux allow a reference to static-bash-for-glibc.
[inputs]: On powerpc-linux add static-bash-for-glibc.
* gnu/packages/commencement.scm (gcc-boot0) [#:configure-flags]: Add
--with-long-double-128 when the boot triplet is "powerpc64le-guix-linux-gnu",
instead of "powerpc64le-linux-gnu", which is incorrect. The actual triplet
used during bootstrapping is "powerpc64le-guix-linux-gnu".
This should avoid some problems, such as "not a dynamic executable" errors.
* gnu/packages/patches/glibc-ldd-powerpc.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm: (glibc)[native-inputs]: Add it.
[arguments]: When building for powerpc* apply it.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
glibc-final)[native-inputs]: Add patch conditionally.
This patch has been adjusted to apply to master.
Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Using PYTHONPATH as a mean to discover the Python packages had the following
issues:
1. It is not versioned, so different versions of Python would clash if
installed in a shared profile.
2. It would interfere with the host Python site on foreign
distributions, sometimes preventing a a user to login their GDM
session (!).
3. It would take precedence over user installed Python packages
installed through pip.
4. It would leak into Python virtualenvs, which are supposed to create
isolated Python environments.
This changes fixes the above issues by making use of a sitecustomize.py
module. The newly introduced GUIX_PYTHONPATH environment variable is read
from the environment, filtered for the current Python version of the
interpreter, and spliced in 'sys.path' just before Python's own site location,
which provides the expected behavior.
* gnu/packages/aux-files/python/sitecustomize.py: New file.
* Makefile.am: Register it.
* gnu/packages/python.scm (customize-site)
(guix-pythonpath-search-path): New procedures.
(python-2.7)[phases]{install-sitecustomize.py}: New phase.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
(python-3.9)[native-search-paths]: Likewise.
[phases]{install-sitecustomize}: Override with correct version.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* gnu/packages/commencement.scm (python-boot0):
[phases]{install-sitecustomize}: Likewise.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* guix/build/python-build-system.scm (site-packages): Do not add a trailing
'/'.
squash! gnu: python: Replace PYTHONPATH by GUIX_PYTHONPATH.
This allows 'gcc-toolchain' to be used as a drop-in replacement for the
default tool chain through '--with-toolchain=gcc-toolchain'.
* gnu/packages/commencement.scm (make-gcc-toolchain)[native-search-paths]
[search-paths]: Append LIBC's search paths.
Fixes <https://bugs.gnu.org/43508>.
* gnu/packages/commencement.scm (gcc-mesboot)[native-inputs]: Remove
GCC-MESBOOT1, which is already in %BOOT-MESBOOT4-INPUTS.
Fixes <https://bugs.gnu.org/43005>.
Reported by Vagrant Cascadian <vagrant@debian.org>.
* gnu/packages/commencement.scm (bash-mesboot0)[arguments]: Break store file
name in comment and add unquoted string-append to silence the
’assert-no-store-file-names’ check. The store file name check is really meant
for code; this file name was unfortunately used is a comment.
As the comment explains, this is only necessary when building with
--enable-obsolete-rpc, which we aren't using anymore.
* gnu/packages/commencement.scm
(glibc-final-with-bootstrap-bash)[inputs]: Remove native-gcc.
* gnu/packages/commencement.scm
(glibc-final-with-bootstrap-bash)[arguments]: Don't patch sunrpc,
as it's no longer required. Tweak C_INCLUDE_PATH and
CPLUS_INCLUDE_PATH instead of CPATH.
With this change, the closure of "gcc-toolchain:out" goes from 1 GiB to
393 MiB, which was the intention.
* gnu/packages/commencement.scm (make-gcc-toolchain): Filter out
"libc-debug" and "libc-static" from OUT.
Unlike during a non-chroot'ed build on Debian/Hurd, there is no /usr/include.
* gnu/packages/commencement.scm (python-boot0)[arguments]: When building on
the Hurd, add `fix-regen' stage to correct a reference to "/usr".
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.