Commit graph

177130 commits

Author SHA1 Message Date
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
Yelninei
b00a27c427
gnu: shepherd@1.0: Don't inherit package arguments.
Followup to e1038aee6d.

Previously when cross compiling the fibers directory was reset to fibers 1.3
because evaluating the arguments of shepherd@0.10 with '(package-arguments
shepherd-0.10)' kept the reference to the fibers input of shepherd@0.10.

Work around this by not using 'substitute-keyword-arguments' and replacing
'this-package-input' with 'search-input-file'.

* gnu/packages/admin.scm (shepherd-1.0)[arguments]:
Replace 'substitute-keyword-arguments' with explicit arguments.
Use search-input-file in 'set-fibers-directory phase to search for the cross fibers.

Change-Id: Ia1061d8cea531569385f4a0136cfd22f27ce5a0e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4672
2025-12-22 15:42:39 +01:00
Ludovic Courtès
f55793c575
archive: Make /etc/guix/signing-key.* readable by ‘guix-daemon’.
The manual suggests running ‘guix archive --generate-key’ as root, but that
would lead to root-owned /etc/guix/signing-key.{pub,sec}, with the secret key
unreadable by the unprivileged guix-daemon.  This fixes it.

Reported in guix/guix#4844.

* guix/scripts/archive.scm (generate-key-pair)[ensure-daemon-ownership]: New
procedure.
Use it for ‘%public-key-file’, ‘%private-key-file’, and their parent
directory.

Reported-by: Rutherther <rutherther@ditigal.xyz>
Change-Id: I7ae980bfd40078fb7ef27a193217b15f366d5d50
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4958
2025-12-22 15:11:27 +01:00
Ludovic Courtès
0ac2a0fd18
authenticate: Report failure to load keys to the daemon.
Previously, when failing to load a signing key, ‘guix authenticate’ would
print a backtrace and exit with a non-zero code.  That, in turn, would lead
the guix-daemon child process to crash with:

  nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed.

This patch fixes it by reporting the error to the daemon as was intended.

* guix/scripts/authenticate.scm (guix-authenticate): Arrange to call
‘load-key-pair’ from within ‘with-reply’.
* tests/guix-authenticate.sh: Test it.

Fixes: guix/guix#4928
Reported-by: Rutherther <rutherther@ditigal.xyz>
Change-Id: I8654ad6fdfbe18c55e1e85647d0c49f408d0574a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4961
2025-12-22 15:10:52 +01:00
Ludovic Courtès
5d6dfd8981
authenticate: Improve error replies.
* guix/scripts/authenticate.scm (guix-authenticate)[send-reply]: Wrap guard in
‘with-fluids’.  Call ‘string-trim-right’ on the message string of ‘c’.

Change-Id: I6ab5f645f2dc9d6f53bb57eabb4de1df8212892f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-12-22 15:10:52 +01:00
Nguyễn Gia Phong
ce279acd14
doc: Fix typo.
* doc/guix.texi (Mapped Devices): Fix typo.

Change-Id: I72a5e0e651e3926def0bd5fdb67ccc01cc8a2041
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 11:00:19 +01:00
Rutherther
49bf395754
maint: Adjust final inputs self contained check for changes.
The check script has been failing, %final-inputs have been changed
to a procedure that takes the system.

* build-aux/check-final-inputs-self-contained.scm
(final-inputs): Call %final-inputs procedure with system.

Change-Id: Id4d40387e669c996a380f64c73432d916915ead5
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 11:00:18 +01:00
Rutherther
0ecfe335b9
scripts: system: Do not pull checkouts for same commit.
In case a user reconfigures to the same commit, do not
update cached checkout unnecessarily.

* guix/scripts/system/reconfigure.scm (channel-relations): Return early for
matching old and new commits.

Change-Id: Ia4b7300bbce40f7d809946dd3514715b74cd17f9
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 11:00:18 +01:00
Rutherther
2a0ac4cba5
daemon: Ensure store is writable even as non-root.
If the store is read only, return an error early.
This is bit of a compromise. Not all operations of the daemon need the store
as writable. For example, if hello package is built already `guix build hello`
could previously succeed even if store is RO.

* nix/libstore/local-store.cc
(makeStoreWritable): Rename to ensureStoreWritable.
(ensureStoreWritable): As non-root, check that the store is writable and if
not, throw an error.
(LocalStore::LocalStore): Use it.

* nix/libstore/local-store.hh: Rename makeStoreWritable to ensureStoreWritable.

Change-Id: I94783ba7e32d57bfa77e37e84b6ac316f95e31e2
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 11:00:17 +01:00
Ashish SHUKLA
09eda1627e
gnu: drawterm: Update to 20251123.
* gnu/packages/plan9.scm (drawterm): Update to 20251123.
(drawterm-wayland)[inputs]: Add libdecor.

Closes: guix/guix#4894
Change-Id: Ibd869ee9acfb5d6aef0d58c13f6477fc2ac8ba47
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-12-22 18:06:24 +08:00
Ashish SHUKLA
0efdde91f6
gnu: labwc: Update to 0.9.3.
* gnu/packages/wm.scm (labwc): Update to 0.9.3.

Closes: guix/guix#4981
Change-Id: I3f80aed5a365b2713dc9f5f0272bb225f3004c5e
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-12-22 18:06:24 +08:00
Patrick Norton
9ce8160844
gnu: nml: Update to 0.8.1.
* gnu/packages/game-development.scm (nml): Update to 0.8.1.
[arguments]: Fix test phase.

Closes: guix/guix#5004
Change-Id: I03b80af19d809295411b85df491d7423837e6f59
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-12-22 18:06:23 +08:00
Andy Tai
1dfcd17b4d
gnu: monado: update to 25.1.0.
* gnu/packages/graphics.scm (monado): Update to 25.1.0.

Change-Id: Idd4bc66f1fd03fb9805647424dec0d5cda8bc123
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2025-12-22 10:33:29 +01:00
Hilton Chain
7a4de7a900
teams: Update team status for Hilton Chain.
* etc/teams.scm (hako): Remove teams.

Change-Id: Ib563d084e2bc2d603c7968e04bed0d222f547a0d
2025-12-22 15:04:26 +08:00
bdunahu
46d1961908
gnu: Add iaito.
* gnu/packages/engineering.scm (iaito): New variable.

Change-Id: I82f84d09b31dca5373b290c1b5c4388e86941bc0
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-12-22 15:54:59 +09:00
Cayetano Santos
4de4d270fb
gnu: Add python-cocotbext-axi.
* gnu/packages/electronics.scm (python-cocotbext-axi): New variable.

Change-Id: I1ca017ef9d9253f01dd74f25de04ed2551b4a620
2025-12-22 07:50:15 +01:00
Cayetano Santos
fb62e8f046
gnu: Add python-cocotb-test.
* gnu/packages/electronics.scm (python-cocotb-test): New variable.

Change-Id: Iefe86be6c6d15280694e79b13ec013056346be01
2025-12-22 07:50:15 +01:00
Cayetano Santos
b063cd4aa7
gnu: python-cocotb: Complete tests.
* gnu/packages/electronics.scm (python-cocotb)[arguments]: Add
’run-examples #:phase.

Change-Id: I3347baa3d21e6aec80d4e72a4d67dbe003bd8c2e
2025-12-22 07:50:15 +01:00
Stuart Dilts
228154a5bd
gnu: cl-xkbcommon: Update to 0.2.0.
* gnu/packages/lisp-xyz.scm (cl-xkbcommon): Update to 0.2.0.
Change-Id: I6ce2c9115ad6b1b0926dcceae83270ffaa1dc4d8
Signed-off-by: jgart <jgart@dismail.de>
2025-12-21 20:54:48 -06:00
Hugo Buddelmeijer
4281704a25
build: Make /etc/hosts a regular file again.
Commit 7c70a1080a ("gnu/system: Simplify the
creation of /etc (was: Turn /etc/localtime into a symlink)") made all of the
files under /etc other than sudoers symlinks to their store target.  This
causes a problem at least for the vpn-slice service, which expects to be able
to write to said file.

* gnu/build/activation.scm (activate-etc): Special-case /etc/hosts to make it
a regular file.

Change-Id: Ia42dacd8731edba5e72442ab0399bdc3f7101989
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
Fixes: #4800
2025-12-22 10:46:52 +09:00
Maxim Cournoyer
cb8db48a17
gnu: luanti-mineclonia: Lint synopsis and description.
* gnu/packages/luanti.scm (luanti-mineclonia)
[synopsis]: Drop leading article.
[description]: Use double spaces.

Change-Id: I3c0decb3135cbdeb925636633e16bc3a9267f53a
2025-12-22 09:05:17 +09:00
Maxim Cournoyer
a448bfa85a
gnu: luanti-mineclonia: Update to 0.118.1.
* gnu/packages/luanti.scm (luanti-mineclonia): Update to 0.118.1.

Change-Id: I788954d1372921e70a36cca77fc4d70f84811295
2025-12-22 09:05:17 +09:00
Sharlatan Hellseher
8148ca8437
gnu: grammalecte: Switch to pyproject, fix build.
* gnu/packages/dictionaries.scm (grammalecte):
[build-system]: Switch to pyproject-build-system.
[arguments] <tests?>: No tests.
[native-inputs]: Add python-setuptools.

Change-Id: Ief9385fc1dab0f77430843c7a5a2343a2c3e25a1
2025-12-21 23:30:45 +00:00
Sharlatan Hellseher
6168d37404
gnu: podman-compose: Use unittest.
* gnu/packages/containers.scm (podman-compose):
[arguments] <test-backend, test-flags>: Use unittest as seen in
project's GitHub Actons.
<phases>: Remove 'pre-check.
[native-inputs]: Remove python-pytest and python-wheel.

Change-Id: I6da2f7f4c55f4cd22919d7f7827b2be58993f2e2
2025-12-21 22:20:16 +00:00
Foster Hangdaan
992bcd7eed
gnu: podman-compose: Update to 1.5.0.
* gnu/packages/containers.scm (podman-compose): Update to 1.5.0.
[arguments] <test-flags>: Only run tests in `tests/unit`.
[arguments] <phases>: Add before-checks phase to fix a ModuleNotFoundError.

Change-Id: Ia9b8900bd71c848559b067d48e7eb4bf212f0f73
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-12-21 22:18:22 +00:00
Francisco-Galindo
303b10692b
gnu: Add python-simpy.
* gnu/packages/simulation.scm (python-simpy): New variable.

Change-Id: Ic95e6b0656dc2e2deffb543491c64ad5ae14632c
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-12-21 22:08:56 +00:00
Hugo Buddelmeijer
4d033008a2
gnu: python-2.7: Hide CVE-2023-36632
* gnu/packages/python.scm (python-2.7):  Hide CVE-2023-36632

Change-Id: Ifd217b0ecfb0ef5025fbc313c6c7a7e771501c77
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-12-21 22:08:55 +00:00
jgart
ae36f472bc
teams: lisp: Add manifest.
* etc/teams/lisp/lisp-manifest.scm: New file.

Change-Id: I9e23464197978bc6236eb13d42bd9bc3069bddeb
Signed-off-by: jgart <jgart@dismail.de>
2025-12-21 16:01:45 -06:00
Lilah Tascheter
20263c4a82
etc: Add tinystar to Hare team.
* etc/teams.scm (Lilah Tascheter): New member.

Signed-off-by: jgart <jgart@dismail.de>
2025-12-21 15:57:45 -06:00
Sergey Trofimov
5b7f0a952c
gnu: emacs-yeetube: Simplify locate-binaries phase.
* gnu/packages/emacs-xyz.scm (emacs-yeetube)
[arguments]<#:phases>{locate-binaries}: Reduce code duplication.

Change-Id: Ibe5ae19ec7877a81b80f28052680feab7fb154ab
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2025-12-21 18:02:14 +01:00
Sergey Trofimov
724d0cc753
gnu: emacs-yeetube: Update to 2.1.10.
* gnu/packages/emacs-xyz.scm (emacs-yeetube): Update to 2.1.10.

Change-Id: I6db1e506b050454cd9b95292c95800370ea6da03
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2025-12-21 18:02:05 +01:00
Cayetano Santos
b172762c2d
gnu: Remove python-urllib3-next.
* gnu/packages/python-web.scm (python-urllib3-next): Delete variable.

Change-Id: If58db641c59c3a2e63e1b043a1840dac0f7ae327
2025-12-21 17:54:25 +01:00
Cayetano Santos
5b0873aeb1
gnu: xkcdpass: Modernize package.
* gnu/packages/password-utils.scm (xkcdpass)[source]: Use direct #:url.
[home-page]: Move before synopsis.

Change-Id: I6ba4325818f2c6deff3b67a22b48f0cb4cdda929
2025-12-21 17:47:01 +01:00
moksh
e235f6d978
gnu: xkcdpass: Switch to pyproject-build-system.
* gnu/packages/password-utils.scm (xkcdpass):
  [build-system]: Change to pyproject-build-system.
  [arguments] <test-backend>: Use "unittest".
  [native-inputs]: Add python-setuptools.

Change-Id: I5d441bde3e1cce3e466e07ecfb69ef47b28b67ec
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2025-12-21 17:45:05 +01:00
Cayetano Santos
99d7436c1f
gnu: python-canvasapi: Update to 3.4.0.
* gnu/packages/python-web.scm (python-canvasapi): Update to 3.4.0.
[native-inputs]: Remove python-urllib3-1.26 and python-wheel; add python-urllib3.

Change-Id: I565de1aa396b54d028019a90a1b31f75434cdcf4
2025-12-21 17:39:56 +01:00
Hugo Buddelmeijer
b1a4c062ce
gnu: roguebox-adventures: Fix build.
* gnu/packages/games.scm (roguebox-adventures): Fix build.
[inputs]: Remove python-tmx.

Closes: guix/guix#4995
Change-Id: I67f7736b935d7cb5e03f5b4a89e5aa5487668e19
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-12-21 19:39:06 +08:00
Ian Eure
1434b4e6c7
gnu: python-pypresence: Update to 4.6.1 and fix the build.
* gnu/packages/messaging.scm (python-pypresence): Update to 4.6.1.
(native-inputs): Add build/test inputs.
(arguments): Declare the build backend.
(arguments): Disable tests.

Change-Id: I798ea40f4be2a1b15a7eed23673529b3a8a0cb41
2025-12-20 14:12:32 -08:00
moksh
cb927b546e
gnu: librewolf: Update to 146.0.1-1 [security-fixes].
contains fixes for:
CVE-2025-14860: Use-after-free in the Disability Access APIs component
CVE-2025-14861: Memory safety bugs fixed in Firefox 146.0.1

* gnu/packages/librewolf.scm (librewolf): Update to 146.0.1-1.

Change-Id: I0dc2c26bf6b301cd04ce2897b3688f4a3a102e24
2025-12-20 11:06:07 -08:00
Alexey Abramov
4eef7ffd5e
gnu: dvdbackup: Fix build with libdvdread 6.1.0+.
* gnu/packages/patches/dvdbackup-with-libdvdread-6.1.0+.patch: Add the
patch to fix the build.
* gnu/local.mk: Ship it.
* gnu/packages/video.scm: Use it.
2025-12-20 10:24:55 -08:00
Alexey Abramov
d392af43c5
gnu: libdvdnav: Update to 6.1.1.
* gnu/packages/video.scm (libdvdnav): Update to 6.1.1.
2025-12-20 10:24:55 -08:00
Alexey Abramov
63182d1ac9
gnu: Add lsdvd.
* gnu/packages/video.scm (lsdvd): New variable.
2025-12-20 10:24:54 -08:00
Noé Lopez
1e0eb9e8df
doc: Warn about specific nologin paths when it is not in PATH.
See <https://codeberg.org/guix/guix/issues/4704#issuecomment-8751141>.

* doc/guix.texi (Build Environment Setup): Add warning in case the nologin
binary is not found.

Reported-by: FuncProgLinux
Change-Id: Ib8aa2bdaf0aef6a589afe638e2fcd539c8276ac7
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 18:21:46 +01:00
Noé Lopez
2dcf1ec33e
doc: Update information on installing guix with package managers.
There is no longer a guix package in Debian.  Adapt the instructions to avoid
having to list how to install on every package manager.  The specific
instructions for Parabola are kept since it is a FSDG system.

* doc/guix.texi (Binary Installation): Remove Debian and OpenSUSE installation
instructions.  Update examples of distros with a guix package.  Add
instructions for other package managers.

Change-Id: Ie34b40d7224593df8e51d62d665a15a1b16b8e70
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 18:21:44 +01:00