Commit graph

1197 commits

Author SHA1 Message Date
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
Maxim Cournoyer
65e8472a4b
system: Remove nss-certs from OS templates, adjust doc.
This is a follow-up to commit 86afaadb51 ("system: Add 'nss-certs' to
%base-packages-networking.")

* doc/guix-cookbook.texi (Running Guix on a Linode Server): Remove nss-certs
from operating system's packages field.
(Running Guix on a Kimsufi Server): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
(X.509 Certificates): Adjust to mention nss-certs *is* part of %base-packages.
* gnu/installer/services.scm (%system-services): Remove recommendation to
install nss-certs.
* gnu/system/examples/bare-bones.tmpl (host-name): Remove obsolete comments.
* gnu/system/examples/desktop.tmpl (packages): Remove nss-certs.
* gnu/system/examples/lightweight-desktop.tmpl (packages): Likewise.
* gnu/system/examples/plasma.tmpl (packages): Likewise.
* gnu/system/examples/raspberry-pi-64-nfs-root.tmpl (packages): Likewise.
* gnu/system/examples/raspberry-pi-64.tmpl (packages): Likewise.
* gnu/system/examples/vm-image.tmpl (packages): Likewise.
* gnu/system/images/orangepi-r1-plus-lts-rk3328.scm (packages): Likewise.
* gnu/system/images/pine64.scm (packages): Likewise.
* gnu/system/install.scm (installation-os) [packages]: Likewise.

Change-Id: If09123a69b987178bcb0aab61c4570c14fc1286f
2024-04-18 10:43:06 -04:00
Ludovic Courtès
9f1ef20114
linux-initrd: Gracefully handle lack of “modules.builtin” file.
Fixes a regression introduced in
8f8ec56052, whereby passing a “fake”
kernel package would no longer work.

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

* gnu/system/linux-initrd.scm (flat-linux-module-directory)[build-exp]:
Gracefully handle lack of “modules.builtin” file.

Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I3acf48123b20f0b6a3b9cc0bf22f76cec3e64361
2024-04-17 12:13:01 +02:00
Ludovic Courtès
d33965908d
vm: Always use a native emulator in ‘guix system vm’.
Suggested by Zheng Junjie <zhengjunjie@iscas.ac.cn>.

* gnu/system/vm.scm (system-qemu-image/shared-store-script)[qemu-exec]:
Wrap first element in ‘with-parameters’.

Change-Id: Iab9905aaa7e80bad0372c1ee7c3ea88a89564f8f
2024-04-17 12:13:01 +02:00
Ludovic Courtès
49f82fca41
mapped-devices: luks: Specify modules needed at the top-level.
Fixes <https://issues.guix.gnu.org/70266>.

* gnu/system/mapped-devices.scm (luks-device-mapping)[modules]: New
field.
(open-luks-device): Remove non-top-level ‘use-modules’ form.
* gnu/system/linux-initrd.scm (raw-initrd): Remove modules that were
added specifically for ‘luks-device-mapping’.

Change-Id: I4253c3dd5e3cbcee41ec84fd57227abd428d1bd6
2024-04-08 00:17:57 +02:00
Ludovic Courtès
6062339156
mapped-devices: <mapped-device-type> can specify modules to import.
* gnu/system/mapped-devices.scm (<mapped-device-type>)[modules]: New
field.
(device-mapping-service-type): Honor it.
* gnu/system/linux-initrd.scm (raw-initrd): Likewise.

Change-Id: Icc702cb6f281741975e33203f87fbc1ffa9856da
2024-04-08 00:13:25 +02:00
Zheng Junjie
16c7130835
vm: If not the same local architecture, don't enable kvm.
* gnu/system/vm.scm (common-qemu-options): Add target keyword.

Change-Id: Ic9bf18cf60ac5ce623289df31ea050a22c6e604e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-31 22:28:11 +02:00
Zheng Junjie
e6241de15a
vm: add arguments to use virt machine type for qemu-riscv64.
* gnu/system/vm.scm (system-qemu-image/shared-store-script): When target
riscv64, add arguments to set qemu virt machine type.

Change-Id: I974c82fdd2d5bfc01caff9e6411db38e472b5cd4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-31 22:28:01 +02:00
Zheng Junjie
88a300852f
linux-initrd: don't add hid-apple module for riscv64-linux.
* gnu/system/linux-initrd.scm(default-initrd-modules): when target-riscv64,
don't add hid-apple module.

Change-Id: I633468421db0cb1ebd61e0603021fa1c79038473
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-31 22:27:48 +02:00
Zheng Junjie
ad9832f82e
vm: When target riscv64-linux, use u-boot-qemu-riscv64-bootloader.
* gnu/system/vm.scm (virtualized-operating-system) When target riscv64-linux,
use u-boot-qemu-riscv64-bootloader. Add system, target keyword.

Change-Id: I22d64d00670a705e4b81427e44a83d504598b536
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-31 22:27:02 +02:00
Zheng Junjie
a5deb90fd4
vm: use #$ for kernel-arguments.
Use #$ allow cross-compile to with support current system kernel.

e.g. linux-libre-riscv64-generic.

* gnu/system/vm.scm(system-qemu-image/shared-store-script)
(linux-image-startup-command): use #$ for kernel-arguments.

Change-Id: I9d2e7df296ce590b95cd30996b33f8ca692ac1b1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-31 22:26:27 +02:00
Hilton Chain
8f8ec56052
linux-initrd: Avoid looking up builtin modules.
* gnu/system/linux-initrd.scm (flat-linux-module-directory)
[build-exp]<builtin-modules,modules-to-lookup>: New variables.
<modules>: Use ‘modules-to-lookup’ to avoid looking up builtin modules.

Change-Id: I60fdae0211bb6632508b1c63582e013e78186cd1
2024-03-09 09:21:19 +08:00