Commit graph

798 commits

Author SHA1 Message Date
Maxim Cournoyer
b460ba7992
bootloader: grub: Allow booting from a Btrfs subvolume.
* gnu/bootloader/grub.scm (strip-mount-point): Remove procedure.
(normalize-file): Add procedure.
(grub-configuration-file): New BTRFS-SUBVOLUME-FILE-NAME parameter.  When
defined, prepend its value to the kernel and initrd file names, using the
NORMALIZE-FILE procedure.  Adjust the call to EYE-CANDY to pass the
BTRFS-SUBVOLUME-FILE-NAME argument.  Normalize the KEYMAP file as well.
(eye-candy): Add a BTRFS-SUBVOLUME-FILE-NAME parameter, and use it, along with
the NORMALIZE-FILE procedure, to normalize the FONT-FILE and IMAGE nested
variables.  Adjust doc.
* gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Adapt.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
* gnu/system/file-systems.scm (btrfs-subvolume?)
(btrfs-store-subvolume-file-name): New procedures.
* gnu/system.scm (operating-system-bootcfg): Specify the Btrfs
subvolume file name the store resides on to the
`operating-system-bootcfg' procedure, using the new
BTRFS-SUBVOLUME-FILE-NAME argument.
* doc/guix.texi (File Systems): Add a Btrfs subsection to document the use of
subvolumes.
* gnu/tests/install.scm (%btrfs-root-on-subvolume-os)
(%btrfs-root-on-subvolume-os-source)
(%btrfs-root-on-subvolume-installation-script)
(%test-btrfs-root-on-subvolume-os): New variables.
2020-05-20 08:30:35 -04:00
Maxim Cournoyer
fa35fb58c8
file-systems: Add helpers for parsing the options string into an alist.
* gnu/system/file-systems.scm (file-system-options->alist)
(alist->file-system-options): New procedures.
* tests/file-systems.scm: New tests.
* doc/guix.texi (File Systems): Add note about the newly added procedures.
2020-05-20 08:30:34 -04:00
Ludovic Courtès
12adffd43e
linux-initrd: Silence Guile warnings.
Previously, since the switch to Guile 3, we'd see this warning repeated
several times at boot time:

  WARNING: …: imported module (guix build utils) overrides core binding `delete'

* gnu/system/linux-initrd.scm (raw-initrd): In gexp, #:hide 'delete'
from (guix build utils).  Wrap 'boot-system' in 'parameterize'.
2020-05-16 00:34:41 +02:00
Ludovic Courtès
502f609d05
vm: Use 'let-system'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm)[check]: New macro.
[builder]: Use 'let-system' and 'check' instead of referencing
'%current-system' and '%current-target-system'.
2020-05-16 00:34:41 +02:00
Ludovic Courtès
4daa7a85b4
locale: Use the native gzip and libc when building locales.
This fixes system cross-compilation.

* gnu/system/locale.scm (single-locale-directory)[build]: Use the native
GZIP and LIBC.
2020-05-15 00:01:39 +02:00
Marius Bakke
4bdf4182fe
Merge branch 'core-updates' 2020-05-08 21:40:51 +02:00
Ludovic Courtès
dd0804c67e
services: Add descriptions.
* gnu/services/dbus.scm (polkit-service-type)[description]: New field.
* gnu/services/dict.scm (dicod-service-type)[description]: New field.
* gnu/services/dns.scm (knot-service-type)[description]: New field.
* gnu/services/networking.scm (dhcpd-service-type)[description]: New field.
* gnu/services/shepherd.scm (shepherd-root-service-type)[description]:
New field.
* gnu/services/xorg.scm (slim-service-type)[description]: New field.
(screen-locker-service-type)[description]: New field.
* gnu/system/pam.scm (pam-root-service-type)[description]: New field.
* gnu/system/shadow.scm (account-service-type)[description]: New field.
2020-05-08 16:30:50 +02:00
Ludovic Courtès
d6c43d7bc1
guix system: 'docker-image' honors '--network'.
* gnu/system/vm.scm (system-docker-image): Add #:shared-network? and
pass it to 'containerized-operating-system'.
(qemu-image):
* guix/scripts/system.scm (system-derivation-for-action): Pass
 #:shared-network? to 'system-docker-image'.
* doc/guix.texi (Invoking guix system): Document it.
2020-05-07 12:55:14 +02:00
Marius Bakke
87a40d7203
Merge branch 'master' into core-updates 2020-05-05 20:43:21 +02:00
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
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
Danny Milosavljevic
33eab4a10d
linux-initrd: Provide fsck for F2FS.
* gnu/system/linux-initrd.scm (file-system-packages): Add F2FS fsck.
2020-05-03 23:04:59 +02:00
Danny Milosavljevic
f8a0065ae3
install: Add f2fs-tools to the installation image.
* gnu/system/install.scm (installation-os)[packages]: Add f2fs-tools.
2020-05-03 20:35:50 +02:00
Ludovic Courtès
0eed771275
locale: Add glibc 2.29 to '%default-locale-libcs'.
This eases transition for anyone reconfiguring and still having profiles
with packages using the former libc.

* gnu/system/locale.scm (%default-locale-libcs): Add GLIBC-2.29.
2020-05-03 17:25:28 +02:00
Marius Bakke
50e6c1bf2e
Merge branch 'master' into core-updates 2020-05-02 17:31:28 +02:00
raingloom
27efeef306
linux-initrd: Add initial support for F2FS.
* gnu/system/linux-initrd.scm (file-system-type-modules): Add f2fs module.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-05-02 10:54:39 +02:00
Marius Bakke
57833803b4
gnu: linux-initrd: Use Guile 3.0.
* gnu/system/linux-initrd.scm (expression->initrd): Change from
%GUILE-STATIC-STRIPPED to %GUILE-3.0-STATIC-STRIPPED.
2020-05-01 22:06:34 +02:00
Florian Pelz
73ddcab607
Revert "install: Pass "modprobe.blacklist=radeon"."
This reverts commit 7859191210, which is no longer
needed since uvesafb was added in 557e6820a7.
2020-05-01 08:26:07 +00:00
Jan (janneke) Nieuwenhuizen
3eb4b466fc
system: hurd: Add /etc/group.
This allows download to run.

* gnu/system/hurd.scm (cross-hurd-image): Add /etc/group with guixbuilder.
2020-05-01 08:52:53 +02:00
Efraim Flashner
9b0c047c53
system: hurd: Add less, which to %base-packages/hurd.
* gnu/system/hurd.scm (%base-packages/hurd): Add less, which.
2020-05-01 08:52:52 +02:00
Marius Bakke
8bf8cd9b85
Merge branch 'master' into core-updates
Conflicts:
	gnu/local.mk
	gnu/packages/backup.scm
	gnu/packages/emacs-xyz.scm
	gnu/packages/guile.scm
	gnu/packages/lisp.scm
	gnu/packages/openldap.scm
	gnu/packages/package-management.scm
	gnu/packages/web.scm
	gnu/packages/xorg.scm
2020-04-30 23:47:49 +02:00
Jakub Kądziołka
2ef4d273d1
file-systems: mount the PID cgroup filesystem.
* gnu/system/file-systems.scm (%control-groups): Add "pids".
* gnu/services/docker.scm (docker-shepherd-service): Resolve a TODO.

This has allowed me to make a specific configuration of nsjail work.
2020-04-27 14:14:47 +02:00
Ludovic Courtès
0e5c2d5e14
services: system: Initial entries are non-monadic.
* gnu/system.scm (operating-system-directory-base-entries): Return a
regular, non-monadic value.
* gnu/services.scm (system-derivation): Adjust accordingly.
* gnu/system/linux-container.scm (container-essential-services): Likewise.
2020-04-26 22:49:49 +02:00
Marius Bakke
f589cbc4dc
Merge branch 'master' into core-updates 2020-04-26 13:48:06 +02:00
Marius Bakke
796b387bc2
vm: Remove unused import.
* gnu/system/vm.scm: Do not import (gnu packages make-bootstrap).
2020-04-26 11:27:06 +02:00
Marius Bakke
030f6f489f
Merge branch 'master' into core-updates
Conflicts:
	etc/news.scm
	gnu/local.mk
	gnu/packages/bootloaders.scm
	gnu/packages/linphone.scm
	gnu/packages/linux.scm
	gnu/packages/tls.scm
	gnu/system.scm
2020-04-23 13:33:09 +02:00
Florian Pelz
80dbad1814
installer: Rename uvesafb shepherd service to maybe-uvesafb.
Because the installer's uvesafb service loads uvesafb only on some machines.

This is a follow-up to commit 0ad60b2a89.

* gnu/system/install.scm (uvesafb-shepherd-service): Adjust provision and
description fields.
2020-04-20 19:24:21 +00:00
Marius Bakke
7abe35febe
Merge branch 'master' into core-updates 2020-04-19 16:53:01 +02:00
Marius Bakke
9a749af467
installer: Add GC root for Guile 3.0.
* gnu/system/install.scm (%installation-services)[gc-root-service-type]: Add
GC root for GUILE-3.0 instead of GUILE-2.2.
2020-04-19 15:50:49 +02:00
Ludovic Courtès
1e7281108b
services: account: Have 'user-processes' depend on 'user-homes'.
Until now, 'user-homes' happened to start right after 'user-processes'
and before services that depend on a home directory but the dependency
was not explicit.  This addresses it.

* gnu/system/shadow.scm (account-service-type): Extend
USER-PROCESSES-SERVICE-TYPE.
2020-04-17 23:18:32 +02:00
Marius Bakke
bd21acf6c3
Merge branch 'master' into core-updates 2020-04-15 19:26:55 +02:00
Ludovic Courtès
b4440de133
Merge branch 'version-1.1.0' 2020-04-15 16:09:18 +02:00
Florian Pelz
0ad60b2a89
installer: Only load uvesafb kernel module when needed.
This is a follow-up to commit 557e6820a7.

* gnu/system/install.scm (uvesafb-shepherd-service): Check
that /dev/fb0 is not already present.
2020-04-14 13:05:57 +00:00
Florian Pelz
557e6820a7
installer: Load uvesafb kernel module.
Fixes <https://bugs.gnu.org/40538>.

Machines without Kernel Mode Setting (those with many old and current AMD
GPUs, SiS GPUs, …) need uvesafb to show the GUI installer.  Some may also need
a kernel parameter like nomodeset or vga=793, but we leave that for the user
to specify in GRUB.

* gnu/system/install.scm (uvesafb-shepherd-service): New procedure.
(uvesafb-service-type): New variable.
(%installation-services): Add it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-04-11 22:59:35 +02:00
Ludovic Courtès
5084fd3854
system: hurd: Add guile-candy.
* gnu/system/hurd.scm (%base-packages/hurd): Add GUILE-COLORIZED and
GUILE-READLINE.
(cross-hurd-image)[hurd-directives]: Add /root/.guile.
2020-04-11 21:03:05 +02:00
Jan (janneke) Nieuwenhuizen
db047a482c
system: hurd: Add net-base and inetutils, and /etc/{services,protocols}.
This fixes

    In procedure getaddrinfo: Servname not supported for ai_socktype

* gnu/system/hurd.scm (%base-packages/hurd): Add net-base, inetutils.
(cross-hurd-image): Add /etc/{services,protocols} from net-base.
2020-04-11 21:02:45 +02:00
Ludovic Courtès
c621269404
system: hurd: Create a proper profile.
* gnu/system/hurd.scm (compile-manifest): New procedure.
(cross-hurd-image)[for-hurd, hurd-os]: Remove.
[cross-built, cross-built-entry]: New procedures.
[system-profile]: New variable.
[grub.cfg]: Use 'cross-built'.
[profile]: Rename to...
[etc-profile]: ... this, and adjust accordingly.
[hurd-directives]: Create /run/current-system/profile and /etc/profile.
Adjust arguments to 'qemu-image'.
2020-04-11 21:01:32 +02:00
Jan (janneke) Nieuwenhuizen
da987ece8f
system: hurd: Add root profile.
* gnu/system/hurd.scm (%base-packages/hurd): New variable.
(cross-hurd-image)[for-hurd]: New function.
(cross-hurd-image)[hurd-os]: Use them.
(cross-hurd-image)[profile]: Hack'y .profile for root, only setting PATH.
2020-04-11 21:01:09 +02:00
Ludovic Courtès
5fbf4f85e1
system: hurd: Create /etc/{hostname,motd,login} and /root.
* gnu/system/hurd.scm (cross-hurd-image): Add /etc/{hostname,motd,login}
and /root.
2020-04-11 21:01:09 +02:00
Jan (janneke) Nieuwenhuizen
fe1f9646b4
system: hurd: Add "/bin/sh" symlink.
This allows login.c to succeed for root.

* gnu/system/hurd.scm (cross-hurd-image): Link /bin/sh to full the full bash.
2020-04-11 21:01:09 +02:00
Jan (janneke) Nieuwenhuizen
6598c6149b
system: hurd: Add /etc/{passwd,shadow}.
* gnu/system/hurd.scm: Generate hard-coded /etc/{passwd,shadow},
allows running chown in MAKEDEV and loggin in.
2020-04-11 21:01:09 +02:00
Jan (janneke) Nieuwenhuizen
cd4faab563
system: hurd: Add ttys symlink in "/etc/ttys".
* gnu/packages/hurd.scm (hurd): Substitute /libexec/.
* gnu/system/hurd.scm (cross-hurd-image): Add symlink /etc/ttys =>
<hurd>/etc/ttys.
2020-04-11 21:01:09 +02:00
Jan (janneke) Nieuwenhuizen
379d0f5184
system: hurd: Add "/etc/fstab".
This allows running

    mount -o remount,rw /

successfully.

* gnu/system/hurd.scm (cross-hurd-image): Create a hard coded fstab and add it
to hurd-os.
2020-04-11 21:01:09 +02:00
Ludovic Courtès
a9f7993ea7
Add (gnu system hurd).
* gnu/system/hurd.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-04-11 21:01:01 +02:00
Ludovic Courtès
cd45d656f1
vm: Make the device node procedure a parameter.
* gnu/build/vm.scm (root-partition-initializer): Add #:make-device-nodes
parameter and use it.
* gnu/system/vm.scm (qemu-image): Add #:device-node parameter.  Pass
 #:make-device-nodes to 'root-partition-initializer'.
2020-04-11 20:59:40 +02:00
Ludovic Courtès
4d1ff68d73
vm: 'qemu-image' can pass options to the 'mkfs' command.
* gnu/build/vm.scm (<partition>)[file-system-options]: New field.
(create-ext-file-system, create-fat-file-system)
(format-partition): Add #:options and honor it.
(initialize-partition): Pass #:options to 'format-partition'.
* gnu/system/vm.scm (qemu-image): Add #:file-system-options and use it
for the root partition.
2020-04-11 19:22:25 +02:00
Ludovic Courtès
82782d8cec
vm: 'qemu-image' accepts a list of extra populate directives.
* gnu/build/vm.scm (root-partition-initializer): Add #:extra-directives
parameter and pass it to 'populate-root-file-system'.
* gnu/system/vm.scm (qemu-image): Add #:extra-directives parameter and
pass it to 'root-partition-initializer'.
2020-04-11 19:22:25 +02:00
Marius Bakke
bdb90df764
Merge branch 'master' into core-updates 2020-04-11 00:10:23 +02:00
Marius Bakke
5379392731
vm: Use virtio network driver.
This fixes a regression introduced in 8e53fe2b91
where 'guix system vm' would no longer be using virtio.

* gnu/system/vm.scm (common-qemu-options): Add "-nic user,model=virtio-net-pci".
2020-04-10 20:20:11 +02:00