Commit Graph

253 Commits

Author SHA1 Message Date
Andy Wingo 96bc651800
gnu: system: Fix computation of boot parameters for LUKS devices.
* gnu/system.scm (read-boot-parameters): Fix store-device computation for root
devices of type "device", like the LUKS partition described in the manual.
From a patch from https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28445#23.

Signed-off-by: Andy Wingo <wingo@igalia.com>
2017-09-20 15:40:32 +02:00
Thomas Danckaert c694520bb1
system: Create "/etc/hostname".
* gnu/system.scm (operating-system-etc-service): Add a plain-file with the
  operating-system-host-name.
2017-09-19 15:39:32 +02:00
Ludovic Courtès c08da2ee37
system: Define 'DICPATH' in /etc/profile.
* gnu/system.scm (operating-system-etc-service) <profile>: Define
'DICPATH'.
2017-09-18 15:44:52 +02:00
Ludovic Courtès 96da5d6296
system: Add gexp compiler for <operating-system>.
* gnu/system.scm (operating-system-compiler): New procedure.
2017-09-12 23:56:33 +02:00
Ludovic Courtès 7940188ebf
system: Fix typo in 'read-boot-parameters'.
Fixes a regression introduced in
commit 075681d350.

* gnu/system.scm (read-boot-parameters): For 'root-device', use
'device-sexp->device', not 'device->sexp'.
2017-09-11 23:00:40 +02:00
Ludovic Courtès 075681d350
system: Serialize the UUID type in the "parameters" file.
* gnu/system.scm (read-boot-parameters)[device->sexp]: New procedure.
Use it for 'root-device' and 'store-device'.
(device->sexp): Serialize the UUID type in addition to its bytevector.
2017-09-11 22:24:47 +02:00
Ludovic Courtès 9b336338cd
system: Introduce a disjoint UUID type.
Conceptually a UUID is just a bytevector.  However, there's software out
there such as GRUB that relies on the string representation of different
UUID types (e.g., the string representation of DCE UUIDs differs from
that of ISO-9660 UUIDs, even if they are actually bytevectors of the
same length).  This new <uuid> record type allows us to preserve
information about the type of UUID so we can eventually convert it to a
string using the right representation.

* gnu/system/uuid.scm (<uuid>): New record type.
(bytevector->uuid): New procedure.
(uuid): Return calls to 'make-uuid'.
(uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?'
argument.
* gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead
of 'bytevector?'.
* gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE
is 'uuid?'.
(read-boot-parameters): Use 'bytevector->uuid' when the
store device is a bytevector.
(read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'.
(device->sexp): New procedure.
(operating-system-boot-parameters-file): Use it for 'root-device' and
'store'.
(operating-system-bootcfg): Remove conditional in definition of
'root-device'.
* gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on
DEVICE and take its bytevector.
* gnu/system/mapped-devices.scm (open-luks-device): Likewise.
* gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the
 #:volume-uuid argument.
2017-09-11 22:24:46 +02:00
Marius Bakke aa9780daf9
Merge branch 'master' into core-updates 2017-08-01 23:42:28 +02:00
Danny Milosavljevic 1975c754f4
bootloader: Use <menu-entry> for the bootloader side.
* gnu/bootloader.scm (menu-entry-device-mount-point): New variable.  Export it.
(<menu-entry>: New field "device".
* gnu/bootloader/grub.scm (grub-confgiuration-file): Handle <menu-entry>
entries.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Handle
<menu-entry> entries.
* gnu/system.scm (menu->entry->boot-parameters): Delete variable.
(boot-parameters->menu-entry): New variable.  Export it.
(operating-system-bootcfg): Make OLD-ENTRIES a list of <menu-entry>.
* guix/script/system.scm (reinstall-bootloader): Fix bootcfg usage.
(perform-action): Fix bootcfg usage.
2017-07-28 21:56:18 +02:00
Leo Famulari e081e2dd0b
Merge branch 'master' into core-updates 2017-07-23 19:06:49 -04:00
Efraim Flashner fd900d68a5
gnu: Add support for aarch64's compiled kernel.
* gnu/packages/linux.scm (linux-libre)[arguments]: Add to the regex to
find and install the aarch64-linux kernel.
* gnu/system.scm (system-linux-image-file-name): Add entry for aarch64.
2017-07-23 23:33:18 +03:00
Leo Famulari 6c1a317e29
Merge branch 'master' into core-updates 2017-07-23 03:42:12 -04:00
宋文武 852241eb7d
system: Add 'newuidmap' and 'newgidmap' to %SETUID-PROGRAMS.
* gnu/system.scm (%setuid-programs): Add 'newuidmap' and 'newgidmap'.
2017-07-18 22:16:08 +08:00
Ludovic Courtès b19a49d015
locale: Demonadify the locale creation API.
* gnu/system/locale.scm (single-locale-directory): Use 'computed-file'
instead of 'gexp->derivation'.
(locale-directory): Adjust accordingly and do the same.
* gnu/system.scm (operating-system-directory-base-entries): Adjust
accordingly.
2017-07-17 23:41:36 +02:00
Ludovic Courtès 86f2309263
system: Avoid collision between GMP variants in the global profile.
* gnu/system.scm (%base-packages): Move GUILE-2.2 out of the list passed
to 'canonical-package'.
2017-06-30 22:10:07 +02:00
Ludovic Courtès e0556f7695
Merge branch 'master' into core-updates 2017-06-30 11:41:57 +02:00
Ludovic Courtès 87941d1df4
system: Use "@" to refer to the 'shadow' package.
Reported by Mark H Weaver
at <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00349.html>.

* gnu/system.scm (%base-packages): Use '@' for shadow.  This fixes an
error on Guile 2.0 where 'shadow' alone resolves to the (gnu system
shadow) module.
2017-06-30 11:27:30 +02:00
Leo Famulari 1024c8119c
Merge branch 'master' into core-updates 2017-06-29 18:02:17 -04:00
Ludovic Courtès c0f5eee4b2
system: Add 'shadow' to %BASE-PACKAGES.
Suggested by Göktuğ Kayaalp <self@gkayaalp.com>.

* gnu/system.scm (%base-packages): Add SHADOW.
2017-06-29 16:28:28 +02:00
Marius Bakke 5bace4c8ad
Merge branch 'master' into core-updates
Conflicts:
* gnu/packages/tls.scm (gnutls): Incorporated 3.5.13 graft (88e2511e21).
2017-06-11 02:07:06 +02:00
Mathieu Othacehe fcf08b3261
bootloader: Fix rebase error on f96752e commit.
* gnu/system.scm (menu-entry->boot-parameters): Rename boot-name to
  bootloader-name.
2017-06-10 18:44:35 +02:00
Mathieu Othacehe f96752e378
bootloader: Rename boot-name to bootloader-name.
* gnu/system (<boot-parameters>)[boot-name]: Rename field to...
[bootloader-name]: ... this.  Adjust users.
* gnu/scripts/system.scm: Adjust accordingly.
2017-06-10 18:32:11 +02:00
Marius Bakke ea45e2c500
Merge branch 'master' into core-updates 2017-06-10 02:57:50 +02:00
Mathieu Othacehe 8b22107e5d
bootloader: Use menu-entry to define custom bootloader entries.
* gnu/bootloader.scm (<menu-entry>): New variable. Export associated getters,
This record is extracted from grub module.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Use
  menu-entry->boot-parameters to convert menu-entry records to
  boot-parameters.
* gnu/bootloader/grub.scm (<menu-entry>): Remove.
(boot-parameters->menu-entry): Remove.
(grub-configuration-file): Use boot-parameters to create configuration
entries.
* gnu/system.scm (menu-entry->boot-parameters): New exported procedure.
2017-06-08 16:29:29 +02:00
Marius Bakke ccd7daae4c
gnu: Remove workaround for <https://bugs.gnu.org/26238>.
* gnu/packages/base.scm (coreutils-8.27): Remove variable.
* gnu/system.scm (%base-packages): Change back to COREUTILS.
2017-05-28 19:08:54 +02:00
Ludovic Courtès b55dd31660
system: Use Guile 2.2 rather than 2.0 in %BASE-PACKAGES.
* gnu/system.scm (%base-packages): Change GUILE-2.0 to GUILE-2.2.
2017-05-19 23:38:52 +02:00
Mathieu Othacehe bcaf67c44f
bootloader: Add bootloader name to boot-parameters record.
* gnu/system.scm (<boot-parameters>)[name]: New field.
(boot-parameters-boot-name): Ditto.
(operating-system-boot-parameters-file): Add new field.
(operating-system-boot-parameters): Ditto.
(read-boot-parameters): Ditto.
2017-05-16 14:41:01 +02:00
Mathieu Othacehe b09a8da4a2
bootloader: Add extlinux support.
* gnu/bootloader.scm: New file.
* gnu/bootloader/extlinux.scm: New file.
* gnu/bootloader/grub.scm: New file.
* gnu/local.mk: Build new files.
* gnu/system.scm: Adapt to new bootloader api.
* gnu/scripts/system.scm: Adapt to new bootloader api.
* gnu.scm: Remove (gnu system grub) and replace by (gnu bootloader) and (gnu
bootloader grub) modules.
* gnu/system/grub.scm: Moved content to gnu/bootloader/grub.scm.
* gnu/system/vm: Replace (gnu system grub) module by (gnu bootloader).
* gnu/tests.scm: Ditto.
* gnu/tests/nfs.scm: Ditto.
2017-05-16 14:41:01 +02:00
Alex Kost 4e4e018525
system: Export 'read-boot-parameters'.
This partially reverts commit 9530e73b49.

* gnu/system.scm: Export 'read-boot-parameters' for backward compatibility.
2017-05-13 12:14:28 +03:00
Danny Milosavljevic f000828575
system: Remove circular dependency between (gnu system) and (gnu system grub).
Followup to 087efec496.

* gnu/system.scm: (operating-system-bootcfg): Refer to (gnu system grub)
by module-ref.
2017-05-08 23:00:16 +02:00
Danny Milosavljevic 087efec496
system: Remove circular dependency between (gnu system) and (gnu system grub).
Followup to 8e815c5b69.

* gnu/system.scm: Remove (gnu system grub) import.
(operating-system-bootcfg): Refer to (gnu system grub) within the procedure.
2017-05-08 15:45:37 +02:00
Ludovic Courtès 8e815c5b69
system: Define <boot-parameters> before first use.
Fixes <http://bugs.gnu.org/26791>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/system.scm (<boot-parameters>, read-boot-parameters)
(read-boot-parameters-file): Move before first use of the
'boot-parameters' macro.
2017-05-07 11:30:24 +02:00
Danny Milosavljevic 360874dd1c
system: Clarify that SYSTEM is either a derivation or #f.
* gnu/system.scm (operating-system-boot-parameters):  Clarify that SYSTEM is
either a derivation or #f.
2017-05-05 15:03:48 +02:00
Danny Milosavljevic 370ae085b5
system: Use operating-system-boot-parameters directly.
* gnu/system.scm (operating-system-bootcfg): Use
operating-system-boot-parameters directly.
2017-05-05 15:03:47 +02:00
Danny Milosavljevic 9530e73b49
system: Introduce read-boot-parameters-file.
* gnu/system.scm (read-boot-parameters): Remove export.
(read-boot-parameters-file): New variable. Export it.
* guix/scripts/system.scm (profile-boot-parameters): Use
read-boot-parameters-file.
(profile-grub-entries): Use read-boot-parameters-file.
(reinstall-grub): Use read-boot-parameters-file.
(display-system-generation): Use read-boot-parameters-file.
2017-05-05 15:03:47 +02:00
Danny Milosavljevic 33f0aa8815
system: Introduce operating-system-kernel-arguments and use it.
* gnu/system.scm (bootable-kernel-arguments): New variable.
(operating-system-kernel-arguments):  New variable.
(operating-system-bootcfg): Use operating-system-kernel-arguments.
(operating-system-boot-parameters): Use operating-system-kernel-arguments.
2017-05-05 15:03:47 +02:00
Danny Milosavljevic 40fad1c24c
system: Factorize operating-system-boot-parameters-file.
* gnu/system.scm (operating-system-boot-parameters): New variable.
(operating-system-boot-parameters-file): Modify.
2017-05-05 15:03:46 +02:00
Ludovic Courtès 69daee23af
ui: Rename '_' to 'G_'.
This avoids collisions with '_' when the latter is used as a 'match'
pattern for instance.  See
<https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00464.html>.

* guix/ui.scm: Rename '_' to 'G_'.
* po/guix/Makevars (XGETTEXT_OPTIONS): Adjust accordingly.
* build-aux/compile-all.scm (warnings): Remove 'format'.
* gnu/packages.scm,
gnu/services.scm,
gnu/services/shepherd.scm,
gnu/system.scm,
gnu/system/shadow.scm,
guix/gnupg.scm,
guix/http-client.scm,
guix/import/cpan.scm,
guix/import/elpa.scm,
guix/import/pypi.scm,
guix/nar.scm,
guix/scripts.scm,
guix/scripts/archive.scm,
guix/scripts/authenticate.scm,
guix/scripts/build.scm,
guix/scripts/challenge.scm,
guix/scripts/container.scm,
guix/scripts/container/exec.scm,
guix/scripts/copy.scm,
guix/scripts/download.scm,
guix/scripts/edit.scm,
guix/scripts/environment.scm,
guix/scripts/gc.scm,
guix/scripts/graph.scm,
guix/scripts/hash.scm,
guix/scripts/import.scm,
guix/scripts/import/cpan.scm,
guix/scripts/import/cran.scm,
guix/scripts/import/crate.scm,
guix/scripts/import/elpa.scm,
guix/scripts/import/gem.scm,
guix/scripts/import/gnu.scm,
guix/scripts/import/hackage.scm,
guix/scripts/import/nix.scm,
guix/scripts/import/pypi.scm,
guix/scripts/import/stackage.scm,
guix/scripts/lint.scm,
guix/scripts/offload.scm,
guix/scripts/pack.scm,
guix/scripts/package.scm,
guix/scripts/perform-download.scm,
guix/scripts/publish.scm,
guix/scripts/pull.scm,
guix/scripts/refresh.scm,
guix/scripts/size.scm,
guix/scripts/substitute.scm,
guix/scripts/system.scm,
guix/ssh.scm,
guix/upstream.scm: Use 'G_' instead of '_'.  Most of this change was
obtained by running: "sed -i -e's/(_ "/(G_ "/g' `find -name \*.scm`".
2017-05-03 16:16:17 +02:00
Danny Milosavljevic 71d0420202
system: Rename operating-system-parameters-file to operating-system-boot-parameters-file.
* gnu/system.scm (operating-system-parameters-file): Rename to ...
(operating-system-boot-parameters-file): ... this.
(operating-system-directory-base-entries): Adapt call site.
2017-04-22 20:54:43 +02:00
Danny Milosavljevic af98d25a12
system: Rename operating-system-kernel-arguments to operating-system-user-kernel-arguments.
* gnu/system.scm (operating-system-kernel-arguments): Rename to ...
(operating-system-user-kernel-arguments): ... this.
(<operating-system>): Adapt accordingly.
(operating-system-bootcfg): Adapt accordingly.
(operating-system-parameters-file): Adapt accordingly.
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Adapt
accordingly.
2017-04-22 20:54:31 +02:00
Marius Bakke e162050dfc
gnu: Add workaround for `date` regression in coreutils@8.26.
See <https://bugs.gnu.org/23035> and <https://bugs.gnu.org/26238>.

* gnu/packages/base.scm (coreutils-8.27): New variable.
* gnu/system.scm (%base-packages): Use that instead of COREUTILS.
2017-04-19 22:07:18 +02:00
Ludovic Courtès efe7d19a9e
services: 'service-parameters' becomes 'service-value'.
* gnu/services.scm (<service>)[parameters]: Rename to...
[value]: ... this.
Change calls to 'service-parameters' to 'service-value'.
* gnu/system.scm, gnu/tests/base.scm,
guix/scripts/system.scm, tests/services.scm: Likewise.
* doc/guix.texi (Service Reference): Adjust accordingly.
2017-04-16 00:48:07 +02:00
Danny Milosavljevic 958a1fda9e
system: Make grub use <menu-entry> instead of <boot-parameters> again.
* gnu/system/grub.scm: Remove boot-parameters->menu-entry.
(grub-configuration): Don't use boot-parameters->menu-entry.
* gnu/system.scm (operating-system-bootcfg): Use menu-entry.
* guix/scripts/system.scm (reinstall-grub): Use profile-grub-entries.
(perform-action): Use profile-grub-entries.
2017-04-15 22:02:38 +02:00
Mathieu Othacehe 2e58e05bb6
system: Pass boot-parameters to (gnu system grub).
* gnu/system.scm (operating-system-bootcfg): Pass boot-parameters.
* gnu/system/grub.scm (boot-parameters->menu-entry): New variable.
(grub-configuration-file): Use boot-parameters->menu-entry.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15 16:37:55 +02:00
Mathieu Othacehe 7085ca9690
system: Rename (internal) grub-device to fs->boot-device.
* gnu/system.scm (grub-device): Rename to...
(fs->boot-device): ... this.
(operating-system-grub.cfg): Adapt.
(operating-system-parameters-file): Adapt.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15 14:42:50 +02:00
Mathieu Othacehe c76b3046f6
system: Rename operating-system-grub.cfg to operating-system-bootcfg.
* gnu/system.scm (operating-system-grub.cfg): Rename to...
(operating-system-bootcfg): ... this.
* gnu/system/vm.scm (system-disk-image): Use operating-system-bootcfg.
(system-qemu-image): Use operating-system-bootcfg.
(system-qemu-image/shared-store): Use operating-system-bootcfg.
* guix/scripts/system.scm (perform-action): Use operating-system-bootcfg.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15 14:41:10 +02:00
Mathieu Othacehe c2e9942b8f
system: Rename kernel->grub-label to kernel->boot-label.
* gnu/system.scm (kernel->grub-label): Rename to kernel->boot-label.
(operating-system-grub.cfg): Adapt.
(operating-system-parameters-file): Ditto.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15 12:39:27 +02:00
Ludovic Courtès 856be82323
system: Avoid '_' as a pattern variable in 'match'.
* gnu/system.scm (operating-system-root-file-system): Don't use '_' as a
wildcard in 'match', to cope with literal semantics in 2.2.
2017-03-10 14:48:06 +01:00
David Craven 43fe431cce
vm: Remove hard coded kernel file name.
* gnu/system/vm.scm (system-qemu-image/shared-store-script,
expression->derivation-in-linux-vm): Use operating-system-kernel-file and
system-linux-image-file-name.
* gnu/system.scm (system-linux-image-file-name): Add ARM.
2017-02-28 23:43:35 +01:00
Ludovic Courtès a43aca973e
system: Introduce 'file-systems' Shepherd service.
* gnu/services/base.scm (file-system-shepherd-services): New procedure.
(file-system-service-type): Use it as the SHEPHERD-ROOT-SERVICE-TYPE
extension.
(user-processes-service-type): Change to take a single 'grace-delay'
parameter.
(user-processes-service): Remove 'file-systems' parameter.  Pass
GRACE-DELAY as the only value for the service.
* gnu/system.scm (essential-services): Adjust accordingly.
2017-01-31 23:21:59 +01:00