me
/
guix
Archived
1
0
Fork 0
Commit Graph

966 Commits (9b54d521160f5798faea0fe70e280ce5ec5e6c4c)

Author SHA1 Message Date
Mathieu Othacehe e74baa1245
system: Rename 'disk-image' command 'image'.
* guix/scripts/system.scm (system-derivation-for-action): Rename 'disk-image'
command 'image'. Warn when using the now deprecated 'disk-image' command.
(show-help): Adapt accordingly.
(guix-system): Ditto.
* tests/guix-system.sh: Ditto.
* gnu/system/examples/bare-hurd.tmpl: Ditto.
* doc/guix.texi (Building the Installation Image,
Building the Installation Image for ARM Boards,
Invoking guix pack,
Invoking guix system): Adapt documentation.
2021-01-19 17:16:56 +01:00
Mathieu Othacehe 2f497d94e7
image: Rename "raw" image-type to "efi-raw".
* gnu/system/image.scm (raw-image-type): Rename to "efi-raw-image-type".
* guix/scripts/system.scm (%default-options): Adapt accordingly.
* doc/guix.texi: Ditto.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-17 11:04:25 +01:00
Maxim Cournoyer 01f0707207
Merge branch 'staging' into 'core-updates'.
Conflicts:

	gnu/local.mk
	gnu/packages/cmake.scm
	gnu/packages/curl.scm
	gnu/packages/gl.scm
	gnu/packages/glib.scm
	gnu/packages/guile.scm
	gnu/packages/node.scm
	gnu/packages/openldap.scm
	gnu/packages/package-management.scm
	gnu/packages/python-xyz.scm
	gnu/packages/python.scm
	gnu/packages/tls.scm
	gnu/packages/vpn.scm
	gnu/packages/xorg.scm
2021-01-13 23:45:53 -05:00
Ludovic Courtès 0d22fc8d36
services: shepherd: 'shepherd-service-type' requires documentation.
* gnu/services/shepherd.scm (shepherd-service-type): Require a
'description' form.
* gnu/services/base.scm (root-file-system-service-type)
(rngd-service-type, host-name-service-type):
(virtual-terminal-service-type, console-keymap-service-type)
(syslog-service-type, swap-service-type)
(kmscon-service-type): Add description.
* gnu/services/networking.scm (dhcp-client-service-type): Likewise.
* gnu/system/install.scm (cow-store-service-type): Likewise.
* gnu/system/linux-container.scm (dummy-networking-service-type):
Likewise.
* gnu/system/mapped-devices.scm (device-mapping-service-type):
Likewise.
* tests/guix-system.sh: Likewise.
2021-01-13 22:24:18 +01:00
Leo Prikler 645a28ee97
Reapply "system: Assert, that user and group names are unique."
* gnu/system/shadow.scm (assert-unique-account-names)
(assert-unique-group-names): Demote formatted-message to warning.
2021-01-13 00:44:34 +01:00
Jonathan Brielmaier 8488f45b6e
Revert "system: Assert, that user and group names are unique."
This reverts commit a3002104a8, which
breaks certain system configurations like:

$ guix system reconfigure config.scm
guix system: error: the following groups appear more than once: lp
2021-01-12 23:53:53 +01:00
Leo Prikler a3002104a8
system: Assert, that user and group names are unique.
*gnu/system/shadow.scm (find-duplicates): New variable.
(assert-unique-account-names, assert-unique-group-names): New variables.
(account-activation): Use them here.
2021-01-11 16:03:47 +01:00
Mathieu Othacehe b6473e506e
system: image: Fix root offset on rockchip platforms.
Fixes: <https://issues.guix.gnu.org/45584>.

* gnu/system/image.scm (arm32-disk-image, arm64-disk-image): Turn into
procedures, taking the root partition offset as argument.
* gnu/system/images/novena.scm (novena-image-type): Adapt accordingly.
* gnu/system/images/pine64.scm (pine64-image-type): Ditto.
* gnu/system/images/pinebook-pro.scm (pinebook-pro-image-type): Use a 9MiB
offset for the root partition.
2021-01-10 16:07:44 +01:00
Ludovic Courtès 6a060ff27f
store-copy: 'populate-store' can optionally deduplicate files.
Until now deduplication was performed as an additional pass after
copying files, which involve re-traversing all the files that had just
been copied.

* guix/store/deduplication.scm (copy-file/deduplicate): New procedure.
* tests/store-deduplication.scm ("copy-file/deduplicate"): New test.
* guix/build/store-copy.scm (populate-store): Add #:deduplicate?
parameter and honor it.
* tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f
to 'populate-store'.
* gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate?
to 'populate-store'.  Pass #:deduplicate? #f to 'register-closure'.
* gnu/build/vm.scm (root-partition-initializer): Likewise.
* gnu/build/install.scm (populate-single-profile-directory): Pass
 #:deduplicate? #f to 'populate-store'.
* gnu/build/linux-initrd.scm (build-initrd): Likewise.
* guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New
procedure.
[build]: Pass it as an argument to 'source-module-closure'.
* guix/scripts/pack.scm (squashfs-image)[build]: Wrap in
'with-extensions'.
* gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New
procedure.
[builder]: Pass it to 'source-module-closure'.
* gnu/system/install.scm (cow-store-service-type)[import-module?]: New
procedure.  Pass it to 'source-module-closure'.
2020-12-15 17:32:10 +01:00
Mathieu Othacehe 8361817bf6
install: Discover local substitute servers.
* gnu/installer/substitutes.scm: New file.
* gnu/installer/newt/substitutes.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* po/guix/POTFILES.in: Add gnu/installer/newt/substitutes.scm.
* gnu/installer/proxy.scm (with-silent-shepherd): Move to ...
* gnu/installer/utils.scm: ... here.
* gnu/installer/record.scm (<installer>)[substitutes-page]: New field.
* gnu/installer/newt.scm (substitutes-page): New procedure,
(newt-installer): register it.
* gnu/installer.scm (installer-steps): Add "substitutes-page" step.
* gnu/system/install.scm (%installation-services): Add avahi-service-type and
enable substitute server discover in guix-service-type.
[<name-service-switch>]: Set it to %mdns-host-lookup-nss.
2020-12-11 21:37:07 +01:00
Tobias Geerinckx-Rice 10defc57bf
linux-initrd: Add bcachefs support.
* gnu/system/linux-initrd.scm (file-system-packages): Add
bcachefs-tools/static.
(file-system-type-modules): Add an entry for the "bcachefs" type and
module.
2020-12-06 16:11:43 +01:00
Danny Milosavljevic 005609c171
images: novena: Make boot settings and RTC accessible.
* gnu/system/images/novena.scm (novena-barebones-os)[initrd-modules]: Add
i2c-dev.
2020-12-05 11:19:17 +01:00
Mathieu Othacehe 83de7ee662
image: Fix ISO image production.
This is a follow-up of 41f27bf870.

* gnu/system/image.scm (operating-system-for-image): Force "volatile-root?" to
true when producing ISO images.
2020-12-04 14:06:49 +01:00
Danny Milosavljevic 295aa49ec9
images: novena: Replace agetty-service by term-auto.
* gnu/system/images/novena.scm (novena-barebones-os)[kernel-arguments]: New
field.
[services]: Remove field.
2020-12-03 12:24:36 +01:00
Danny Milosavljevic 9cf531f577
images: Add novena-image-type, novena-barebones-raw-image, novena-barebones-os.
* gnu/system/images/novena.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-12-03 12:11:00 +01:00
Christopher Baines ff01206345
Merge remote-tracking branch 'origin/master' into core-updates 2020-11-29 17:34:18 +00:00
Mikhail Tsykalov a9a2fdaabc
mapped-devices: Add 'lvm-device-mapping'.
* gnu/system/mapped-devices.scm (lvm-device-mapping, open-lvm-device,
close-lvm-device): New variables.

* gnu/tests/install.scm (%lvm-separate-home-os,
%lvm-separate-home-os-source, %lvm-separate-home-installation-script,
%test-lvm-separate-home-os): New variables.

* gnu/system/linux-initrd.scm (raw-initrd): Add (srfi srfi-1) to initrd expression.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-26 00:05:39 +01:00
Mikhail Tsykalov 788df2ecd6
mapped-devices: Allow target to be list of strings.
* gnu/system/mapped-devices.scm (<mapped-device>): Rename constructor to
%mapped-device.
[target]: Remove field.
[targets]: New field. Adjust users.
(mapped-device-compatibility-helper, mapped-device): New macros.
(mapped-device-target): New deprecated procedure.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-26 00:05:39 +01:00
Mathieu Othacehe 17d9a91e6b
image: Add pinebook-pro support.
* gnu/system/images/pinebook-pro.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/ci.scm (%guix-system-images): Add pinebook-pro-barebones-raw-image.
2020-11-20 17:00:27 +01:00
Maxim Cournoyer 19d4693939
system: vm: Remove unused system-disk-image-in-vm.
* gnu/system/vm.scm (system-disk-image-in-vm): Remove.

Reported-by: Ludovic Courtès <ludo@gnu.org>
2020-11-17 15:20:03 -05:00
Maxim Cournoyer 1ec366cdfd
image: Remove conflicting user-provided EFI file system.
When the image type is "raw" or derived from it (such as "qcow2"), an ESP
partition and file system is already added by the image generator.  If a
conflicting user-provided EFI file system is provided, it causes the boot to
fail, as happens for the lightweight-desktop.tmpl and desktop.tmpl templates
under gnu/system/examples.

* gnu/system/image.scm (operating-system-for-image): Remove file systems whose
mount point is "/boot/efi".
2020-11-17 15:20:02 -05:00
Ludovic Courtès 07914def98
Merge branch 'version-1.2.0' 2020-11-12 10:47:25 +01:00
Ludovic Courtès 000e7a0abc
vm: expression->derivation-in-linux-vm: Run in a UTF-8 locale.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add calls to
'setenv' and 'setlocale'.
2020-11-10 21:49:15 +01:00
Ludovic Courtès 7a20c1676a
vm: 'system-qemu-image' forces the use of i386/BIOS GRUB.
Fixes <https://bugs.gnu.org/44511>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* gnu/system/vm.scm (system-qemu-image): Add 'bootloader' field to OS.
2020-11-10 12:20:09 +01:00
Ludovic Courtès 4e9ded6d27
image: Offload "disk-image" derivations.
This is a followup to 99efa804bd.

* gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to
'computed-file'.
2020-11-08 16:58:30 +01:00
Ludovic Courtès f9926c071f
image: Offload "disk-image" derivations.
This is a followup to 99efa804bd.

* gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to
'computed-file'.
2020-11-08 14:28:32 +01:00
Tobias Geerinckx-Rice e87471dc51
uuid: Add support for bcachefs.
* gnu/system/uuid.scm (string->bcachefs-uuid): New exported procedure.
(%uuid-parsers, %uuid-printers): Add the ‘bcachefs’ file system type.
2020-11-07 13:40:46 +01:00
raingloom fe1cd098d2
services: Add yggdrasil-service-type.
* gnu/services/networking.scm (yggdrasil-configuration)
(yggdrasil-configuration?, yggdrasil-configuration-package)
(yggdrasil-configuration-auto-conf, yggdrasil-configuration-log-level)
(yggdrasil-configuration-log-to): New procedures.
(yggdrasil-service-type): New variable.
* doc/guix.texi: Document it.
* gnu/system/examples/yggdrasil.tmpl: Provide example.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-11-05 18:45:40 +01:00
Ludovic Courtès 341f67991d
vm: system-qemu-image: Fix type error, remove more actual file systems.
* gnu/system/vm.scm (system-qemu-image)[file-systems-to-keep]: Check
whether SOURCE is a string before calling 'string-prefix?'.  Remove
UUIDs and file system labels as well.
2020-11-05 00:07:45 +01:00
Ludovic Courtès 99efa804bd
image: Allow offloading of "partition.img" and "image.iso" builds.
This builds are extremely I/O-intensive so they'd rather not run on the
head node of the build farm.

* gnu/system/image.scm (system-disk-image, system-iso9660-image): Pass
  #:local-build? #f.
2020-11-03 23:47:14 +01:00
Mathieu Othacehe c045801117
system: image: Introduce arm32-raw image type.
* gnu/system/image.scm (arm32-disk-image, arm32-image-type): New variables.
(arm64-disk-image): Inherit from arm32-disk-image.
(arm64-image-type): Change name to 'arm64-raw.
2020-11-02 17:17:52 +01:00
Maxim Cournoyer 5e2140511c
Merge branch 'staging'
Conflicts:
	gnu/packages/admin.scm
	gnu/packages/commencement.scm
	gnu/packages/gdb.scm
	gnu/packages/llvm.scm
	gnu/packages/package-management.scm
	gnu/packages/tls.scm
2020-10-19 13:11:40 -04:00
Tobias Geerinckx-Rice 222c6b9408
Remove the last vestiges of GuixSD.
* gnu/build/vm.scm (load-in-linux-vm): Rename the RNG.
* gnu/system/vm.scm (common-qemu-options): Likewise.
(system-docker-image): Rename the ROOT-DIRECTORY.
* gnu/packages/crypto.scm (eschalot)[arguments]: Use a different
arbitrary string.
* gnu/packages/wicd.scm (wicd)[arguments]: Remove unused configure flag.
* gnu/packages/xorg.scm (xorg-server): Set a more accurate OS vendor.
2020-10-16 15:24:34 +02:00
Efraim Flashner 4170af491c
install: Deduplicate packages with %base-package sets.
* gnu/system.scm (%base-packages-interactive): Add nvi.
* gnu/system/install.scm (installation-os)[packages]: Remove parted,
gptfdisk, ddrescue, cryptsetup, mdadm, dosfstools, btrfs-progs,
f2fs-tools, jfstools, openssh, wireless-tools, iw,
wpa-supplicant-minimal, iproute, bash-completion, nvi. Add
%base-packages-disk-utilities.
2020-10-15 11:13:24 +03:00
Ludovic Courtès 281869e6f8
image: Use 'raise' from (srfi srfi-34).
* gnu/system/image.scm: Use (srfi srfi-34) for 'raise'.
(lookup-image-type-by-name): Remove extra newline in 'formatted-message'
string.
2020-10-14 15:22:55 +02:00
Jan (janneke) Nieuwenhuizen 1197b8b20f
installer: Add Emacs EXWM desktop environment.
Suggested by zenny via IRC.

* gnu/installer/services.scm (%system-services): Add emacs, emacs-exwm,
emacs-desktop-environment.
* etc/release-manifest.scm (%system-packages): Likewise.
* gnu/system/examples/lightweight-desktop.tmpl: Likewise.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests)
[packages]: Likewise
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Make
one entry taller.
2020-10-13 21:17:40 +02:00
Florian Pelz 34d436a408
Revert "Revert "install: Pass "modprobe.blacklist=radeon".""
This reverts commit 73ddcab607.
Blacklisting has become necessary again on my AMD machines, else
the installer screen stays black.
2020-10-11 06:57:17 +00:00
Jan (janneke) Nieuwenhuizen d56d79b176
system: hurd: Add diffutils, patch, gawk, tar, gzip, bzip2, xz, and lzip.
* gnu/system/hurd.scm (%base-packages/hurd): Add diffutils, patch, gawk, tar, gzip,
bzip2, xz, and lzip.
2020-10-09 23:25:34 +02:00
Jan (janneke) Nieuwenhuizen 1103f87805
system: hurd: Include 'guile-3.0-latest' in '%base-packages/hurd'.
* gnu/system/hurd.scm (%base-packages/hurd): Change GUILE-3.0 to
GUILE-3.0-LATEST.
2020-10-09 23:25:33 +02:00
Jan (janneke) Nieuwenhuizen 16f8ea064c
system: hurd: Add PAM support with shadow and sudo.
* gnu/system.scm (hurd-default-essential-services): Add
setuid-program-service-type.
* gnu/system/hurd.scm (%base-packages/hurd): Add shadow, sudo.
(%setuid-programs/hurd): New variable.
(%hurd-default-operating-system)[setuid-program]: Use it.
[pam-services, sudoers-file]: Remove overrides; enabling regular defaults.
* gnu/system/examples/bare-hurd.tmpl (%hurd-os)[users]: New field.
[services]: Do not disable PAM in SSH.
2020-10-09 23:25:33 +02:00
Mathieu Othacehe 8a4f1eef98
images: Add pine64-barebones-raw-image.
* gnu/system/images/pine64.scm (pine64-barebones-raw-image): New variable.
* gnu/ci.scm (%guix-system-images): Add it.
2020-10-06 09:51:43 +02:00
Mathieu Othacehe 599954c137
images: Add pine64 support.
* gnu/system/images/pine64.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/system/image.scm (arm64-disk-image, arm64-image-type): New variables.
2020-10-05 11:16:47 +02:00
Mathieu Othacehe b97b423e3f
bootloader: Fix u-boot installation.
This is a follow-up of f19cf27c2b. The
bootloader installation must be done on the final disk-image, hence using
"disk-image-installer" instead of "installer" callback.

* gnu/bootloader/u-boot.scm: Turn all installer callbacks into
disk-image-installer callbacks.
* gnu/build/bootloader.scm (write-file-on-device): Open the output file with
'no-truncate and 'no-create options.
* gnu/system/image.scm (with-imported-modules*): Add (gnu build bootloader)
module.
2020-10-05 11:10:35 +02:00
Mathieu Othacehe 23ad7e92b1
system: image: Add qcow2 image type.
* gnu/system/image.scm (qcow2-image-type): New variable.
2020-10-02 14:54:26 +02:00
Jason Conroy 5627bfe45c
Instantiate nscd in each system container.
* gnu/system/linux-container.scm (%nscd-container-caches): New variable.
(containerized-operating-system): Instantiate nscd-service with smaller caches
and add it to the generated operating-system, replacing any nscd-service
specified by the caller.
* gnu/system/file-systems.scm: (%network-file-mappings): Remove "/var/run/nscd".

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-10-01 09:27:33 +02:00
Mathieu Othacehe 10b135cef5
system: image: Add image-type support.
* gnu/system/image.scm (image-with-os): New macro. Rename the old
"image-with-os" procedure to ...
(image-with-os*): ... this new procedure,
(system-image): adapt according,
(raw-image-type, iso-image-type, uncompressed-iso-image-type
%image-types): new variables,
(lookup-image-type-by-name): new procedure.
(find-image): remove it.
* gnu/system/images/hurd.scm (hurd-image-type): New variable,
use it to define ...
(hurd-disk-image): ... this variable, using "os->image" procedure.
* gnu/tests/install.scm (run-install): Rename
installation-disk-image-file-system-type parameter to installation-image-type,
use os->config instead of find-image to compute the image passed to system-image,
(%test-iso-image-installer) adapt accordingly,
(guided-installation-test): ditto.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-09-30 10:47:59 +02:00
Mathieu Othacehe 644cdc819f
images: hurd: Add hurd-barebones-qcow2-image.
* gnu/system/images/hurd.scm (hurd-barebones-qcow2-image): New variable.
2020-09-29 11:42:52 +02:00
Mathieu Othacehe f441e3e8b5
image: Add support for compressed-qcow2 format.
* gnu/build/image.scm (convert-disk-image): New procedure.
(genimage): Remove target argument.
* gnu/system/image.scm (system-disk-image): Add support for 'compressed-qcow2
image format. Call "convert-disk-image" to apply image conversions on the
final image. Add "qemu-minimal" to the build inputs.
(system-image): Also add support for 'compressed-qcow2.
2020-09-29 11:42:52 +02:00
Ludovic Courtès 855bc05e11
gnu: glibc: Add version 2.31.
* gnu/packages/base.scm (glibc-2.31): New variable.
* gnu/system/locale.scm (%default-locale-libcs): Add it.
2020-09-20 23:56:17 +02:00
Mathieu Othacehe 0996fcc657
system: image: Rename ISO9660 files.
* gnu/system/image.scm (system-iso9660-image): Change the default file output
name to "image.iso".
2020-09-19 14:24:59 +02:00
Maxim Cournoyer fa8fe90edb
Merge remote-tracking branch 'origin/master' into core-updates 2020-09-14 16:17:19 -04:00
Mathieu Othacehe 22827396ba
install: Factorize cow-store procedure.
Move the cow-store procedure from the service declaration in (gnu system
install) to (gnu build install), so that it can be called from within a
different context than Shepherd.

* gnu/build/install.scm (mount-cow-store, unmount-cow-store): New procedures.
* gnu/system/install.scm (make-cow-store): Remove it,
(cow-store-service-type): adapt it accordingly.
2020-09-02 17:05:22 +02:00
Maxim Cournoyer 6d6e74ea98
Revert "system: image: Do not offload image files."
This reverts commit 6a9581741e, which is
obsoleted by the previous commit.
2020-09-01 00:48:59 -04:00
Julien Lepiller 036f23f053
guix: system: Add `--label' option.
* guix/scripts/system.scm (%options): Add `--label'.
(system-derivation-for-action): Take a #:label key to set volume ID.
(perform-action): Take a #:label key.
(%default-options): Add default label value.
(process-action): Pass label value from command-line to perform-action.
* gnu/system/image.scm (image-with-label): New procedure.
2020-08-31 16:12:16 +02:00
Ludovic Courtès 7eeb78157d
vm: Disable caching for writable file system mappings.
Fixes <https://bugs.gnu.org/43062>.
Reported by elaexuotee@wilsonb.com.

* gnu/system/vm.scm (mapping->file-system)[options]: Disable loose
caching when WRITABLE? is true.
2020-08-31 15:50:35 +02:00
Ludovic Courtès be1c00ae3c
system: Remove extra line from 'lightweight-desktop.tmpl'.
This is a followup to c7af968717.

* gnu/system/examples/lightweight-desktop.tmpl: Remove extra
'use-package-modules' line.
2020-08-28 23:27:53 +02:00
Mathieu Othacehe 6c443975c9
system: locale: Only use the current glibc.
Only use the current glibc, as adding glibc-2.29 for compatibility adds
~100MiB to the barebones system closure.

* gnu/system/locale.scm (%default-locale-libcs): Remove glibc-2.29.
2020-08-26 18:45:28 +02:00
Mathieu Othacehe 17dddeeee5
Merge remote-tracking branch 'origin/master' into core-updates 2020-08-26 18:35:14 +02:00
Maxim Cournoyer 6a9581741e
system: image: Do not offload image files.
Image files can be very large (multiple gigabytes), and the process of
generating them is primarily I/O bound. As disk access is typically faster
than network access, it makes sense build them locally.

* gnu/system/image.scm (system-disk-image): Pass the #:local-build? #t
parameter to computed-file calls dealing with generating image files.
(system-iso9660-image): Likewise.
2020-08-26 09:35:57 -04:00
Mathieu Othacehe dac7dd1b0b
Remove "guile-zlib" extension when unused.
This is a follow-up of 755f365b02.

As (zlib) is autoloaded in (gnu build linux-modules), "guile-zlib" is needed
as an extension only when it is effectively used.

* gnu/installer.scm (installer-program): Remove "guile-zlib" from the extensions.
* gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto.
* gnu/services.scm (activation-script): Ditto.
* gnu/services/base.scm (default-serial-port): Ditto,
(agetty-shepherd-service): ditto,
(udev-service-type): ditto.
* gnu/system/image.scm (gcrypt-sqlite3&co): Ditto.
* gnu/system/shadow.scm (account-shepherd-service): Ditto.
2020-08-25 12:39:11 +02:00
Mathieu Othacehe 755f365b02
linux-libre: Support module compression.
This commit adds support for GZIP compression for linux-libre kernel
modules. The initrd modules are kept uncompressed as the initrd is already
compressed as a whole.

The linux-libre kernel also supports XZ compression, but as Guix does not have
any available bindings for now, and the compression time is far more
significant, GZIP seems to be a better option.

* gnu/build/linux-modules.scm (modinfo-section-contents): Use
'call-with-gzip-input-port' to read from a module file using '.gz' extension,
(strip-extension): new procedure,
(dot-ko): adapt to support compression,
(ensure-dot-ko): ditto,
(file-name->module-name): ditto,
(find-module-file): ditto,
(load-linux-module*): ditto,
(module-name->file-name/guess): ditto,
(module-name-lookup): ditto,
(write-module-name-database): ditto,
(write-module-alias-database): ditto,
(write-module-device-database): ditto.
* gnu/installer.scm (installer-program): Add "guile-zlib" to the extensions.
* gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto.
* gnu/services.scm (activation-script): Ditto.
* gnu/services/base.scm (default-serial-port): Ditto,
(agetty-shepherd-service): ditto,
(udev-service-type): ditto.
* gnu/system/image.scm (gcrypt-sqlite3&co): Ditto.
* gnu/system/linux-initrd.scm (flat-linux-module-directory): Add "guile-zlib"
to the extensions and make sure that the initrd only contains
uncompressed module files.
* gnu/system/shadow.scm (account-shepherd-service): Add "guile-zlib" to the
extensions.
* guix/profiles.scm (linux-module-database): Ditto.
2020-08-25 11:53:20 +02:00
Maxim Cournoyer 720a4adc91
system: Modify GDB skeleton to find debug files for any profile.
Instead of hard coding the debug directory to that of the user profile, use
Guile scripting in combination with a new search path specification on GDB to
specify the debug file directories.

* gnu/packages/gdb.scm (gdb-9.1): Add a search path specification for the
GDB_DEBUG_FILE_DIRECTORY environment variable.
* gnu/system/shadow.scm (default-skeletons)[gdbinit]: Derive the value of
DEBUG-FILE-DIRECTORY via the GDB_DEBUG_FILE_DIRECTORY environment variable.
* doc/guix.texi (Installing Debugging Files): Document it.
2020-08-16 15:26:26 -04:00
Ludovic Courtès 86c926d7f2
file-systems: Leave room for extension in serialized specs.
* gnu/system/file-systems.scm (spec->file-system): Ignore extra fields.
(file-system->spec): Add comment.
2020-08-03 17:44:38 +02:00
Mathieu Othacehe f94835a917
file-system: Add efivarfs support.
Tools such as efibootmgr rely on the deprecated /sys/firmware/efi/vars API as
well as on the new /sys/firmware/efi/efivars API. The latter needs to be
mounted.

Reported by Keyhenge here:
https://lists.gnu.org/archive/html/bug-guix/2020-04/msg00274.html

Here is the efivarfs documentation:
https://www.kernel.org/doc/Documentation/filesystems/efivarfs.txt.

* gnu/system/file-systems.scm (%efivars-file-system): New exported variable,
(%base-file-systems): add it.
* gnu/system/install.scm (%efivars-file-system): Add it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-07-31 13:43:36 +02:00
Mathieu Othacehe 7c27bd115b
file-system: Add mount-may-fail? option.
* gnu/system/file-systems.scm (<file-system>): Add a mount-may-fail? field.
(file-system->spec): adapt accordingly,
(spec->file-system): ditto.
* gnu/build/file-systems.scm (mount-file-system): If 'system-error is raised
and mount-may-fail? is true, ignore it. Otherwise, re-raise the exception.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-07-31 13:43:20 +02:00
Mathieu Othacehe 6bb07e91e1
file-systems: Add %debug-file-system.
* gnu/system/file-systems.scm (%debug-file-system): New variable,
(%base-file-systems): add it.
2020-07-31 12:58:16 +02:00
Oleg Pykhalov 03914b9d8c
examples: Add password for Alice's brother.
* gnu/system/examples/desktop.tmpl (users)[bob]: Add password.
2020-07-29 07:50:23 +03:00
Mathieu Othacehe 675e56221e
file-systems: Add NTFS support.
* gnu/system/uuid.scm (%ntfs-endianness): New macro,
(ntfs-uuid->string): new procedure,
(%ntfs-endianness): new variable,
(string->ntfs-uuid): new exported procedure,
(%uuid-parsers): add NTFS support,
(%uuid-printers): add NTFS support.
* gnu/build/file-systems.scm (%ntfs-endianness): New macro,
(ntfs-superblock?, read-ntfs-superblock, ntfs-superblock-uuid,
check-ntfs-file-system): new procedure,
(%partition-uuid-readers): add NTFS support,
(check-file-system): add NTFS support.
2020-07-26 18:35:10 +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 7a0bf3d533
file-systems: Convey hint via '&fix-hint'.
* gnu/system/file-systems.scm (btrfs-store-subvolume-file-name): Use
'&fix-hint' for the hint.
2020-07-25 19:11:36 +02:00
Ludovic Courtès f9a8dd053c
utils: Move '&fix-hint' to (guix diagnostics).
* guix/utils.scm (&fix-hint): Move to...
* guix/diagnostics.scm (&fix-hint): ... here.
* gnu.scm: Adjust imports accordingly.
* gnu/system/mapped-devices.scm: Likewise.
* guix/channels.scm: Likewise.
* guix/profiles.scm: Likewise.
* guix/scripts/system/reconfigure.scm: Likewise.
* guix/ssh.scm: Likewise.
2020-07-25 19:11:36 +02:00
Marius Bakke 1abf205d11
Revert "vm: Use virtio network driver."
This allows users to specify network interface settings with 'guix system vm'
without having to create a new NIC.  Fixes <https://bugs.gnu.org/42252>.
Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>.

This reverts commit 5379392731.
2020-07-11 23:36:31 +02:00
Jan (janneke) Nieuwenhuizen 4b9eecd322
image: Do not set journal_model=WAL for the Hurd.
This fixes <https://bugs.gnu.org/42151>.

* gnu/system/images/hurd.scm (hurd-initialize-root-partition): Use #:wal-mode #f
in call to ...
* gnu/build/image.scm (initialize-root-partition): ... this, add #:wal-mode?
parameter, pass it to ...
(register-closure): ... this, add #:wal-mode? parameter, pass it to ...
* guix/store/database.scm (with-database): ... this, add #:wal-mode?
parameter, pass it to ...
(call-with-database): ... this, add #:wal-mode? parameter; when
set to #f, do not set journal_model=WAL.
2020-07-11 16:34:01 +02:00
Jan (janneke) Nieuwenhuizen 5164d7fd26
system: hurd: Oops, have 'initrd' default to #f.
* gnu/system/hurd.scm (%hurd-default-operating-system)[initrd]: Oops, set to #f.
2020-06-30 18:26:47 +02:00
Mathieu Othacehe f27bec107e
system: image: Fix disk-image name.
This is a follow-up of 5980ec8ada.

* gnu/system/image.scm (system-disk-image): When using the image name, convert
it to string first.
2020-06-26 10:05:58 +02:00
Mathieu Othacehe 5980ec8ada
system: image: Use the image name as the disk-image derivation name.
* gnu/system/image.scm (system-disk-image): Use the image name as disk-image
derivation name, if defined. Otherwise use the generic "disk-image" name.
2020-06-26 09:38:16 +02:00
Jan (janneke) Nieuwenhuizen 2463a78d17
image: hurd: Initialize root partition for the Hurd.
This is a follow-up to commit b904b59ce5.

* gnu/system/image.scm (hurd-initialize-root-partition): Move to ...
* gnu/system/images/hurd.scm (hurd-initialize-root-partition): ... here.
(hurd-disk-image): Use it.
2020-06-25 22:52:12 +02:00
Jan (janneke) Nieuwenhuizen fd932862ac
image: hurd: Create hurd-compatible ext2 file-system.
This is a follow-up to commit b904b59ce5.

* gnu/system/images/hurd.scm (hurd-disk-image): Add file-system-options to
create an ext2 file-system that is compatible with the Hurd.
2020-06-25 22:52:09 +02:00
Ludovic Courtès db170ee921
services: Add missing (ice-9 format) import.
These issues were reported by -Wformat, though they were harmless in
practice because importing (ice-9 format) changes the global 'format'
binding currently.

* gnu/services/nix.scm: Import (ice-9 format).
* gnu/services/web.scm: Likewise.
* gnu/system/mapped-devices.scm: Likewise.
2020-06-25 01:20:31 +02:00
Mathieu Othacehe f56144e18a
system: image: Enable compression on ISO9660 images.
ISO9660 image compression was temporarily disabled to speed-up tests of the
new image API. Enable it again.

* gnu/system/image.scm (iso9660-image)[compression]: Enable it.
2020-06-24 20:50:42 +02:00
Mathieu Othacehe b904b59ce5
image: Move hurd image definition to a dedicated file.
This moves hurd-disk-image to a dedicated file. It also defines a default
operating-system so that the image can be built standalone.

* gnu/system/images/hurd.scm: New file,
* gnu/local.mk (GNU_SYSTEM_MODULES): add it,
* gnu/system/image.scm (root-offset, root-label): Export it,
(hurd-disk-image): remove it as this is now defined in the new, Hurd dedicated
file above,
(find-image): adapt to avoid loop dependency.
2020-06-24 20:24:34 +02:00
Mathieu Othacehe fd45ecb571
system: image: Remove fakeroot dependencies.
Since c29bb909d2, fakeroot "sed" and "coreutils"
dependencies are now explicit.

* gnu/system/image.scm (system-disk-image): Remove "sed" and "coreutils" from
inputs.
2020-06-23 09:51:20 +02:00
Mathieu Othacehe 7f75a7ec08
system: image: Remove "image-root" when building raw disk-images.
The "image-root" derivation output is used as a temporary directory that is
passed to mke2fs and mkdosfs later on. By merging the creation of this
directory and the production of partition images, we can get rid of the
derivation.

As mke2fs and mkdosfs are not able to override file permissions, call those
commands with fakeroot. This way, all the image files will be owned by root,
even if image generation is done in an unprivilegded context.

* gnu/system/image.scm (system-disk-image): Merge "image-root" and
"iso9660-image" derivations so that we spare an extra derivation. Also add
"fakeroot" and its runtime dependencies to the inputs.
* gnu/build/image.scm (make-ext-image, make-vfat-image): Make sure that mke2fs
and mkdosfs are respectively called by fakeroot.
2020-06-22 17:49:19 +02:00
Mathieu Othacehe 1cb9effc3e
system: image: Remove "image-root" derivation when building ISO.
The "image-root" derivation output is used as a temporary directory that is
passed to GNU Xorriso later on. By merging the creation of this directory and
the production of an ISO image, we can get rid of the derivation.

* gnu/system/image.scm (system-iso9660-image): Merge "image-root" and
"iso9660-image" derivations so that we spare an extra derivation.
2020-06-22 17:07:22 +02:00
Maxim Cournoyer 04a4af6dd4
uuid: Prevent a loop on invalid arguments.
* gnu/system/uuid.scm (uuid=?): Use type predicates in the fallback case to
prevent looping on invalid arguments.
2020-06-18 23:24:37 -04:00
Jan (janneke) Nieuwenhuizen f817a0c095
system: hurd: Add "/bin/sh" and "/usr/bin/env".
* gnu/system/hurd.scm (%base-services/hurd): Add extra-special-files "/bin/sh"
and "/usr/bin/env".
2020-06-18 09:38:53 +02:00
Mathieu Othacehe c9f6e2e5bd
system: image: Make sure target is set.
* gnu/system/image.scm (system-image): Move "with-parameters" call so that it
encapsulates "operating-system-bootcfg".
2020-06-14 18:03:08 +02:00
Mathieu Othacehe 39b63d06e1
system: image: Remove left-over.
* gnu/system/image.scm: Remove a left-over since maybe-with-target procedure
was removed.
2020-06-14 17:57:30 +02:00
Mathieu Othacehe 4a04d49c2e
image: Remove 'maybe-with-target'.
* gnu/system/image.scm (maybe-with-target): Remove,
(system-image): adapt accordingly.
2020-06-13 16:58:57 +02:00
Mathieu Othacehe f292d4719d
image: Add 'target' support.
* gnu/image.scm (<image>)[target]: New field,
(image-target): new public method.
* gnu/system/image.scm (hurd-disk-image): Set "i586-pc-gnu" as image 'target'
field,
(maybe-with-target): new procedure,
(system-image): honor image 'target' field using the above procedure.
2020-06-13 15:20:52 +02:00
Jan (janneke) Nieuwenhuizen 7ca533c723
image: Make 'find-image' non-monadic.
* gnu/system/image.scm (find-image): Make non-monadic.  Add 'target'
parameter.
* gnu/tests/install.scm (run-install): Update caller,
passing (%current-target-system).
* guix/scripts/system.scm (perform-action): Likewise.
2020-06-13 15:03:55 +02:00
Jan (janneke) Nieuwenhuizen 60fdd9e389
system: hurd: Remove 'cross-hurd-image' hack.
The initial

    guix build -f gnu/system/hurd.scm

hack has been superseded by regular guix system (cross) build.

* gnu/system/hurd.scm (compile-manifest, cross-hurd-image): Remove.
2020-06-13 09:11:47 +02:00
Jan (janneke) Nieuwenhuizen edbc067138
system: bare-hurd.tmpl: Add openssh-sans-x client and service.
* gnu/system/examples/bare-hurd.tmpl (%hurd-os)[packages]: Add openssh-sans-x.
[services]: Add openssh-service.  Add example usage.
2020-06-13 09:11:47 +02:00
Mathieu Othacehe fd1e885236
system: image: Do not produce an HFS tree when building an ISO.
Use "mbr_only" mode to make sure that no HFS+ tree are generated.

* gnu/system/image.scm (system-image): Set MKRESCUE_SED_MODE to "mbr_only".
2020-06-12 17:21:18 +02:00
Royce Strange 23567138f8
system: vm: Add missing imported module.
* gnu/system/vm.scm (qemu-image): Import missing (gnu build hurd-boot) module.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2020-06-09 01:31:16 -04:00
Jan (janneke) Nieuwenhuizen b37c544196
hurd-boot: Further cleanup of "rc".
* gnu/packages/hurd.scm (hurd-rc-script): Move implementation to ...
* gnu/build/hurd-boot.scm (boot-hurd-system): ...here, new file.
* gnu/build/linux-boot.scm (make-hurd-device-nodes): Move there likewise.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add 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 59bcffa314
system: examples: Add bare-hurd.tmpl.
* gnu/system/hurd.scm (%hurd-def%hurd-default-operating-system-kernel,
%hurd-default-operating-system): New exported variables.
* gnu/system/examples/bare-hurd.tmpl: New file.
* Makefile.am (EXAMPLES): Add it.
* tests/guix-system.sh: Add --target=i586-pc-gnu when testing it.
2020-06-08 13:51:19 +02:00
Mathieu Othacehe c77b92859f
image: Add Hurd support.
* gnu/system/image.scm (hurd-disk-image): New exported variable,
(root-offset, root-label): new variables,
(esp-partition, root-partition): adapt accordingly,
(find-image): add Hurd support.
2020-06-08 13:51:18 +02:00
Mathieu Othacehe 0dddaa7b01
system: bare-bones: Remove dependency to X libraries.
Use "openssh-sans-x" to prevent the inclusion of X libraries to the bare-bones
system closure.

* gnu/system/examples/bare-bones.tmpl (operating-system)[services]: Use
openssh-sans-x instead of openssh.
2020-06-08 11:03:11 +02:00