summary refs log tree commit diff
path: root/gnu/packages/bootstrap.scm
AgeCommit message (Collapse)Author
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.
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.