summaryrefslogtreecommitdiff
path: root/gnu/packages/bootstrap.scm
AgeCommit message (Collapse)Author
2019-10-27gnu: bootstrap: Cache the 'bootstrap-executable' origins.Ludovic Courtès
This reduces the number of lookups in the 'add-data-to-store' cache from 2705 to 2685 (hit rate: 10% to 9%) when running: GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd * gnu/packages/bootstrap.scm (raw-build)[->store]: Use 'lower-object' instead of 'origin->derivation'. This allows the origin-to-derivation mapping to be cached.
2019-10-27gnu: bootstrap: 'bootstrap-origin' preserves eq?-ness when no changes are made.Ludovic Courtès
This reduces the number of lookups in the 'add-data-to-store' cache from 2743 to 2705 (hit rate: 11% to 10%) when running GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd The execution time of "guix build libreoffice -nd" goes from 1.80s to 1.78s. * gnu/packages/bootstrap.scm (bootstrap-origin): Return SOURCE unchanged when its has no patches and no snippet.
2019-08-27gnu: bootstrap: Update to the 20190815 bootstrap binaries.Mark H Weaver
These new bootstrap binaries were built using Guix at commit 9e6256ba0f32ab12d61c914a3fed879dac881762, tagged as "bootstrap-20190815". * gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Update the download URL. (%bootstrap-mescc-tools, %bootstrap-mes): Update the download URL and hash.
2019-08-27gnu: bootstrap: Add ftp.gnu.org to '%bootstrap-base-urls'.Ludovic Courtès
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add ftp.gnu.org/gnu/guix/bootstrap.
2019-08-22Merge branch 'master' into core-updatesMark H Weaver
2019-08-14gnu: mingw: Add x86_64 support.Carl Dong
This patch parameterizes previously hard-coded instances of i686-w64-mingw32, adding support for x86_64-w64-mingw32. * gnu/packages/mingw.scm (make-mingw-w64): New procedure. (mingw-w64-i686, mingw-w64-x86_64): New variables. (%mingw-triplet): Remove. (mingw-w64): Update to point to 'mingw-w64-i686'. * gnu/packages/cross-base.scm (cross-gcc): Use 'libc' keyword argument if specified, instead of treating it as a boolean. (native-libc): Return the correct mingw-w64 depending on machine specified in target. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "x86_64-mingw". * gnu/build/cross-toolchain.scm (set-cross-path/mingw): Replace hardcoded 'i686-w64-mingw32' instances with 'target' keyword argument. (cross-gcc-build-phases): Update accordingly; use 'target-mingw?' implementation of target checking and add commentary. * gnu/ci.scm (%cross-targets): Add "x86_64-w64-mingw32".
2019-07-17Merge branch 'master' into core-updatesLudovic Courtès
2019-07-15gnu: guile-bootstrap: Use the new 'derivation' calling convention.Ludovic Courtès
* gnu/packages/bootstrap.scm (raw-build): In 'derivation' call, distinguish #:inputs from #:sources, passing a list of <derivation-input> as #:inputs.
2019-06-14packages: Remove 'search-bootstrap-binary'.Ludovic Courtès
* gnu/packages.scm (%bootstrap-binaries-path, search-bootstrap-binary): Remove. * gnu/packages/bootstrap.scm (bootstrap-executable): Export. * guix/tests.scm (bootstrap-binary-file, search-bootstrap-binary): Export. * tests/derivations.scm: Remove (gnu packages) import. * tests/grafts.scm: Likewise. * tests/guix-daemon.sh: Likewise.
2019-06-14tests: Make builds less expensive.Ludovic Courtès
The switch to the reduced bootstrap broke build time assumptions made by tests, notably the assumption that GNU-MAKE-BOOT0 was cheap to build. This commit adjusts this to make these tests cheaper. * gnu/packages/bootstrap.scm (%bootstrap-inputs-for-tests): New variable. * guix/tests.scm (gnu-make-for-tests): New variable. * tests/guix-environment.sh: Use GNU-MAKE-FOR-TESTS instead of GNU-MAKE-BOOT0. Remove test with FINDUTILS-BOOT0. * tests/guix-package-net.sh (boot_make): Use GNU-MAKE-FOR-TESTS. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/profiles.scm ("profile-derivation relative symlinks, two entries"): Likewise. * tests/union.scm (%bootstrap-inputs): Remove. ("union-build"): Use %BOOTSTRAP-INPUTS-FOR-TESTS instead of %BOOTSTRAP-INPUTS.
2019-06-14gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.Ludovic Courtès
* gnu/packages/bootstrap.scm (%bootstrap-executables): New variable. (bootstrap-executable-url, bootstrap-executable): New procedure. (raw-build)[->store]: Use 'run-with-store' and 'origin->derivation'. Add calls to 'derivation->output-path', and remove the list of references passed to 'add-text-to-store' for BUILDER. Augment the list of #:inputs passed to 'derivation'. (package-from-tarball): Use 'bootstrap-executable' instead of 'search-bootstrap-binary'. (%bootstrap-glibc, %bootstrap-gcc, %bootstrap-mescc-tools) (%bootstrap-mes): Likewise. * guix/scripts/environment.scm (environment-bash): Use 'bootstrap-executable' instead of 'search-bootstrap-binary'. (guix-environment): Adjust CONTAINER? case accordingly. * po/guix/POTFILES.in: Add gnu/packages/bootstrap.scm.
2019-06-13Merge branch 'master' into core-updatesLudovic Courtès
2019-05-29gnu: Add basic support for riscv64-linux-gnu targets.Carl Dong
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "riscv64-linux". * gnu/packages/linux.scm (system->linux-architecture): Add "riscv" prefix. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-02-06Merge branch 'master' into core-updatesRicardo Wurmus
2019-01-07gnu: Add dummy linker for arm-elf.Danny Milosavljevic
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for arm-elf.
2018-12-25gnu: bootstrap: Add missing 'supported-systems', remove extra 'match'.Ludovic Courtès
Previously evaluation would fail for armhf, aarch64, and mips64el. * gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[supported-systems]: New field. (%bootstrap-mes)[supported-systems]: New field. [inputs]: Remove 'match' form on %current-system, which would fail on non-Intel platforms.
2018-12-20bootstrap: srfi-43: Remove.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Remove srfi-43. (srfi-43): Remove.
2018-12-20bootstrap: bootstrap-mes: Update.Jan Nieuwenhuizen
Built with ef809e3ac036eccc5f9c9edd8fb661d14ae15f2f bootstrap: Add mes-boot0; decouple mes-boot from Mes. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-16bootstrap: bootstrap-mes: Update.Jan Nieuwenhuizen
Built with 464baaf7359a5c0192ade7e435f7384a335679e6 gnu: mes: Update to a155a0a9a2d941b15c1b98e5cce787de40a8dacd. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-11bootstrap: Switch to official bootstrap urls.Jan Nieuwenhuizen
Built with 4ae7dc7b9af64794081b1913740b97acd89c91bc gnu: Remove duplicate linux-libre-headers package from bootstrap inputs. * gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Switch to official bootstrap urls. (%bootstrap-mescc-tools): Likewise. (%bootstrap-mes): Likewise.
2018-11-18bootstrap: Replace %mescc-tools-seed with %bootstrap-mescc-tools.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%mescc-tools-seed): Remove. (%bootstrap-inputs): Replace %mescc-tools-seed with %bootstrap-mescc-tools. * gnu/packages/commencement.scm (mes-boot): Likewise. (tcc-boot0): Likewise. (mescc-tools-boot): Remove.
2018-11-18bootstrap: Update %bootstrap-mes.Jan Nieuwenhuizen
Built with b00a95be28b7c663cf8f82ef03b385d32ca51ae9 bootstrap: Add %bootstrap-mescc-tools. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-11-18bootstrap: Add %bootstrap-mescc-tools.Jan Nieuwenhuizen
Built with a647da364ac494b409114a52e48dc0dab03cbf4f bootstrap: Add %mes-minimal. * gnu/packages/bootstrap.scm (%bootstrap-mescc-tools): New variable.
2018-10-23bootstrap: Build with %bootstrap-mes.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%tinycc-seed): Remove. (%bootstrap-inputs): Use %bootstrap-mes instead of %mes-seed and %tinycc-seed. * gnu/packages/commencement.scm (mescc-tools-boot, mes-boot, tcc-boot0): Build with %bootstrap-mes instead of %mes-seed and %tinycc-seed.
2018-10-23bootstrap: Add %bootstrap-mes.Jan Nieuwenhuizen
Built with 668ffe1e4e67e22268c9565993c6d9d7a86ae72a bootstrap: Move use-modules to top of builder. Todo: host these on ftp.gnu.org/pub/guix/... * gnu/packages/bootstrap.scm (%bootstrap-mes): New variable.
2018-10-21bootstrap: Move use-modules to top of builder.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (package-from-tarball): Move use-modules to top of builder. (%bootstrap-glibc): Likewise. (%bootstrap-gcc): Likewise.
2018-10-07gnu: %tinycc-seed: Update for mes 0.18.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%tinycc-seed): Update for mes 0.18.
2018-10-07gnu: %mes-seed: Update to 0.18.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%mes-seed): Update to 0.18.
2018-10-07gnu: %mescc-tools-seed: Update to 0.5.2.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%mescc-tools-seed): Update to 0.5.2.
2018-09-23bootstrap: Reduced Binary Seed bootstrap for x86_64 too.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Replace %bootstrap-libc, %bootstrap-gcc, and %bootstrap-binutils with Mes seeds for x86_64 too. * gnu/packages/commencement.scm (tcc-boot0, tcc-boot, gcc-mesboot1, gcc-mesboot1-wrapper, m4-mesboot, %bootstrap-inputs+toolchain, libstdc++-boot0, gcc-boot0, bison-boot0): For x86_64-linux, use i686-linux glibc-dynamic-linker and Mes bootstrap settings. (gcc-boot0-intermediate-wrapped): New variable, extract from static-bash-for-glibc. (static-bash-for-glibc): Use it. (gcc-final): Copy gmp&co phase from gcc-boot0, inherit other arguments from gcc; avoid i686-linux impersonation from gcc-boot0. * doc/guix.texi (Bootstrapping, Reduced Binary Seed Bootstrap): Note x86_64-linux also as Reduced Binary Seed bootstrap.
2018-09-23bootstrap: Replace GNU toolchain seeds with Mes for i686-linux.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-inputs)[i686-linux]: Replace %bootstrap-gcc, %bootstrap-binutils, %bootstrap-glibc with %mescc-tools-seed, %mes-seed, %srfi-43 and %tinycc-seed. * gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[i686-linux]: Replace gcc-tarball, binutils-tarball, glibc-tarball with %mescc-tools-seed, %mes-seed, %srfi-43 and %tinycc-seed. * gnu/packages/commencement.scm (%bootstrap-inputs+toolchain)[i686-linux]: Add glibc-mesboot, binutils-mesboot, gcc-wrapper, gcc-mesboot. (file-boot0)[i686-linux]: Disable strip-binaries?, validate-runpath?. (libstdc++-boot0)[i686-linux]: Add libtool install workarourd: copy libstdc++.so.0.0.20 from gcc-mesboot. (gcc-boot0)[i686-linux]: Add libtool install workaround: touch libcc1.so.0.0.0, libcc1plugin.so.0.0.0. (perl-boot0): Disable validate-runpath?. (bison-boot0)[i686-linux]: Do not use ranlib -D.
2018-09-23bootstrap: Add Mes bootstrap seeds.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%mescc-tools-seed, %mes-seed, %tinycc-seed, %srfi-43): New variable.
2018-09-23guix: package-from-tarball: Allow PROGRAM-TO-TEST to be #f.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (package-from-tarball): Allow PROGRAM-TO-TEST to be #f.
2018-09-22bootstrap: %bootstrap-inputs: Wrap input lists into thunks.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Change to procedure. Update users; prepares for Mes bootstrap. * gnu/packages/commencement.scm (%boot0-inputs, %boot1-inputs, %boot2-inputs, %boot3-inputs, %boot4-inputs, %boot5-inputs, %boot-6-inputs): Change to procedure. Update users. * tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths): Make a procedure, filter on package?. Update users.
2018-03-29Merge branch 'master' into core-updatesMarius Bakke
2018-03-27gnu: bootstrap: Remove unneeded import.Ludovic Courtès
* gnu/packages/bootstrap.scm: Remove unneeded (guix build utils) import.
2018-03-16bootstrap: Use invoke instead of system*.Mark H Weaver
* gnu/packages/bootstrap.scm (package-from-tarball): Ignore the result of the snippet procedure. Use invoke and remove vestigial plumbing. (%bootstrap-coreutils&co): Remove the vestigial #t from the snippet. (%bootstrap-glibc, %bootstrap-gcc)[arguments]: Use invoke. Return #t from the builder.
2018-02-19gnu: Add basic support for s390x-linux-gnu targets.mephi42
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "s390x-linux". * gnu/packages/linux.scm (system->linux-architecture): Add "s390" prefix. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-01-18gnu: bootstrap: 'package-with-bootstrap-guile' uses 'eq?' memoization.Ludovic Courtès
* gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Use 'mlambdaq'.
2017-08-28gnu: guix: Factorize downloads of bootstrap tarball.Ludovic Courtès
* gnu/packages/bootstrap.scm (bootstrap-guile-origin): New procedure. * gnu/packages/package-management.scm (guix)[inputs]: Remove 'boot-guile' procedure; use 'bootstrap-guile-origin' instead.
2017-08-28gnu: bootstrap: Prefer HTTPS for downloads.Ludovic Courtès
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add "https" URL first.
2017-08-28gnu: guile-bootstrap: Use a fixed-output derivation to download.Ludovic Courtès
* gnu/packages/bootstrap.scm (bootstrap-guile-url-path) (bootstrap-guile-hash, download-bootstrap-guile): New procedures. (raw-build): Use it. Script uses $GUILE_TARBALL. Add GUILE to the inputs of the derivation.
2017-07-07gnu: Add basic support for powerpc64le-linux-gnu targets.Ludovic Courtès
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "powerpc64le-linux". * gnu/packages/linux.scm (system->linux-architecture): Add "powerpc" prefix. (system->defconfig): Add "powerpc64le-" prefix.
2017-05-01gnu: Add gcc-vc4.Danny Milosavljevic
Fixes <https://bugs.gnu.org/26541>. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add vc4-elf. * gnu/packages/embedded.scm (gcc-vc4): New variable.
2017-03-09Merge branch 'master' into core-updatesLudovic Courtès
2017-03-07gnu: Add basic support for "alpha-linux" systems.Sergei Trofimovich
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "/lib/ld-linux.so.2" as "alpha-linux" ld.so. * gnu/packages/linux.scm (system->linux-architecture): Add "alpha" arch. Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-02-20gnu: Add bootstrap-binaries for 'aarch64-linux'.Efraim Flashner
These bootstrap-binaries were built against commit 8f8f250bdca917b3ce38aa0902f01b19081859a4. * gnu/packages/bootstrap/aarch64-linux/bash, gnu/packages/bootstrap/aarch64-linux/mkdir, gnu/packages/bootstrap/aarch64-linux/xz, gnu/packages/bootstrap/aarch64-linux/tar: New files. * gnu/local.mk (bootstrap_aarch64_linuxdir) (dist_bootstrap_aarch64_linux_DATA) (nodist_bootstrap_aarch64_linux_DATA): New variables. (DISTCLEANFILES): Add $(nodist_bootstrap_aarch64_linux_DATA). (gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz): New target. * build-aux/download.scm (filename->uri): Add aarch64-linux entry. * gnu/packages/bootstrap.scm (raw-build): Use guile-2.0.14.tar.xz on aarch64-linux. (glibc-dynamic-linker, %bootstrap-coreutils&co, %boostrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add aarch64-linux cases. * m4/guix.m4 (GUIX_SYSTEM_TYPE): Add aarch64 case. (GUIX_ASSERT_SUPPORTED_SYSTEM): Add aarch64-linux to supported list. * doc/guix.texi (GNU Distribution): Add aarch64-linux to the list of supported systems. * tests/packages.scm (package-search-derivation, snippet): Add aarch64 case.
2017-02-20gnu: %bootstrap-coreutils&co: Patch egrep/fgrep to work regardless of $PATH.Efraim Flashner
This is the bootstrap version of 1063d325ea76aa2b00dfcd3d436b16e412103df1 * gnu/packages/bootstrap.scm (%bootstrap-coreutils&co)[source]: Patch the absolute location of 'grep' when called from 'egrep' or 'fgrep'.
2017-02-02Merge branch 'master' into core-updatesLeo Famulari
2017-01-28Use 'mlambda' instead of 'memoize'.Ludovic Courtès
* gnu/packages.scm (find-newest-available-packages): Use 'mlambda' instead of (memoize (lambda ...) ...). * gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Likewise. * guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]: Likewise. * guix/build-system/python.scm (package-with-explicit-python)[transform]: Likewise. * guix/derivations.scm (derivation->string): Likewise. * guix/gnu-maintenance.scm (gnu-package?): Likewise. * guix/modules.scm (module-file-dependencies): Likewise. * guix/scripts/graph.scm (standard-package-set): Likewise. * guix/scripts/lint.scm (official-gnu-packages*): Likewise. * guix/store.scm (store-regexp*): Likewise. * guix/utils.scm (location): Likewise.