Commit graph

177172 commits

Author SHA1 Message Date
Rutherther
056dd112aa
installer: partition: Force msdos on Hurd.
Since Hurd always uses Legacy BIOS bootloader, do not offer GPT label.

* gnu/installer/newt/partition.scm (run-label-page): Force MSDOS for Hurd
target.

Change-Id: Ib8bb1175f85e8f6084683a747303e3e19f20be42
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14 10:46:41 +01:00
Rutherther
9448ec6fb2
install: Add guix-system-installer executable to system profile.
To allow users in headless consoles to use the graphical installer, add an
executable. This executable is referred to by the console motd, so users
in headless setups will get to know about it.

* gnu/system/install.scm
(installer-command-package): New variable.
(%installation-services): Use it, add it to the profile-service-type

Change-Id: Id2d07b3f190aa17c99c7667c3bb31ae696499dde
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5346
2026-01-14 09:17:35 +01:00
Rutherther
94f9177cf8
install: Show different motd in headless console.
motd is shown by the pam module, it doesn't support changing what motd gets
displayed easily. The only way to control it is by read permissions on
individual motd files, making files unreadable by the user logging in.

So instead of that, make a custom script that prints different motd,
checking if a temporary file exists. An environment variable would be better
suited for this purpose, but those aren't passed through by PAM.

* gnu/system/install.scm
(%installation-login-pam-service): New variable. Modified login pam service.
(%installation-console-login): New variable. Wrapper around login to create a
file for PAM rule.
(%installation-services): Use new login pam service and wrapper.

Change-Id: I5e05e604b3106390181190559ade62ca5e2db216
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14 09:17:34 +01:00
Rutherther
ab22501915
install: Register agetty on primary console on AArch64.
This adds the possibility to parse /proc/consoles to find a primary console.
Then, on AArch64 this is used in the installation image. On AArch64, the boot
usually happens with chosen device tree that contains the serial console.
On x86_64, this does not happen so often, so we keep the installation iso
minimal there.

The primary console is chosen, but there is a fallback to any non-virtual one.
Virtual console (/dev/tty0) is skipped, because that one can point to any
console, like /dev/tty1 and so on. So it's not safe to register agetty on it.

* gnu/build/linux-boot.scm (read-linux-consoles): New variable.
* gnu/services/base.scm (default-serial-console): Use primary console as
fallback.
* gnu/system/install.scm (%installation-services): Add agetty tty for
consoles.

Change-Id: Iae01f7bc85b5ffdef2e52b1d0710889915b0f54a
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14 09:17:33 +01:00
Rutherther
84a018b356
installer: network: Check response code to assess substitute availability.
This is to accomodate following situation:
- The proxy is up
- The substitute server is down

When that happens, 5xx is returned from the proxy, typically either Bad
Gateway or Gateway Timeout. This implies the substitute server is down.

Still, for checking if the user is online, we do not check the response code.
If there is a response, even 4xx, 5xx, it still means the user is online.

* gnu/installer/newt/network.scm
(url-alive?): Add optional argument to to check the response code.
(common-urls-alive?): Add the same argument, passing it to url-alive?
(check-substitute-availability): Assume offline when non-successful http code
returned.

Follow up of 9ea2174ba8.
Change-Id: I52ae8a49407009dd76ad5da3925355770bc25d0c

Change-Id: I99a77cb7332198bae84f28a00a6cc0409d5bf3b9
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5217
2026-01-14 09:16:50 +01:00
Janneke Nieuwenhuizen
0ac92150b1
installer: Add Hurd x86_64 as an option.
* gnu/installer/newt/kernel.scm (run-kernel-page): Rename "Hurd" to "Hurd
32-bit (experimental)".  On 64-bit, also offer "Hurd 64-bit (highly
experimental!)", and make these strings translatable.  Make "Linux Libre" the
first option.  Add a line break after "When in doubt...".  Upon re-entrry,
use pre-selected kernel as the default.  Make sure to always [re]set
%current-target-system, as this page may be revisited and another kernel
choice selected.
* gnu/installer/kernel.scm (kernel->configuration): Update accordingly.
* gnu/installer/final.scm (install-system): Also cater for the 64-bit Hurd by
simply adding --target=(%current-target-system).

Change-Id: I14cb2d2815265b8841c16cf9bcc3857b1024f507
2026-01-14 09:16:49 +01:00
Yelninei
0afb832a3b
gnu: sudo: Add libxcrypt dependency on the Hurd.
* gnu/packages/admin.scm (sudo)[inputs]: Add libxcrypt on the Hurd.

Change-Id: I3d43526d10ca7d758b4f4870d84923be3a39977d
2026-01-14 09:16:48 +01:00
Yelninei
bb5e506f26
gnu: hurd: Add libxcrypt dependency.
Fixes guix/guix#5538

* gnu/packages/hurd.scm (hurd)[inputs]: Add libxcrypt.

Change-Id: I69e9624040d4b265ddb891ce894ce9a26032df36
2026-01-14 09:16:48 +01:00
Efraim Flashner
6b44fc4f9b
gnu: llvm-18: Skip tests on powerpc64le-linux.
* gnu/packages/llvm.scm (llvm-18)[arguments]: Adjust the tests flag to
skip the tests on powerpc64le-linux.

Change-Id: I2a1c25642b00b29f53be619b72eea27c005f2db8
2026-01-14 09:16:47 +01:00
Efraim Flashner
82e58c26db
guix: Spelling corrections.
* guix/gnupg.scm,
guix/import/composer.scm,
guix/import/cpan.scm,
guix/import/crate/cargo-lock.scm,
guix/import/hackage.scm,
guix/import/json.scm,
guix/licenses.scm,
guix/packages.scm,
guix/scripts/import.scm,
guix/ui.scm: Fix misspellings in comments and doc strings.

Change-Id: I8e922f8e980214e345a42a995788a7c4adb9184d
2026-01-14 09:16:46 +01:00
Efraim Flashner
35930066e5
etc: Spelling corrections.
* etc/apparmor.d/guix,
etc/teams/release/artifacts-manifest.scm: Fix misspellings in comments.

Change-Id: Iff757784cc82968c25004bdb430f1ae3ad44624e
2026-01-14 09:16:45 +01:00
Efraim Flashner
9efc2a690e
nix: Spelling corrections.
* nix/libstore/globals.hh,
nix/libstore/store-api.hh,
nix/libutil/util.hh: Fix misspellings in comments.

Change-Id: Id77ea2bde1c2582d1a7bec4ed256ea900998c4b8
2026-01-14 09:16:45 +01:00
Efraim Flashner
0e0884eb4f
gnu: freerdp: Update to 3.20.0.
Fixes: #5268.

* gnu/packages/rdesktop.scm (freerdp): Update to 3.20.0.
[source]: Remove patch.
[arguments]: Adjust test-exclude, configure-flags for new version.
* gnu/packages/patches/freerdp-3.16.0-rpath.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: If30bfff499cc57b2158c7be5dc9644f8898bb492
2026-01-14 09:16:44 +01:00
Rutherther
64668f7c15
etc: release: Add spare space to the release VM image.
* etc/teams/release/artifacts-manifest.scm (qcow2-for-system): Make size 20
GiB.

Fixes: #5081
Change-Id: I11f932c417efc086b99f41a8ffc1f56ee86234f9
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5218
2026-01-04 12:47:39 +01:00
Rutherther
7c52959ae4
Make sure only Guix channel is used to produce release artifacts.
This ensures that only Guix channel is used, with the default url.

* Makefile.am (release): Add "-q" to time-machine.

Change-Id: I3102660919e946a7df4620318d11599cdbde7ad8
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:47:37 +01:00
Roman Scherer
8346bca4e5
gnu: plasma-desktop: Skip failing test on AArch64.
The tst_calibrationtool test fails on aarch64 due to floating-point
precision issues: QMatrix4x4 comparison fails with tiny differences
(1.11759e-08 instead of exact 0).

* gnu/packages/kde-plasma.scm (plasma-desktop)[arguments]: Add
tst_calibrationtool to test-exclude on aarch64.

Change-Id: I3875329704b50b1ecd3ccea41a355d53deb517cf
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #4846
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:47:01 +01:00
Roman Scherer
395b003094
gnu: kwin: Skip failing tests on AArch64.
* gnu/packages/kde-plasma.scm (kwin)[arguments]: Add
kwin-testSecurityContext and kwin-testXwaylandSelection to test-exclude.

Change-Id: I0256e0e390552deb54eb0b5368f1799800ec8cb0
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:47:01 +01:00
Rutherther
535ff8ec97
gnu: bcachefs-static: Do not depend on %current-system in toplevel.
Make the variables that depend on %current-system procedures and call them
from package arguments, a thunked field.

* gnu/packages/file-systems.scm
(bcachefs-tools-rust-target): Make it a procedure.
(bcachefs-tools-target/release): Make it a procedure.
(bcachefs-tools-cargo-args): Make it a procedure.
(bcachefs-tools-make-flags): Make it a procedure.
(bcachefs-tools-make-install-flags): Make it a procedure.
(bcachefs-tools-minimal): Call newly made procedure.
(bcachefs-tools): Call newly made procedure.
(bcachefs-tools-minimal/static): Call newly made procedure.

Fixes: #5195
Change-Id: I9f08b3e34f869b8f9f54b71192eff61357e9cc85
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5219
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:47:00 +01:00
Rutherther
d078db3272
etc: guix-install.sh: Set XCURSOR_PATH to proper default value.
As can be seen in the Xcursor docs, the default path is
`~/.local/share/icons, ~/.icons, /usr/share/icons, /usr/share/pixmaps`,
zzz-guix.sh is currently missing the first two.

* etc/guix-install.sh (sys_create_init_profile): Add home paths to XCURSOR_PATH.

Change-Id: I4284d7648394c06b83e4eba91882b81c8a35d706
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5231
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:59 +01:00
Rutherther
9f47269602
scripts: package: Encourage unsetting GUIX_PROFILE.
GUIX_PROFILE should typically be unset, to prevent issues when sourcing
etc/profile of other profiles. So encourage it by showing it in the hint.

Followup of 50a2d73eac.

* guix/scripts/package.scm (display-search-path-hint): Add unset GUIX_PROFILE
to displayed hint.

Change-Id: Ie1564750017dde8bf896c79e463067699df709eb
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5118
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:58 +01:00
Rutherther
f75737f42c
system: operating-system-etc-service: Unset GUIX_PROFILE.
This seems to have been omitted, currently users on default Guix System
installations do have GUIX_PROFILE set to their ~/.config/guix/current.
This is wrong and can lead to some surprises when sourcing etc/profile
of a Guix profile.

Followup of 50a2d73eac.

* gnu/system.scm (operating-system-etc-services): Clean up GUIX_PROFILE.

Change-Id: Ia5bfb1907fa7ae887ac0336e6cd1922e611b6bdf
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5119
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:57 +01:00
Ludovic Courtès
cf005b5107
doc: Add missing double quotes in ‘mapped-device’ snippet.
* doc/guix.texi (Mapped Devices): Add missing double quotes in
‘luks-device-mapping’ example.

Change-Id: I5bcd980ec3d5d142ea37697575f539d640bc6466
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:57 +01:00
Ludovic Courtès
d2a93e6113
describe: Add channels to the load path right after ‘guix’.
* guix/describe.scm (append-channels-to-load-path!): Add ‘channels-scm’ and
‘channels-go’ in second position.

Fixes: guix/guix#4819
Fixes: https://issues.guix.gnu.org/74396
Reported-by: Thijs Paelman <thijs@ouroboros.rocks>
Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I430dd6e6e2bd9e423d47dbb310d4553f6cd7f19b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5074
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:56 +01:00
Rutherther
7c3185afcb
image: operating-system-for-image: Bring back root-fs placeholder.
To calculate the UUID in `root-uuid`, the operating-system has to have a root
file system, because it's typically used in the
operating-system-boot-parameters.

Followup of efc32c6684 that it partially reverts.

* gnu/system/image.scm (operating-system-for-image): Re-introduce root file
system to operating-system used to calculate the UUID.

Fixes: #5131
Reported-By: Yelninei <yelninei@tutamail.com>
Change-Id: Ica2c3d3715cd90fccf3a7484f390b36de3cdfe7f
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5141
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:55 +01:00
Rutherther
cd5fb8ce34
gnu: guix: Disable new syscall tests on armhf.
These tests currently fail on armhf. They would require large amount of time
or knowledge to be fixed and it's on a platform that's already not being
supported too well.

Followup of d339785a0f.

* gnu/packages/package-management.scm (guix): Disable new tests in
tests/syscalls.scm on arm32.

Change-Id: I056fb04a9a1230ed3d8718a4719a5f6d7010b847
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:54 +01:00
Rutherther
d339785a0f
gnu: guix: Update to 1.5.0rc1.
Change-Id: I5afcfb7071c559b356e435bdefb4624a2c4ffa00
2025-12-23 10:31:56 +01:00
Rutherther
2d4ed08662
etc: release: Switch to Guile declaration of artifacts.
This is a rewrite of the bash commands for generation of guix binary
tarballs and system images to Guile. I am expecting this will help us
significantly with getting the same derivations locally and from Cuirass,
instead of relying on images/tarball job specifications and trying to tweak
it locally to have the same ones.

Implements: #4347, #4348.

* etc/teams/release/artifacts-manifest.scm: Make a manifest with
release artifacts for all supported systems.
* etc/teams/release/artifacts.scm: Collect artifacts for
all supported systems into a union with proper names for
the release artifacts.
* Makefile.am (release): Use time-machine instead of pre-inst-env; Switch to
building new artifacts.scm

Change-Id: I71a6a27e6f315dd31b91c49e71dff2d09695c0dc
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-23 09:16:05 +01:00
Rutherther
ab63e29e90
installer: Drop uri from provenance log.
To synchronize the artifacts made from Cuirass, pre-inst-env
and time-machine, drop the url from provenance sexp.

* gnu/installer.scm (provenance-sexp): Drop url.

Change-Id: Ibe2515abdc92853ce06c0381dd03cc61b2077335
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:46 +01:00
Rutherther
e2857e21fa
system: install: Remove current-guix url override.
Prefer parameterization of current-guix in release artifacts
generation.

* gnu/system/install.scm (%installation-service): Use (current-guix)
directly in guix service configuration.

Change-Id: Ifa363465e6a4f6936d0e51eaf1b33872519e2b0a
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:46 +01:00
Rutherther
105dbf7dee
vm-image.tmpl: Remove current-guix url override.
This simplifies things thanks to the release artifacts now, they have been
rewritten to Guile and can now supply current-guix-package as a parameter, as
was intended. That way the checkout is not leaked for the release artifacts.

* gnu/system/examples/vm-image.tmpl
(guix-package-commit): Remove variable.
(operating-system): Use (current-guix) directly.
* gnu/system/examples/vm-image-efi.tmpl: Likewise.

Change-Id: Iabf1bb5bbb86b9984bfb87ba0543782a6dce3192
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:45 +01:00
Rutherther
d226cc4933
image: system-iso9660-image: Propagate image-name to derivation name.
* gnu/system/image.scm (system-iso9660-image): Use name from image-name
instead of hardcoded image.iso.

Change-Id: I3cea3857729c2eb7d6728f650db7fb33cf4c8c8a
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:44 +01:00
Rutherther
86a6006f41
Split release Makefile target to two.
Due to recent changes, the commit has to be published
to create the artifacts. Because of that, split the
target to two.

* Makefile.am
(release): Move first steps to prepare-release
(prepare-release): New target; Beginning of release.

Change-Id: I325c6dc36f7298482de7797c1e01fdaa70ef80c5
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:43 +01:00
Rutherther
8ba84edf99
linux-initrd: Support more virtio modules in initrd.
Adds mmio and scsi modules for virtio. scsi one is needed for using
virtio-scsi-pci, that can be a common option on aarch64, where only two
options pop up for mounting disks:
- virtio-scsi-pci
- virtio-blk

While virtio-blk should generally be preferred, sometimes virtio-scsi-pci pops
up first on the internet, so people can use it.

virtio-mmio is a necessity on Aarch64 for virtio-blk to work.

* gnu/system/linux-initrd.scm (default-initrd-modules): Add virtio_mmio and
virito_scsi.

Change-Id: Ia8fabb5594893ef1712359d27d482d9f44dc89c0
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:42 +01:00
Rutherther
b7a1223052
system: vm-image-efi.tmpl: Add example efi vm image.
This is a copy of vm-image.tmpl, but with
efi bootloader. Since user ends up with this
config in their /run/current-user/configuration.scm
and the regular way to continue is to copy
that file and reconfigure off of it, it seems
better to just keep distinct configuration.

Moreover xf86-video-intel is removed,
because it doesn't compile on aarch64.

* gnu/system/examples/vm-image-efi.tmpl

Change-Id: I0f72ac5a775339ee84cb1a4046ca5a8deca0e2ea
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:42 +01:00
Rutherther
9e7e40b8bd
services: xorg: Return only supported packages in %default-xorg-modules.
The xorg modules are used inside of services that's thunked. So we can
make them depend on the %current-system.

* gnu/services/xorg.scm
(default-xorg-modules): New variable.
(%default-xorg-modules): Return result of (default-xorg-modules).

Change-Id: I10f722e52d598ce3e83ef3f200b3bd953bc08e17
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:41 +01:00
Rutherther
0801604990
gnu: make-iso9660-image: Do not compress any kernel, compress man pages.
Because the linux image is called differently based on the architectures,
see system-linu/-image-file-name from gnu/system.scm, the kernel image
on aarch64, mips and armhf has still been compressed. This means that
grub cannot boot.

Man pages have moved from gz to zst, so compress them as well.

* gnu/build/image.scm (make-iso9660-image): Do not compress Image, vmlinuz and
zImage; Compress all man pages.

Change-Id: I68b35f383c84ff231865d580aa9e79d9fd88ace1
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:40 +01:00
Rutherther
5623e63313
system: installation-os: Support efi-only.
Aarch64 doesn't support grub-pc, so we cannot
use the regular grub-bootloader, grub-efi-bootloader
has to be used.

Since neither packages nor bootloader are thunked,
there seems to be no other choice than using something
from the outside environment, such as an environment
variable to decide what bootloader to use.

For convenience, a procedure is made to be used from
other Guile code, instead of relying on environment
variables.

* gnu/system/install.scm
(make-installation-os): New variable; Use grub-efi-bootloader when
efi-only? is #t; Use bootloader package in packages instead of grub-pc.
(installation-os): Replace with call of make-installation-os with default
arguments.

Change-Id: I34ec8da6079617f39805b3e1168bad4a42d84cab
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:39 +01:00
Rutherther
efc32c6684
image: Add /boot/efi filesystem if operating-system specifies it.
Instead of forgetting about the /boot/efi system completely, re-add it
with proper label. This way lightweight.tmpl, desktop.tmpl still
boot when supplied to guix system image. That was the reason for
removing /boot/efi file-system in the first place. Removing it however
means the target system cannot be reconfigured by default, as the
esp is not mounted.

* gnu/system/image.scm
(partition-has-flag?): New variable.
(root-partition?): Use it.
(find-partition-with-flag): New variable.
(find-root-partition): Use it.
(find-esp-partition): New variable.
(operating-system-for-image): Add /boot/efi file-system with proper
label instead of removing it completely.

Change-Id: I3ef2120059d8bbf76170d10ae718cb0de637f453
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:39 +01:00
Rutherther
20157dae27
image: Add qcow2-gpt image type.
qcow2 is a mbr-hybrid image. But on aarch64, we
have to use grub-efi bootloader. For that bootloader,
gpt should be used and Guix errors if it isn't (due to
failed check in Guix code). So it's impossible to generate
qcow2 type aarch64 image without using customized bootloader.
One would have to define their own image instead of using
the ones pre-defined.

* gnu/system/system.scm (qcow2-gpt-image-type): New variable.
* doc/guix.texi: Document qcow2-gpt and its use.

Change-Id: I93f0880c7ca2d3f934067c12dd1143ad20828333
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:38 +01:00
Rutherther
2576c66e47
image: operating-system-for-image: Support AArch64 iso.
Let the user decide for grub/grub-efi in cases where
grub-hybrid is unsupported. This is the case on
aarch64, where grub-pc is not supported, so only
grub-efi can be used.

* gnu/system/image.scm (operating-system-for-image):
Do not replace bootloader with grub-mkrescue-bootloader
for iso9660 when grub-hybrid is not supported.

Change-Id: Icd2b68155935b1d9599c1b0df22f0c80a2e36d6a
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:37 +01:00
Rutherther
bb2263102a
guix-install.sh: Do not set GUILE_LOAD_PATH in zzz-guix.sh.
Channels from the load path will shadow channels used through time-machine or
used through any other guix than the one in ~/.config/guix/current. This is
true for all channels that are in ~/.config/guix/current except guix.  On Guix
System, /run/current-system/profile/share/guile/site/3.0 is usually in
GUILE_LOAD_PATH that typically has only Guix, so no shadowing happens in most
cases.

For using Geiser and other sw, it's possible to configure them to use "guix
repl" that's intended for this use case. This is then makes the guix being
used explicit.

It is expected that this is only a temporary solution. After a proper
solutions is found, it will be reverted.

Workaround #4819.
Reverts: 78390634d7.

Change-Id: I36b921a758618f382af9097003415f902b27c44b
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:54:11 +01:00
Noé Lopez
3dadea4b6d
guix-install.sh: Install AppArmor profile.
* etc/guix-install.sh (sys_maybe_setup_apparmor): New function.
(main_install): Call it.
(sys_delete_apparmor_profiles): New function.
(main_uninstall): Call it.

Fixes #4210.
Fixes <https://issues.guix.gnu.org/71226>.

Change-Id: Ice4bf4d91a1ae438fc5654dec327f53ae9a7b888
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:48:59 +01:00
Noé Lopez
51a1475599
self: Install AppArmor profile.
* guix/self.scm (apparmor-tunables): New procedure.
(miscellaneous-files): Add etc/apparmor.d/{guix,guix-daemon,tunables/guix}.

Change-Id: I8952ef4097924d62432775cc39d38098785fdcdf
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:48:59 +01:00
Noé Lopez
60782c20d4
etc: Add AppArmor profile for the guix command.
* etc/apparmor.d/guix: New file.
* Makefile.am (nodist_apparmor_profile_DATA): Add it.

Change-Id: I3d61238203d7663ce582717f8e4eac4c6f679928
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:48:58 +01:00
Noé Lopez
587fd2dad4
etc: Add AppArmor profile for the daemon.
* .gitignore: Add etc/apparmor.d/tunables/guix.
* Makefile.am (nodist_apparmor_profile_DATA)
(nodist_apparmor_profile_tunables_DATA): Define it.
* configure.ac: Generate etc/apparmor.d/tunables/guix. Add
--with-apparmor-profile-dir option.
* etc/apparmor.d/guix-daemon: New file.
* etc/apparmor.d/tunables/guix.in: New file.
* doc/guix.texi: Document AppArmor profiles.
* gnu/packages/package-management.scm (guix): Add future changes commented.

Change-Id: Iac7df9d642383cc46a2d450c3badef31199ab041
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:48:57 +01:00
Rutherther
9a78e76076
guix-daemon.service.in: Make service restartable.
Currently the service cannot be restarted, because the gnu store mount makes
it read-only. So fix this by removing the mount when starting the service.

"-" to accept failures, in case the command doesn't finish successfully,
chances are, the store can be mounted as RW, so continue.
"+" to run as root

Fixes: #4744

* etc/guix-daemon.service.in
(Service)<ExecStartPre>: Stop gnu-store.mount
(Service)<ExecStartPost>: Start gnu-store.mount

Change-Id: I296f5d8805497f8a7364b68d627eb6d4fc05dbff
2025-12-22 22:48:48 +01:00
Aaron Covrig
a2df6c460f
gnu: pius: Update to 3.0.0-0.5f7c10b.
* gnu/packages/gnupg.scm (pius)[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments]<#:check>: Execute project test script.
[native-inputs]: Add python-setuptools.
[home-page]: Update url.

Change-Id: I8d1228789cde2de4dda67a07f9859bb47e510608
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
Modified-by: Cayetano Santos <csantosb@inventati.org>
2025-12-22 18:56:48 +01:00
jgart
5ecec89784
gnu: Add hare-mcron.
* gnu/packages/hare-apps.scm (hare-mcron): New variable.

Change-Id: I324f5711cf359ac996111f6adcb71db5ff68dda5
2025-12-22 10:44:13 -06:00
jgart
5192dc2ff3
gnu: trealla: Update to 2.88.1.
* gnu/packages/prolog.scm (trealla): Update to 2.88.1.

Change-Id: I8770e77950a53ef0284fe50248bed5fab01d70a0
2025-12-22 10:18:17 -06:00
Ashvith Shetty
4b25873c12
services: Modernize redis service.
* gnu/services/databases.scm
(redis-configuration): Rewrite using `define-configuration'.
(redis-shepherd-service): Honor it.
* doc/guix.texi (Database Services) <redis>: Regenerate
documentation.

Change-Id: I5b99822ca3d8d23fb5133497d00eada0336d0c65
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #2158
2025-12-22 15:42:39 +01:00