Commit graph

1060 commits

Author SHA1 Message Date
Josselin Poiret
dab819d5c4
Move (gnu platform) and (gnu platforms ...) to guix/.
* gnu/platform.scm:
* gnu/platforms/arm.scm:
* gnu/platforms/hurd.scm:
* gnu/platforms/mips.scm:
* gnu/platforms/powerpc.scm:
* gnu/platforms/riscv.scm:
* gnu/platforms/s390.scm:
* gnu/platforms/x86.scm: Move to guix/.

* Makefile.am:
* doc/guix.texi (Porting to a New Platform):
* etc/release-manifest.scm:
* gnu/ci.scm:
* gnu/image.scm:
* gnu/local.mk:
* gnu/packages/bioinformatics.scm:
* gnu/packages/bootstrap.scm:
* gnu/packages/cross-base.scm:
* gnu/packages/instrumentation.scm:
* gnu/packages/linux.scm:
* gnu/system/image.scm:
* gnu/system/images/hurd.scm:
* gnu/system/images/novena.scm:
* gnu/system/images/pine64.scm:
* gnu/system/images/pinebook-pro.scm:
* gnu/system/images/rock64.scm:
* guix/scripts/build.scm:
* guix/scripts/system.scm:
* guix/self.scm: Update (gnu platform...) to (guix platform...).

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-25 09:27:25 +02:00
Pavel Shlyak
bb662d71e6
image: Add bootable flag support.
* gnu/build/image.scm (sexp->partition): Add flags support.
* gnu/system/image.scm (partition->gexp): Ditto.
(system-disk-image): Set the genimage bootable flag if it is part of the
partition flags.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23 09:17:12 +02:00
Pavel Shlyak
6e99c020b8
system: image: Support GPT vfat partitions.
* gnu/system/image.scm (system-disk-image): Support them.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23 09:17:12 +02:00
Pavel Shlyak
76139eb253
system: image: Support MBR vfat partitions.
* gnu/system/image.scm (system-disk-image): Support them.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23 09:17:12 +02:00
Mathieu Othacehe
db3193f55b
system: image: Tweak error message.
* gnu/system/image.scm (system-disk-image): Tweak it.
2022-05-23 09:17:08 +02:00
Mathieu Othacehe
17e3b7d28f
system: image: Fix indentation.
* gnu/system/image.scm: Fix it.
2022-05-23 09:16:09 +02:00
Ludovic Courtès
9a5d686923
services: Add more description fields.
* gnu/services.scm (simple-service): Add 'description' field.
* gnu/services/base.scm (udev-rules-service): Likewise.
* gnu/system/install.scm (configuration-template-service-type): Likewise.
* gnu/tests.scm (marionette-service-type): Likewise.
2022-05-18 22:29:54 +02:00
Ludovic Courtès
eaebc7f2b7
file-systems: Avoid load-time warnings when attempting to load (guix store).
This makes sure warnings like "incompatible bytecode version" don't go
through when looking for (guix store).

* gnu/system/file-systems.scm (%store-prefix): Parameterize
'current-warning-port' around 'resolve-module' call.
2022-05-01 21:30:34 +02:00
Ludovic Courtès
931f13840b
mapped-devices: Ensure 'cryptsetup open' gets a tty.
Fixes <https://issues.guix.gnu.org/54770>.
Regression introduced in 400c9ed3d7.

Previously, for an encrypted /home (say), "cryptsetup open" would be
invoked by shepherd, with /dev/null as its standard input.  It would
thus run in non-interactive mode and, instead of asking for a
passphrase, fail with:

  Nothing to read on input.

This change ensures it runs in interactive mode.

* gnu/build/file-systems.scm (system*/console, system*/tty): New
procedures.
* gnu/system/mapped-devices.scm (open-luks-device): Use 'system*/tty'
instead of 'system*'.
2022-04-08 18:14:35 +02:00
Ludovic Courtès
df473496ed
system: hurd: Fix bogus 'initrd-modules' field.
Reported by kitzman on #guix.

* gnu/system/hurd.scm (%hurd-default-operating-system)[initrd-modules]:
Set to the empty list.
2022-04-08 18:14:35 +02:00
Ludovic Courtès
cff9fee82a
linux-container: Add #:guest-uid and #:guest-gid to 'eval/container'.
* gnu/system/linux-container.scm (eval/container): Add #:guest-uid
and #:guest-gid and honor them.
2022-03-19 18:26:00 +01:00
Ludovic Courtès
c77544b387
linux-container: 'eval/container' honors #:namespaces.
* gnu/system/linux-container.scm (eval/container): Pass #:namespaces to
'call-with-container'.
2022-03-19 18:26:00 +01:00
Mathieu Othacehe
2543cb4854
images: novena: Fix build.
* gnu/system/images/novena.scm (novena-barebones-os)[kernel]: Use the
linux-libre-arm-generic kernel.
[initrd-modules]: Do not specify any modules as sdhci-esdhc-imx, ahci_imx and
i2c-dev are built-in in the arm-generic kernel.
2022-03-15 13:14:29 +01:00
Ludovic Courtès
a208a4e923
system: hurd: Move the Shepherd before the Hurd in %BASE-PACKAGES/HURD.
* gnu/system/hurd.scm (%base-packages/hurd): Move SHEPHERD before HURD.
2022-03-09 23:38:18 +01:00
Maxim Cournoyer
0dc019e19a
initrd: Use non-hyphenated kernel command-line parameter names.
This is to make it less surprising, given the common convention sets forth by
the kernel Linux command-line parameters.

* gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root'
and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system',
respectively.  Adjust doc.
(find-long-option): Adjust doc.
* gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly.
* gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and
update doc.  Use VERSION to conditionally return old style vs new style initrd
arguments.
(%boot-parameters-version): Increment to 1.
(operating-system-boot-parameters): Adjust doc.
(operating-system-boot-parameters-file): Likewise.
* gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise.
* doc/guix.texi: Adjust doc.
* gnu/build/activation.scm (boot-time-system): Adjust accordingly.
* gnu/build/hurd-boot.scm (boot-hurd-system): Likewise.
* gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment.
2022-03-01 10:30:17 -05:00
Josselin Poiret
0055a803e2
system: Add helper file-system-mount-point-predicate.
* gnu/system/file-systems.scm (file-system-mount-point-predicate): Add
it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-02-15 10:14:14 +01:00
Leo Famulari
fd6cfbc05a
Revert kernel modules changes to support the Coreboot framebuffer
These changes broke the creation of the 'linux-modules-database' for all kernel
series besides 5.15, 5.4, and 5.10, like this:

------
gnu/build/linux-modules.scm:257:5: kernel module not found "framebuffer_coreboot" "/gnu/store/yff45fr6q93mw44zdql9ffr95zcvwxcn-linux-libre-4.9.299/lib/modules"
------

We should support the coreboot framebuffer, but we need to test that change more
completely before deploying it.

This effectively reverts the following commits:
1dfe8c3721 "gnu: linux-libre: Build simplefb into all x86{,_64} kernels."
bc09e7ab56 "gnu: linux-libre: Support the Coreboot framebuffer."

Fixes <https://issues.guix.gnu.org/52667> "System reconfiguration fails to build
linux-modules.drv".
2022-02-09 01:38:51 -05:00
Mathieu Othacehe
9d0d4b331d
system: locale: Use only the current glibc.
* gnu/system/locale.scm (%default-locale-libcs): Remove glibc-2.31.
2022-01-14 14:29:20 +01:00
Mathieu Othacehe
0233583aa4
system: vm: Change the writable image name.
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Change it.
2022-01-14 12:26:07 +01:00
Chris Marusich
79260c8695
services: Consistently use SDDM rather than GDM on non-x86_64.
This is a follow-up to 49599fab56.

Fixes: <https://issues.guix.gnu.org/52908>.

* gnu/services/xorg.scm (set-xorg-configuration)[login-manager-service-type]:
When the current system or target system begins with the string "x86_64", use
gdm-service-type as before; otherwise, use sddm-service-type.
* gnu/system/examples/vm-image.tmpl (services): Add sddm-service-type to the
list of service types to remove.
2022-01-06 18:54:59 -08:00
Mathieu Othacehe
5d2b8b0ee3
system: vm: Restore default RAM size to 512MB.
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Restore it.
2022-01-06 10:43:14 +01:00
Ricardo Wurmus
0fea9aec59
doc: Only use GDM and GNOME on x86_64.
* gnu/system/examples/desktop.tmpl: Only use gnome-desktop-service-type and
the default login manager in set-xorg-configuration when the target system is
x86_64.
2022-01-05 21:46:41 +01:00
Ludovic Courtès
671e6a8180
system: Allow 'chfn' to change the user's full name.
Fixes <https://issues.guix.gnu.org/52539>.
Reported by Jacob First <jacob.first@member.fsf.org>.

* gnu/build/accounts.scm (allocate-passwd): Add comment as to why
'real-name' is taken from PREVIOUS.  Add (not system?) to the
condition.
* gnu/system.scm (operating-system-etc-service) <login.defs>: Add
"CHFN_RESTRICT".
* gnu/system.scm (%setuid-programs): Add "chfn".
* gnu/system/pam.scm (base-pam-services): Add "chfn".
* doc/guix.texi (User Accounts): Document it.
2022-01-01 15:10:12 +01:00
Tobias Geerinckx-Rice
1dfe8c3721
gnu: linux-libre: Build simplefb into all x86{,_64} kernels.
This attempts to mitigate <https://issues.guix.gnu.org/52667>.

It makes linux-libre@5.15 consistent with older versions which do not
support a modular simplefb, allowing a single %base-initrd-modules
simple list for all of them.

Unlike CONFIG_FB_SIMPLE=m, CONFIG_FB_SIMPLE=y conflicts with
CONFIG_DRM_SIMPLEDRM, so the latter is now disabled.  Let us hope it is
not missed.

* gnu/packages/aux-files/linux-libre/5.15-i686.conf,
gnu/packages/aux-files/linux-libre/5.15-x86_64.conf:
Unset CONFIG_DRM_SIMPLEDRM to build in CONFIG_FB_SIMPLE=y.
* gnu/system/linux-initrd.scm (default-initrd-modules):
Remove "simplefb".
2021-12-25 07:20:00 +01:00
Mathieu Othacehe
05a9d1f378
Remove VM generation dead-code.
This code duplicates the (gnu system image) and (gnu build image) code. Using
VM for image generation is not needed, not portable and really slow. Remove
all the VM image generation code to make sure that only the image API is used.

* gnu/build/vm.scm: Remove it. Move the qemu-command procedure to ...
* gnu/build/marionette.scm: ... here.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it.
* tests/modules.scm: Ditto.
* gnu/tests/install.scm: Ditto.
* gnu/system/vm.scm: Adapt it and remove expression->derivation-in-linux-vm,
qemu-img, system-qemu-image/shared-store and system-docker-image procedures.
* doc/guix.texi (G-Expressions): Adapt it.
2021-12-23 10:54:00 +01:00
Mathieu Othacehe
da92479674
system: vm: Use the image API to generate QEMU images.
Also add a volatile? argument to the virtual-machine record. When volatile? is
true generate a QEMU script that mounts an overlay on top of a read only
storage. When volatile? is false, use a persistent, read-write storage.

* gnu/system/vm.scm (common-qemu-options): Add a rw-image? argument to use a
persistent storage.
(system-qemu-image/shared-store-script): Add a volatile? argument and honor
it. Use the image API to build the QEMU image.
(<virtual-machine>)[volatile?]: New field.
(virtual-machine-compiler): Pass the volatile? argument to the
system-qemu-image/shared-store-script procedure.
2021-12-23 10:54:00 +01:00
Mathieu Othacehe
59912117d4
system: image: Add docker support.
* gnu/system/image.scm (docker-image, docker-image-type): New variables.
(system-docker-image): New procedure.
(image->root-file-system): Add docker image support.
(system-image): Ditto.
2021-12-23 10:54:00 +01:00
Denis 'GNUtoo' Carikli
9c42d1fa00
doc: Add group configuration example
* gnu/system/examples/desktop.tmpl: Add group configuration example.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-19 23:39:55 +01:00
Tobias Geerinckx-Rice via Guix-patches via
bc09e7ab56
gnu: linux-libre: Support the Coreboot framebuffer.
Without this, the kernel cannot write to the display until the
full-featured driver module (often i915) is loaded from the root file
system.

If the root file system is encrypted, the initrd's passphrase prompt
won't make it to the screen, and the fully responsive system will appear
frozen whilst waiting for user input.

* gnu/packages/aux-files/linux-libre/4.4-i686.conf,
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.14-i686.conf,
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.19-i686.conf,
gnu/packages/aux-files/linux-libre/4.19-x86_64.conf,
gnu/packages/aux-files/linux-libre/5.4-i686.conf,
gnu/packages/aux-files/linux-libre/5.4-x86_64.conf,
gnu/packages/aux-files/linux-libre/5.10-i686.conf,
gnu/packages/aux-files/linux-libre/5.10-x86_64.conf,
gnu/packages/aux-files/linux-libre/5.15-i686.conf,
gnu/packages/aux-files/linux-libre/5.15-x86_64.conf:
Mark simple framebuffers as generic system ones and enable ‘Google’
firmware drivers to enable Coreboot table support and its dependent
framebuffer driver module.
* gnu/system/linux-initrd.scm (default-initrd-modules):
Add the framebuffer_coreboot and simplefb modules on x86 systems.
2021-12-16 12:53:52 -05:00
Ludovic Courtès
1052ae5f03
Merge branch 'master' into core-updates-frozen 2021-12-13 11:49:15 +01:00
Ludovic Courtès
5967aee398
services: Define '%loopback-static-networking'.
* gnu/services/base.scm (%loopback-static-networking): New variable.
(%base-services): Use it.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* gnu/system/install.scm (%installation-services): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:50 +01:00
Ludovic Courtès
1644f4f1f8
services: Define '%qemu-static-networking'.
* gnu/services/base.scm (%qemu-static-networking): New variable.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:49 +01:00
Ludovic Courtès
223f1b1eb3
services: static-networking: Change interface to mimic netlink.
* gnu/services/base.scm (<static-networking>)[interface, ip, netmask]
[gateway]: Remove.
[addresses, links, routes]: New fields.
[requirement]: Default to '(udev).
(<network-address>, <network-link>, <network-route>): New record types.
(ensure-no-separate-netmask, %ensure-no-separate-netmask): Remove.
(ipv6-address?, cidr->netmask, ip+netmask->cidr)
(network-set-up/hurd, network-tear-down/hurd)
(network-set-up/linux, network-tear-down/linux)
(static-networking->hurd-pfinet-options): New procedures.
(static-networking-shepherd-service): New procedure.
(static-networking-shepherd-services): Rewrite in terms of the above.
(static-networking-service): Deprecate.  Adjust to new
'static-networking' API.
(%base-services): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* gnu/system/hurd.scm (%base-services/hurd): Likewise, and separate
'loopback' from 'networking'.
* gnu/build/hurd-boot.scm (set-hurd-device-translators): Remove
"servers/socket/2".
* gnu/tests/networking.scm (run-openvswitch-test)["networking has
started on ovs0"]: Check for 'networking instead of 'networking-ovs0,
which is no longer provided.
* doc/guix.texi (Networking Setup): Document the new interface.  Remove
documentation of 'static-networking-service'.
(Virtualization Services): Change Ganeti example to use the new
interface.
2021-12-12 23:20:49 +01:00
Ricardo Wurmus
9bc0f45df5
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-12-05 19:17:41 +01:00
Mathieu Othacehe
3354e41c1e
system: vm: Remove the vga argument.
* gnu/system/vm.scm (common-qemu-options): Remove the "-vga std" argument that
is the default since QEMU 2.2.

Suggested-by: Attila Lendvai <attila@lendvai.name>
2021-12-03 14:25:57 +01:00
Attila Lendvai
b42bfbdfe5
guix system vm: Add --no-graphic CLI argument.
It configures QEMU to use the tty it was started in for IO (as opposed to
opening a separate graphical window).  This enables copy-pasting and
scrollback.  Exit QEMU with C-a x.

* gnu/system/vm.scm (system-qemu-image/shared-store-script): Also add the
'-nographic' QEMU argument when called with #:graphic? #false.
* guix/scripts/system.scm (system-derivation-for-action): Propagate
the #:graphic? keyword arg.
(perform-action): Add and propagate the #:graphic? keyword arg.
(show-help): Add --no-graphic CLI arg.
(%options): Process the new --no-graphic CLI arg.
(process-action): Feed in the CLI arg through the #:graphic? keyword arg.
* doc/guix.texi (Invoking guix system): Add example to combine guix system and
invoking the vm start script into one command.  Split the description of the
various options into separate paragraphs.  Add a paragraph to describe
--no-graphic.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-03 14:18:32 +01:00
Josselin Poiret
adce91a3ec
gnu: system: Add LUKS2 support for the root file system.
* gnu/bootloader/grub.scm (grub-configuration-file): Add 'insmod
luks2'.
* gnu/system/mapped-devices.scm (open-luks-device): Create
'/run/cryptsetup/' directory.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-01 17:51:37 +01:00
Ludovic Courtès
b15e543d30
Merge branch 'master' into core-updates-frozen 2021-11-23 11:29:38 +01:00
Josselin Poiret
9685c0637d
doc: Add new Swap Space section.
* doc/guix.texi (operating-system Reference): Update swap-devices.
* doc/guix.texi (Swap Space): Add it.
* gnu/system/examples/desktop.tmpl: Add swap-devices example.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:28 +01:00
Josselin Poiret
0831dfab75
system: Add swap flags.
* gnu/system/file-systems.scm (swap-space)[priority, discard?]: Add
them.
* guix/build/syscalls.scm (SWAP_FLAG_PREFER, SWAP_FLAG_PRIO_MASK,
SWAP_FLAG_PRIO_SHIFT, SWAP_FLAG_DISCARD): Add them.
* gnu/build/file-systems.scm (swap-space->flags-bit-mask): Add it.
* gnu/services/base.scm (swap-service-type): Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:27 +01:00
Josselin Poiret
133a61ae26
system: Rework swap space support, add dependencies.
* gnu/system/file-systems.scm (swap-space): Add it.
* gnu/system.scm (operating-system)[swap-devices]: Update comment.
* gnu/services/base.scm (swap-space->shepherd-service-name,
swap-deprecated->shepherd-service-name, swap->shepherd-service-name):
Add them.
* gnu/services/base.scm (swap-service-type, swap-service): Use the new
records.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:27 +01:00
Ludovic Courtès
aaf210888c
vm: <virtual-machine> defaults to using 'qemu-minimal'.
'qemu-minimal' is enough for system tests, which is the main (only?) use
of <virtual-machine>.

* gnu/system/vm.scm (<virtual-machine>)[qemu]: Default to QEMU-MINIMAL.
2021-11-20 23:11:44 +01:00
Ludovic Courtès
3a317f7476
Merge branch 'master' into core-updates-frozen 2021-11-17 23:43:14 +01:00
Ryan Sundberg
096a2bf8c5
image: Support generating GPT images via partition-table-type.
* gnu/image.scm (<image>)[partition-table-type]: New field.
* gnu/system/image.scm: Implement partition-table-type logic for
genimage.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-11-12 12:06:58 +00:00
Efraim Flashner
1c94392a13
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-11-08 09:06:14 +02:00
Ludovic Courtès
5eb5c0789f
file-systems: Validate the 'flags' field.
Fixes <https://issues.guix.gnu.org/51425>.
Reported by Jonathan Brielmaier <jonathan.brielmaier@web.de>.

* gnu/system/file-systems.scm (invalid-file-system-flags)
(%validate-file-system-flags): New procedures.
(validate-file-system-flags): New macro.
(<file-system>)[flags]: Add 'sanitize' property.
2021-11-07 23:10:41 +01:00
Mathieu Othacehe
e486b2b674
Merge remote-tracking branch 'signed/master' into core-updates 2021-10-18 14:37:26 +00:00
Ludovic Courtès
d1053f8969
system: hurd: Add 'info-reader' to %BASE-PACKAGES/HURD.
* gnu/system/hurd.scm (%base-packages/hurd): Add INFO-READER.
2021-10-18 10:00:50 +02:00
Ludovic Courtès
f513afa37f
system: image: Ensure Hurd images are cross-compiled if needed.
Fixes regression introduced in d5073fd113,
whereby childhurd dependencies such as 'hurd' would erroneously be
attempted to build natively on x86_64-linux.

* gnu/system/images/hurd.scm (hurd-disk-image)[platform]: New field.
2021-10-18 10:00:50 +02:00
Marius Bakke
0f77e50139
Merge branch 'master' into core-updates-frozen 2021-10-14 00:01:12 +02:00
Tobias Geerinckx-Rice
ec46a5338d
linux-initrd: Support checking NTFS volumes on boot.
* gnu/system/linux-initrd.scm (file-system-packages): Add ntfsfix/static
when needed.
2021-10-13 01:20:19 +02:00
Mathieu Othacehe
a1eca979fb
Merge remote-tracking branch 'origin/master' into core-updates-frozen. 2021-10-12 17:46:23 +00:00
Mathieu Othacehe
d5073fd113
gnu: Add platform support.
* gnu/platform.scm: New file.
* gnu/platforms/arm.scm: Ditto.
* gnu/platforms/hurd.scm: Ditto.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add them.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-11 12:05:39 +00:00
Tobias Geerinckx-Rice
69f37702df
file-systems: Fix <file-system> skip-check-if-clean? default.
Let this be a warning against—even cautiously and deliberately—using
double negatives.  You shall stare, but you shall not see.

* gnu/system/file-systems.scm (<file-system>): Fix the default
skip-check-if-clean? value to match the documentation and the intention.
2021-09-24 21:11:19 +02:00
Tobias Geerinckx-Rice
cd19c920b7
linux-initrd: Support XFS.
* gnu/system/linux-initrd.scm (file-system-packages):
Add xfs_repair/static when needed.
(file-system-type-modules): Add ‘xfs’ module when needed.
2021-09-23 18:17:17 +02:00
Tobias Geerinckx-Rice
90604348e1
uuid: Support XFS.
* gnu/system/uuid.scm (string->xfs-uuid): New procedure.
(%uuid-parsers, %uuid-printers): Add ‘xfs’ file system type.
2021-09-23 18:17:17 +02:00
Tobias Geerinckx-Rice
15489291d9
linux-initrd: Include only the single ‘bcachefs’ binary.
* gnu/system/linux-initrd.scm (file-system-packages): Substitute
bcachefs/static for bcachefs-tools/static.
2021-09-23 18:17:16 +02:00
Tobias Geerinckx-Rice
68b219b9f4
gnu: Don't abuse check-btrfs-file-system to scan.
It was never guaranteed to be run for non-root file systems.  It was for
root file systems only due to a bug now fixed.

* gnu/build/file-systems.scm (check-btrfs-file-system): Don't invoke
‘btrfs device scan’ here.
* gnu/system/linux-initrd.scm (raw-initrd): Do so here if any btrfs file
systems are present.
2021-09-23 18:17:16 +02:00
Tobias Geerinckx-Rice
602994847b
file-systems: Support forced checks & repairs.
* gnu/build/file-systems.scm (check-ext2-file-system)
(check-bcachefs-file-system, check-btrfs-file-system)
(check-fat-file-system, check-jfs-file-system, check-f2fs-file-system)
(check-ntfs-file-system, check-file-system): Take and honour new FORCE?
and REPAIR arguments.  Update the docstring.  Adjust all callers.
* gnu/system/file-systems.scm <file-system>: Add new SKIP-CHECK-IF-CLEAN?
and REPAIR fields.
(file-system->spec, spec->file-system): Adjust accordingly.
* gnu/build/linux-boot.scm (mount-root-file-system): Take new
SKIP-CHECK-IF-CLEAN? and REPAIR keyword arguments.  Thread them through
to CHECK-FILE-SYSTEM.
* doc/guix.texi (File Systems): Document both new <file-system> options.
2021-09-23 18:17:15 +02:00
Ludovic Courtès
d9dfbf886d
Merge branch 'master' into core-updates-frozen 2021-09-07 14:19:08 +02:00
Marius Bakke
b029be2ee0
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/bioinformatics.scm
	gnu/packages/cmake.scm
	gnu/packages/curl.scm
	gnu/packages/emacs-xyz.scm
	gnu/packages/gpodder.scm
	gnu/packages/music.scm
	gnu/packages/patches/glibc-bootstrap-system.patch
	gnu/packages/python-xyz.scm
	gnu/packages/shells.scm
	gnu/packages/statistics.scm
2021-07-29 22:34:57 +02:00
Christopher Lemmer Webber
45235e67e4
system: Add (gnu system setuid).
I flubbed and somehow when including the patch series, this got dropped.
Oops... should fix things again.

* gnu/system/setuid.scm: New file.
2021-07-29 13:09:48 -04:00
Maxim Cournoyer
da4e409483
Migrate to the new 'targets' field of bootloader-configuration.
The old 'target' field is deprecated; adjust the sources to use the new
'targets' one instead.

* doc/guix-cookbook.texi<target>: Replace by 'targets'.
* gnu/bootloader/grub.scm: Likewise.
* gnu/installer/parted.scm: Likewise.
* gnu/machine/digital-ocean.scm: Likewise.
* gnu/system/examples/asus-c201.tmpl: Likewise
* gnu/system/examples/bare-bones.tmpl: Likewise
* gnu/system/examples/bare-hurd.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/examples/vm-image.tmpl: Likewise
* gnu/system/examples/yggdrasil.tmpl: Likewise
* gnu/system/hurd.scm: Likewise
* gnu/system/images/hurd.scm: Likewise
* gnu/system/images/novena.scm: Likewise
* gnu/system/images/pine64.scm: Likewise
* gnu/system/images/pinebook-pro.scm: Likewise
* gnu/system/images/rock64.scm: Likewise
* gnu/system/install.scm: Likewise
* gnu/system/vm.scm: Likewise
* gnu/tests.scm: Likewise
* gnu/tests/ganeti.scm: Likewise
* gnu/tests/install.scm: Likewise
* gnu/tests/nfs.scm: Likewise
* gnu/tests/telephony.scm: Likewise
* tests/boot-parameters.scm: Likewise
* tests/system.scm: Likewise
2021-08-29 01:05:26 -04:00
Mathieu Othacehe
1dbed7e098
images: pinebook-pro: Fix the agetty baud rate.
* gnu/system/images/pinebook-pro.scm (pinebook-pro-barebones-os): Fix the
agetty baud rate.
2021-08-28 17:47:12 +02:00
Oleg Pykhalov
b948ab8b56
services: slim: Add pam-gnupg support.
* gnu/system/pam.scm (unix-pam-service): Add account and session PAM entries
for pam-gnupg.  Don't pass "#f" to "allow-root?" argument, because "lambda*"
already does this by default.
* doc/guix.texi (X Window): Document this.
* gnu/services/xorg.scm (<slim-configuration>)[gnupg?]: New record field.
(slim-pam-service): Pass "#:gnupg?" argument to "unix-pam-service".
2021-08-17 01:10:25 +03:00
Christopher Lemmer Webber
9455143907
Update copyright/name notices for Christine Lemmer-Webber.
* doc/guix-cookbook.texi: Update copyright/name for Christine Lemmer-Webber.
* gnu/build/image.scm: Likewise.
* gnu/build/vm.scm: Likewise.
* gnu/packages/admin.scm: Likewise.
* gnu/packages/assembly.scm: Likewise.
* gnu/packages/audio.scm: Likewise.
* gnu/packages/backup.scm: Likewise.
* gnu/packages/check.scm: Likewise.
* gnu/packages/databases.scm: Likewise.
* gnu/packages/emacs-xyz.scm: Likewise.
* gnu/packages/finance.scm: Likewise.
* gnu/packages/gnupg.scm: Likewise.
* gnu/packages/guile-xyz.scm: Likewise.
* gnu/packages/guile.scm: Likewise.
* gnu/packages/haskell-xyz.scm: Likewise.
* gnu/packages/linux.scm: Likewise.
* gnu/packages/mail.scm: Likewise.
* gnu/packages/password-utils.scm: Likewise.
* gnu/packages/perl.scm: Likewise.
* gnu/packages/python-web.scm: Likewise.
* gnu/packages/python-xyz.scm: Likewise.
* gnu/packages/python.scm: Likewise.
* gnu/packages/sphinx.scm: Likewise.
* gnu/packages/ssh.scm: Likewise.
* gnu/packages/xdisorg.scm: Likewise.
* gnu/services/networking.scm: Likewise.
* gnu/system/vm.scm: Likewise.
2021-08-15 14:15:37 -04:00
Ludovic Courtès
8b9a5641bc
system: install, hurd: Use 'setuid-programs'.
This is a followup to a7ac19851b.

* gnu/system/install.scm (installation-os)[setuid-programs]: Use
'setuid-program'.
* gnu/system/hurd.scm (%setuid-programs/hurd): Use 'file-like->setuid-program'.
2021-08-12 12:34:13 +02:00
Ludovic Courtès
0e47fcced4
Merge branch 'master' into core-updates 2021-07-18 19:50:01 +02:00
Maxim Cournoyer
11f0698243
pack: Streamline how files are included in tarballs.
Thanks to Guillem Jover <guillem@debian.org> on the OFTC's #debian-dpkg
channel for helping with troubleshooting.

Letting GNU Tar recursively walk the complete files hierarchy side-steps the
risks associated with providing a list of file names:

1. Duplicated files in the archive (recorded as hard links by GNU Tar)
2. Missing parent directories.

The above would cause dpkg to malfunction, for example by aborting early and
skipping triggers when there were missing parent directories.

* guix/scripts/pack.scm (self-contained-tarball/builder): Do not call
POPULATE-SINGLE-PROFILE-DIRECTORY, which creates extraneous files such as
/root.  Instead, call POPULATE-STORE and INSTALL-DATABASE-AND-GC-ROOTS
individually to more precisely generate the file system.  Replace the list of
files by the current directory, "." and streamline the way options are passed.
* gnu/system/file-systems.scm (reduce-directories): Remove procedure.
* tests/file-systems.scm ("reduce-directories"): Remove test.
2021-07-18 02:10:49 -04:00
Efraim Flashner
49e2e75ced
gnu: %guile-3.0-static-stripped: Rename to %guile-static-stripped.
* gnu/packages/make-bootstrap.scm (%guile-3.0-static-stripped): Rename
to %guile-static-stripped.
(%guile-bootstrap-tarball): Adjust accordingly.
* gnu/system/linux-initrd.scm (expression->initrd): Use
%guile-static-stripped as default guile.
* doc/guix.texi (initial RAM disk)[expression->initrd]: Adjust
documentation accordingly.
2021-07-08 09:39:05 +03:00
Maxim Cournoyer
7cde70c7f8
file-systems: Ensure compared file names are both absolute or relative.
* gnu/system/file-systems.scm (file-prefix?): Return #f unless both file names
are absolute or relative.

Reported-by: Ludovic Courtès <ludo@gnu.org>
2021-07-03 22:29:13 -04:00
Maxim Cournoyer
4f3bdc8f21
pack: Prevent duplicate files in tar archives.
Tar translate duplicate files in the archive into hard links.  These can cause
problems, as not every tool support them; for example dpkg doesn't.

* gnu/system/file-systems.scm (reduce-directories): New procedure.
(file-prefix?): Lift the restriction on file prefix.  The procedure can be
useful for comparing relative file names.  Adjust doc.
(file-name-depth): New procedure, extracted from ...
(btrfs-store-subvolume-file-name): ... here.
* guix/scripts/pack.scm (self-contained-tarball/builder): Use
reduce-directories.
* tests/file-systems.scm ("reduce-directories"): New test.
2021-06-29 14:53:21 -04:00
Tobias Geerinckx-Rice
1baaf599a4
vm: Update deprecated QEMU option syntax.
Fixes:
  warning: short-form boolean option 'readonly' deprecated
  Please use readonly=on instead

* gnu/system/vm.scm (common-qemu-options): Use it instead.
2021-06-25 00:38:41 +02:00
Marius Bakke
4ea6852c5f
Merge branch 'master' into core-updates 2021-05-22 17:21:57 +02:00
Tobias Geerinckx-Rice
5fa46ca96d
Revert "vm: Autoload (gnu build vm)."
This reverts commit a67c00f4f7 in an
attempt to fix <http://issues.guix.gnu.org/48496>.
2021-05-18 16:37:18 +02:00
Ludovic Courtès
c2b183e13d
vm: Remove unused imports.
* gnu/system/vm.scm (gnu): Remove unused imports.
2021-05-17 23:59:58 +02:00
Ludovic Courtès
a67c00f4f7
vm: Autoload (gnu build vm).
* gnu/system/vm.scm: Autoload (gnu build vm), which was pulling in (sqlite3).
2021-05-17 23:59:58 +02:00
Ludovic Courtès
25487c3fe6
Merge branch 'master' into core-updates 2021-05-15 22:55:24 +02:00
Maxim Cournoyer
945ad48cd8
system: vm-image.tmpl: Add a crutch to allow refreshing the resolution.
Inspired by
1270b2e209.
The price to pay is about 5% of a CPU core usage in the guest in the worst
scenario.

* gnu/system/examples/vm-image.tmpl
(auto-update-resolution-crutch): New mcron job.
[services]: Extend the mcron-service with it.
2021-05-10 10:18:19 -04:00
Maxim Cournoyer
3ab48ed6cd
gnu: system: Add SPICE capability to the VM image.
* gnu/system/examples/vm-image.tmpl (services)
[spice-vdagent-service-type]: Add service.
[slim-service-type] <xorg-configuration>: Add the xf86-video-qxl module.
2021-05-06 16:51:49 -04:00
Ludovic Courtès
2e4808465d
locale: Remove glibc 2.29 from '%default-locale-libcs'.
Having 2.29 is most likely no longer justified.  Removing it reduces the
closure size returned by:

  guix size $(guix system build gnu/system/install.scm)

from 1.6G to 1.5G.

* gnu/system/locale.scm (%default-locale-libcs): Remove GLIBC-2.29.
2021-05-04 14:19:11 +02:00
Efraim Flashner
fcc39864db
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts:
	gnu/local.mk
	gnu/packages/boost.scm
	gnu/packages/chez.scm
	gnu/packages/compression.scm
	gnu/packages/crates-io.scm
	gnu/packages/docbook.scm
	gnu/packages/engineering.scm
	gnu/packages/gcc.scm
	gnu/packages/gl.scm
	gnu/packages/gtk.scm
	gnu/packages/nettle.scm
	gnu/packages/python-check.scm
	gnu/packages/python-xyz.scm
	gnu/packages/radio.scm
	gnu/packages/rust.scm
	gnu/packages/sqlite.scm
	guix/build-system/node.scm
2021-04-16 14:39:48 +03:00
Mathieu Othacehe
98bf60bf4f
system: vm: Add a memory-size argument to system-docker-image.
* gnu/system/vm.scm (system-docker-image): Add a memory-size argument and pass
it to expression->derivation-in-linux-vm.
2021-04-12 14:12:49 +02:00
Maxim Cournoyer
bdc96f6e0e
system: vm: Set a larger value for the msize option of the 9p file system.
Fixes <https://issues.guix.gnu.org/47225>.

* gnu/system/vm.scm (%default-msize-value): New variable.
(%linux-vm-file-systems): Use it as the value of the msize option.
(mapping->file-system): Likewise.

Reported-by: Leo Famulari <leo@famulari.name>
2021-04-08 15:12:01 -04:00
Christopher Baines
a8448da0f4
Merge branch 'master' into core-updates 2021-03-06 00:18:30 +00:00
Ludovic Courtès
60fd4118f7
system: vm: Use Guile 3.0 in Docker images.
* gnu/system/vm.scm (system-docker-image): Use GUILE-3.0.
2021-02-25 11:29:35 +01:00
Christopher Baines
7c5e5e0e0f
system: hurd: Have the static networking provision 'networking.
Some services require networking, I'm looking at the Guix Build Coordinator
agent.  Networking seems to work in the childhurd VM, so I think this change
makes sense.

* gnu/system/hurd.scm (%base-services/hurd): Add 'networking to the provision
parameter for the static-networking service.
2021-02-22 20:44:58 +00:00
Marius Bakke
4ac9db0d75
image: Add rock64 support.
* gnu/system/images/rock64.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
2021-02-21 21:39:38 +01:00
Mathieu Othacehe
6e8cdf1d26
scripts: system: Accept <image> records as input.
* guix/scripts/system.scm (system-derivation-for-action): Replace "os"
argument by "image". Remove "image-size", "image-type", "label" and
"volatile-root?"  arguments.
(perform-action): Ditto.
(process-action): Construct the <image> record and pass it to "perform-action"
procedure.
* tests/guix-system.sh: Adapt accordingly.
* gnu/system/images/hurd.scm: Return the default image.
* gnu/system/images/novena.scm: Ditto.
* gnu/system/images/pine64.scm: Ditto.
* gnu/system/images/pinebook-pro.scm Ditto.
2021-02-17 10:57:02 +01:00
Mathieu Othacehe
ee2a5da80a
scripts: system: Remove 'vm-image' command.
Remove the 'vm-image' command that has been superseded by the 'image'
command.

* gnu/system/vm.scm (system-qemu-image): Remove it.
* guix/scripts/system.scm (system-derivation-for-action): Mark 'vm-image'
command as deprecated and use the image API to produce the VM image.
(perform-action, show-help): Adapt accordingly.
* tests/guix-system.sh: Ditto.
* doc/guix.texi (Invoking guix system,
Running Guix in a VM): Ditto.
* etc/completion/fish/guix.fish: Ditto.
* etc/completion/zsh/_guix: Ditto.
2021-02-17 10:52:28 +01:00
Christopher Baines
e740cc6140
Merge branch 'master' into core-updates 2021-02-03 09:57:35 +00:00
Caliph Nomble
423653b4ad
images: pinebook-pro: Fix default serial port.
* gnu/system/images/pinebook-pro.scm (pinebook-pro-barebones-os)[services]:
Start agetty on ttyS2 instead of ttyS0.
2021-01-20 13:44:14 +01:00
Leo Prikler
6c5112dbb3
services: Do not warn, when duplicate users are eq?.
* gnu/system/shadow.scm (account-activation): Delete duplicate (eq?) users
and groups before transforming them to specs and asserting, that names are
unique.
2021-01-20 09:04:59 +01:00
Leo Prikler
239af11a69
shadow: End duplicate warnings with new lines.
The change from formatted message causes the line to no longer automatically
be ended.  This will need to be reverted once again, when duplicate names
become hard errors.

* gnu/system/shadow.scm (assert-unique-account-names)
(assert-unique-group-names): End format strings in ~%.
2021-01-20 09:04:57 +01:00
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