Commit graph

60432 commits

Author SHA1 Message Date
Mathieu Othacehe
77f5296236
vm: Remove obsolete procedures.
* gnu/build/vm.scm (install-efi, make-iso9660-image): Remove those procedures
that are now implemented in (gnu build image) module,
(initialize-hard-disk): remove efi support.
* gnu/system/vm.scm (iso9660-image): Remove it,
(qemu-image): adapt it to remove ISO9660 support.
2020-05-05 16:13:55 +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
Mathieu Othacehe
f8fd115717
build: bootloader: Add install-efi procedure.
* gnu/build/bootloader.scm (install-efi): New procedure copied from (gnu build vm).
(install-efi-loader): New exported procedure, wrapping install-efi.
* gnu/build/vm.scm (initialize-hard-disk): Adapt to use install-efi-loader.
2020-05-05 16:08:33 +02:00
Mathieu Othacehe
892bbea750
build: install: Do not set store GID.
There's no need to set the store GID as is will be done by the guix-daemon,
with the following snippet:

  if (chown(chrootStoreDir.c_str(), 0, buildUser.getGID()) == -1)
        throw SysError(format("cannot change ownership of ‘%1%’") % chrootStoreDir);

* gnu/build/install.scm (directives): Do not set store GID.
2020-05-05 16:08:33 +02:00
Mathieu Othacehe
5990e95b60
build: install: Ignore chown exceptions.
Changing ownership may require root permissions. As image can now be generated
without root permissions (no VM involved), ignore those exceptions.

* gnu/build/install.scm (evaluate-populate-directive): Ignore chown
exceptions.
2020-05-05 16:08:32 +02:00
Mathieu Othacehe
fd1351ab0a
build: store-copy: Export file-size procedure.
* guix/build/store-copy.scm (file-size): Export it.
2020-05-05 16:08:32 +02:00
Mathieu Othacehe
78fbf2bd70
system: vm: Move operating-system-uuid.
* gnu/system/vm.scm (operating-system-uuid): Move to ...
* gnu/system.scm: ... here.
2020-05-05 16:08:32 +02:00
pinoaffe
051f3254cd
gnu: Add AutoSSH service.
* gnu/services/ssh.scm (<autossh-configuration>): New record type.
(autossh-service-type): New variable.
(autossh-service-activation, autossh-file-name): New procedures.
* doc/guix.texi (Networking Services): Document this.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2020-05-05 15:32:40 +03:00
Hartmut Goebel
4c4ae8b595
gnu: Add sequoia.
* gnu/packages/sequoia.scm: New file.
* gnu/local.mk: Add it.
2020-05-05 13:20:46 +02:00
Hartmut Goebel
098f1d722b
gnu: Add rust-nettle-7.
* gnu/packages/crates-io.scm (rust-nettle-7): New variable.
* gnu/packages/patches/rust-nettle-disable-vendor.patch: New file.
* gnu/local.mk: Add it.
2020-05-05 13:20:46 +02:00
Hartmut Goebel
5effc5bfe1
gnu: Add rust-nettle-sys-2.
* gnu/packages/crates-io.scm (rust-nettle-sys-2): New variable.
* gnu/packages/patches/rust-nettle-sys-disable-vendor.patch: New file.
* gnu/local.mk: Add it.
2020-05-05 13:20:45 +02:00
Hartmut Goebel
cfb9bc26cc
gnu: Add rust-zbase32-0.1.
* gnu/packages/crates-io.scm (rust-zbase32-0.1): New variable.
2020-05-05 13:20:45 +02:00
Hartmut Goebel
1431405e3f
gnu: Add rust-webpki-roots-0.14.
* gnu/packages/crates-io.scm (rust-webpki-roots-0.14): New variable.
2020-05-05 13:20:44 +02:00
Hartmut Goebel
5b4051bf0b
gnu: Add rust-webpki-roots-0.17.
* gnu/packages/crates-io.scm (rust-webpki-roots-0.17): New variable.
2020-05-05 13:20:44 +02:00
Hartmut Goebel
f96097da8a
gnu: Add rust-webpki-roots-0.18.
* gnu/packages/crates-io.scm (rust-webpki-roots-0.18): New variable.
2020-05-05 13:20:44 +02:00
Hartmut Goebel
8c28fbc3be
gnu: Add rust-webpki-0.18.
* gnu/packages/crates-io.scm (rust-webpki-0.18): New variable.
2020-05-05 13:20:43 +02:00
Hartmut Goebel
0e52427150
gnu: Add rust-webpki-0.21.
* gnu/packages/crates-io.scm (rust-webpki-0.21): New variable.
2020-05-05 13:20:42 +02:00
Hartmut Goebel
5415f9d2a0
gnu: Add rust-want-0.2.
* gnu/packages/crates-io.scm (rust-want-0.2): New variable.
2020-05-05 13:20:42 +02:00
Hartmut Goebel
25078818e9
gnu: Add rust-untrusted-0.6.
* gnu/packages/crates-io.scm (rust-untrusted-0.6): New variable.
2020-05-05 13:20:41 +02:00
Hartmut Goebel
c3e71dcea5
gnu: Add rust-tokio-test-0.2.
* gnu/packages/crates-io.scm (rust-tokio-test-0.2): New variable.
2020-05-05 13:20:41 +02:00
Hartmut Goebel
c834cf9806
gnu: Add rust-tokio-rustls-0.12.
* gnu/packages/crates-io.scm (rust-tokio-rustls-0.12): New variable.
2020-05-05 13:20:40 +02:00
Hartmut Goebel
6001456946
gnu: Add rust-tokio-mockstream-1.
* gnu/packages/crates-io.scm (rust-tokio-mockstream-1): New variable.
2020-05-05 13:20:40 +02:00
Hartmut Goebel
e645d58ce1
gnu: Add rust-tokio-named-pipes-0.1.
* gnu/packages/crates-io.scm (rust-tokio-named-pipes-0.1): New variable.
2020-05-05 13:20:40 +02:00
Hartmut Goebel
92c4b7c0fd
gnu: Add rust-tokio-macros-0.2.
* gnu/packages/crates-io.scm (rust-tokio-macros-0.2): New variable.
2020-05-05 13:20:39 +02:00
Hartmut Goebel
4af563b90f
gnu: Add rust-tokio-buf-0.1.
* gnu/packages/crates-io.scm (rust-tokio-buf-0.1): New variable.
2020-05-05 13:20:39 +02:00
Hartmut Goebel
ef7fdc2c81
gnu: Add rust-tokio-0.2.
* gnu/packages/crates-io.scm (rust-tokio-0.2): New variable.
2020-05-05 13:20:38 +02:00
Hartmut Goebel
685b4f8d6f
gnu: Add rust-term-0.2.
* gnu/packages/crates-io.scm (rust-term-0.2): New variable.
2020-05-05 13:20:38 +02:00
Hartmut Goebel
5db08ef460
gnu: Add rust-string-0.2.
* gnu/packages/crates-io.scm (rust-string-0.2): New variable.
2020-05-05 13:20:37 +02:00
Hartmut Goebel
3e76f5eb82
gnu: Add rust-spmc-0.3.
* gnu/packages/crates-io.scm (rust-spmc-0.3): New variable.
2020-05-05 13:20:37 +02:00
Hartmut Goebel
20505910c9
gnu: Add rust-skeptic-0.9.
* gnu/packages/crates-io.scm (rust-skeptic-0.9): New variable.
2020-05-05 13:20:36 +02:00
Hartmut Goebel
dca13c5d79
gnu: Add rust-sha2-0.8.
* gnu/packages/crates-io.scm (rust-sha2-0.8): New variable.
2020-05-05 13:20:36 +02:00
Hartmut Goebel
60d19eca1f
gnu: Add rust-sha2-asm-0.5.
* gnu/packages/crates-io.scm (rust-sha2-asm-0.5): New variable.
2020-05-05 13:20:35 +02:00
Hartmut Goebel
86eb83b288
gnu: Add rust-sct-0.3.
* gnu/packages/crates-io.scm (rust-sct-0.3): New variable.
2020-05-05 13:20:35 +02:00
Hartmut Goebel
59771653d4
gnu: Add rust-sct-0.6.
* gnu/packages/crates-io.scm (rust-sct-0.6): New variable.
2020-05-05 13:20:34 +02:00
Hartmut Goebel
9bc97f1259
gnu: Add rust-rustls-0.12.
* gnu/packages/crates-io.scm (rust-rustls-0.12): New variable.
2020-05-05 13:20:34 +02:00
Hartmut Goebel
b469d7e58f
gnu: Add rust-rustls-0.16.
* gnu/packages/crates-io.scm (rust-rustls-0.16): New variable.
2020-05-05 13:20:33 +02:00
Hartmut Goebel
2f2a094867
gnu: Add rust-rusqlite-0.19.
* gnu/packages/crates-io.scm (rust-rusqlite-0.19): New variable.
2020-05-05 13:20:33 +02:00
Hartmut Goebel
1998161909
gnu: Add rust-rspec-1.
* gnu/packages/crates-io.scm (rust-rspec-1.0): New variable.
2020-05-05 13:20:32 +02:00
Hartmut Goebel
ff8abd44cd
gnu: Add rust-rpassword-4.
* gnu/packages/crates-io.scm (rust-rpassword-4): New variable.
2020-05-05 13:20:32 +02:00
Hartmut Goebel
98a653c79f
gnu: Add rust-ring-0.13.
* gnu/packages/crates-io.scm (rust-ring-0.13): New variable.
2020-05-05 13:20:31 +02:00
Hartmut Goebel
7c7289e678
gnu: Add rust-ring-0.16.
* gnu/packages/crates-io.scm (rust-ring-0.16): New variable.
2020-05-05 13:20:31 +02:00
Hartmut Goebel
e845c148ed
gnu: Add rust-rayon-0.8.
* gnu/packages/crates-io.scm (rust-rayon-0.8): New variable.
2020-05-05 13:20:30 +02:00
Hartmut Goebel
168a92e0c0
gnu: Add rust-pulldown-cmark-0.0.8.
* gnu/packages/crates-io.scm (rust-pulldown-cmark-0.0.8): New variable.
2020-05-05 13:20:30 +02:00
Hartmut Goebel
2182dd234d
gnu: Add rust-pretty-assertions-0.2.
* gnu/packages/crates-io.scm (rust-pretty-assertions-0.2): New variable.
2020-05-05 13:20:30 +02:00
Hartmut Goebel
f71b062a8a
gnu: Add rust-prettytable-rs-0.8.
* gnu/packages/crates-io.scm (rust-prettytable-rs-0.8): New variable.
2020-05-05 13:20:29 +02:00
Hartmut Goebel
bc9a35b671
gnu: Add rust-pin-project-lite-0.1.
* gnu/packages/crates-io.scm (rust-pin-project-lite-0.1): New variable.
2020-05-05 13:20:29 +02:00
Hartmut Goebel
ba9a0766eb
gnu: Add rust-parity-tokio-ipc-0.4.
* gnu/packages/crates-io.scm (rust-parity-tokio-ipc-0.4): New variable.
2020-05-05 13:20:28 +02:00
Hartmut Goebel
d2f03b8d1b
gnu: Add rust-memsec-0.5.
* gnu/packages/crates-io.scm (rust-memsec-0.5): New variable.
2020-05-05 13:20:28 +02:00
Hartmut Goebel
c89bbc8ea2
gnu: Add rust-mach-o-sys-0.1.
* gnu/package/crates-io.scm (rust-mach-o-sys-0.1): New variable.
2020-05-05 13:20:27 +02:00
Hartmut Goebel
a74ece550a
gnu: Add rust-lru-cache-0.1.
* gnu/packages/crates-io.scm (rust-lru-cache-0.1): New variable.
2020-05-05 13:20:27 +02:00