Commit graph

358 commits

Author SHA1 Message Date
Jan (janneke) Nieuwenhuizen
5681ce5074
services: etc: Add '/etc/ttys' symlink for the Hurd.
Reported by Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> via IRC.

* gnu/system.scm (operating-system-etc-service): For the Hurd, add '/etc/ttys'
symlink.  This fixes terminal behavior in the console by setting TERM=hurd.
2020-06-09 17:59:56 +02:00
Royce Strange
535a6be2e5
system: Fix typo that breaks grub.cfg generation.
* gnu/system.scm (boot-parameters->menu-entry): Delete quote to evalutate and
get kernel boot parameters.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2020-06-09 01:28:18 -04:00
Jan (janneke) Nieuwenhuizen
68d8c09465
gnu: services: Add %hurd-startup-service.
This decouples startup of the Hurd from the "hurd" package, moving the RC
script into SYSTEM.

* gnu/packages/hurd.scm (hurd)[inputs]: Remove hurd-rc-script.
[arguments]: Do not substitute it.  Update "runsystem.sh" to parse kernel
arguments and exec into --system=SYSTEM/rc.
(hurd-rc-script): Move to...
* gnu/services.scm (%hurd-rc-file): ...this new variable.
(hurd-rc-entry): New procedure.
(%hurd-startup-service): Use it in new variable.
* gnu/system.scm (hurd-default-essential-services): Use it.
2020-06-08 14:26:14 +02:00
Jan (janneke) Nieuwenhuizen
11e4200fee
system: hurd: Populate services.
* gnu/system/hurd.scm (%base-services/hurd): Add hurd-console-service,
hurd-getty-services, guix-service.  Also add sylog and loopback, needed for
...
* gnu/system.scm (hurd-default-essential-services): ... add
%shepherd-root-service with dependencies: %boot-service, %activation-service,
user-processes, root-file-system-service, file-system-service,
pam-root-service.
2020-06-08 14:26:14 +02:00
Jan (janneke) Nieuwenhuizen
c03e513a41
services: hurd: Populate system profile.
* gnu/system.scm (hurd-default-essential-services): Populate profile with
packages.
2020-06-08 14:26:13 +02:00
Jan (janneke) Nieuwenhuizen
f5ca79d2a2
services: Support etc-service for the Hurd.
* gnu/system.scm (operating-system-etc-service): Cater for missing nsswitch
and missing sudoers-file.  For the Hurd, add "login" and "motd".
(hurd-default-essential-services): Add operating-system-etc-service.
2020-06-08 14:12:29 +02:00
Jan (janneke) Nieuwenhuizen
c3fd2df705
system: Support activation service for the Hurd.
* gnu/build/activation.scm (boot-time-system): Use "command-line" for the
Hurd.
* gnu/system.scm (hurd-default-essential-services): Add %boot-service and
%activation-service.
2020-06-08 14:12:20 +02:00
Jan (janneke) Nieuwenhuizen
e6cd8581c1
system: Use 'hurd' package in label.
* gnu/system.scm (kernel->boot-label): Add keyword parameter 'hurd'.  If set,
use it for label.
(operating-system-default-label): Call with it with operating-system-hurd.
2020-06-08 13:51:19 +02:00
Jan (janneke) Nieuwenhuizen
912b857ede
system: Add 'multiboot-modules' field to <boot-parameters>.
* gnu/system.scm (<boot-parameters>)[multiboot-modules]: New field.
(read-boot-parameters): Initialize it.
(operating-system-multiboot-modules, hurd-multiboot-modules): New procedure.
(operating-system-boot-parameters): Cater for multiboot the Hurd and
initialize it; avoid initrd in that case.
(operating-system-kernel-file): Cater for for Gnumach (the Hurd) besides Linux.
(boot-parameters->menu-entry): Use it to support a multiboot <menu-entry>.
2020-06-08 13:51:18 +02:00
Jan (janneke) Nieuwenhuizen
2018fb2afe
system: Add 'hurd' field to <operating-system>.
* gnu/system.scm (<operating-system>)[hurd]: New field.
* doc/guix.texi (operating-system Reference): Document 'hurd'.
2020-06-08 13:51:18 +02:00
Jan (janneke) Nieuwenhuizen
45b2cb439d
system: hurd: Add hurd-default-essential-services.
* gnu/system.scm (hurd-default-essential-services): New procedure.
2020-06-08 13:51:18 +02:00
Ludovic Courtès
0c053a3973
system: 'system-linux-image-file-name' takes an optional parameter.
* gnu/system.scm (system-linux-image-file-name): Make 'target' an
optional parameter.
2020-06-06 23:28:49 +02:00
Maxim Cournoyer
e7b86a0d88
bootloader: grub: Rename the btrfs-subvolume-file-name parameter.
Following discussion in <https://issues.guix.gnu.org/37305>, it seems more
appropriate to give the parameter a more generic name that better describes
what it does.

* gnu/bootloader/grub.scm (normalize-file): Rename the
BTRFS-SUBVOLUME-FILE-NAME parameter to STORE-DIRECTORY-PREFIX, and always
assume this argument to be a string.
(eye-candy): Likewise.  Default STORE-DIRECTORY-PREFIX to "".
(grub-configuration-file): Likewise.
* gnu/system.scm (operating-system-bootcfg): Adapt.
2020-05-29 21:48:59 -04:00
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
Marius Bakke
87a40d7203
Merge branch 'master' into core-updates 2020-05-05 20:43:21 +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
Marius Bakke
50e6c1bf2e
Merge branch 'master' into core-updates 2020-05-02 17:31:28 +02:00
Florian Pelz
fd31731b9d
system: Blacklist usbkbd kernel module in default kernel-arguments.
This is said to avoid a race with the usbhid kernel module.
See <https://issues.guix.gnu.org/35574#18>.

* gnu/system.scm (%default-modprobe-blacklist): Blacklist it.
2020-05-01 12:27:52 +00:00
Florian Pelz
e06664da02
system: Blacklist usbmouse kernel module in default kernel-arguments.
This avoids a race with the bcm5974 kernel module.
Fixes <https://bugs.gnu.org/35574>.

* gnu/system.scm (%default-modprobe-blacklist): New variable.
(<operating-system>)[kernel-arguments]: Default to ...
(%default-kernel-arguments): ... this new variable.
* doc/guix.texi (operating-system Reference): Document the change.
2020-05-01 08:46:59 +00: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
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
Ludovic Courtès
cda751105e
system: 'operating-system-directory-base-entries' uses 'profile'.
* gnu/system.scm (operating-system-directory-base-entries): Use a
declarative profile instead of 'profile-derivation'.
2020-04-26 22:49:48 +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
Danny Milosavljevic
f91ad0b13d
system: Automatically adjust linux-module packages to use the
operating-system's kernel.

* gnu/system.scm (package-for-kernel): New procedure.
(operating-system-directory-base-entries): Use it.
* gnu/tests/linux-module.scm: Test it.
2020-04-22 22:59:39 +02:00
Brice Waegeneire
93664feee1
system: Split %BASE-PACKAGES in smaller parts.
* gnu/system.scm: (%base-packages-interactive, %base-packages-linux,
%base-packages-networking, %base-packages-utils): New variables.
(%base-packages): Use those new variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-22 19:23:57 +02:00
Ludovic Courtès
2e37d1583a
system: 'operating-system-boot-parameters-file' uses 'scheme-file'.
* gnu/system.scm (operating-system-boot-parameters-file): Use
'scheme-file' instead of 'gexp->file'.
(operating-system-directory-base-entries): Adjust accordingly.
2020-04-22 19:23:57 +02:00
Ludovic Courtès
71977a6c59
Revert "system: Don’t create a module database when no modules are available."
This reverts commit b2fff3b5de.

Fixes <https://bugs.gnu.org/40713>.
Reported by pkill9 <pkill9@runbox.com>.

This commit is incorrect: its effect depends on whether KERNEL's build
output is already available in the store, it breaks with non-package
kernels as reported at <https://bugs.gnu.org/40713>, and the
LINUX-MODULE-DATABASE hook is required at all times since
5c79f23863 removed the relevant bits from
the 'linux-libre' package.
2020-04-21 00:06:40 +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
Ivan Kozlov
b2fff3b5de
system: Don’t create a module database when no modules are available.
* gnu/system.scm (operating-system-directory-base-entries): Don't create
a module database when no modules are available.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-04-04 21:13:26 +02:00
Marius Bakke
18af687037
Merge branch 'master' into core-updates
Conflicts:
	gnu/packages/icu4c.scm
	gnu/packages/man.scm
	gnu/packages/python-xyz.scm
	guix/scripts/environment.scm
	guix/scripts/pack.scm
	guix/scripts/package.scm
	guix/scripts/pull.scm
	guix/store.scm
2020-03-27 00:12:15 +01:00
Brice Waegeneire
a9f2c210f3
system: Export 'operating-system-kernel-loadable-modules'.
* gnu/system.scm: Export 'operating-system-kernel-loadable-modules'.

Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
2020-03-23 18:52:31 +01:00
Danny Milosavljevic
5c79f23863
system: Add kernel-loadable-modules to operating-system.
* gnu/system.scm (<operating-system>): Add kernel-loadable-modules.
(operating-system-directory-base-entries): Use it.
* doc/guix.texi (operating-system Reference): Document
KERNEL-LOADABLE-MODULES.
* gnu/build/linux-modules.scm (depmod): New procedure.
(make-linux-module-directory): New procedure.  Export it.
* guix/profiles.scm (linux-module-database): New procedure.  Export it.
* gnu/tests/linux-modules.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/linux.scm (make-linux-libre*)[arguments]<#:phases>[install]:
Disable depmod.  Remove "build" and "source" symlinks.
[native-inputs]: Remove kmod.
2020-03-22 12:51:50 +01:00
Marius Bakke
c95f5f0af7
system: Switch to Guile 3.0.
* gnu/system.scm (%base-packages): Change from GUILE-2.2 to GUILE-3.0.
2020-03-20 17:23:01 +01:00
Marius Bakke
c4d769d359
Merge branch 'master' into core-updates 2020-03-18 19:41:08 +01:00
Maxim Cournoyer
f6b950319c
gnu: system: Export %sudoers-specification.
Exporting this variable allows reusing the default value of the `sudoers-file'
field when configuring it.

* gnu/system.scm (gnu): Export %sudoers-specification.
* doc/guix.texi (Invoking guix deploy): Document an example, to use with 'guix
deploy'.
2020-03-17 23:01:07 -04:00
Marius Bakke
50b99c90c8
Merge branch 'master' into core-updates 2020-03-10 20:50:02 +01:00
Brice Waegeneire
9ef37e81d6
system: Export 'operating-system' missing fields.
* gnu/system.scm: Export 'operating-system-firmware',
'operating-system-keyboard-layout',
'operating-system-name-service-switch', 'operating-system-pam-services',
'operating-system-setuid-programs', 'operating-system-skeletons',
'operating-system-sudoers-file', 'operating-system-swap-devices'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-08 21:21:57 +01:00
Marius Bakke
ebb7cf9e21
Merge branch 'master' into core-updates 2020-03-04 23:16:17 +01:00
Maxim Cournoyer
99e676db43
file-systems: Add a 'file-system-device->string' procedure.
* gnu/system/file-systems.scm (file-system-device->string): New procedure.
* gnu/system.scm (bootable-kernel-arguments): Use it.
* gnu/system/vm.scm (operating-system-uuid): Likewise.
* guix/scripts/system.scm (display-system-generation): Likewise.
2020-03-02 23:24:47 -05:00
Mathieu Othacehe
dfc8ccbf5d
system: Stop using canonical-package.
Usage of canonical-package outside of thunked fields breaks cross-compilation,
see: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00410.html.

* gnu/installer.scm (installer-program): Remove canonical-package.
* gnu/services/base.scm (<nscd-cache>): Ditto,
(%base-services): ditto.
* gnu/services/xorg.scm: Remove useless canonical-package import.
* gnu/system.scm (%base-packages): Remove canonical-package.
* gnu/system/install.scm (%installation-services): Ditto,
(installation-os): ditto.
* gnu/system/locale.scm (single-locale-directory): Ditto.
2020-02-11 13:54:45 +01:00
Simon Josefsson
58236d301c
system: Drop net-tools from %BASE-PACKAGES (replaced by iproute2).
* gnu/system.scm (%base-packages): Remove net-tools.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-01-12 00:19:09 +01:00
Marius Bakke
01bb039e7b
system: Use the udev-enabled util-linux variant.
Fixes <https://bugs.gnu.org/37931>.
Reported by Bengt Richter <bokr@bokr.com>.

* gnu/system.scm (%base-packages): Change from UTIL-LINUX to UTIL-LINUX+UDEV.
2020-01-08 20:04:12 +01:00
Ludovic Courtès
33b7cb7a59
services: Add 'provenance-service-type'.
* gnu/services.scm (object->pretty-string)
(channel->code, channel->sexp, provenance-file)
(provenance-entry): New procedures.
(provenance-service-type): New variable.
* gnu/system.scm (operating-system-with-provenance): New procedure.
* doc/guix.texi (Service Reference): Document 'provenance-service-type'.
2019-12-07 00:59:56 +01:00
Mathieu Othacehe
d4ddf22d54
system: vm: Support cross-compilation.
* gnu/system.scm (system-linux-image-file-name): Add support for cross-built
systems. Remove system argument that was ignored,
(operating-system-kernel-file): adapt by removing ignored os argument.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add target
argument and turn inputs into native-inputs. Pass target to qemu-command
and gexp->derivation calls.
(iso9660-image): Add target argument and pass it to
expression->derivation-in-linux-vm. Remove qemu from inputs as it
is not necessary.
(qemu-image): Add target argument, also remove qemu from inputs. Pass
target argument to expression->derivation-in-linux-vm call.
2019-12-01 16:51:40 +01:00
Ricardo Wurmus
e08902d3cb
Merge branch 'master' into core-updates 2019-10-06 22:02:20 +02:00
Ludovic Courtès
1994422752
system: Add 'mount' and 'umount' to '%setuid-programs'.
Fixes <https://bugs.gnu.org/37569>.
Reported by Diego Nicola Barbato <dnbarbato@posteo.de>.

* gnu/system.scm (%setuid-programs): Add "mount" and "umount" from
util-linux.
2019-10-06 14:45:35 +02:00
Mark H Weaver
65542a8852
Merge branch 'master' into core-updates 2019-09-06 20:46:00 -04:00
Ludovic Courtès
a28cfee841
system: Add 'bootloader-menu-entries' field to <boot-parameters>.
This allows us to keep track of the extra menu entries specified in the
OS configuration.

* gnu/system.scm (<boot-parameters>)[bootloader-menu-entries]: New field.
(read-boot-parameters): Initialize it.
(operating-system-boot-parameters): Likewise.
(operating-system-boot-parameters-file): Serialize it.
* gnu/bootloader.scm (menu-entry->sexp, sexp->menu-entry): New
procedures.
2019-08-30 01:33:45 +02:00
Timothy Sample
2a80d9e552
system: Write the timezone to /etc/timezone.
* gnu/system.scm (operating-system-etc-service): Write the operating
system timezone to /etc/timezone.

Fixes <https://bugs.gnu.org/35746>.
2019-07-16 21:53:05 -04:00
Ludovic Courtès
9fcfe30d28
system: Add 'operating-system-with-gc-roots'.
* gnu/tests/install.scm (operating-system-with-gc-roots): Move to...
* gnu/system.scm (operating-system-with-gc-roots): ... here.  New
procedure.
2019-05-15 16:36:21 +02:00