Commit graph

1208 commits

Author SHA1 Message Date
Sören Tempel
7aa855b05b
mapped-devices/luks: Add support for --allow-discards.
* gnu/system/mapped-devices.scm (open-luks-device): Support opening
LUKS devices with the --allow-discards option.
* gnu/system/mapped-devices.scm (luks-device-mapping-with-options):
Pass through the allow-discards? keyword argument.
* doc/guix.texi (Mapped Devices): Update documentation for the
luks-device-mapping-with-options procedure.

Co-authored-by: Sisiutl <sisiutl@egregore.fun>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: Iff82d7d548486f028d19f6aa35dd30ca194f57cc
2025-03-22 22:53:13 +09:00
Ludovic Courtès
5b4ae0b5c2
install: Use ‘shepherd-system-log-service-type’.
This is a followup to d0510dcd82, which
wrongfully assumed that this was already the case.

* gnu/system/install.scm (%installation-services): Replace
‘syslog-service-type’ by ‘shepherd-system-log-service-type’.

Change-Id: I349454b8d005c67d2c6d6b5475f74d16c9006006
2025-03-10 18:22:55 +01:00
Ludovic Courtès
5d66d005bd
vm: Export ‘file-system->mount-tag’ and ‘common-qemu-options’.
* gnu/system/vm.scm (file-system->mount-tag, common-qemu-options):
Export.

Change-Id: I7228e5c02f07f8c8633a64c86d9c81aa3cb2e8b7
2025-03-05 20:34:03 +01:00
Ludovic Courtès
9939677d15
vm: ‘common-qemu-options’ splits command-line tokens.
The result returned so far by ‘common-qemu-options’ assumed that it
would be passed to a shell.  This is the case when using
‘system-qemu-image/shared-store-script’ but possibly not in other cases.

* gnu/system/vm.scm (common-qemu-options): Add #:image-format.
[virtfs-option]: Return a list of strings instead of a single
"-virtfs xyz" string.  Update caller to use ‘append-map’.
Separate "-drive" string.

Change-Id: Ib07c27e2c4b2d222d7db2c612bb045d330bc7f68
2025-03-05 20:34:03 +01:00
Hilton Chain
2bb8ecbfbf
Revert "file-systems: %base-file-systems: Add tmpfs /run."
This reverts commit e88018be70.  Since this
change breaks current dbus-service-type, it would be better to wait
https://issues.guix.gnu.org/73494 finished.
2025-03-05 14:45:15 +08:00
Hilton Chain
e88018be70
file-systems: %base-file-systems: Add tmpfs /run.
* gnu/system/file-systems (%runtime-variable-data): New variable.
(%base-file-systems): Add it.
* doc/guix.texi (File Systems): Document it.
* gnu/services.scm (cleanup-gexp): Adjust accordingly.

Change-Id: I3a95e49d396fbb2577026aefc247cfe996c5f267
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-03-05 14:23:42 +09:00
Florian Pelz
7790e32556
system: default-skeleton-home-config: Include %base-home-services.
* gnu/system/shadow.scm (%default-skeleton-home-config): Follow
the news entry’s instructions to add %base-home-services.

Fixes: <https://issues.guix.gnu.org/75897>
Change-Id: Ieef976f9375791502e6156a978a032fbd4c2324d
2025-02-25 15:45:36 +01:00
Efraim Flashner
66daf46b41
gnu: Fix some misspellings.
Change-Id: I316652aff7418af4b8e83bea24638b1513f8aa97
2025-02-19 11:21:47 +02:00
Andreas Enge
9a41ec5762
gnu: guix-configuration: Add a chroot? parameter.
The parameter should take the values #t, #f or 'default.
In a container environment, 'default amounts to #f, otherwise it
amounts to #t.

* gnu/services/base.scm (guix-configuration)<chroot?>: New field.
(guix-shepherd-service): If chroot? is #f, add "--disable-chroot".
If it is #t or 'default, do nothing.
* gnu/system/linux-container.scm (containerized-operating-system):
If chroot? is 'default, replace it by #f.
* doc/guix.texi: Document the parameter.

Change-Id: I8b9c3f46ad8650fa6ed4acee947b4ae5d002d03d
2025-02-17 14:57:55 +01:00
Maxim Cournoyer
5074871043
build: marionette: Make it possible to reboot VM during tests.
* gnu/build/marionette.scm (make-marionette): Add 'reconnect=1' socket
parameter.
* gnu/system/vm.scm (common-qemu-options): Remove '-no-reboot' option.

Change-Id: I5e100543ddddba0aea3ebe4e2f5cb8b0261c0d73
2025-02-13 00:07:21 +09:00
Maxim Cournoyer
b78794f96d
system/vm: Fix virtual-machine bug.
The virtual-machine syntax would not accept a single operating-system field,
which was puzzling.

* gnu/system/vm.scm (virtual-machine): Add a pattern matching a single literal
'operating-system' field and value.

Change-Id: If207fd71df3a3f763b2e63229eafa82f63e80773
2025-02-13 00:07:21 +09:00
Yarl Baudig
41e192c922
gnu: pinebook-pro-image-type: augment partition offset.
* gnu/system/images/pinebook-pro.scm: augment partition offset
to make room for the bootloader.

Change-Id: I91a3758243a13960165d40b94efe017e6e059a22
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-01-01 13:38:27 +01:00
Janneke Nieuwenhuizen
d32a5f6eed
system: examples: Fix typo in bare-hurd.tmpl.
* gnu/system/examples/bare-hurd.tmpl: Add missing line-continuation backslash.

Change-Id: Ib918cff3ca96f2a199869e876b6a75fedb09c983
2024-12-18 21:31:43 +01:00
Giacomo Leidi
3eb720bd0b
system: pam: Export pam records predicates.
* gnu/system/pam.scm: Export pam-service-name?, pam-entry? and pam-limits-entry?.

Change-Id: I609acfcaae85b4969dc385b72b307e470f5a246e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:40 +01:00
Giacomo Leidi
a1ecd7f56c
system: Add /etc/subuid and /etc/subgid support.
This commit adds a Guix System service to handle allocation of subuid
and subgid requests.  Users that don't care can just add themselves as a
subid-range and don't need to specify anything but their user name.
Users that care about specific ranges, such as possibly LXD, can specify
a start and a count.

* doc/guix.texi (Miscellaneous Services): Document it.
* gnu/build/activation.scm (activate-subuids+subgids): New variable.
* gnu/local.mk: Add gnu/tests/shadow.scm.
* gnu/system/accounts.scm (sexp->subid-range): New variable.
* gnu/system/shadow.scm (%root-subid): New variable;
(subids-configuration): new record;
(subid-range->gexp): new variable;
(assert-valid-subids): new variable;
(delete-duplicate-ranges): new variable;
(subids-activation): new variable;
(subids-extension): new record;
(append-subid-ranges): new variable;
(subids-extension-merge): new variable;
(subids-service-type): new variable.
* gnu/tests/shadow.scm (subids): New system test.

Change-Id: I3755e1c75771220c74fe8ae5de1a7d90f2376635
Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:40 +01:00
Giacomo Leidi
337037d22c
accounts: Add /etc/subid and /etc/subgid allocation logic.
This commit adds allocation logic for subid ranges. Subid ranges are
ranges of contiguous subids that are mapped to a user in the host
system. This patch implements a flexible allocation algorithm allowing
users that do not want (or need) to specify details of the subid ranges
that they are requesting to avoid doing so, while upholding requests of
users that need to have specific ranges.

* gnu/build/accounts.scm (%subordinate-id-min): New variable;
(%subordinate-id-max): new variable;
(%subordinate-id-count): new variable;
(subordinate-id?): new variable;
(&subordinate-id-error): new variable;
(&subordinate-id-overflow-error): new variable;
(&illegal-subid-range-error): new variable;
(&specific-subid-range-expected-error): new variable;
(&generic-subid-range-expected-error): new variable;
(within-interval?): new variable;
(allocate-unused-range): new variable;
(allocate-generic-range): new variable;
(allocate-specific-range): new variable;
(reserve-subids): new variable;
(range->entry): new variable;
(entry->range): new variable;
(allocate-subids): new variable;
(subuid+subgid-databases): new variable.

* gnu/system/accounts.scm (subid-range-end): New variable;
(subid-range-has-start?): new variable;
(subid-range-less): new variable.

* test/accounts.scm: Test them.

Change-Id: I8de1fd7cfe508b9c76408064d6f498471da0752d
Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:40 +01:00
Giacomo Leidi
58f430f69e
accounts: Add /etc/subuid and /etc/subgid support.
This commit adds a new record type, <subid-entry> and serializers
and deserializers for it in (gnu build accounts).  Each instance of this
record represents one line in either /etc/subuid or /etc/subgid.  Since
Shadow uses the same representation for both files, it should be ok if
we do it as well.

This commit adds also <subid-range>, a user facing representation of
<subid-entry>. It is supposed to be usable directly in OS configurations.

* gnu/build/accounts.scm (subid-entry): New record;
(write-subgid): add serializer for subgids;
(write-subuid): add serializer for subuids;
(read-subgid): add serializer for subgids;
(read-subuid): add serializer for subuids.
* gnu/system/accounts.scm (subid-range): New record.
* test/accounts.scm: Test them.

Change-Id: I6b037e40e354c069bf556412bb5b626bd3ea1b2c
Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:40 +01:00
Janneke Nieuwenhuizen
7c1199828b
system: examples: Update instructions in {bare,devel}-hurd64.tmpl.
* gnu/system/examples/bare-hurd64.tmpl: Remove --machine q35, there seems to
be no longer any need for this.  Mention that there is no login prompt.
* gnu/system/examples/devel-hurd64.tmpl: Likewise.

Change-Id: Ib918cff3ca96f2a199869e876b6a75fedb09c983
2024-12-18 17:00:13 +01:00
Maxim Cournoyer
2b32a38098
system/examples: Fix qemu invocation in comment of bare-hurd64.tmpl.
* gnu/system/examples/bare-hurd64.tmpl: Add missing backslash escape.

Change-Id: I84c5d37c6efb005a14f15b96432360628003d87b
2024-12-18 23:28:18 +09:00
Maxim Cournoyer
118d6429c8
system/examples: Use latest QEMU for hurd examples.
* gnu/system/examples/bare-hurd64.tmpl: Replace qemu@7 with qemu in invocation
example.
* gnu/system/examples/devel-hurd64.tmpl: Likewise.

Change-Id: I3cdbff6f68b810feff1d9b2929a323498af3fd29
2024-12-18 23:28:18 +09:00
Maxim Cournoyer
2dc4a9cca3
system/examples: Fix git clone instructions in devel-hurd64.tmpl template.
* gnu/system/examples/devel-hurd64.tmpl: Fix git clone instructions in
comment.

Change-Id: Id82f3e5d7888355507ac90e86e3bff4c27e6fba1
2024-12-18 23:28:18 +09:00
Ludovic Courtès
2a5c003c53
services: shepherd: Default to 1.0.
* gnu/services/shepherd.scm (<shepherd-configuration>)[shepherd]:
Default to SHEPHERD-1.0.
* gnu/system/hurd.scm (%base-packages/hurd): Change to SHEPHERD-1.0.

Change-Id: I7b0c3041d61a6f5d89c9d6d3caf7a8eedf5d8ca5
2024-12-09 23:15:44 +01:00
Janneke Nieuwenhuizen
bd785af995
system: examples: Add devel-hurd64.tmpl.
This also updates comments and removes the comment about a very old
`bootstrap-profile' hack.

* gnu/system/examples/devel-hurd.tmpl (hurd-packages): New variable
(%hurd-devel-os): Use it.
* gnu/system/examples/devel-hurd64.tmpl: New file.

Change-Id: I54b6b0843f0dd635d89cca483ae43d23b20d21e8
2024-12-03 08:39:01 +01:00
Janneke Nieuwenhuizen
9e2eae54f9
system: examples: Add bare-hurd64.tmpl.
* gnu/system/examples/bare-hurd.tmpl: Update comments.
* gnu/system/examples/bare-hurd64.tmpl: New file.

Change-Id: I8d26afd19afaa8fb3558948b50b0efdc0f83f29c
2024-12-03 08:39:01 +01:00
Janneke Nieuwenhuizen
de5239b675
system: image: Add hurd64 image types.
* gnu/system/hurd.scm (%hurd64-default-operating-system-kernel,
%hurd64-default-operating-system): New variables.
* gnu/system/images/hurd.scm (hurd64-disk-image, hurd64-image-type,
hurd64-qcow2-image-type, hurd64-barebones-disk-image,
hurd64-barebones-qcow2-image): New variables.

* gnu/system/images/hurd.scm (hurd64-barebones-os): New variable.
2024-12-03 08:39:00 +01:00
Florian Pelz
84d5948ee0
install: Open info manuals that have region codes.
Because pt_PT and pt_BR have many differences, such as how
the word “file” gets translated, Guix’ pt_BR info manual is
called (guix.pt_BR) instead of (guix.pt).

* gnu/system/install.scm (log-to-info): Try region coded manual
file names.
(%installation-node-names): Add node names for pt_BR and zh_CN.

Change-Id: I89beebd323ee69ca83c22321c9d9e664b32cf6f3
2024-11-20 16:01:47 +01:00
Daniel Khodabakhsh
299ddd14d8
linux-initrd: Export ‘file-system-modules’.
* gnu/system/linux-initrd.scm (file-system-modules): Export.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I779efe280d2e3618adcae416eafc912babdce0a3
2024-11-18 10:58:42 +01:00
Janneke Nieuwenhuizen
687a2ccabc
installer: Add "Kernel" page to select the Hurd.
This adds a "Kernel" page to the installer with the option to (cross-) install
the Hurd, if applicable (only available on x86 machines for now).

* gnu/installer/newt.scm (kernel-page): New procedure.
(newt-installer)[kernel-page]: New field.
* gnu/installer/kernel.scm,
gnu/installer/newt/kernel.scm: New files.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* gnu/installer.scm (installer-steps): Use them to select kernel if
applicable.
* gnu/installer/newt/partition.scm (run-label-page): Default to "msdos" when
instaling the Hurd.
(run-fs-type-page): Add ext2 for the hurd.
(run-partitioning-page-partition): Remove `entire-encrypted' option when
installing the Hurd.
* gnu/installer/services.scm (system-services->configuration): Cater for the
Hurd with %base-services/hurd, and with %base-packages/hurd that must always
be set.
(%system-services): Change to procedure.  When installing the the Hurd, do not
recommend `ntp-service-type' and USE `openssh-sans-x' package for
`openssh-service-type'.
(system-service-none): New variable.
* gnu/installer/newt/services.scm (run-network-management-page): Include it
when installing the Hurd.
(run-desktop-environments-cbt-page): When installing the Hurd, recommend to
not select any desktop enviroment.  Update users.
* gnu/installer/parted.scm (efi-installation?): Return #f when installing for
the Hurd.
(create-ext2-file-system): New procedure.
(user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type,
format-user-partitions): Support `ext2'.
(<user-partition> partition->user-partition): Use `ext2' when installing the
Hurd.
(auto-partition!): Likewise.  No swap partition when installing the Hurd.
* gnu/installer/final.scm (install-system): Cater for cross installation of
the Hurd.
(bootloader-configuration): Use `grub-minimal-bootloader' when installing the
Hurd.
(user-partition-missing-modules): Cater for empty user-partitions.
(initrd-configuration, user-partitions->configuration): Cater for the Hurd.
* gnu/installer/steps.scm (format-configuration,
configuration->file): Cater for the Hurd.
* gnu/system/hurd.scm (%desktop-services/hurd): New variable.
* gnu/installer/tests.scm (choose-kernel): New procedure.
* gnu/tests/install.scm (gui-test-program): Use it.

Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36
2024-11-11 07:28:35 +01:00
Janneke Nieuwenhuizen
2390db7f46
system: examples: Add devel-hurd.tmpl.
This operating system specification for the Hurd creates a system that
supports building the guix package from git natively.

Do something like

    ./pre-inst-env guix system build --target=i586-pc-gnu \
       gnu/system/examples/devel-hurd.tmpl

    ./pre-inst-env guix system image --image-type=hurd-qcow2 --image-size=15G \
       --no-offload gnu/system/examples/devel-hurd.tmpl

    cp /gnu/store/...disk-image devel.img

    guix shell qemu -- qemu-system-i386 -enable-kvm -m 4096 \
     -device rtl8139,netdev=net0                            \
     -netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \
     -hda devel-hurd.img

    ssh -p 10022 root@localhost
    GUIX_PROFILE=/run/current-system/bootstrap-profile
    source $GUIX_PROFILE/etc/profile
    mkdir -p ~/src/guix
    cd src/guix
    git clone git://git.savannah.gnu.org/guix
    cd guix
    ./bootstrap
    ./configure --with-courage
    make

* gnu/system/examples/devel-hurd.tmpl: New file.

Change-Id: I097c7c00a9ab9602db7f8f3305827c815f308d1e
2024-11-11 07:28:33 +01:00
Janneke Nieuwenhuizen
6dbfe1a118
system: hurd: Remove qemu networking from %base-services/hurd.
This allows us to use %base-services/hurd for services in a Hurd config for a
real machine without removing static-networking.

* gnu/system/hurd.scm (%base-services/hurd): Factor networking out to...
(%base-services+qemu-networking/hurd): ..this new variable.
* gnu/system/examples/bare-hurd.tmpl (%hurd-os): Use it.
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Use it.
* gnu/system/images/hurd.scm (hurd-barebones-os): Use it.  Add comment about
QEMU and networking for a real machine.

Change-Id: I777a63410383b9bf8b5740e4513dbc1e9fb0fd41
2024-11-11 07:28:33 +01:00
Roman Scherer
886b410e6f
image: Add support for btrfs.
* gnu/build/image.scm (make-btrfs-image): New variable.
* gnu/system/image.scm (system-disk-image): Support btrfs.

Change-Id: I80a5b52ec478ce5927d6208e324cbb70282c647a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-10-14 14:08:43 +02:00
Tobias Geerinckx-Rice
7eddfea4a0
images: wsl2: Update comment.
* gnu/system/images/wsl2.scm (wsl-boot-program): Update privileged
program directory in a comment.

Change-Id: I65906cbfbcd17ff164837ad293dc4324314bfcf1
2024-09-08 02:00:00 +02:00
Tobias Geerinckx-Rice
0dd8e4c351
privilege: Add file-like->setuid-program helper.
* gnu/system/privilege.scm (file-like->setuid-program): New public
procedure.
* gnu/system/setuid.scm: Re-export it for compatibility.
(file-like->setuid-program): Remove this old version.
* gnu/services/docker.scm (singularity-setuid-programs): Use it (again).
* gnu/services/desktop.scm (enlightenment-privileged-programs): Likewise.

Change-Id: I8e41144438677a15cdadb3063651dbc780715497
2024-09-08 02:00:00 +02:00
Tobias Geerinckx-Rice
876c343bbf
uuid: Add support for exFAT.
We expect users to use the generic STRING->FAT-UUID procedure.
This is consistent with how we already treat FAT32 vs FAT16.
It is not consistent with how we export 8 different aliases for
STRING->DCE-UUID, but I'm unconvinced that would be better.

* gnu/system/uuid.scm (%uuid-parsers, %uuid-printers):
Add the ‘exfat’ file system type.

Change-Id: Ia31482716e4395f9f10f794f49fb31c9f330a2e3
2024-09-01 02:00:00 +02:00
Ludovic Courtès
9d17cda3d9
system: locale: ‘glibc-supported-locales’ uses zstd instead of xz.
This is a followup to c9666c120b.

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

* gnu/system/locale.scm (glibc-supported-locales): Change XZ to ZSTD.

Change-Id: Ie3cb5d50648a0698ce5246591fb405e4eb690af5
2024-09-09 17:17:55 +02:00
Josselin Poiret
ede5ae459b
gnu: %default-locale-libcs: Add glibc-2.35 and generalize for Hurd.
* gnu/system/locale.scm (%default-locale-libcs): Stop checking for Hurd, since
we have the same libc now.  Also add glibc-2.35 while the transition happens.

Change-Id: I1f4980d18184580f3a42a86ca244c8015df15269
2024-08-31 10:45:04 +02:00
Ludovic Courtès
ce40b1c655
install: Set ‘privileged-programs’ rather than ‘setuid-programs’.
* gnu/system/install.scm (installation-os)[setuid-programs]: Remove.
[privileged-programs]: New field.

Change-Id: I5c93f282f5ec790f13ac076e0ab0f6d59d92d59d
2024-08-19 16:41:07 +02:00
Ludovic Courtès
b51990057c
system: hurd: Empty default ‘privileged-programs’ list.
Fixes a bug whereby Hurd systems would find themselves including
‘%default-privileged-programs’ in addition to ‘%setuid-programs/hurd’.

* gnu/system/hurd.scm (%hurd-default-operating-system)[privileged-programs]:
New field.

Change-Id: I5b6a55a8df7e6af697d22166e9f483f6dd816e64
2024-08-19 16:36:44 +02:00
Tobias Geerinckx-Rice
71f0676a29
privilege: Add POSIX capabilities(7) support.
* gnu/system/privilege.scm (<privileged-program>): Add a field
representing the program's POSIX capabilities.
(privileged-program-capabilities): New public procedure.
* doc/guix.texi (Privileged Programs): Document it.
* gnu/build/activation.scm (activate-privileged-programs): Take a LIBCAP
package argument providing setcap(8) to apply said capabilities.
* gnu/services.scm (privileged-program->activation-gexp): Pass said
package argument where supported.  Include privileged-program-capabilities
in the compatibility hack.
2024-08-11 02:00:00 +02:00
Tobias Geerinckx-Rice
9099f8bdcc
system: (gnu system setuid) wraps (gnu system privilege).
* gnu/system/setuid.scm (setuid-program): Rewrite as syntax to create a
<privileged-program> record that is setuid by default.
(setuid-program?, setuid-program-program, setuid-program-setuid?)
(setuid-program-setgid?, setuid-program-user, setuid-program-group):
Alias their privileged-program equivalent.
2024-08-11 02:00:00 +02:00
Tobias Geerinckx-Rice
39471f2627
system: Add (gnu system privilege).
* gnu/system/privilege.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2024-08-11 02:00:00 +02:00
Richard Sent
579df5bc80
services: base: Add optional delayed mount of file-systems
Add a mechanism to only require mounting a subset of file-system entries
during early Shepherd initialization. Any file-system with additional Shepherd
service requirements (e.g. networking) is not required to provision
'file-systems.

* gnu/services/base.scm (file-system-shepherd-service): Splice
file-system-requirements into the Shepherd service requirement list.
(file-system-shepherd-services): Provision 'file-system only when file system
services without additional Shepherd requirements are started.
* gnu/system/file-systems.scm (file-system): Add shepherd-requirements field
to the file-system record. This field is used for adding additional Shepherd
requirements to a file-system Shepherd service.
* doc/guix.texi: Add documentation for file-system shepherd-requirements.

Change-Id: If0392db03d48e8820aa53df1df482c12ec72e1a5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-04 12:08:34 +02:00
Maxim Cournoyer
afacfa33ec
gnu: linux-libre: Enable Zstd compression of kernel modules.
This brings the on disk size of the kernel from 164 MiB to 144 MiB, or about
12%.

* gnu/packages/linux.scm (default-extra-linux-options)
[version>=5.13]: Enable CONFIG_MODULE_COMPRESS_ZSTD, else
CONFIG_MODULE_COMPRESS_GZIP.
(make-linux-libre*) [phases] {set-environment}: Set ZSTD_CLEVEL environment
variable to 19.
[native-inputs]: Add zstd.
* gnu/build/linux-modules.scm (module-regex): Add .zst to regexp.  Update doc.
(modinfo-section-contents): Extend support to Zstd compressed module.
(dot-ko): Register the 'zstd compression type.
(ensure-dot-ko, file-name->module-name, load-linux-module*)
(module-name->file-name/guess, write-module-name-database)
(write-module-alias-database, write-module-device-database): Update doc.
(module-name-lookup): Also consider zstd-compressed modules.
* gnu/installer.scm (installer-program): Add guile-zstd extension to gexp.
* gnu/system/linux-initrd.scm (flat-linux-module-directory): Likewise.
Decompress zstd-compressed modules for use in initrd.
* guix/profiles.scm (linux-module-database): Add guile-zstd extension to gexp.

Change-Id: Ide899dc5c58ea5033583b1a91a92c025fc8d901a
2024-05-29 22:01:23 -04:00
Lars-Dominik Braun
ed5bf620ea
mapped-devices: lvm: Add missing module import.
Tested with (locally fixed) lvm-separate-home-os system test.

* gnu/system/mapped-devices.scm (lvm-device-mapping): Add SRFI-1 to
modules.

Change-Id: I8c155b47c29004bdc59057391dfba94ce33bdbc2
2024-05-27 19:30:22 +02:00
Zheng Junjie
327a1f0779
system: images: Add visionfive2 module.
* gnu/system/images/visionfive2.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Change-Id: I8831f1148bcddb0d604e1174034fca85cd2887a1
2024-05-22 11:15:30 +08:00
Zheng Junjie
e5078ff321
image: Raise error when use both grub-efi* bootloader and not gpt image.
* gnu/system/image.scm: Switch Inversion logic, it allow we use customize
bootloader with gpt image.

Change-Id: I801327f6e826a37588b8f0f5246ca820e742f721
2024-05-22 11:15:29 +08:00
Massimo Zaniboni
efbdfe1900
file-systems: Add "virtiofs" to the list of pseudo file system types.
* gnu/system/file-systems.scm (%pseudo-file-system-types): Add "virtiofs"
to the list of pseudo file system types.

Change-Id: Ib1d99127e65f6543c592faec1c54bd0c5eae3ad7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-13 16:31:34 +02:00
Ludovic Courtès
5f89f45e74
linux-initrd: Further strip the static Guile.
‘guile-static-initrd’ weighs in at 46 MiB, compared to 54 MiB for
‘guile-static-stripped’ (15% reduction).

* gnu/packages/make-bootstrap.scm (make-guile-static-stripped): Add
‘directories-to-remove’ parameter and honor it.
(%guile-static-initrd): New variable.
* gnu/system/linux-initrd.scm (expression->initrd): Default to
‘%guile-static-initrd’.
* doc/guix.texi (Initial RAM Disk): Adjust accordingly.

Change-Id: I2baf06fed7a3698433e7c83b1d7726054a8c746e
2024-04-29 22:52:08 +02:00
Ludovic Courtès
6228a2b8ba
locale: Shrink ‘%default-locale-definitions’ from 34 to 10 locales.
This reduces the default set of locales from 92 MiB to 28 MiB.

* gnu/system/locale.scm (%default-locale-definitions): Reduce to 10
locales.

Change-Id: I3c092604301d69db591957bcfd62a062c3ac5ab0
2024-04-29 22:52:08 +02:00
Ludovic Courtès
0575933ac2
system: Remove ‘glibc-2.33’ from ‘%default-locale-libcs’.
The transition from glibc 2.33 to 2.35 was done in
c919bfefd9 (one year ago), so we can
assume that the backward-compatible locales are no longer needed by
default.

This removes 92 MiB from the system closure.

* gnu/system/locale.scm (%default-locale-libcs): Remove GLIBC-2.33.

Change-Id: I85948bbe6b2d424f9f158eeafdb5543688c66c6b
2024-04-29 22:44:06 +02:00