Commit graph

370 commits

Author SHA1 Message Date
Ludovic Courtès
384377632c
system: Validate sudoers file when building the system.
Suggested by pkill9 <pkill9@runbox.com>.

* gnu/system.scm (validated-sudoers-file): New procedure.
(operating-system-etc-service): Use it.
2020-08-24 23:23:57 +02:00
Ludovic Courtès
12a3d7d6f7
system: 'operating-system-with-provenance' uses the OS location info.
This allows 'guix deploy' to save the config file when it's available.

* gnu/system.scm (operating-system-configuration-file): New procedure.
(operating-system-with-provenance): 'config-file' defaults to the value
returned by 'operating-system-configuration-file'.
2020-07-29 00:22:01 +02:00
Ludovic Courtès
d51bfe242f
Use 'formatted-message' instead of '&message' where appropriate.
* gnu.scm (%try-use-modules): Use 'formatted-message' instead of
'&message'.
* gnu/machine/digital-ocean.scm (maybe-raise-unsupported-configuration-error):
Likewise.
* gnu/machine/ssh.scm (machine-check-file-system-availability): Likewise.
(machine-check-building-for-appropriate-system): Likewise.
(deploy-managed-host): Likewise.
(maybe-raise-unsupported-configuration-error): Likewise.
* gnu/packages.scm (search-patch): Likewise.
* gnu/services.scm (%service-with-default-value): Likewise.
(files->etc-directory): Likewise.
(fold-services): Likewise.
* gnu/system.scm (locale-name->definition*): Likewise.
* gnu/system/mapped-devices.scm (check-device-initrd-modules): Likewise.
(check-luks-device): Likewise.
* guix/channels.scm (latest-channel-instance): Likewise.
* guix/cve.scm (json->cve-items): Likewise.
* guix/git-authenticate.scm (commit-signing-key): Likewise.
(commit-authorized-keys): Likewise.
(authenticate-commit): Likewise.
(verify-introductory-commit): Likewise.
* guix/remote.scm (remote-pipe-for-gexp): Likewise.
* guix/scripts/graph.scm (assert-package): Likewise.
* guix/scripts/offload.scm (private-key-from-file*): Likewise.
* guix/ssh.scm (authenticate-server*): Likewise.
(open-ssh-session): Likewise.
(remote-inferior): Likewise.
* guix/ui.scm (matching-generations): Likewise.
* guix/upstream.scm (package-update): Likewise.
* tests/channels.scm ("latest-channel-instances, missing introduction for 'guix'"):
Catch 'formatted-message?'.
("authenticate-channel, wrong first commit signer"): Likewise.
* tests/lint.scm ("patches: not found"): Adjust message string.
* tests/packages.scm ("patch not found yields a run-time error"): Catch
'formatted-message?'.
* guix/lint.scm (check-patch-file-names): Handle 'formatted-message?'.
(check-derivation): Ditto.
2020-07-25 19:11:37 +02:00
Ludovic Courtès
a5e2fc7376
utils: Move <location> and '&error-location' to (guix diagnostics).
* guix/utils.scm (<location>, source-properties->location)
(location->source-properties, &error-location): Move to...
* guix/diagnostics.scm: ... here.
* gnu.scm: Adjust imports accordingly.
* gnu/machine.scm: Likewise.
* gnu/system.scm: Likewise.
* gnu/tests.scm: Likewise.
* guix/inferior.scm: Likewise.
* tests/channels.scm: Likewise.
* tests/packages.scm: Likewise.
2020-07-25 19:11:36 +02:00
Ludovic Courtès
d7e9e0bbc9
system: 'operating-system-root-file-system' raises upon missing root.
* gnu/system.scm (operating-system-root-file-system): Raise when 'find'
returns #f.
2020-07-15 01:36:24 +02:00
Ludovic Courtès
9e12da319b
system: Add 'location' field to <operating-system>.
This allows error messages to include source location info.

* gnu/system.scm (<operating-system>)[location]: New field.
2020-07-15 01:36:24 +02:00
Mathieu Othacehe
395782f235
system: Do not use "hurd-target?".
Fix the following issue, that happens during CI evaluation:

In guix/gexp.scm:
    782:4 19 (_ _)
In guix/store.scm:
  1907:12 18 (_ #<store-connection 256.99 7f3727b6de10>)
   1340:2 17 (map/accumulate-builds #<store-connection 256.99 7f372…> …)
In srfi/srfi-1.scm:
   586:29 16 (map1 ((#<file-append #<package hurd@0.9-1.91a516…> …) …))
   586:29 15 (map1 ((#<file-append #<<parameterized> bindings:…> …) …))
   586:29 14 (map1 ((#<file-append #<package hurd@0.9-1.91a516…> …) …))
   586:17 13 (map1 ((#<<operating-system> kernel: #<<parameter…> …) …))
In guix/store.scm:
   1299:8 12 (call-with-build-handler #<procedure build-accumulator…> …)
  2025:24 11 (run-with-store #<store-connection 256.99 7f3727b6de10> …)
In guix/gexp.scm:
   785:13 10 (_ _)
In guix/store.scm:
   1859:8  9 (_ _)
In guix/gexp.scm:
   243:18  8 (_ _)
In guix/store.scm:
  1894:38  7 (_ #<store-connection 256.99 7f3727b6de10>)
In gnu/system.scm:
  1012:19  6 (_ #<store-connection 256.99 7f3727b6de10>)
   634:11  5 (operating-system-services #<<operating-system> kernel:…>)
   611:17  4 (hurd-default-essential-services #<<operating-system> k…>)
   555:18  3 (operating-system-directory-base-entries #<<operating-s…>)
  1270:18  2 (operating-system-boot-parameters-file #<<operating-sy…> …)
  1225:35  1 (operating-system-boot-parameters #<<operating-system>…> …)
  1225:35  0 (operating-system-boot-parameters (#<<file-system> de…>) …)

gnu/system.scm:1225:35: In procedure operating-system-boot-parameters:
Wrong type to apply: #f

"hurd-target?" is returning false when it should return true in that context.

* gnu/system.scm (operating-system-boot-parameters): Check for "hurd" target
field of "os" instead of using the "hurd-target?" procedure.
2020-07-05 09:40:34 +02:00
Jan (janneke) Nieuwenhuizen
2b76179ecd
services: system-service-type: Add entries support for the Hurd.
When creating a disk-image using --save-provenance, "guix system describe"
now works.

* gnu/system.scm (operating-system-directory-base-entries): Add conditional
"hurd" parameter, make "initrd" parameter conditional.
(hurd-default-essential-services): Use them.
(operating-system-boot-parameters-file): Only add 'initrd' when set.
2020-07-03 09:06:21 +02:00
Jan (janneke) Nieuwenhuizen
12906d3e2a
system: 'read-boot-parameters' allow initrd to be missing.
* gnu/system.scm (read-boot-parameters): Allow initrd to be missing.
2020-07-03 09:00:53 +02:00
Jan (janneke) Nieuwenhuizen
aa864ebdb0
system: 'read-boot-parameters' bugfix for multiboot.
* gnu/system.scm (read-boot-parameters): Oops, only return value for
multiboot-modules instead of (key value).
2020-07-03 08:59:31 +02:00
Brice Waegeneire
f6c6970e0d
system: Add 'sg' and 'newgrp' to %SETUID-PROGRAMS.
* gnu/system.scm (%setuid-programs): Add 'sg' and 'newgrp'.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2020-06-21 11:35:55 +08:00
Jan (janneke) Nieuwenhuizen
f25e8f76fe
hurd-boot: Use 'setxattr' instead of invoking settrans.
Note: Using `getxattr' on the Hurd instead of running showtrans does not
work (yet?).

* gnu/build/hurd-boot.scm (setup-translator): Use 'setxattr' instead of
invoking settrans.
* gnu/system.scm (hurd-multiboot-modules): Add --x-xattr-translator-records to
enable xattr-embedding of translators.
2020-06-19 10:40:53 +02:00
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