Commit Graph

103 Commits

Author SHA1 Message Date
Léo Le Bouter
8159ce1970
gnu: bootstrap: Add powerpc64-linux dynamic linker.
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-06-01 11:37:24 -07:00
Ludovic Courtès
ce0be5675b
packages: Introduce <content-hash> and use it in <origin>.
* 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-05-22 01:29:39 +02:00
Efraim Flashner
6741f543e6
gnu: bootstrap: Add support for the Hurd.
On 3342a1182b
   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-26 12:58:51 +01:00
Jan Nieuwenhuizen
fef7710937
gnu: bootstrap: Use fall-back mechanism for bootstrap-executables.
* 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-03-24 23:31:34 +01:00
Jan Nieuwenhuizen
d77860dbc8
gnu: bootstrap: Remove %bootstrap-coreutils&co, %bootstrap-bash.
* gnu/packages/bootstrap.scm (%bootstrap-inputs)[i686-linux,x86-linux]: Remove
%bootstrap-coreutils&co, %bootstrap-bash.
2020-02-17 23:21:03 +01:00
Jan Nieuwenhuizen
6fc09bd74f
gnu: bootstrap: Add janneke's guix package url.
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add janneke's guix
package url.
2020-02-17 23:16:39 +01:00
Ludovic Courtès
7e1a74da93
gnu: bootstrap: Memoize 'bootstrap-origin'.
* gnu/packages/bootstrap.scm (bootstrap-origin): Memoize with
'mlambdaq'.  This improves memoization of origins in (gnu packages
commencement).
2019-11-04 23:35:31 +01:00
Ludovic Courtès
ac19950507
gnu: bootstrap: Cache the 'bootstrap-executable' origins.
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-27 23:05:01 +01:00
Ludovic Courtès
5166d02730
gnu: bootstrap: 'bootstrap-origin' preserves eq?-ness when no changes are made.
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-10-27 23:05:00 +01:00
Mark H Weaver
7f1d2dd35a
gnu: bootstrap: Update to the 20190815 bootstrap binaries.
These new bootstrap binaries were built using Guix at commit
9e6256ba0f, 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-27 12:40:57 -04:00
Ludovic Courtès
f32c3d4d06
gnu: bootstrap: Add ftp.gnu.org to '%bootstrap-base-urls'.
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add
ftp.gnu.org/gnu/guix/bootstrap.
2019-08-27 12:40:50 -04:00
Mark H Weaver
893c2df00d
Merge branch 'master' into core-updates 2019-08-22 15:53:27 -04:00
Carl Dong
67dac6b892
gnu: mingw: Add x86_64 support.
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-08-14 21:29:53 +02:00
Ludovic Courtès
64de896a71
Merge branch 'master' into core-updates 2019-07-17 15:51:10 +02:00
Ludovic Courtès
266e54e2ac
gnu: guile-bootstrap: Use the new 'derivation' calling convention.
* gnu/packages/bootstrap.scm (raw-build): In 'derivation' call,
distinguish #:inputs from #:sources, passing a list of
<derivation-input> as #:inputs.
2019-07-15 10:01:05 +02:00
Ludovic Courtès
1ba0b1e6ec
packages: Remove 'search-bootstrap-binary'.
* 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-14 21:57:39 +02:00
Ludovic Courtès
03d76577b9
tests: Make builds less expensive.
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-14 21:57:39 +02:00
Ludovic Courtès
836a85da0e
gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.
* 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-14 21:57:01 +02:00
Ludovic Courtès
d9bbfe042e
Merge branch 'master' into core-updates 2019-06-13 13:24:35 +02:00
Carl Dong
7180dd6716
gnu: Add basic support for riscv64-linux-gnu targets.
* 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-05-29 15:40:31 +02:00
Ricardo Wurmus
ba88eea2b3
Merge branch 'master' into core-updates 2019-02-06 13:03:26 +01:00
Danny Milosavljevic
7f2d67c826
gnu: Add dummy linker for arm-elf.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for arm-elf.
2019-01-07 16:39:35 +01:00
Ludovic Courtès
0b07f22728
gnu: bootstrap: Add missing 'supported-systems', remove extra 'match'.
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-25 02:17:58 +01:00
Jan Nieuwenhuizen
03a45a4022
bootstrap: srfi-43: Remove.
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Remove srfi-43.
(srfi-43): Remove.
2018-12-20 12:04:04 +01:00
Jan Nieuwenhuizen
c89bbcccb2
bootstrap: bootstrap-mes: Update.
Built with

    ef809e3ac0
    bootstrap: Add mes-boot0; decouple mes-boot from Mes.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-20 12:04:03 +01:00
Jan Nieuwenhuizen
f8067e0329
bootstrap: bootstrap-mes: Update.
Built with

    464baaf735
    gnu: mes: Update to a155a0a9a2d941b15c1b98e5cce787de40a8dacd.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-16 22:48:29 +01:00
Jan Nieuwenhuizen
da3c6a7f19
bootstrap: Switch to official bootstrap urls.
Built with

    4ae7dc7b9a
    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-12-11 18:10:15 +01:00
Jan Nieuwenhuizen
4fd4efc812
bootstrap: Replace %mescc-tools-seed with %bootstrap-mescc-tools.
* 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-18 16:45:03 +01:00
Jan Nieuwenhuizen
562c37c7be
bootstrap: Update %bootstrap-mes.
Built with

    b00a95be28
    bootstrap: Add %bootstrap-mescc-tools.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-11-18 16:44:13 +01:00
Jan Nieuwenhuizen
b00a95be28
bootstrap: Add %bootstrap-mescc-tools.
Built with
    a647da364a
    bootstrap: Add %mes-minimal.

* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools): New variable.
2018-11-18 16:43:21 +01:00
Jan Nieuwenhuizen
1a99a9c45c
bootstrap: Build with %bootstrap-mes.
* 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-23 20:54:42 +02:00
Jan Nieuwenhuizen
5f02c9b7d6
bootstrap: Add %bootstrap-mes.
Built with
    668ffe1e4e 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-23 20:54:42 +02:00
Jan Nieuwenhuizen
668ffe1e4e
bootstrap: Move use-modules to top of builder.
* gnu/packages/bootstrap.scm (package-from-tarball): Move use-modules to top of builder.
(%bootstrap-glibc): Likewise.
(%bootstrap-gcc): Likewise.
2018-10-21 23:41:14 +02:00
Jan Nieuwenhuizen
a52b11a667
gnu: %tinycc-seed: Update for mes 0.18.
* gnu/packages/bootstrap.scm (%tinycc-seed): Update for mes 0.18.
2018-10-07 16:29:38 +02:00
Jan Nieuwenhuizen
1b30689343
gnu: %mes-seed: Update to 0.18.
* gnu/packages/bootstrap.scm (%mes-seed): Update to 0.18.
2018-10-07 16:29:35 +02:00
Jan Nieuwenhuizen
f7a331c068
gnu: %mescc-tools-seed: Update to 0.5.2.
* gnu/packages/bootstrap.scm (%mescc-tools-seed): Update to 0.5.2.
2018-10-07 16:27:57 +02:00
Jan Nieuwenhuizen
eb4434598c
bootstrap: Reduced Binary Seed bootstrap for x86_64 too.
* 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-23 09:46:26 +02:00
Jan Nieuwenhuizen
d536c39e54
bootstrap: Replace GNU toolchain seeds with Mes for i686-linux.
* 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-23 09:46:26 +02:00
Jan Nieuwenhuizen
aec77e8695
bootstrap: Add Mes bootstrap seeds.
* gnu/packages/bootstrap.scm (%mescc-tools-seed, %mes-seed, %tinycc-seed,
%srfi-43): New variable.
2018-09-23 09:46:26 +02:00
Jan Nieuwenhuizen
dbabfc470d
guix: package-from-tarball: Allow PROGRAM-TO-TEST to be #f.
* gnu/packages/bootstrap.scm (package-from-tarball): Allow PROGRAM-TO-TEST to
be #f.
2018-09-23 09:46:25 +02:00
Jan Nieuwenhuizen
a2b2070b67
bootstrap: %bootstrap-inputs: Wrap input lists into thunks.
* 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-09-22 22:40:12 +02:00
Marius Bakke
5576cfabf3
Merge branch 'master' into core-updates 2018-03-29 17:34:41 +02:00
Ludovic Courtès
7ddd418a1d
gnu: bootstrap: Remove unneeded import.
* gnu/packages/bootstrap.scm: Remove unneeded (guix build utils) import.
2018-03-27 14:51:44 +02:00
Mark H Weaver
ad1656dc91
bootstrap: Use invoke instead of system*.
* 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-03-16 05:01:59 -04:00
mephi42
b91004c2f5
gnu: Add basic support for s390x-linux-gnu targets.
* 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-02-19 22:22:21 +01:00
Ludovic Courtès
6d7b26a39f
gnu: bootstrap: 'package-with-bootstrap-guile' uses 'eq?' memoization.
* gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Use
'mlambdaq'.
2018-01-18 16:37:41 +01:00
Ludovic Courtès
3e5750af74
gnu: guix: Factorize downloads of bootstrap tarball.
* 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-28 23:51:32 +02:00
Ludovic Courtès
894fc4e9f5
gnu: bootstrap: Prefer HTTPS for downloads.
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add "https" URL first.
2017-08-28 23:49:52 +02:00
Ludovic Courtès
5c93d23324
gnu: guile-bootstrap: Use a fixed-output derivation to download.
* 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-08-28 23:15:35 +02:00
Ludovic Courtès
c89e210788
gnu: Add basic support for powerpc64le-linux-gnu targets.
* 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-07-07 17:07:16 +02:00