aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bootstrap.scm
Commit message (Collapse)AuthorAge
* gnu: bootstrap: Add support for powerpc64le-linux.Chris Marusich2021-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* gnu: bootstrap: Add powerpc64-linux dynamic linker.Léo Le Bouter2020-06-01
| | | | | | | | | | | 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>
* packages: Introduce <content-hash> and use it in <origin>.Ludovic Courtès2020-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* gnu: bootstrap: Add support for the Hurd.Efraim Flashner2020-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gnu: bootstrap: Use fall-back mechanism for bootstrap-executables.Jan Nieuwenhuizen2020-03-24
| | | | | | | | * 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.
* gnu: bootstrap: Remove %bootstrap-coreutils&co, %bootstrap-bash.Jan Nieuwenhuizen2020-02-17
| | | | | * gnu/packages/bootstrap.scm (%bootstrap-inputs)[i686-linux,x86-linux]: Remove %bootstrap-coreutils&co, %bootstrap-bash.
* gnu: bootstrap: Add janneke's guix package url.Jan Nieuwenhuizen2020-02-17
| | | | | * gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add janneke's guix package url.
* gnu: bootstrap: Memoize 'bootstrap-origin'.Ludovic Courtès2019-11-04
| | | | | | * gnu/packages/bootstrap.scm (bootstrap-origin): Memoize with 'mlambdaq'. This improves memoization of origins in (gnu packages commencement).
* gnu: bootstrap: Cache the 'bootstrap-executable' origins.Ludovic Courtès2019-10-27
| | | | | | | | | | | 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.
* gnu: bootstrap: 'bootstrap-origin' preserves eq?-ness when no changes are made.Ludovic Courtès2019-10-27
| | | | | | | | | | | | 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.
* gnu: bootstrap: Update to the 20190815 bootstrap binaries.Mark H Weaver2019-08-27
| | | | | | | | | 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.
* gnu: bootstrap: Add ftp.gnu.org to '%bootstrap-base-urls'.Ludovic Courtès2019-08-27
| | | | | * gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add ftp.gnu.org/gnu/guix/bootstrap.
* Merge branch 'master' into core-updatesMark H Weaver2019-08-22
|\
| * gnu: mingw: Add x86_64 support.Carl Dong2019-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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".
* | Merge branch 'master' into core-updatesLudovic Courtès2019-07-17
|\|
| * gnu: guile-bootstrap: Use the new 'derivation' calling convention.Ludovic Courtès2019-07-15
| | | | | | | | | | | | * gnu/packages/bootstrap.scm (raw-build): In 'derivation' call, distinguish #:inputs from #:sources, passing a list of <derivation-input> as #:inputs.
* | packages: Remove 'search-bootstrap-binary'.Ludovic Courtès2019-06-14
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | tests: Make builds less expensive.Ludovic Courtès2019-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.Ludovic Courtès2019-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Merge branch 'master' into core-updatesLudovic Courtès2019-06-13
|\|
| * gnu: Add basic support for riscv64-linux-gnu targets.Carl Dong2019-05-29
| | | | | | | | | | | | | | | | | | * 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>
* | Merge branch 'master' into core-updatesRicardo Wurmus2019-02-06
|\|
| * gnu: Add dummy linker for arm-elf.Danny Milosavljevic2019-01-07
| | | | | | | | * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for arm-elf.
* | gnu: bootstrap: Add missing 'supported-systems', remove extra 'match'.Ludovic Courtès2018-12-25
| | | | | | | | | | | | | | | | | | | | 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.
* | bootstrap: srfi-43: Remove.Jan Nieuwenhuizen2018-12-20
| | | | | | | | | | * gnu/packages/bootstrap.scm (%bootstrap-inputs): Remove srfi-43. (srfi-43): Remove.
* | bootstrap: bootstrap-mes: Update.Jan Nieuwenhuizen2018-12-20
| | | | | | | | | | | | | | | | | | Built with ef809e3ac036eccc5f9c9edd8fb661d14ae15f2f bootstrap: Add mes-boot0; decouple mes-boot from Mes. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
* | bootstrap: bootstrap-mes: Update.Jan Nieuwenhuizen2018-12-16
| | | | | | | | | | | | | | | | | | Built with 464baaf7359a5c0192ade7e435f7384a335679e6 gnu: mes: Update to a155a0a9a2d941b15c1b98e5cce787de40a8dacd. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
* | bootstrap: Switch to official bootstrap urls.Jan Nieuwenhuizen2018-12-11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | bootstrap: Replace %mescc-tools-seed with %bootstrap-mescc-tools.Jan Nieuwenhuizen2018-11-18
| | | | | | | | | | | | | | | | * 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.
* | bootstrap: Update %bootstrap-mes.Jan Nieuwenhuizen2018-11-18
| | | | | | | | | | | | | | | | | | Built with b00a95be28b7c663cf8f82ef03b385d32ca51ae9 bootstrap: Add %bootstrap-mescc-tools. * gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
* | bootstrap: Add %bootstrap-mescc-tools.Jan Nieuwenhuizen2018-11-18
| | | | | | | | | | | | | | | | Built with a647da364ac494b409114a52e48dc0dab03cbf4f bootstrap: Add %mes-minimal. * gnu/packages/bootstrap.scm (%bootstrap-mescc-tools): New variable.
* | bootstrap: Build with %bootstrap-mes.Jan Nieuwenhuizen2018-10-23
| | | | | | | | | | | | | | * 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.
* | bootstrap: Add %bootstrap-mes.Jan Nieuwenhuizen2018-10-23
| | | | | | | | | | | | | | | | | | 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.
* | bootstrap: Move use-modules to top of builder.Jan Nieuwenhuizen2018-10-21
| | | | | | | | | | | | * gnu/packages/bootstrap.scm (package-from-tarball): Move use-modules to top of builder. (%bootstrap-glibc): Likewise. (%bootstrap-gcc): Likewise.
* | gnu: %tinycc-seed: Update for mes 0.18.Jan Nieuwenhuizen2018-10-07
| | | | | | | | * gnu/packages/bootstrap.scm (%tinycc-seed): Update for mes 0.18.
* | gnu: %mes-seed: Update to 0.18.Jan Nieuwenhuizen2018-10-07
| | | | | | | | * gnu/packages/bootstrap.scm (%mes-seed): Update to 0.18.
* | gnu: %mescc-tools-seed: Update to 0.5.2.Jan Nieuwenhuizen2018-10-07
| | | | | | | | * gnu/packages/bootstrap.scm (%mescc-tools-seed): Update to 0.5.2.
* | bootstrap: Reduced Binary Seed bootstrap for x86_64 too.Jan Nieuwenhuizen2018-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | bootstrap: Replace GNU toolchain seeds with Mes for i686-linux.Jan Nieuwenhuizen2018-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | bootstrap: Add Mes bootstrap seeds.Jan Nieuwenhuizen2018-09-23
| | | | | | | | | | * gnu/packages/bootstrap.scm (%mescc-tools-seed, %mes-seed, %tinycc-seed, %srfi-43): New variable.
* | guix: package-from-tarball: Allow PROGRAM-TO-TEST to be #f.Jan Nieuwenhuizen2018-09-23
| | | | | | | | | | * gnu/packages/bootstrap.scm (package-from-tarball): Allow PROGRAM-TO-TEST to be #f.
* | bootstrap: %bootstrap-inputs: Wrap input lists into thunks.Jan Nieuwenhuizen2018-09-22
|/ | | | | | | | | | * 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.
* Merge branch 'master' into core-updatesMarius Bakke2018-03-29
|\
| * gnu: bootstrap: Remove unneeded import.Ludovic Courtès2018-03-27
| | | | | | | | * gnu/packages/bootstrap.scm: Remove unneeded (guix build utils) import.
* | bootstrap: Use invoke instead of system*.Mark H Weaver2018-03-16
|/ | | | | | | | * 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.
* gnu: Add basic support for s390x-linux-gnu targets.mephi422018-02-19
| | | | | | | | | * 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>
* gnu: bootstrap: 'package-with-bootstrap-guile' uses 'eq?' memoization.Ludovic Courtès2018-01-18
| | | | | * gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Use 'mlambdaq'.
* gnu: guix: Factorize downloads of bootstrap tarball.Ludovic Courtès2017-08-28
| | | | | | * 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.
* gnu: bootstrap: Prefer HTTPS for downloads.Ludovic Courtès2017-08-28
| | | | * gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add "https" URL first.
* gnu: guile-bootstrap: Use a fixed-output derivation to download.Ludovic Courtès2017-08-28
| | | | | | | * 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.