summary refs log tree commit diff
path: root/gnu/packages/bootstrap.scm
AgeCommit message (Collapse)Author
2021-03-23gnu: bootstrap: Add support for powerpc64le-linux.Chris Marusich
The bootstrap tarballs used by these bootstrap packages were created via the following steps: - Create a new x86_64 VM using QEMU. - Use https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz to install Guix System 1.2.0 in the VM. - Run: guix pull --no-substitutes --commit=662e7e28d576ada91fc9dec7d27c100666114f03 - Run: guix build --no-substitutes --target=powerpc64le-linux-gnu bootstrap-tarballs With the exception of gcc-static, all bootstrap binaries contained in these tarballs can be built reproducibly. Unfortunately, gcc-static is not always reproducible when everything is built from source on separate machines. Despite investigation efforts, the cause remains unclear, so we have decided to move forward with these binaries to unblock further bootstrapping work. For details, see <https://bugs.gnu.org/41669>. * gnu/packages/bootstrap.scm (%bootstrap-executables) (bootstrap-executable-file-name, bootstrap-guile-url-path) (bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add entries for powerpc64le-linux. (%bootstrap-executable-base-urls): Add an entry for alpha.gnu.org.
2020-06-01gnu: bootstrap: Add powerpc64-linux dynamic linker.Léo Le Bouter
This makes it possible to build bootstrap binaries for powerpc64-linux: guix build --target=powerpc64-linux-gnu bootstrap-tarballs * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add an entry for powerpc64-linux. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2020-05-22packages: Introduce <content-hash> and use it in <origin>.Ludovic Courtès
* guix/packages.scm (<content-hash>): New record type. (define-content-hash-constructor, build-content-hash) (content-hash): New macros. (print-content-hash): New procedure. (<origin>): Rename constructor to '%origin'. [sha256]: Remove field. [hash]: New field. Adjust users. (origin-compatibility-helper, origin): New macros. (origin-sha256): New deprecated procedure. (origin->derivation): Adjust accordingly. * tests/packages.scm ("package-source-derivation, origin, sha512"): New test. * guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax matching. * tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users. * tests/derivations.scm: Likewise. * tests/store.scm: Likewise. * tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field with the right length. * gnu/packages/aspell.scm (aspell-dictionary) (aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for proper syntax matching. * gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'. * gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'. * gnu/packages/readline.scm (readline-patch): Likewise. * gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to 'sha256-bv'. * guix/import/utils.scm: Hide (gcrypt hash) 'sha256'.
2020-03-26gnu: bootstrap: Add support for the Hurd.Efraim Flashner
On 3342a1182b15ec031f0ec6f602fd96c1dca3d4b0 gnu: make-bootstrap: Use _IOLBF on Guile 2.0 only. Run ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs --verbosity=1 Producing /gnu/store/lhca65c997pvic5cfrpm0dasniwqlg2a-bootstrap-tarballs-0 With guix hash -rx /gnu/store/lhca65c997pvic5cfrpm0dasniwqlg2a-bootstrap-tarballs-0 07jnq2by98f2a45k8wd2gj62iazvwfa4z7p3w3id4m1g0fdsvc3b * gnu/packages/bootstrap.scm (%bootstrap-executables): Add entries for the Hurd. (bootstrap-executable-url): Use lilypond url for the Hurd. (bootstrap-guile-url-path): Likewise. (bootstrap-guile-hash): Add entry for the Hurd. (%bootstrap-coreutils&co): Likewise. (%bootstrap-binutils): Likewise. (%bootstrap-glibc): Likewise. (%bootstrap-gcc): Likewise. * guix/packages.scm (%supported-systems): Add i586-gnu. Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
2020-03-24gnu: bootstrap: Use fall-back mechanism for bootstrap-executables.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-executable-base-urls): New variable. Add lilypond.org url as a fall-back. (bootstrap-executable-file-name): New function. (bootstrap-executable): Use them to implement fall-back for donwloads of bootstrap executables.
2020-02-17gnu: bootstrap: Remove %bootstrap-coreutils&co, %bootstrap-bash.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-inputs)[i686-linux,x86-linux]: Remove %bootstrap-coreutils&co, %bootstrap-bash.
2020-02-17gnu: bootstrap: Add janneke's guix package url.Jan Nieuwenhuizen
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add janneke's guix package url.
2019-11-04gnu: bootstrap: Memoize 'bootstrap-origin'.Ludovic Courtès
* gnu/packages/bootstrap.scm (bootstrap-origin): Memoize with 'mlambdaq'. This improves memoization of origins in (gnu packages commencement).
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.