Commit Graph

27 Commits

Author SHA1 Message Date
Mathieu Othacehe 880bf7a094
ci: Do not limit disk-image size.
Installation tests are already checking the disk-image size. Do not set
another limit here.

* gnu/ci.scm (image-jobs): Do not limit disk-image size.
2020-06-29 17:24:36 +02:00
Mathieu Othacehe b06ba9e0ff
ci: Build Guix System images.
Build a list of Guix System images. For now, this list only contains the Hurd
barebones Guix System image.

* gnu/ci.scm (%guixsd-supported-systems): Remove "armhf-linux",
(%u-boot-systems): remove unused variable,
(%guix-system-images): new variable
(qemu-jobs): rename to "image-jobs" and build the Guix Systems listed in the
new "%guix-system-images" variable,
(system-test-jobs): adapt accordingly,
(hydra-jobs): ditto.
2020-06-25 10:29:41 +02:00
Ludovic Courtès 1189f405ae
Revert "ci: Build Guix System images."
This reverts commit eda3fcfb46.

This change broke evaluations on CI:

  @ build-succeeded /gnu/store/991738x97ff1f8181a7p1pflqwkgagm8-profile.drv -
  ERROR: In procedure read:
  In procedure scm_lreadr: #<unknown port>:16:144: Unknown # object: #\<
2020-06-25 01:27:55 +02:00
Mathieu Othacehe eda3fcfb46
ci: Build Guix System images. 2020-06-24 20:47:35 +02:00
Mathieu Othacehe e3f0155c41
image: Do not use VM to create disk-images.
Now that installing Grub on raw disk-images is supported, we do not need to
rely on (gnu system vm) module.

* gnu/system/image.scm (make-system-image): Rename to ...
(system-image): ... this, and remove the compatibility wrapper.
(find-image): Turn to a monadic procedure. This will become useful when
introducing Hurd support, to be able to detect the target system.
* gnu/ci.scm (qemu-jobs): Use lower-object now that system-image returns a
file-like object.
* gnu/tests/install.scm (run-install): Ditto.
* guix/scripts/system.scm (system-derivation-for-action): Add a 'base-image'
argument,
(perform-action): adapt accordingly.
2020-05-29 09:12:11 +02:00
Marius Bakke 87a40d7203
Merge branch 'master' into core-updates 2020-05-05 20:43:21 +02:00
Mathieu Othacehe f19cf27c2b
image: Add a new API.
Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This
is quite fragile, very slow, and almost unusable without KVM.

For all these reasons, add support for host image generation. This implies the
use new image generation mechanisms.

- Raw disk images: images of partitions are created using tools such as mke2fs
  and mkdosfs depending on the partition file-system type. The partition
  images are then assembled into a final image using genimage.

- ISO9660 images: the ISO root directory is populated within the store. GNU
  xorriso is then called on that directory, in the exact same way as this is
  done in (gnu build vm) module.

Those mechanisms are built upon the new (gnu image) module.

* gnu/image.scm: New file.
* gnu/system/image.scm: New file.
* gnu/build/image: New file.
* gnu/local.mk: Add them.
* gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm.
* gnu/ci.scm (qemu-jobs): Adapt to new API.
* gnu/tests/install.scm (run-install): Ditto.
* guix/scripts/system.scm (system-derivation-for-action): Ditto.
2020-05-05 16:13:53 +02:00
Marius Bakke 2778302399
Merge branch 'master' into core-updates
Conflicts:
	etc/news.scm
	gnu/local.mk
	gnu/packages/check.scm
	gnu/packages/cross-base.scm
	gnu/packages/gimp.scm
	gnu/packages/java.scm
	gnu/packages/mail.scm
	gnu/packages/sdl.scm
	gnu/packages/texinfo.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
2020-04-08 13:00:50 +02:00
Ludovic Courtès 8f41f19236
ci: Remove "mips64el-linux-gnuabi64" from '%cross-targets'.
The N64 ABI has always been a niche, it seems.

* gnu/ci.scm (%cross-targets): Remove "mips64el-linux-gnuabi64".
2020-04-07 12:31:36 +02:00
Marius Bakke 961d2ee269
Merge branch 'master' into core-updates 2020-03-14 13:13:40 +01:00
Ludovic Courtès f292c50191
maint: Add 'etc/release-manifest.scm'.
* etc/release-manifest.scm: New file.
* gnu/ci.scm (%cross-targets): Export.
* build-aux/check-available-binaries.scm: Remove.
* Makefile.am (EXTRA_DIST): Add 'etc/release-manifest.scm' and remove
'build-aux/check-available-binaries.scm'.
(assert-binaries-available): Rewrite using 'guix weather -m'.
2020-03-13 17:33:38 +01:00
Marius Bakke 50b99c90c8
Merge branch 'master' into core-updates 2020-03-10 20:50:02 +01:00
Ludovic Courtès bc8b2ffdac
ci: Adjust 'channel-build-system' for when the source is a file name.
Fixes an evaluation error introduced in
dd1ee160be8ba4e211432c08e161c24901cd670e: when invoked via
'build-aux/cuirass/gnu-system.scm', SOURCE is a store file name, not a
<local-file> as it is when invoked via 'etc/system-tests.scm'.

* gnu/ci.scm (channel-build-system)[build]: Call 'lower-object' only
when SOURCE is not a string.
2020-03-05 23:40:24 +01:00
Ludovic Courtès dd1ee160be
tests: "make check-system" no longer interns source upfront.
* gnu/ci.scm (channel-build-system)[build, lower]: Honor #:source.
(channel-source->package): New procedure.
(system-test-jobs): Remove 'instance' and call to
'checkout->channel-instance'.  Use 'channel-source->package'.
* build-aux/run-system-tests.scm (tests-for-channel-instance): Rename to...
(tests-for-current-guix): ... this.  Change 'instance' to 'source'.
(run-system-tests): Use 'local-file' instead of 'interned-file' for
SOURCE.
2020-03-05 16:33:37 +01:00
Ludovic Courtès 3046e73b4c
ci: Move 'cross-jobs' procedure to the top level.
* gnu/ci.scm (cross-jobs): New procedure.  Moved from...
(hydra-jobs): ... here.
2020-03-05 16:33:37 +01:00
Ludovic Courtès 668a519870
ci: Don't cross build bootstrap tarballs to MinGW.
This makes little sense and it broke in commit
8bd2b15b06 since the mingw libc doesn't
have a "static" output.

* gnu/ci.scm (%packages-to-cross-build): Remove.
(packages-to-cross-build): New procedure.
(hydra-jobs)[cross-jobs]: Use it.
2020-02-24 15:42:05 +01:00
Ludovic Courtès 2032d8473d
ci: Cross-build for riscv64-linux-gnu.
* gnu/ci.scm (%cross-targets): Add "riscv64-linux-gnu".
2020-01-31 17:06:16 +01:00
Clément Lassieur f71b0a0012
ci: Make sure the Guix checkout is the one providing Cuirass proc.
Fixes <https://bugs.gnu.org/36378>.
Reported by Reza Alizadeh Majd <r.majd@pantherx.org>.

* build-aux/hydra/gnu-system.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  Pass it to the
inferior Guix as an extra argument whose key is 'superior-guix-checkout'.
* gnu/ci.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  This will return
'#f' if the current Guix is an inferior.  In that case, use the
'superior-guix-checkout' argument provided by the superior Guix.
2019-12-01 11:26:11 +01:00
Ludovic Courtès 887fd835a7
tests: "make check-system" uses Guix built with (guix self).
This is a followup to 7e6d8d366a.
It means that "make check-system" can run tests from (gnu tests install)
much faster because it does not need to build a full 'guix' package.

* gnu/ci.scm (channel-instance->package): Export.
* build-aux/run-system-tests.scm (tests-for-channel-instance): New
procedure, with code formerly in 'run-system-tests'.
(run-system-tests): Call 'interned-file' for SOURCE, and add call to
'tests-for-channel-instance'.
2019-11-13 23:26:35 +01:00
Ludovic Courtès f00ff8db92
ci: Try hard to build package replacements.
The "ghostscript" replacements introduced in
0b859092a7 would not be built because they
have the same name as the original packages.

* gnu/ci.scm (all-packages): Return the replacement of PACKAGE before
PACKAGE.
2019-08-26 13:40:46 +02: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 c3ab921eed
ci: 'channel-build-system' honors the target system.
Fixes a bug made evident e79281be105b16153c375af5506db31fd1e32698: the
x86_64-linux derivation of 'current-guix' would be cached and reused for
i686-linux, leading to test
failures.

Namely, /run/current-system/profile/bin/guix would have an x86_64
binary in its shebang, and thus it would end up being interpreted by
/bin/sh, which would fail like this:

  + guix --version
  /run/current-system/profile/bin/guix: line 2: !#: command not found
  /run/current-system/profile/bin/guix: line 3: syntax error near unexpected token `set!'
  /run/current-system/profile/bin/guix: line 3: `(begin (set! %load-path …

See <https://ci.guix.gnu.org/build/1431119/details>.

* gnu/ci.scm (channel-build-system)[build]: Pass #:system to
'run-with-store'.
2019-07-06 16:17:24 +02:00
Ludovic Courtès 59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Ludovic Courtès c680a7daa5
ci: Skip system tests on armhf-linux.
* gnu/ci.scm (system-test-jobs): Return the empty list when SYSTEM is
"armhf-linux".
2019-01-21 10:19:31 +01:00
Ludovic Courtès 7e6d8d366a
ci: Use a valid 'current-guix'.
This fixes a regression introduced in
b5f8c2c885 whereby 'current-guix' (needed
by some of the system tests) would fail to build.
Reported by Ricardo Wurmus <rekado@elephly.net>.

It also speeds up compilation of 'current-guix' since the channel
instance is already compiled or can be built quickly compared to the
default 'current-guix'.

* gnu/packages/package-management.scm (current-guix-package): New
variable.
(current-guix): Honor it.
* gnu/ci.scm (channel-build-system): New variable.
(channel-instances->derivation): New procedure.
(system-test-jobs): Add #:source and #:commit parameters.
Define 'instance' and parameterize CURRENT-GUIX-PACKAGE.
(hydra-jobs)[checkout, commit, source]: New variables.
Pass #:source and #:commit to 'system-test-jobs'.
2019-01-20 01:42:11 +01:00
Ludovic Courtès b5f8c2c885
hydra: Compute jobs in an inferior.
Previously we would rely on auto-compilation of all the Guix modules.
The complete evaluation would take ~15mn on berlin.guixsd.org and
require lots of RAM.  This approach should be faster since potentially
only part of the modules are rebuilt.  Furthermore, as a side-effect, it
builds the derivations that 'guix pull' uses.

* build-aux/hydra/gnu-system.scm: Remove 'eval-when' form.
(hydra-jobs): New procedure.
* gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs)
(tarball-jobs): Return strings for the 'license' field.
* guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
2019-01-06 21:41:07 +01:00
Ludovic Courtès 59fb5c1cdb
hydra: Move job definitions to (gnu ci).
* build-aux/hydra/gnu-system.scm: Move code to...
* gnu/ci.scm: ... here.  New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2019-01-06 21:41:07 +01:00