Commit graph

870 commits

Author SHA1 Message Date
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
Ludovic Courtès
74f01059cb
vm: 'system-disk-image' honors #:substitutable? for ISO9660 images.
This is a followup to a328f66a9e.

* gnu/system/vm.scm (iso9660-image): Add #:substitutable? and pass it to
'expression->derivation-in-linux-vm'.
(system-disk-image): Pass #:substitutable? to 'iso9660-image'.
2020-04-10 16:06:23 +02:00
Ludovic Courtès
76026b5f51
vm: 'system-disk-image' honors #:substitutable? for ISO9660 images.
This is a followup to a328f66a9e.

* gnu/system/vm.scm (iso9660-image): Add #:substitutable? and pass it to
'expression->derivation-in-linux-vm'.
(system-disk-image): Pass #:substitutable? to 'iso9660-image'.
2020-04-10 16:02:51 +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
Ludovic Courtès
a328f66a9e
vm: Allow images to be marked as non-substitutable.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
 #:substitutable? parameter.  Pass it to 'gexp->derivation'.
(qemu-image): Add #:substitutable? and pass it to
'expression->derivation-in-linux-vm'.
(system-disk-image): Add #:substitutable? and pass it to 'qemu-image'.
2020-04-08 12:42:41 +02:00
Ludovic Courtès
2729cb406d
system: Allow for comma-separated keyboard layouts.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* gnu/bootloader/grub.scm (keyboard-layout-file): Replace commas with
hyphens in the first argument to 'computed-file'.
* gnu/system/keyboard.scm (keyboard-layout->console-keymap): Likewise.
* doc/guix.texi (Keyboard Layout): Add example.
2020-04-06 00:14:13 +02:00
Ludovic Courtès
c7af968717
system: Add xterm to lightweight-desktop example.
That makes ratpoison more usable, for instance.

* gnu/system/examples/lightweight-desktop.tmpl (packages): Add XTERM.
2020-04-02 11:48:25 +02:00
Efraim Flashner
f12bd0bedd
system: Move nanorc to XDG_CONFIG_HOME.
* gnu/system/shadow.scm (skeleton-directory): Move .nanorc to
.config/nano/nanorc.
2020-04-01 07:50:48 +03:00
Leo Famulari
49d20d51e9
Revert "system: Move nanorc to XDG_CONFIG_HOME."
This reverts commit bd71818df3.

This changed caused system reconfiguration to fail like this:

------
building /gnu/store/y1x8asbzw624ywgkpin35p1i4bqnyfy2-skel.drv...
Backtrace:
           4 (primitive-load "/gnu/store/2x7d0jsbgf2ndb5fsk0nj07rhsx?")
In ice-9/eval.scm:
    619:8  3 (_ #f)
In ice-9/boot-9.scm:
   260:13  2 (for-each #<procedure 7ffff6ad8100 at ice-9/eval.scm:3?> ?)
In guix/build/utils.scm:
   343:27  1 (_ "/gnu/store/ajrgkj1s9vdcq00drn703f4zj9dvfrsv-nanorc" ?)
In unknown file:
           0 (copy-file "/gnu/store/ajrgkj1s9vdcq00drn703f4zj9dvfrs?" ?)

ERROR: In procedure copy-file:
In procedure copy-file: No such file or directory
`/gnu/store/v1grsca743phw41lyf63dzmh9nz5jlpn-bash_profile' -> `.bash_profile'
`/gnu/store/xdsaw0mj6axj427hyi6ysrnsxi21n7d5-bashrc' -> `.bashrc'
`/gnu/store/6i0b236dyar78zc5k5hrj5dv3vr4zb9w-zprofile' -> `.zprofile'
`/gnu/store/ajrgkj1s9vdcq00drn703f4zj9dvfrsv-nanorc' -> `.config/nano/nanorc'
builder for `/gnu/store/y1x8asbzw624ywgkpin35p1i4bqnyfy2-skel.drv' failed with exit code 1
------
2020-03-30 16:02:38 -04:00
Efraim Flashner
bd71818df3
system: Move nanorc to XDG_CONFIG_HOME.
* gnu/system/shadow.scm (default-skeletons): Move .nanorc to
.config/nano/nanorc.
2020-03-30 15:40:30 +03:00
Marius Bakke
ae0badf5bb
Merge branch 'master' into core-updates
Conflicts:
	gnu/packages/admin.scm
	gnu/packages/commencement.scm
	gnu/packages/guile.scm
	gnu/packages/linux.scm
	gnu/packages/package-management.scm
	gnu/packages/pulseaudio.scm
	gnu/packages/web.scm
2020-03-30 12:17:33 +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
Ludovic Courtès
be6520e6a5
vm: Distinguish between success and failure of the guest code.
Fixes <https://bugs.gnu.org/34276>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]:
Produce '/xchg/.exit-status' file upon success.
* gnu/build/vm.scm (load-in-linux-vm): Check for 'xchg/.exit-status'
once QEMU has completed and respond accordingly.
2020-03-26 23:45:41 +01:00
Vagrant Cascadian
37f8c50cdc
gnu: linux-libre-arm-veyron: Deprecate package.
* gnu/packages/linux (linux-libre-arm-veyron): Mark as deprecated package.
  (kernel-config-veyron): Remove obsolete function.
* gnu/system/examples/asus-c201.tmpl: Update to use linux-libre-arm-generic.
* gnu/packages/aux-files/linux-libre/5.4-arm-veyron.conf: Delete file.
* Makefile.am (AUX_FILES): Update accordingly.
2020-03-22 20:55:37 -07:00
Marius Bakke
d19b14c834
Merge branch 'master' into core-updates 2020-03-21 22:16:02 +01:00
Jan Nieuwenhuizen
ac75bd0102
gnu: system: Remove guile-wm from skeleton.
* gnu/system/shadow.scm (default-skeletons): Remove guile-wm (especially as a
dependency).
2020-03-19 12:14:19 +01:00
Marius Bakke
50b99c90c8
Merge branch 'master' into core-updates 2020-03-10 20:50:02 +01:00
Ludovic Courtès
09844816c7
vm: Compute UUIDs truly deterministically.
This is a followup to 1540075c79.
The mistake had no effect on prior Guile versions but it's visible since
Guile 3.0.1 and the fix for <https://bugs.gnu.org/39634>.

* gnu/system/vm.scm (operating-system-uuid): Hash a list of
'file-system-digest' values, not the 'file-system-type' procedure.
2020-03-10 18:16:39 +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
f30d84d32d
system: locale: Remove canonical-package call.
This is a follow-up of dfc8ccbf5d. Building
locales using the same glibc as the one programs are linked against is
enough.

* gnu/system/locale.scm (%default-locale-libcs): Use the plain glibc package.
2020-02-12 11:09:11 +01: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
Efraim Flashner
c27710859c
system: linux-container: Recommend guix container.
* gnu/system/linux-container.scm (container-script)[script]: Recommend
using 'guix container' to get a shell inside the running container.
2020-01-06 12:20:21 +02:00
Tobias Geerinckx-Rice
b24f561c5e
install: Add jfsutils to the installation image.
* gnu/system/install.scm (installation-os)[packages]: Add jfsutils.
2020-01-03 13:54:14 +01:00
Tobias Geerinckx-Rice
c7b5cfb014
linux-initrd: Add support for JFS.
* gnu/system/linux-initrd.scm (file-system-packages): Add jfs_fsck/static.
(file-system-type-modules): Add ‘jfs’ module.
2020-01-03 13:54:13 +01:00
Tobias Geerinckx-Rice
43c4d27cdf
uuid: Add support for JFS.
* gnu/system/uuid.scm (string->jfs-uuid): New procedure.
(%uuid-parsers, %uuid-printers): Add ‘jfs’ file system type.
2020-01-03 13:54:13 +01:00
Marius Bakke
8e53fe2b91
gnu: Remove uses of deprecated Qemu network configuration.
* gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from
ARCH-SPECIFIC-FLAGS to the Qemu command line.  Use the "-nic" option of Qemu
instead of "-device" and "-net".
* gnu/system/vm.scm (common-qemu-options): Do not add a '-net' command.
(virtual-machine-compiler): Use "-nic user,..." instead of "-net".
* doc/guix.texi (Installing Guix in a VM, Invoking guix system, Running Guix
in a VM): Do the same for examples.
2019-12-18 22:36:37 +01:00
Ludovic Courtès
362bcdb1b0
system: Remove custom 'config-file service from "vm-image.tmpl".
This example is broken since commit
99c45877a9 (wrong file name passed to
'local-file'), and its functionality is superseded by the upcoming
'provenance-service-type'.

* gnu/system/examples/vm-image.tmpl (this-file): Remove.
<services>: Remove 'config-file service.
2019-12-07 00:59:56 +01:00
Ludovic Courtès
33d1c970c3
install: Pass 'local-file' literal strings for proper resolution.
This is a followup to 99c45877a9, which
introduced a regression: "guix system build gnu/system/install.scm"
would fail to find the .tmpl files.

* gnu/system/install.scm (/etc/configuration-files)[file]: Remove.
[directory]: Use 'local-file' with a literal string.
2019-12-01 23:36:52 +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
Mathieu Othacehe
1ee72bb55b
system: vm: Add arm64 support.
* gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it
to pass correct arguments to qemu.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new
target-arm64? argument added above. Do not add ESP partition on all ARM
targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets.
2019-11-22 16:33:43 +01:00
Maxim Cournoyer
67ed544212
vm: Honor the VOLATILE? parameter when producing a system disk image.
* gnu/system/vm.scm (system-disk-image): Honor the VOLATILE? parameter instead
of hard coding its value to #t.

Reported-by: Jelle Licht <jlicht@fsfe.org>
2019-11-18 14:07:12 +09:00
Ludovic Courtès
625bdf09d3
file-systems: Mount /var/run/nscd read-write in containers.
Fixes <https://bugs.gnu.org/37967>.
Reported by Ivan Vilata i Balaguer <ivan@selidor.net>.

* gnu/system/file-systems.scm (%network-file-mappings): Set 'writable?'
to #true for /var/run/nscd.
2019-11-04 23:35:32 +01:00
Vagrant Cascadian
545ff7b784
gnu: Add u-boot-firefly-rk3399.
* gnu/packages/bootloaders (u-boot-firefly-rk3399): New variable.
* gnu/bootloader/u-boot (install-firefly-rk3399-u-boot): New variable.
  (u-boot-firefly-rk3399-bootloader): New variable.
* gnu/system/install (define firefly-rk3399-installation-os): New variable.
2019-10-18 15:48:18 -07:00
Vagrant Cascadian
2fce14af24
gnu: Add u-boot-rock64-rk3328.
* gnu/packages/bootloaders (u-boot-rock64-rk3328): New variable.
* gnu/bootloader/u-boot (install-rock64-rk3328-u-boot): New variable.
  (u-boot-rock64-rk3328-bootloader): New variable.
* gnu/system/install (define rock64-installation-os): New variable.
2019-10-18 13:32:25 -07:00
Caliph Nomble
fa7470189e
gnu: Add u-boot-rockpro64-rk3399
* gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399): New exported
  variable.
  (u-boot-2019.10): New variable.
* gnu/bootloader/u-boot.scm (u-boot-rockpro64-rk3399-bootloader): New exported
  variable.
  (install-rockpro64-rk3399-u-boot): New variable.
* gnu/system/install.scm (rockpro64-installation-os): New exported variable.

Adjusted-by: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Caliph Nomble <nomble@palism.com>
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2019-10-18 13:32:09 -07:00
Ludovic Courtès
96b35998e6
linux-container: 'eval/container' correctly passes -L and -C flags.
This fixes a type error.

* gnu/system/linux-container.scm (eval/container): Use 'append-map', not
'map'.
* tests/containers.scm ("eval/container, non-empty load path"): New test.
2019-09-18 23:08:28 +02:00
Ludovic Courtès
d236cd16a7
linux-container: "run-container" scripts shows the container's PID.
* gnu/build/linux-container.scm (call-with-container): Add
 #:process-spawned-hook and honor it.
* gnu/system/linux-container.scm (container-script)[script]:
Define 'explain' and pass it as #:process-spawned-hook'.
2019-09-12 23:07:43 +02:00
Ludovic Courtès
da966a7a3d
linux-container: Exclude more services when sharing networking with the host.
* gnu/system/linux-container.scm (containerized-operating-system)[useless-services]:
Add more services to the list when SHARED-NETWORK? is true.
2019-09-12 23:07:42 +02:00
Ludovic Courtès
5ccec77176
file-systems: Add /var/run/nscd to '%network-file-mappings'.
This allows containers created by "guix environment -CN" or by
"guix system container -N" to talk to the host nscd.

* gnu/system/file-systems.scm (%network-file-mappings): Add
"/var/run/nscd".
* gnu/build/shepherd.scm (default-mounts)[nscd-socket]: Remove.
* gnu/system/linux-container.scm (container-script)[nscd-run-directory]
[nscd-mapping, nscd-os, nscd-specs]: Remove.
[script]: Filter out from SPECS bind-mounts where the device does not
exist.
* guix/scripts/environment.scm (launch-environment/container)
[optional-mapping->fs]: New procedure.
[mappings]: Remove %NETWORK-FILE-MAPPINGS.
[file-systems]: Add %NETWORK-FILE-MAPPINGS here, filtered through
'optional-mapping->fs'.
2019-09-12 23:07:42 +02:00
Mathieu Othacehe
328a4c5bf1
linux-initrd: Use native gzip.
* gnu/system/linux-initrd.scm (expression->initrd): Pass native gzip to
build-initrd procedure.
2019-09-04 17:56:13 +02:00
Ludovic Courtès
c85ccf60bf
linux-modules: Define and use a module name database.
Fixes <https://bugs.gnu.org/34902>.
Reported by Julien Lepiller <julien@lepiller.eu>.

* gnu/build/linux-modules.scm (module-formal-name): New procedure.
(load-linux-modules-from-directory)[lookup-module]: Remove.
[module-name->file-name]: New variable.  Use it.
(module-name->file-name/guess, module-name-lookup)
(write-module-name-database): New procedures.
* gnu/system/linux-initrd.scm (flat-linux-module-directory): Call
'write-module-name-database'.
2019-08-16 23:00:27 +02:00
Ludovic Courtès
81c3dc3224
maint: Switch to Guile-JSON 3.x.
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on
until now: it maps JSON dictionaries to alists (instead of hash tables),
and JSON arrays to vectors (instead of lists).  This commit is about
adjusting all the existing code to this new mapping.

* m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro.
* configure.ac: Use it.
* doc/guix.texi (Requirements): Mention the Guile-JSON version.
* guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3.
* guix/import/cpan.scm (string->license): Expect vectors instead of
lists.
(module->dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector->list'
for DEPS.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/json.scm (json-fetch-alist): Remove.
* guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of
'json-fetch-alist'.
(latest-source-release, latest-wheel-release): Call 'vector->list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector->list'.
* guix/import/utils.scm (hash-table->alist): Remove.
(alist->package): Pass 'vector->list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table->alist'.
* guix/swh.scm (define-json-reader): Expect pair? or null? instead of
hash-table?.
[extract-field]: Use 'assoc-ref' instead of 'hash-ref'.
(json->branches): Use 'map' instead of 'hash-map->list'.
(json->checksums): Likewise.
(json->directory-entries, origin-visits): Call 'vector->list' on the
result of 'json->scm'.
* tests/import-utils.scm ("alist->package with dependencies"): New test.
* gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3.
* gnu/installer.scm (installer-program)[installer-builder]: Likewise.
* gnu/installer/locale.scm (iso639->iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector->list'.
(iso3166->iso3166-territories): Likewise.
* gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3.
* guix/docker.scm (manifest, config): Adjust for Guile-JSON 3.
* guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3.
* guix/import/github.scm (fetch-releases-or-tags): Update docstring.
(latest-released-version): Use 'assoc-ref' instead of 'hash-ref'.  Pass
the result of 'fetch-releases-or-tags' to 'vector->list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
2019-07-25 00:16:41 +02:00
Ludovic Courtès
bacfec8611
linux-container: Add 'eval/container'.
* gnu/system/linux-container.scm (eval/container): New procedure.
* tests/containers.scm ("eval/container, exit status")
("eval/container, writable user mapping"): New tests.
2019-07-19 11:53:47 +02:00
Ludovic Courtès
b41c7beb0b
file-systems: Use 'no-atime' for %IMMUTABLE-STORE.
* gnu/system/file-systems.scm (%immutable-store): Add 'no-atime'.
2019-07-19 11:53:47 +02:00
Tobias Geerinckx-Rice
3a8bfebed9
etc: Remove hydra.gnu.org.pub key.
* etc/substitutes/hydra.gnu.org.pub: Delete file.
* guix/self.scm (miscellaneous-files): Don't install it.
* Makefile.am (dist_pkgdata_DATA): Remove it.
* gnu/services/base.scm (%default-authorized-guix-keys): Likewise.
(hydra-key-authorization): Rename to…
(substitute-key-authorization): …this.  Adjust only call site.
2019-06-29 14:27:22 +02:00
Mathieu Othacehe
fdbf4447bc
linux-initrd: Fix cross compilation.
* gnu/system/linux-initrd.scm (default-initrd-modules): Check system name
against %current-target-system first in case we are cross-compiling.
2019-06-25 21:38:42 +02:00
Arun Isaac
b84c4cda04
linux-container: Remove networking service when network is shared with host.
* gnu/system/linux-container.scm (dummy-networking-service-type): New
variable.
(containerized-operating-system): If network is shared with host, replace
static-networking-service-type with dummy-networking-service-type.
2019-06-19 00:19:47 +05:30
Ludovic Courtès
ed504cafa2
vm: 'system-docker-image' builds in a UTF-8 locale.
Fixes <https://bugs.gnu.org/36215>.
Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>.

This is a followup to 9c941364bf.

* gnu/system/vm.scm (system-docker-image)[build]: Set GUIX_LOCPATH and
call 'setlocale'.
2019-06-17 12:36:13 +02:00
Ludovic Courtès
15ec93a783
Add (gnu build locale).
* gnu/build/locale.scm: New file.
* gnu/local.mk (MODULES_NOT_COMPILED): Add it.
* gnu/installer/locale.scm (normalize-codeset): Remove.
* gnu/system/locale.scm (localedef-command): Remove.
(single-locale-directory): Use (gnu build locale).
(glibc-supported-locales)[build]: Likewise, and remove
'read-supported-locales'.
2019-06-07 21:50:18 +02:00
Arun Isaac
d2928fa63f
linux-container: Check if nscd run directory exists when container is run.
* gnu/system/linux-container.scm (containerized-operating-system):
(container-script): Check for existence of the host nscd run directory in the
container script. This check should be run when the container is started, not
when the container script is created.
[network-mappings]: Delete variable.
[nscd-run-directory, nscd-mapping]: New variables.
2019-05-25 11:06:22 +05:30
Ludovic Courtès
99f47b53f7
Merge branch 'version-1.0.1' 2019-05-20 11:48:57 +02:00
Danny Milosavljevic
1d86b05618
vm: Create installation media with MBR and HFS only, no GPT.
* gnu/build/vm.scm (make-iso9660-image): Accept XORRISO,
GRUB-MKRESCUE-ENVIRONMENT.
* gnu/system/vm.scm (iso9660-image): Pass XORRISO; accept
GRUB-MKRESCUE-ENVIRONMENT.
(system-disk-image): Pass GRUB-MKRESCUE-ENVIRONMENT.
* gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch: New file.
* gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/cdrom.scm (xorriso)[source]: Add patches.
[arguments]<#:phases>[install-frontends]:
Add phase.
2019-05-18 18:35:37 +02:00
Ludovic Courtès
9c64080dce
vm-image: Remove ModemManager.
This is a followup to 36f5d78d4a.

* gnu/system/examples/vm-image.tmpl (services): Remove
MODEM-MANAGER-SERVICE-TYPE.
2019-05-16 14:42:40 +02:00
Ludovic Courtès
fc0680929d
vm-image: Remove 'network-manager-applet' from system profile.
This is a followup to 05d907ac6f.

* gnu/system/examples/vm-image.tmpl (services): Remove
'network-manager-applet'.
2019-05-16 14:37:23 +02:00
Ludovic Courtès
247649d42e
vm: 'system-docker-image' provides an entry point.
This simplifies use of images created with 'guix system docker-image'.

* gnu/system/vm.scm (system-docker-image)[boot-program]: New variable.
[os]: Add it to the GC roots.
[build]: Pass #:entry-point to 'build-docker-image'.
* gnu/tests/docker.scm (run-docker-system-test): New procedure.
(%test-docker-system): New variable.
* doc/guix.texi (Invoking guix system): Remove GUIX_NEW_SYSTEM hack and
'--entrypoint' from the example.  Mention 'docker create', 'docker
start', and 'docker exec'.
2019-05-15 16:36:21 +02:00
Ludovic Courtès
3f9bed04f0
linux-container: Compute essential services for THIS-OPERATING-SYSTEM.
Previously, the 'essential-services' would correspond to the initial,
non-containerized OS.  Thus, all the file systems removed in
'container-essential-services' would actually still be there because the
essential services would be computed on the non-containerized OS.

This is a followup to 69cae3d335.

* gnu/system/linux-container.scm (container-essential-services): Call
'operating-system-default-essential-services' to get the baseline
services.
(containerized-operating-system): Pass THIS-OPERATING-SYSTEM, not OS, to
'container-essential-services'.
Add a dummy root file system to 'file-systems'.
(container-script)[mountable-file-system?]: New procedure.
Use it.
2019-05-15 16:36:21 +02:00
Ludovic Courtès
6edd5c546c
linux-container: Do not add %CONTAINER-FILE-SYSTEMS to Docker image OSes.
Previously, 'guix system docker-image' would end up providing an OS that
would try to mount all of %CONTAINER-FILE-SYSTEMS as well as /gnu/store,
which is bound to fail in unprivileged Docker.

This patch makes it so that 'guix system container' still gets those
file systems, but 'guix system docker-image' doesn't.

* gnu/system/linux-container.scm (containerized-operating-system): Add
 #:extra-file-systems parameter and honor it.  Do not include
 %STORE-MAPPING and SHARED-NETWORK-FILE-MAPPINGS.
(container-script): Add %STORE-MAPPING and optionally NETWORK-MAPPINGS
to MAPPINGS and pass #:extra-file-systems.
2019-05-15 16:36:21 +02:00
Maxim Cournoyer
d03de6be0a
vm: Auto-detect if inputs should be registered.
The default value of the argument REGISTER-CLOSURE? of the ISO9660-IMAGE,
QEMU-IMAGE and SYSTEM-DOCKER-IMAGE procedures can be computed automatically,
since the operating-system definition is available in its context.  When the
operating-system definition does not contain the GUIX-SERVICE-TYPE, do not
register the closure in the database of Guix, as it takes time and doesn't
serve a purpose.

* gnu/system/vm.scm (has-guix-service-type): Add predicate.
(iso9660-image)[register-closures?]: Use it to compute the argument's default
value.
(qemu-image)[register-closures?]: Likewise, and update docstring.
(system-docker-image)[register-closures?]: Likewise.
(system-disk-image): Do not explicit a value for the REGISTER-CLOSURES?
argument of the ISO9660-IMAGE and QEMU-IMAGE procedure calls, so that its
default value is used instead.
* guix/scripts/system.scm (system-derivation-for-action): Do not explicit a
value for the REGISTER-CLOSURES? argument of the SYSTEM-DOCKER-IMAGE
procedure call, so that its default value is used instead.
2019-05-13 22:59:09 -04:00
Ludovic Courtès
1be065c478
locale: Add 'glibc-supported-locales'.
* gnu/system/locale.scm (glibc-supported-locales): New procedure.
2019-05-13 23:46:08 +02:00
Arun Isaac
b33454ae0b
linux-container: Support container network sharing.
* gnu/system/linux-container.scm (container-essential-services): If network is
to be shared with the host, remove network configuration files from etc
service.
(containerized-operating-system): If network is to be shared with the host,
remove nscd service and map host's /var/run/nscd if it exists.
(container-script): If network is to be shared with the host, do not create
network namespace.
* guix/scripts/system.scm (system-derivation-for-action): Add
#:container-shared-network? argument.
(perform-action): Add #:container-shared-network? argument.
(show-help): Add "-N, --network" help information.
(%options): Add network option.
(process-action): Call perform-action with #container-shared-network? argument.
* doc/guix.texi (Invoking guix system): Document the "-N, --network" option.

Co-authored-by: Christopher Baines <mail@cbaines.net>
2019-05-14 02:54:58 +05:30
Ludovic Courtès
7059cfc823
install: Add node name in Russian.
* gnu/system/install.scm (%installation-node-names): Add "ru".
2019-05-13 10:50:27 +02:00
Ludovic Courtès
76ae10a1f4
linux-container: Improve filtering of unnecessary file systems.
* gnu/system/linux-container.scm (containerized-operating-system)[user-file-systems]:
Add trailing slash for the "/dev/" and "/sys/" prefixes.
2019-05-10 23:29:18 +02:00
Ludovic Courtès
af55ca481d
system: pam: Add #:login-uid? parameter to 'unix-pam-service'.
* gnu/system/pam.scm (unix-pam-service): Add #:login-uid? parameter.  In
then 'session' field, add "pam_loginuid.so" as required when LOGIN-UID?
is true.
2019-05-09 12:11:36 +02:00
Ludovic Courtès
6c5790a2fa
uuid: 'fat-uuid->string' preserves leading zeros.
Fixes <https://bugs.gnu.org/35582>.
Reported by sirgazil <sirgazil@zoho.com>.

Previously, leading zeros would be removed, leading to an "invalid"
UUID:

  (uuid->string (uuid "00CA-050E" 'fat32))
  ⇒ "CA-50E"
  (string->uuid "CA-50E" 'fat32)
  ⇒ #f

* gnu/system/uuid.scm (fat-uuid->string): Pad digits with zeros.
* tests/uuid.scm ("uuid, FAT32, leading zeros preserved"): New test.
2019-05-07 12:18:44 +02:00
Ludovic Courtès
9c941364bf
vm: Build ISOs and VM images in a UTF-8 environment.
Fixes a bug whereby building an image containing non-ASCII file names
would fail due to improper decoding of file names.

* gnu/system/vm.scm (iso9660-image, qemu-image): Set GUIX_LOCPATH and
call 'setlocale' in the build environment.
2019-05-01 21:11:22 +02:00
Ludovic Courtès
4c13ccbf39
vm-image: Add 'label' field.
* gnu/system/examples/vm-image.tmpl (label): New field.
2019-05-01 09:33:54 +02:00
Ludovic Courtès
a4ae05fb8b
vm-image: Add 'nss-certs' to the global package set.
* gnu/system/examples/vm-image.tmpl (packages): Add NSS-CERTS.
2019-04-28 22:57:06 +02:00
Ludovic Courtès
6e0521eeed
vm-image: Allow for password-less sudo.
* gnu/system/examples/vm-image.tmpl (sudoers-file): New field.
2019-04-27 15:08:18 +02:00
Ludovic Courtès
ff587e0fc0
vm-image: Mention 'info guix' in the MOTD.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Mention 'info guix'.
2019-04-27 15:08:18 +02:00
Ludovic Courtès
5df29aad3b
vm-image: Add a font to the global profile.
* gnu/system/examples/vm-image.tmpl (packages): Add FONT-BITSTREAM-VERA,
for use by xfce-terminal, IceCat, etc.
2019-04-27 15:08:17 +02:00
Ludovic Courtès
ea2acfe98a
doc: Update bit about SSH in the VM.
* doc/guix.texi (Running Guix in a VM): Remove mentions of 'lsh-server';
mention 'openssh-service-type' and add a cross-reference.
* gnu/system/examples/vm-image.tmpl (services): Add a commented-out line
for 'openssh-service-type'.
2019-04-27 15:08:17 +02:00
Ludovic Courtès
d7b05620a9
vm-image: Remove NetworkManager & co. and add the DHCP client.
* gnu/system/examples/vm-image.tmpl (services): Remove wpa-supplicant,
cups-pk-helper, and NetworkManager.  Add DHCP-CLIENT-SERVICE-TYPE.
2019-04-26 18:24:55 +02:00
Ludovic Courtès
1ac6c33cae
vm-image: Use the actual file name of the current file.
* gnu/system/examples/vm-image.tmpl (this-file): Use 'basename' and
'current-source-location'.
2019-04-26 16:47:11 +02:00
Ludovic Courtès
538b99f31f
system: Provide a new VM image configuration.
* gnu/system/examples/vm-image.tmpl: Rewrite.
* doc/guix.texi (Running Guix in a VM): Adjust accordingly.
2019-04-26 14:19:36 +02:00
Ludovic Courtès
5be7aecd14
vm: 'system-disk-image' no longer requires the OS to define the "/" file system.
Previously 'guix system disk-image' would fail if the OS didn't define a
"/" file system, even though it actually overrides that file system.

* gnu/system/vm.scm (system-disk-image)[root-uuid]: Turn into a
procedure.
Call 'root-uuid' on a variant of OS with a "/" file system and inherit
from that.
2019-04-25 00:45:35 +02:00
Ludovic Courtès
55111549e8
install: Add node name in Castellano.
* gnu/system/install.scm (%installation-node-names): Add "es".
2019-04-25 00:45:34 +02:00
Ludovic Courtès
86b8869fff
linux-container: Remove '%containerized-shepherd-service' hack.
This hack worked around a defect in the Shepherd 0.5.0 and is no longer
needed.

* gnu/services/shepherd.scm (%containerized-shepherd-service): Remove.
* gnu/system/linux-container.scm (container-essential-services): Don't
use it.
2019-04-23 16:38:12 +02:00
Ludovic Courtès
051b279fd0
services: account: Make 'user-homes' a one-shot service.
* gnu/system/shadow.scm (account-shepherd-service): Add 'one-shot?'
field.  Return #t from 'start'.
2019-04-23 16:38:12 +02:00
Ludovic Courtès
519177ad41
install: Pass "quiet" to the kernel.
This is a followup to 5582aa8e31.

* gnu/system/install.scm (installation-os)[kernel-arguments]: Add "quiet".
2019-04-23 00:40:50 +02:00
Ludovic Courtès
7859191210
install: Pass "modprobe.blacklist=radeon".
* gnu/system/install.scm (installation-os)[kernel-arguments]: New field.
2019-04-21 00:51:18 +02:00
Ludovic Courtès
0134ebc55b
install: Provide a meaningful label.
* gnu/system/install.scm (installation-os)[label]: New field.
2019-04-15 12:24:14 +02:00
Ludovic Courtès
66ec389580
vm: Do not mount /xchg with "cache=loose".
Fixes <https://bugs.gnu.org/33639>.

* gnu/system/vm.scm (%linux-vm-file-systems): Remove "cache=loose" for /xchg.
(system-docker-image): Remove 'sync' call, now unneeded, and which was
probably insufficient.
2019-04-14 17:42:08 +02:00
Ludovic Courtès
13fd0a3087
install: Use a font with more glyphs on tty2.
* gnu/system/install.scm (%installation-services): For
'console-font-service-type', use LatGrkCyr-8x16 on tty2.
2019-04-12 17:56:23 +02:00
Ludovic Courtès
c7dc604253
installer: Choosing a locale opens the translated manual on tty2.
Suggested by Florian Pelz.

* gnu/system/install.scm (%installation-node-names): New variable.
(log-to-info): Expect the chosen locale as an argument.  Compute the
language, Info file name, and node name.  Install the locale.
(documentation-shepherd-service): Add 'locale' parameter to the 'start'
action and honor it.  Set GUIX_LOCPATH and TERM as environment variables
for the process.
* gnu/installer.scm (apply-locale): Use (gnu services herd).  Call
'stop-service' and 'start-service' with the chosen locale.
2019-04-12 17:56:23 +02:00
Ludovic Courtès
126d4c12ce
install: Add standalone documentation service.
* gnu/system/install.scm (log-to-info): Add 'tty' and 'user'
parameters.  Open the tty and change UIDs/GIDs.
(documentation-shepherd-service): New procedure.
(%documentation-users, documentation-service-type): New variables.
(%installation-services): Use it instead of 'mingetty-service'.
2019-04-12 17:56:23 +02:00
Ludovic Courtès
5c32857f91
doc: Adjust desktop instructions for GDM.
* gnu/system/examples/desktop.tmpl: Adjust comment that referred to SLiM.
2019-04-10 12:40:58 +02:00
Ludovic Courtès
5a663d87eb
install: Tweak motd.
* gnu/system/install.scm (%installation-services): Tweak motd.
2019-04-07 22:23:51 +02:00
Ludovic Courtès
6fb6dd13b5
install: Remove "GuixSD".
* gnu/system/install.scm (%installation-services): Remove "Guix System
Distribution" from motd.
2019-04-07 22:23:51 +02:00
Ludovic Courtès
305a732a0a
services: xorg: Add 'set-xorg-configuration'.
* gnu/services/xorg.scm (gdm-service-type)[compose, extend]: New fields.
(set-xorg-configuration): New procedure.
* doc/guix.texi (Keyboard Layout): Use it.
(X Window): Document it.
* gnu/system/examples/desktop.tmpl: Add 'keyboard-layout' fields.
2019-04-05 15:39:35 +02:00
Timothy Sample
df2a96167f
gnu: Add example system configuration for asus-c201.
* gnu/system/examples/asus-c201.tmpl: New file.
* Makefile.am (EXAMPLES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-04-03 18:21:43 +02:00
Ludovic Courtès
971e6560eb
system: Fix typo in desktop example.
The typo was introduced in 391e0d65d7.

* gnu/system/examples/desktop.tmpl: Use XFCE-DESKTOP-SERVICE-TYPE, not
XFCE-DESKTOP-SERVICE.
2019-03-28 23:06:59 +01:00
Ludovic Courtès
45c0d1d790
vm: Ask QEMU for more RAM in the VM that makes ISO9660 images.
* gnu/system/vm.scm (iso9660-image): Pass #:memory-size to
'expression->derivation-in-linux-vm'.
2019-03-27 11:54:06 +01:00
Ludovic Courtès
391e0d65d7
services: Deprecate 'xfce-desktop-service'.
* gnu/services/desktop.scm (xfce-desktop-service-type)[default-value]
[description]: New fields.
(xfce-desktop-service): Deprecate.
* gnu/system/examples/desktop.tmpl: Use the (service …) form.
* gnu/installer/services.scm (%desktop-environments): Add TODO comment.
* doc/guix.texi (Desktop Services): Adjust accordingly, and fix spelling
of "Xfce" throughout.
2019-03-27 11:54:06 +01:00
Ludovic Courtès
ee05cc7fe3
services: Deprecate 'gnome-desktop-service'.
* gnu/services/desktop.scm (gnome-desktop-service-type)[default-value]:
New field.
(gnome-desktop-service): Deprecate.
* gnu/installer/services.scm (%desktop-environments): Use the (service …)
form for GNOME.
* gnu/system/examples/desktop.tmpl: Likewise.
* doc/guix.texi (Desktop Services): Adjust accordingly.
2019-03-27 11:54:06 +01:00
Ludovic Courtès
69cae3d335
system: Add 'essential-services' field to <operating-system>.
* gnu/system.scm (<operating-system>)[essential-services]: New field.
(operating-system-directory-base-entries): Remove #:container? keyword
and keep only the not-container branch.
(essential-services): Likewise.
(operating-system-services): Likewise, and call
'operating-system-essential-services' instead of 'essential-services'.
(operating-system-activation-script): Remove #:container?.
(operating-system-boot-script): Likewise.
(operating-system-derivation): Likewise.
* gnu/system/linux-container.scm (container-essential-services): New procedure.
(containerized-operating-system): Use it and set the
'essential-services' field.
(container-script): Remove call to 'operating-system-derivation'.
* gnu/system/vm.scm (system-docker-image): Likewise.
* doc/guix.texi (operating-system Reference): Document 'essential-services'.
2019-03-25 23:37:06 +01:00
Ludovic Courtès
cf848cc0a1
accounts: Add default value for the 'home-directory' field of <user-account>.
* gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as
thunked and add a default value.
(default-home-directory): New procedure.
* doc/guix.texi (User Accounts): Remove 'home-directory' from example.
* gnu/system/examples/bare-bones.tmpl: Likewise.
* gnu/system/examples/beaglebone-black.tmpl: Likewise.
* gnu/system/examples/desktop.tmpl: Likewise.
* gnu/system/examples/docker-image.tmpl: Likewise.
* gnu/system/examples/lightweight-desktop.tmpl: Likewise.
* gnu/system/install.scm (installation-os): Likewise.
* gnu/tests.scm (%simple-os): Likewise.
* gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda):
(%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise.
* tests/accounts.scm ("allocate-passwd")
("allocate-passwd with previous state"): Likewise.
2019-03-25 23:37:06 +01:00
Ludovic Courtès
ae7a316b9d
system: Initialize console keyboard layout in the initrd.
Partially fixes <https://bugs.gnu.org/25453>.

* gnu/system.scm (<operating-system>)[keyboard-layout]: New field.
(operating-system-initrd-file): Pass #:keyboard-layout to MAKE-INITRD.
* gnu/system/linux-initrd.scm (raw-initrd): Add #:keyboard-layout.
Pass #:keymap-file to 'boot-system'.
(base-initrd): Add #:keyboard-layout.
[helper-packages]: Add LOADKEYS-STATIC when KEYBOARD-LAYOUT is true.
Pass #:keyboard-layout to 'raw-initrd'.
* gnu/build/linux-boot.scm (boot-system): Add #:keymap-file and honor
it.
* doc/guix.texi (operating-system Reference): Document the
'keyboard-layout' field.
(Initial RAM Disk): Update 'raw-initrd' and 'base-initrd' documentation.
2019-03-24 23:06:12 +01:00
Ludovic Courtès
132823c2ac
vm: 'virtualized-operating-system' inherits from the user's bootloader config.
* gnu/system/vm.scm (virtualized-operating-system): Inherit from the
bootloader of OS.
2019-03-24 23:06:11 +01:00
Ludovic Courtès
db1e2522f6
Add (gnu system keyboard).
* gnu/system/keyboard.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu.scm (%public-modules): Add it.
2019-03-24 23:06:11 +01:00
Ludovic Courtès
0dc7d298a3
vm: 'system-docker-image' calls 'sync' before rebooting.
Previously we could end up silently building truncated tarballs.

* gnu/system/vm.scm (system-docker-image)[build]: Add call to 'sync'.
2019-03-22 22:49:35 +01:00
Ludovic Courtès
e6c46ec42e
vm: 'expression->derivation-in-linux-vm' leads to a kernel panic upon failure.
Partially fixes <https://bugs.gnu.org/34276>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Call
'exit' when USER-BUILDER exits with a non-zero code.
2019-03-17 16:30:00 +01:00
Ludovic Courtès
b94c80ff5d
linux-container: 'containerized-operating-system' removes "useless" services.
Fixes <https://bugs.gnu.org/34211>.
Reported by Efraim Flashner <efraim@flashner.co.il>.

* gnu/system/linux-container.scm (containerized-operating-system)
[useless-services]: New variable.
Add 'services' field.
2019-03-13 23:12:44 +01:00
Ludovic Courtès
4cd386afae
linux-modules: Factorize 'missing-modules'.
* gnu/build/linux-modules.scm (missing-modules): New procedure.
* gnu/system/mapped-devices.scm (check-device-initrd-modules): Use it.
2019-03-13 23:12:43 +01:00
Ludovic Courtès
59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Ludovic Courtès
0ae735bcc8
activation: Build account databases with (gnu build accounts).
* gnu/build/activation.scm (enumerate, current-users, current-groups)
(add-group, add-user, modify-user, ensure-user): Remove.
(activate-users+groups)[touch, activate-user]: Remove.
[make-home-directory]: New procedure.
Rewrite in terms of 'user+group-databases', 'write-group', etc.
* gnu/build/install.scm (directives): Remove "/root".
* gnu/system/shadow.scm (account-activation): Remove (setenv "PATH" ...)
expression, which is now unneeded.
2019-03-07 20:05:09 +01:00
Ludovic Courtès
6061d01512
activation: Operate on <user-account> and <user-group> records.
* gnu/system/accounts.scm (sexp->user-group, sexp->user-account): New
procedures.
* gnu/system/shadow.scm (account-activation): Call them in the arguments
to 'activate-users+groups'.
(account-shepherd-service): Likewise.
* gnu/build/activation.scm (activate-users+groups): Expect a list of
<user-account> and a list of <user-group>.  Replace uses of 'match' on
tuples with calls to record accessors.
(activate-user-home): Likewise.
2019-03-07 20:05:09 +01:00
Ludovic Courtès
f6f67b87c0
system: Add (gnu system accounts).
The (gnu system accounts) module is meant to be used both on the build-
and on the host-side.

* gnu/system/shadow.scm <top level>: Call 'default-shell'.
(<user-account>, <user-group>): Move to...
* gnu/system/accounts.scm: ... here.  New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add system/accounts.scm.
2019-03-07 20:04:02 +01:00
Ludovic Courtès
910d0121a8
pack, vm: Fix incorrect use of 'package-transitive-propagated-inputs'.
In practice the error was not triggered because
'package-transitive-propagated-inputs' currently returns the empty list
for these two packages.

* guix/scripts/pack.scm (gcrypt-sqlite3&co): Remove labels from the
result.
* gnu/system/vm.scm (gcrypt-sqlite3&co): Likewise.
2019-02-11 23:23:28 +01:00
Pierre Neidhardt
9ce09a7698
install: Use (gnu package certs) module for the nss-certs package.
* gnu/system/install.scm: Use (gnu package certs).
2019-02-10 15:30:35 +01:00
Pierre Neidhardt
0b767e3d5b
install: Add nss-certs to the image.
* gnu/system/install.scm (installation-os)[packages]: Add nss-certs.
2019-02-10 15:17:37 +01:00
Pierre Neidhardt
907dd32720
gnu: Replace all cons* with beginner-friendly (append (list ...)).
* gnu/system/examples/bare-bones.tmpl (services): Do it.
* gnu/system/examples/beaglebone.tmpl (packages): Do it.
(services): Do it.
* gnu/system/examples/desktop.tmpl (packages): Do it.
(services): Do it.
* gnu/system/examples/lightweight-desktop.tmpl (file-systems): Do it.
(packages): Do it.
* gnu/system/examples/vm-image.tmpl (packages): Do it.
2019-01-23 18:01:16 +01:00
Pierre Neidhardt
ece2fd1218
gnu: Fix missing EFI entry in "desktop" example.
* gnu/system/examples/desktop.tmpl (file-systems): Add
EFI file-system.
2019-01-23 18:01:16 +01:00
Ludovic Courtès
323f250da7
vm: Remove unnecessary import.
* gnu/system/vm.scm: Remove unnecessary (guix scripts pack) import.
2019-01-22 23:04:05 +01:00
Efraim Flashner
7194745a16
services: Use guix-service-type.
* gnu/services/base.scm (%base-services): Replace guix-service with
guix-service-type.
* gnu/system/examples/docker-image.tmpl (services): Same.
2019-01-20 16:11:00 +02:00
Mathieu Othacehe
a49d633c0c
installer: Move everything to the build side.
* gnu/installer.scm: Rename to ...
* gnu/installer/record.scm: ... this.
* gnu/installer/build-installer.scm: Move everything to the build side and
rename to gnu/installer.scm.
* gnu/installer/newt.scm: Remove all the gexps and add depencies to newt
modules as this code will only be used on the build side by now.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it,
(dist_installer_DATA): New rule to install installer's aux-files.
* gnu/system/install.scm (%installation-services): Use only
'installer-program' from (gnu installer). The installer is now choosen on the
build side.
* guix/self.scm (*system-modules*): Restore previous behaviour and add all
installer files to #:extra-files field of the scheme-node.
* po/guix/POTFILES.in: Adapt it.
2019-01-17 14:04:21 +01:00
Mathieu Othacehe
a79617468e
gnu: installer: Launch the installer as kmscon login-program.
Source /etc/environment just before starting the installer. The login program
is supposed to load the environment variables of this file through PAM, but as
we replace it by the installer, they are no longer available. This is mostly
useful for the LANG environment variable.

* gnu/installer/build-installer.scm (installer-program-launcher): New exported
procedure.
* gnu/system/install.scm (%installation-services): Restore most of the origin
code. kmscon is only started on TTY1, and the graphical installer is the
login-program.
2019-01-17 14:04:21 +01:00
Mathieu Othacehe
d0f3a672dc
gnu: Add graphical installer support.
* configure.ac: Require that guile-newt is available.
* gnu/installer.scm: New file.
* gnu/installer/aux-files/logo.txt: New file.
* gnu/installer/build-installer.scm: New file.
* gnu/installer/connman.scm: New file.
* gnu/installer/keymap.scm: New file.
* gnu/installer/locale.scm: New file.
* gnu/installer/newt.scm: New file.
* gnu/installer/newt/ethernet.scm: New file.
* gnu/installer/newt/hostname.scm: New file.
* gnu/installer/newt/keymap.scm: New file.
* gnu/installer/newt/locale.scm: New file.
* gnu/installer/newt/menu.scm: New file.
* gnu/installer/newt/network.scm: New file.
* gnu/installer/newt/page.scm: New file.
* gnu/installer/newt/timezone.scm: New file.
* gnu/installer/newt/user.scm: New file.
* gnu/installer/newt/utils.scm: New file.
* gnu/installer/newt/welcome.scm: New file.
* gnu/installer/newt/wifi.scm: New file.
* gnu/installer/steps.scm: New file.
* gnu/installer/timezone.scm: New file.
* gnu/installer/utils.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add previous files.
* gnu/system.scm: Export %root-account.
* gnu/system/install.scm (%installation-services): Use kmscon instead of linux
VT for all tty.
(installation-os)[users]: Add the graphical installer as shell of the root
account.
[packages]: Add font related packages.
* po/guix/POTFILES.in: Add installer files.
2019-01-17 14:04:20 +01:00
Ludovic Courtès
5c215c9e47
install: Avoid deprecated 'gpm-service' procedure.
* gnu/system/install.scm (%installation-services): Use the 'service'
form instead of 'gpm-service'.
2019-01-16 14:07:37 +01:00
Ludovic Courtès
84a2de36a1
services: Deprecate a few more service procedures.
These procedures were already either undocumented (and de facto
deprecated) or documented as deprecated or redundant.

* gnu/services/base.scm (guix-service, guix-publish-service): Mark as
deprecated.
* gnu/services/mcron.scm (mcron-service): Likewise.
* gnu/services/networking.scm (tor-service): Likewise.
* doc/guix.texi (Scheduled Job Execution): Remove 'mcron-service' and
adjust example.
(Networking Services): Remove 'tor-service'.
* gnu/tests/base.scm (%mcron-os): Use 'mcron-service-type' instead of
'mcron-service'.
* gnu/tests/networking.scm (%tor-os): Use 'tor-service-type' instead of
'tor-service'.
* tests/guix-system.sh: Likewise.
2019-01-11 12:14:38 +01:00
Efraim Flashner
3c515b2225
doc: Example vm-image doesn't need firmware.
* gnu/system/examples/vm-image.tmpl (firmware): New field, explicitly
empty list.
2018-12-24 11:14:29 +02:00
Ludovic Courtès
0bc02becca
Remove most references to hydra.gnu.org.
* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org
in comment.
* build-aux/check-available-binaries.scm: Likewise.
* build-aux/check-final-inputs-self-contained.scm: Likewise.
* doc/guix.texi (SUBSTITUTE-SERVER): New variable.
Use it throughout instead of "mirror.hydra.gnu.org".
* doc/contributing.texi (Submitting Patches): Likewise.
* gnu/services/base.scm (hydra-key-authorization)
(guix-activation): Remove mentions of "hydra.gnu.org" in comments and
messages.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
2018-12-04 10:57:56 +01:00
Laura Lazzati
b9914c4794
doc: Fix "desktop" OS config example.
* gnu/system/examples/desktop.tmpl (file-systems): Add
'file-system-label' call in 'device' field.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2018-12-03 14:27:24 +01:00
Ludovic Courtès
0c17f72070
services: openssh: Install OpenSSH in the system profile.
This ensures one can scp to or from the GuixSD machine that uses the
service.

* gnu/services/ssh.scm (openssh-service-type)[extensions]: Add
PROFILE-SERVICE-TYPE extension.
* gnu/system/examples/bare-bones.tmpl <packages>: Remove OPENSSH.
* doc/guix.texi (Using the Configuration System): Adjust accordingly.
2018-11-26 11:10:20 +01:00
Vagrant Cascadian
74e35e8c94
gnu: Add u-boot-pinebook.
* gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch: New file.
* gnu/packages/patches/u-boot-pinebook-syscon-node.patch: New file.
* gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch: New file.
* gnu/packages/patches/u-boot-pinebook-video-bridge.patch: New file.
* gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch: New file.
* gnu/packages/patches/u-boot-pinebook-dts.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/bootloaders.scm (u-boot-pinebook): New exported variable.
* gnu/bootloader/u-boot.scm (u-boot-pinebook-bootloader): New exported
variable.
* gnu/system/install.scm (pinebook-installation-os): New exported variable.
2018-11-22 21:59:05 +01:00
Ludovic Courtès
d422cbb3d6
linux-initrd: 'expression->initrd' returns the complete file name.
Previously 'expression->initrd' would return the directory that contains
the 'initrd' file; now it returns the complete file name for that file.

* gnu/system/linux-initrd.scm (expression->initrd)[builder]: Change
output file name to "initrd.cpio.gz".  Tail-call 'file-append' to return
the complete file name.
* gnu/system.scm (operating-system-initrd-file): Remove 'file-append'
call.
* gnu/build/linux-initrd.scm (write-cpio-archive): Check whether OUTPUT
already has the ".gz" suffix; rename if before invoking GZIP if it does,
and otherwise after.
* gnu/system/vm.scm (expression->derivation-in-linux-vm)[builder]: Do
not append "/initrd" to #$initrd.
2018-11-21 23:26:59 +01:00
Ludovic Courtès
8bff7dc2ad
vm: Remove explicit calls to 'operating-system-derivation'.
* gnu/system/vm.scm (iso9660-image): Change 'os-drv' to 'os' and remove
call to 'operating-system-derivation'.
(system-qemu-image): Likewise.
(system-qemu-image/shared-store): Likewise.
2018-11-18 23:37:45 +01:00
Ludovic Courtès
9782c82217
system: De-monadify 'operating-system-bootcfg'.
* gnu/system.scm (operating-system-bootcfg): Remove 'mlet*' and
'lower-object' call.
* gnu/system/vm.scm (system-disk-image)
(system-qemu-image/shared-store): Adjust accordingly.
* guix/scripts/system.scm (perform-action): Add 'lower-object' call for
BOOTCFG.
2018-11-18 23:37:45 +01:00
Ludovic Courtès
e34ae75dc1
linux-initrd: Return file-like objects instead of monadic values.
This is an incompatible change visible to users via the 'initrd' field
of 'operating-system'.  However, assuming the user's 'initrd' value
tail-calls to 'raw-initrd' or 'base-initrd', the switch to non-monadic
style is invisible.

* gnu/system/linux-initrd.scm (expression->initrd): Use 'computed-file'
instead of 'gexp->derivation'.
(raw-initrd, base-initrd): Adjust docstring to mention non-monadic
return.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Adjust
accordingly.
* gnu/system.scm (operating-system-directory-base-entries)
(operating-system-initrd-file)
(operating-system-boot-parameters): Adjust accordingly.
* doc/guix.texi (operating-system Reference)
(Initial RAM Disk): Update.
2018-11-18 23:37:44 +01:00