Commit Graph

407 Commits

Author SHA1 Message Date
Ludovic Courtès 5970e8e248
container: Pass a list of <file-system> objects as things to mount.
* gnu/build/linux-container.scm (mount-file-systems): 'mounts' is now a
list of <file-system> objects instead of a list of lists ("specs").
Add call to 'file-system->spec' as the argument to 'mount-file-system'.
(run-container, call-with-container): Adjust docstring accordingly.
* gnu/system/file-systems.scm (spec->file-system): New procedure.
* gnu/system/linux-container.scm (container-script)[script]: Call
'spec->file-system' inside gexp.
* guix/scripts/environment.scm (launch-environment/container): Remove
call to 'file-system->spec'.
* tests/containers.scm ("call-with-container, mnt namespace")
("call-with-container, mnt namespace, wrong bind mount"): Pass a list of
<file-system> objects.
2016-11-10 18:01:44 +01:00
Ludovic Courtès 5e7eaccb14
linux-container: Use 'source-module-closure' when generating the script.
* gnu/system/linux-container.scm (container-script)[script]: Use
'source-module-closure' in 'with-imported-modules' form.
2016-11-10 18:01:44 +01:00
Marius Bakke 81bf2ccbc4
system: Use grub from bootloader configuration.
* gnu/system/grub.scm (gnu): Export grub-configuration-grub.
* guix/scripts/system.scm (perform-action): Use it.
(define-module): Don't import (gnu packages grub).

Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>
2016-11-08 14:35:05 +00:00
John Darrington 290ad2243c
gnu: Remove comment which is factually incorrect.
* gnu/system/pam.scm: Remove incorrect comment.
2016-11-06 19:56:43 +01:00
Chris Marusich 1ef8b72a7f
system: Record store file system info in each generation.
* gnu/system.scm (<boot-parameters>)[store-device, store-mount-point]:
New fields.
(read-boot-parameters): Initialize them.
(operating-system-grub.cfg): Likewise.  Remove STORE-FS argument from
call to 'grub-configuration-file'.
(operating-system-parameters-file): Add 'store' element in
'boot-parameters'.
* gnu/system/grub.scm (strip-mount-point): Replace 'store-fs' parameter
by 'mount-point'; adjust accordingly.  Adjust callers.
(<menu-entry>)[device, device-mount-point]: New fields.
(eye-candy): Replace 'root-fs' parameter by 'store-device'; add
'store-mount-point'.  Use keyword arguments for 'system' and 'port'.
(grub-root-search): Remove 'root-fs' by 'device' and adjust
accordingly.
(grub-configuration-file): Remove 'store-fs' parameter.  Adjust
accordingly.
* guix/scripts/system.scm (previous-grub-entries): Initialize 'device'
and 'device-mount-point' fields from PARAMS.
* doc/guix.texi (GRUB Configuration): Document 'device' and
'device-mount-point'.  Explain that 'linux' can be prefixed by a GRUB
device name.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-10-30 22:59:46 +01:00
Ludovic Courtès 4ed2f515d6
mapped-devices: Use 'mdadm-static' in 'raid-device-mapping'.
* gnu/system/mapped-devices.scm (open-raid-device, close-raid-device):
Use MDADM-STATIC instead of MDADM.  Use 'file-append'.
2016-10-27 13:48:52 +02:00
Ludovic Courtès ffde82c9ec
system: grub: Use Guile-{RSVG,Cairo} instead of Inkscape + ImageMagick.
Based on a suggestion by Andy Wingo at
<https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00753.html>.

* gnu/build/svg.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/system/grub.scm (svg->png): Add #:width and #:height.  Rewrite to
use (gnu build svg).
(resize-image): Remove.
(grub-background-image): Adjust accordingly.
2016-10-25 01:21:28 +02:00
Ludovic Courtès 6e52376d2e
mapped-devices: Properly open RAID devices.
This fixes a type error introduced in
7f8ad82bf2, given that SOURCES is a list.

* gnu/system/mapped-devices.scm (open-raid-device): Add 'apply'
invocation.
2016-10-04 19:51:53 +02:00
Ludovic Courtès 3c185b24f5
Add missing exports.
Reported by Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
at <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg01686.html>.

* gnu/system/file-systems.scm (%tty-gid): Export.
* guix/build-system/python.scm (default-python, default-python2):
Export.
2016-09-27 11:22:56 +02:00
Ludovic Courtès 5babe521c8
system: Don't emit a GRUB 'search' command when passed a GRUB file name.
Reported by Tomáš Čech <tcech@suse.com>
at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20067#26>.

* gnu/system/grub.scm (grub-root-search): Don't emit anything when FILE
is a string that does not denote an absolute file name.
2016-09-26 00:18:39 +09:00
Carlos Sánchez de La Lama 0f65f54ebd
system: grub.cfg uses correct file names when store is not in root partition.
Fixes <http://bugs.gnu.org/24346>.
Reported by csanchezdll@gmail.com (Carlos Sánchez de La Lama).

* guix/scripts/system.scm (previous-grub-entries): Get the initrd file
name from PARAMS.
* gnu/system.scm (operating-system-grub.cfg): Use
'operating-system-initrd-file' to retrieve the initrd file name.
* gnu/system/grub.scm (strip-mount-point): New procedure.
(grub-configuration-file)[entry->gexp]: Call 'strip-mount-point' for
LINUX and INITRD.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-09-24 17:48:13 +09:00
Ludovic Courtès 4a84a48742
services: console-font: A single service handles all the VTs.
* gnu/services/base.scm (%default-console-font): New variable.
(console-font-shepherd-services): New procedure.
(console-font-service-type): Change to use 'service-type'.
(console-font-service): Rewrite using 'simple-service'.
(%base-services): Use a single CONSOLE-FONT-SERVICE-TYPE instance.
* gnu/system/install.scm (installation-services): Likewise.
2016-09-19 23:36:17 +09:00
David Craven 2932ab9ca4
install: Use login-service.
* gnu/system/install.scm (installation-services): Use login-service.
2016-09-11 18:54:13 +02:00
Ludovic Courtès 44d5f54e31
system: grub: Allow arbitrary kernel file names in 'menu-entry'.
Fixes <http://bugs.gnu.org/20067>.
Reported by Tomáš Čech <sleep_walker@suse.cz>.

* gnu/system.scm (system-linux-image-file-name)
(operating-system-kernel-file): New procedures.
(operating-system-grub.cfg): Use 'operating-system-kernel-file' for the
'kernel' field of 'menu-entry'.
(operating-system-parameters-file): Likewise for the 'kernel' entry.
(read-boot-parameters): Adjust 'kernel' field so that it contains the
absolute file name of the image.
* gnu/system/grub.scm (grub-configuration-file)[linux-image-name]:
Remove.
[entry->gexp]: Assume LINUX is the absolute file name of the kernel
image.
* doc/guix.texi (GRUB Configuration): Add an example, and adjust
'kernel' field documentation accordingly.
2016-09-09 23:54:43 +02:00
John Darrington fdf14c64f1
gnu: Add edit warning to generated grub.cfg files
* gnu/services/grub.scm (grub-configuration-file): Add code to emit warning.
2016-09-08 18:08:29 +02:00
Efraim Flashner 9e258dc249
gnu: lightweight-desktop.tmpl: Fix typo.
* gnu/system/examples/lightweight-desktop.tmpl: While it is currently
unknown if Bob has a brother, it is sufficiently documented that Alice
is, in fact, Bob's sister.
2016-09-08 08:07:49 +03:00
David Craven f2e7be4e29
system: vm: Remove -net user flag.
* gnu/system/vm.scm (common-qemu-options): Remove -net user flag.
2016-09-06 17:48:59 +02:00
Ludovic Courtès 239c6e2762
system: Use 'source-module-closure' where needed.
* gnu/system/vm.scm (%vm-module-closure): Remove.
(expression->derivation-in-linux-vm): Use 'source-module-closure'
instead of %VM-MODULE-CLOSURE.
(qemu-image): Likewise.
* gnu/system/linux-initrd.scm (expression->initrd): Likewise.
(flat-linux-module-directory, base-initrd): Likewise.
* gnu/system/mapped-devices.scm (open-luks-device): Likewise.
2016-09-05 00:06:47 +02:00
Ludovic Courtès 38c2b50354
Reinstate "services: elogind: Provide '%elogind-file-systems' by extension."
This reverts commit 17073dafc5.
2016-09-01 14:57:03 +02:00
Ludovic Courtès d03db7434b
system: Do not create the home directory of "nobody".
Fixes <http://bugs.gnu.org/24275>.
Reported by John Darrington <john@darrington.wattle.id.au>.

* gnu/system/shadow.scm (%base-user-accounts):
Add (create-home-directory? #f) for "nobody".
2016-08-28 15:11:18 +02:00
Ludovic Courtès eb56ee027b
system: Add 'create-home-directory?' field to <user-account>.
* gnu/system/shadow.scm (<user-account>)[create-home-directory?]: New
field.
(user-account->gexp): Serialize it.
* gnu/build/activation.scm (activate-users+groups)[activate-user]:
Update 'match-lambda' pattern accordingly.  Pass #:create-home? to
'ensure-user'.
(add-user, modify-user, ensure-user): Add #:create-home? parameter and
honor it.
* doc/guix.texi (User Accounts): Document it.
2016-08-28 15:11:18 +02:00
Mark H Weaver 17073dafc5
Revert "services: elogind: Provide '%elogind-file-systems' by extension."
This reverts commit 3cf319a3f8.
2016-08-22 08:16:37 -04:00
Ludovic Courtès 3cf319a3f8
services: elogind: Provide '%elogind-file-systems' by extension.
* gnu/system/file-systems.scm (%base-file-systems): Remove
%ELOGIND-FILE-SYSTEMS.
* gnu/services/desktop.scm (elogind-service-type): Extend
FILE-SYSTEM-SERVICE-TYPE to provide %ELOGIND-FILE-SYSTEMS.
2016-08-22 00:20:48 +02:00
Ludovic Courtès d77a0bd6f1
ui: Remove dependency on (gnu system file-systems).
* guix/ui.scm (specification->file-system-mapping): Move to...
* gnu/system/file-systems.scm (specification->file-system-mapping):
... here.
2016-08-04 19:38:33 +02:00
Mark H Weaver 536fc5f8cd
Merge branch 'core-updates' 2016-08-04 08:17:05 -04:00
Mark H Weaver 0832787e5c
Revert "Merge branch 'core-updates'"
This reverts commit 455859a50f.
2016-08-04 08:16:38 -04:00
Ludovic Courtès 10618627bf
mapped-devices: raid-device-mapping: Avoid non-top-level 'use-modules'.
Fixes <http://bugs.gnu.org/24135>.
Reported by myglc2 <myglc2@gmail.com>.

* gnu/system/mapped-devices.scm (open-raid-device): Avoid non-top-level
'use-modules' form.
2016-08-03 00:07:06 +02:00
Ludovic Courtès 873b51b340
mapped-devices: Bail out when RAID sources don't show up.
* gnu/system/mapped-devices.scm (open-raid-device): Bail out after 20
loop iterations.
2016-08-02 13:53:25 +02:00
Ludovic Courtès 7f8ad82bf2
mapped-devices: Make RAID device opening message clearer.
* gnu/system/mapped-devices.scm (open-raid-device): Rename 'source' to
'sources'.  Make 'waiting' message more informative.
(close-raid-device): Rename 'source' to 'sources'.
2016-08-02 13:53:25 +02:00
Ludovic Courtès dfe06f6e7f
mapped-devices: Do not always use (gnu build file-systems).
Fixes <http://bugs.gnu.org/24129>.
Reported by myglc2 <myglc2@gmail.com>.

* gnu/system/mapped-devices.scm (device-mapping-service-type): Remove
'modules' field from 'shepherd-service' form.
(open-luks-device): Add 'use-modules' form.
2016-08-02 13:53:25 +02:00
Ludovic Courtès 455859a50f
Merge branch 'core-updates' 2016-08-01 23:30:52 +02:00
Ludovic Courtès a8cb87abe9
install: Add nvi to the image.
* gnu/system/install.scm (installation-os)[packages]: Add NVI.
* doc/guix.texi (Proceeding with the Installation): Mention it.
2016-08-01 23:08:48 +02:00
Andreas Enge e309c75610
Merge remote-tracking branch 'origin/master' into core-updates 2016-07-28 11:08:55 +02:00
Andreas Enge 97c8aef15d
system: Add mapped devices for RAID.
* gnu/system/mapped-devices.scm (raid-device-mapping, open-raid-device,
close-raid-device): New variables.
* doc/guix.texi (Mapped Devices): Add documentation for RAID devices,
reorganize documentation for LUKS devices.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-07-25 22:22:21 +02:00
Ludovic Courtès 7575655212
Merge branch 'master' into core-updates 2016-07-20 11:42:17 +02:00
Ricardo Wurmus 909147e43f
services: Add pam-limits-service.
* gnu/system/pam.scm (<pam-limits-entry>): New record type.
(pam-limits-entry, pam-limits-entry->string): New procedures.
* gnu/services/base.scm (pam-limits-service-type): New variable.
(pam-limits-service): New procedure.
* doc/guix.texi (Base Services): Document it.
2016-07-19 23:50:03 +02:00
Andreas Enge f0fbf2c11c
install: Add mdadm to the image.
* gnu/system/install.scm (installation-os)[packages]: Add mdadm.
2016-07-15 10:41:14 +02:00
Ludovic Courtès 2d94702ff4
system: Change the shell of 'nobody' to 'nologin'.
Fixes <http://bugs.gnu.org/23971>.
Reported by Vincent Legoll <vincent.legoll@gmail.com>.

* gnu/system/shadow.scm (%base-user-accounts): Add 'shell' field.  Set
'home-directory' to "/nonexistent".
2016-07-13 23:42:35 +02:00
Ludovic Courtès a91c3fc727
services: <shepherd-service> no longer has an 'imported-modules' field.
* gnu/services/shepherd.scm (<shepherd-service>)[imported-modules]:
Remove.
(%default-imported-modules): Make private.
(shepherd-service-file): Use 'with-imported-modules'.
(shepherd-configuration-file): Remove 'modules' and the calls to
'imported-modules' and 'compiled-modules'.  Use
'with-imported-modules' instead.
* doc/guix.texi (Shepherd Services): Adjust accordingly.
* gnu/services/base.scm (file-system-shepherd-service): Use
'with-imported-modules'.  Remove 'imported-modules' field.
* gnu/system/mapped-devices.scm (device-mapping-service-type): Remove
'imported-modules'.
(open-luks-device): Use 'with-imported-modules'.
* gnu/tests.scm (marionette-shepherd-service): Remove 'imported-modules'
field and use 'with-imported-modules'.
2016-07-12 22:47:08 +02:00
Ludovic Courtès fd12989398
gnu: Use 'gexp->file' in conjunction with 'with-imported-modules'.
* gnu/services.scm (activation-script): Remove code to set '%load-path'
and use 'with-imported-modules' instead.
(cleanup-gexp): Likewise.
* gnu/system/vm.scm (%vm-module-closure): New variable.
(expression->derivation-in-linux-vm): Remove #:modules.
[loader]: Remove code to set '%load-path'.
[builder]: Use %VM-MODULE-CLOSURE.
(qemu-image): Use 'with-imported-modules'.
2016-07-12 22:47:08 +02:00
Ludovic Courtès 43dcce8674
linux-container: Fix list of imported modules.
This fixes a regression introduced in
958dd3ce68.

* gnu/system/linux-container.scm (container-script)[script]: Add (guix
combinators) to the list of imported modules.
2016-07-12 22:47:08 +02:00
Ludovic Courtès 4ee96a7912
gnu: Switch to 'with-imported-modules'.
* gnu/services.scm (directory-union): Use 'with-imported-modules'
instead of the '#:modules' argument of 'computed-file'.
* gnu/services/base.scm (udev-rules-union): Likewise.
* gnu/services/dbus.scm (system-service-directory): Likewise.
* gnu/services/desktop.scm (wrapped-dbus-service):
(polkit-directory): Likewise.
* gnu/services/networking.scm (tor-configuration->torrc): Likewise.
* gnu/services/xorg.scm (xorg-configuration-directory): Likewise.
* gnu/system/install.scm (self-contained-tarball): Likewise.
* gnu/system/linux-container.scm (container-script): Likewise.
* gnu/system/linux-initrd.scm (expression->initrd): Likewise, and
remove #:modules parameter.
(flat-linux-module-directory): Use 'with-imported-modules'.
(base-initrd): Likewise.
* gnu/system/locale.scm (locale-directory): Likewise.
* gnu/system/shadow.scm (default-skeletons): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
* gnu/tests/base.scm (run-basic-test): Likewise.
* gnu/tests/install.scm (run-install): Likewise.
* doc/guix.texi (Initial RAM Disk): Update 'expression->initrd'
documentation.
2016-07-12 22:47:08 +02:00
Jan Nieuwenhuizen ad85791265
gnu: linux-initrd: Support NVMe devices.
* gnu/system/linux-initrd.scm (base-initrd): Add nvme to linux-modules.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-06-29 16:08:46 +02:00
Ludovic Courtès 01497dfe6c
Merge branch 'master' into core-updates 2016-06-27 09:30:01 +02:00
Ludovic Courtès bae90dc7e7
install: Pass a relative file name to 'local-file'.
This is a followup to cbbbb7be0f.

* gnu/system/install.scm (/etc/configuration-files): Pass a relative
file name to 'local-file'.
2016-06-21 12:23:34 +02:00
Ludovic Courtès aeafff536f
Merge branch 'master' into core-updates 2016-06-07 11:54:03 +02:00
Ludovic Courtès b2c108ff33
file-systems: Remove unneeded import.
* gnu/system/file-systems.scm: Remove import of (guix gexp), unneeded
since commit 060d62a740.
2016-06-06 18:14:52 +02:00
Ludovic Courtès 0adabad72d
install: 'cow-store' now bind-mounts the target's /tmp.
Reported by Matthew Jordan <matthewjordandevops@yandex.com>
at <https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00967.html>.

* gnu/system/install.scm (make-cow-store): Bind-mount TARGET's /tmp
on /tmp.
2016-05-31 23:38:51 +02:00
Leo Famulari eb74eb4199
Merge branch 'master' into core-updates 2016-05-13 02:08:11 -04:00
Alex Griffin ba2613bb4e
system: Do not export PS1 in /etc/skel/.bashrc.
* gnu/system/shadow.scm (default-skeletons)[bashrc]: Remove "export"
for 'PS1'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-05-06 13:25:30 +02:00