Commit graph

3955 commits

Author SHA1 Message Date
Oleg Pykhalov
18ea7bc470
home: services: Add niri.
This introduces a new home service for Niri, a scrollable tiling Wayland
compositor that combines traditional tiling window management with smooth
scrolling between workspaces.

The service provides:
- home-niri-service-type for installing and configuring Niri
- Shepherd service that starts Niri in a DBus session
- Proper Wayland environment variables (XDG_CURRENT_DESKTOP,
XDG_SESSION_DESKTOP, etc.)
- Integration with xdg-desktop-portal and related components

The service starts Niri with appropriate environment variables for
Wayland compatibility and includes necessary dependencies like
xdg-desktop-portal-gnome and xdg-desktop-portal-gtk for proper
desktop integration.

* gnu/home/services/niri.scm: New file containing the service implementation.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register the new module.
* doc/guix.texi (Niri window manager): Add comprehensive documentation.

Change-Id: I9ef081226b4aaa31706d1fbc0d8b7aa1a202cd6e
2025-10-10 12:11:12 +03:00
Gabriel Wicki
052124b4a5
doc: cookbook: Fix network bridge qemu example.
* doc/guix-cookbook.texi (Virtual Machines) [Configuring the QEMU bridge
helper script]: Fix example.

Change-Id: Ia735637ab71928176b33da495d528d1519d29cb9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-08 11:29:18 +02:00
Oleg Pykhalov
0824f8a3eb
services: libvirt: Add configurable service requirements.
This enhances flexibility by allowing users to specify custom service
dependencies for libvirt, rather than being limited to the default hardcoded
requirements. This is particularly useful for complex deployments or when
integrating with custom service configurations.

Note that default 'dbus-system' requirement may not be strictly necessary for
basic libvirt operation. For instance, libvirt can function without issues in
many cases even when dbus-system is not included in the requirements, allowing
for more minimal deployments.

* gnu/services/virtualization.scm (list-of-symbols?,
serialize-list-of-symbols): New procedures.
(libvirt-configuration): Add 'requirement' field to allow custom service
dependencies.
(libvirt-shepherd-service): Use the configured requirements instead of
hardcoded ones.
* doc/guix.texi (Virtualization Services): Document the new 'requirement'
option.

Change-Id: I05cfbb5227cff9b7d9b55ee37774c96e39c4c526
2025-10-07 14:18:05 +03:00
Oleg Pykhalov
dad7b8d70d
services: libvirt: Make dmidecode available to fix SMBIOS error.
The libvirt daemon requires 'dmidecode' to provide Host SMBIOS information
to virtual machines. Without it in the PATH, it fails with the error:
"Host SMBIOS information is not available".

* gnu/services/virtualization.scm (libvirt-configuration): Add 'dmidecode'
field to specify the dmidecode package.
(libvirt-service-type): Add dmidecode to system profile to ensure it's
available in PATH.
* doc/guix.texi (Virtualization Services): Document the new 'dmidecode'
option.

Change-Id: I8e5e565e95149c5aeba2dc0c5c757046efa6de2d
2025-10-07 14:18:04 +03:00
Benjamin Chabanne
be39b5dee5
services: log-rotation: Allow to pass procedure as compression method.
* gnu/services/admin.scm (log-rotation-configuration): Change
    validation method and accept gexp procedure.

Change-Id: I67cd5051a05d211349ecbc66ee3a55ab5b1a5971
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-06 11:00:08 +02:00
Tomas Volf
0159dc10cd
monad-repl: Add "build-options" command.
There currently was no way to disable build offload for ,build from inside the
REPL.  Since offloaded builds sometimes do not error report entirely
correctly, it is useful to be able to switch to local builds.

This commit adds new ,build-options meta command, which allows to specify
build options, including #:offload?.

* guix/monad-repl.scm (%build-options): New variable.
(evaluate/print-with-store, package-argument-command): Use it.
(build-options): New meta command to set it.
* doc/guix.texi (Using Guix Interactively): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-06 10:36:27 +02:00
45mg
73cbb94d1d
mapped-devices/luks: Support extra options.
Allow passing extra options to the 'cryptsetup open' command.

* gnu/system/mapped-devices.scm (luks-device-mapping-with-options):
[#:extra-options]: New argument.
(open-luks-device): Use it.
(check-luks-device): Validate it.
* doc/guix.texi (Mapped Devices): Document it.
* gnu/tests/install.scm (%test-encrypted-root-extra-options-os): New
test for it, as well as the previously untested #:allow-discards?
option.
(%encrypted-root-extra-options-os): New os declaration for the test.

Change-Id: I265a431efb0c81ed7cfc984344c6b8a4cc2f1624
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-06 10:21:16 +02:00
Florian Pelz
e50706157a
doc: Build PDF for Chinese manual.
* doc/build.scm (texinfo-manual-source): Replace input line in Chinese
manual, cookbook.
(pdf-manual): Adjust comment.  Make it use xetex instead of pdftex.
(html-manual-indexes)<language-index>: Do not hide the Chinese PDF, but
hide the broken Korean cookbook instead, because Hangul are invisible.

Fixes: guix/translations#1
Change-Id: If8934cda1387c666076ba47cc2656418a3a4f0f0
2025-10-05 17:07:41 +02:00
Nguyễn Gia Phong
af16ef27af
services: rottlog: Remove.
* gnu/services/admin.scm (rottlog-service{,-type},
rottlog-configuration{,?,-rottlog,-rc-file,-rotations,-jobs}
log-rotation{,?,-frequency,-files,-options,-post-rotate},
%default-rotations, %rotated-files, %default-log-rotation-options):
Remove variables.
* doc/guix.texi (Rottlog): Remove subheading.
* .dir-locals.el: De-register rottlog-configuration.

References: a9f21036e4 ("services: rottlog: Deprecate.")
Change-Id: I9d62deb4dba31a07c3ef82cde0fca3a05ece064d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-30 21:58:38 +09:00
Florian Pelz
9e1f46119c
Revert "nls: Temporarily disable building of translated manuals."
This reverts commit 94d30d4d3b1e86fd3241dd552aa15c0e5541c8f1.
2025-09-30 10:37:34 +02:00
Florian Pelz
6012fc5f7b
nls: Temporarily disable building of translated manuals.
* doc/local.mk (info_TEXINFOS, MANUAL_LANGUAGES, COOKBOOK_LANGUAGES):
Keep only 'en' for building with 'make'.
* guix/self.scm (translate-texi-manuals)[translate-tmp-texi]: Inhibit
calling PO4A, so none are built with 'guix pull'.

Change-Id: I1a119251f557b5f05c9e972ccb84c04e9267c692
2025-09-30 10:37:34 +02:00
Maxim Cournoyer
e92be23837
scripts: Honor --target-version in every situation.
* guix/scripts/refresh.scm (options->update-specs): Always honor
--target-version.
* doc/guix.texi (Invoking guix refresh): Add an example showing how this can
be useful.

Change-Id: I55f98c88f4b583f65dd85a6d3573f9bc87a1dead
2025-09-30 16:52:06 +09:00
Sergey Trofimov
a87944f94e
services: sane: Support pluggable backends.
* gnu/services/desktop.scm (sane-configuration): New record.
(sane-service-type): Add native search paths to environment.

Change-Id: Ia7b66b62cf027200dd94533f32c1e4bc0ed373d3
2025-09-30 16:48:22 +09:00
Rodion Goritskov
054aae7bb2
services: Add miniflux-service-type.
* doc/guix.texi: Document Miniflux service and configuration.
* gnu/services/web.scm: New service.
* gnu/services/web.scm: Define shepherd service and account roles.
* gnu/tests/web.scm: (%miniflux-create-admin-credentials,
miniflux-base-system, %test-miniflux-admin-string, %test-miniflux-admin-file,
%test-miniflux-socket): Add system tests for Miniflux service.

Change-Id: I4a336e677ec8b46aed632f0ded9cc11c2d38975f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:39:40 +02:00
Hugo Buddelmeijer
6e4ac11633
doc: Clarify depth argument of build -P is non-optional.
* doc/guix.texi (Additional Build Options): Depth in guix build -P is required.

Change-Id: I2cbc149a9fc59a198ceedb06cc1fa5496b4f4c91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-25 22:04:26 +02:00
Arun Isaac
1a22809928
services: mumi: Add Debbugs rsync as shepherd timer.
* gnu/services/web.scm (<mumi-configuration>)[data-directory, rsync-remote,
rsync-flags]: New fields.
(%mumi-worker-log): Delete variable.
(%mumi-rsync-and-index-log): New variable.
(mumi-rsync-and-index): New function.
(mumi-shepherd-services): Remove mumi-worker service. Add mumi-rsync-and-index
service.
(mumi-service-type): Remove default value.
* doc/guix.texi (Web Services)[mumi]: Document data-directory, rsync-remote
and rsync-flags fields.

Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-09-25 01:33:10 +01:00
Arun Isaac
464d738655
services: nginx: Add stream configuration.
* gnu/services/web.scm (<nginx-stream-configuration>): New record type.
(<nginx-configuration>)[stream]: New field.
(emit-nginx-server-config): Add context argument.
(default-nginx-config): Serialize stream.
* doc/guix.texi (Web Services): Document it.
2025-09-24 12:21:30 +01:00
Maxim Cournoyer
b03b8d23e0
doc: Clarify how to create the Codeberg token for `sync-codeberg-teams'.
* doc/contributing.texi (Teams): Mention needed permissions and provide the
page URL.

Change-Id: I4ba44379a4ce5df9e987b32f28ebac0c7dc35618
2025-09-23 23:03:09 +09:00
Tom Fitzhenry
ef4e77e76d
doc: Remove docs for non-existent virtio? parameter of raw-initrd.
virtio? was removed in commit eac026e5c8.

* doc/guix.texi (Initial RAM Disk): Remove docs for virtio? in raw-initrd.

Change-Id: I99aaf58f0c5239409511146c4617546a202f5041
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-23 14:58:03 +02:00
Alexey Abramov
7365e16db8
services: dhcpcd: Add shepherd-provision field.
* doc/guix.texi (Networking Setup)<dhcpcd-configuration>: Regenerate
the dhcpcd-configuration documentation.
* gnu/services/networking.scm (dhcpcd-configuration)
<shepherd-provision>: Add new field.  Fix typo in client-id description.
(dhcpcd-shepherd-service): Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-23 14:57:22 +02:00
Edouard Klein
9a70af56e0
doc: Fix documentation of ‘vfs-mapping’.
* doc/guix.texi (VFS Mapping Service): Fix source/destination mixup.

Change-Id: I10bd066369a6507e69a40155dc3faa23cf40c1e6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-21 19:19:59 +02:00
Giacomo Leidi
877610c1ce
services: oci: Fix OCI backed Shepherd services HOME variable.
This patch allows containers run with podman to run each with their own
specific user.

* doc/guix.texi: Fix wrong type for oci-container-configuration's
shepherd-dependencies field.
* gnu/services/containers.scm (oci-container-shepherd-service): In case
a specific container is not run through the user provisioned by the
oci-service-type, its environment is different from the globally
provisioned one and must be recomputed.

Change-Id: I5d636ad0616ced0af124002de4403da3067334de
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-18 12:14:35 +02:00
Maxim Cournoyer
10482f731e
Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3
Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d
Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Gabriel Wicki
85e8036412
doc: Remove broken link.
* doc/contributing.texi: Delete sentence with broken link.

Change-Id: I2f0b67e1fa70750414e30d7cd474e1d4d077d9e8
2025-09-16 19:11:06 +02:00
Ian Eure
96c30d2bf6
gnu: Remove Tailon services and documentation.
The tailon package was removed in 63023deaf9,
but the associated service and documentation weren’t, leading to `guix pull`
breaking.

Fixes guix/guix#2689.

* doc/guix.texi: Remove Tailon documentation.
* gnu/services/web.scm (tailon-service-type): Delete variable.
(tailon-configuration-file): Delete variable.
(tailon-configuration-file?): Delete variable.
(tailon-configuration-file-files): Delete variable.
(tailon-configuration-file-bind): Delete variable.
(tailon-configuration-file-relative-root): Delete variable.
(tailon-configuration-file-allow-transfers?): Delete variable.
(tailon-configuration-file-follow-names?): Delete variable.
(tailon-configuration-file-tail-lines): Delete variable.
(tailon-configuration-file-allowed-commands): Delete variable.
(tailon-configuration-file-debug?): Delete variable.
(tailon-configuration-file-http-auth): Delete variable.
(tailon-configuration-file-users): Delete variable
(tailon-configuration): Delete variable.
(tailon-configuration?): Delete variable.
(tailon-configuration-config-file): Delete variable.
(tailon-configuration-package): Delete variable.
* gnu/tests/web.scm (%test-tailon): Delete variable.

Change-Id: I3b507df8233b0440baa6a2bce4604b5813cb3bb0
2025-09-14 11:13:17 -07:00
Arnaud Daby-Seesaram
aec2a05e35
home: services: home-sway-service-type: Enable extensions.
* gnu/home/services/sway.scm (%empty-sway-configuration): New value.
  (sway-combine): New procedure.
  (sway-compose): New procedure.
  (sway-extend): New procedure.
  (home-sway-service-type) [compose/extend]: New fields.
* doc/guix.texi (Sway window manager): Document this.

Change-Id: I548a18a6a273380be90c9b5b365f65a93cc02416
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:07 +02:00
Arnaud Daby-Seesaram
0b0f8702ea
home: services: Support options for bindings in sway-service-type.
* gnu/home/services/sway.scm (make-alist-predicate): Add an optional argument.
  (bindings?): Remove procedure.
  (keybinding-options?): New procedures.
  (codebinding-options?): New procedures.
  (gesture-options?): New procedures.
  (mouse-bindings?): Allow to pass options to mouse-bindings.
  (sway-configuration) [keybindings]: Allow to pass options to key-bindings.
  [gestures]: Allow to pass options to gesture-bindings.
  (sway-mode) [keybindings]: Allow to pass options to key-bindings.
  (serialize-binding): Support options.
  (serialize-mouse-binding): Support options.
  (serialize-keybinding): Support options.
  (serialize-gesture): Support options.
  (serialize-variable): Inline previous definition.
* doc/guix.texi (Sway window manager): Document this.

Change-Id: Icf210aca4a9b44adc0baead7430637f6fcda17e5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:07 +02:00
Ludovic Courtès
d72eef9c91
services: cuirass: Add more configuration fields.
* gnu/services/cuirass.scm (<cuirass-configuration>)[parallel-evaluations]
[evaluation-ttl, web-threads]: New fields.
(cuirass-shepherd-service): Honor them.
* doc/guix.texi (Continuous Integration): Document them.

Change-Id: I33485b978d2a37ee93230b1d425731e6cb3b80e4
2025-09-05 17:25:39 +02:00
Ludovic Courtès
7f5c1c662d
doc: Remove misplaced ‘guix refresh’ example.
* doc/guix.texi (Invoking guix refresh): Remove broken and out-of-place
‘trytond-party’ example.

Change-Id: Iab2413774eb611e7fab2519001f484ce29010599
2025-09-04 17:41:52 +02:00
Hugo Buddelmeijer
3f61691b18
doc: Restructure 'guix refresh' section.
Previously, there were options described in the running text (in
particular --recursive), and vice-versa, there was normal text
interleaved inbetween the options. Both hid information, as it was
unclear where an option description would change into running text.

Furthermore, tables were closed and opened arbitrarily, making the
section hard to read.

Can probably be improved further.

* doc/guix.texi (Invoking guix refresh): Restructured text.

Change-Id: I517d0dc43a9addbaccf5e5e8c9fadfa30fe378db
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 17:41:52 +02:00
Gabriel Santos
8a8a31fad1
docs: Fix module reference in guix-home-service-type.
* doc/guix.texi (Guix Services): Use (gnu services guix) module instead of the
outdated (gnu home) module in the example.

Closes #2369.

Change-Id: I19eeeffbaeb150db68510c90b0f7c8ef23bdfeb6
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-02 23:19:33 +09:00
Florian Pelz
f799d148ad
nls: Update translations.
* po/doc/guix-cookbook.zh_CN.po: New file.
* po/doc/local.mk: Add 'zh_CN' cookbook.
* po/packages/ru.po: New file.
* po/packages/LINGUAS: Add 'ru'.
* doc/local.mk: Add 'zh_CN' cookbook.
* doc/htmlxref.cnf: Update URLs for cookbook.
* doc/build.scm (%cookbook-languages): Add 'zh_CN'.
* doc/guix-cookbook.texi (Top): Mention 'zh_CN' cookbook.

Change-Id: Ic15114f01ee826a72060eebcbf1baf3bf619284f
2025-09-02 00:30:19 +02:00
Yelninei
fecaf550cf
services: hurd-vm: Support different hurd types.
* gnu/services/virtualization.scm (sanitize-hurd-vm-configuration-type): New procedure.
(hurd-vm-confiuration): Add type field.
(hurd-vm-disk-image): Use it.
* doc/guix.texi (hurd-vm-configuration): Document it.

* gnu/tests/virtualization.scm (%childhurd64-os): New variable.
(run-childhurd-test): Add the os a parameter.
(%test-childhurd): Adjust accordingly.
(%test-childhurd64): New system test.

Change-Id: Ie1c55a9414657ced4bf8b4324527037f1a1f78f4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-30 23:52:09 +02:00
Ludovic Courtès
b12844f5e0
services: cuirass: Increase default polling interval to 5mn.
* gnu/services/cuirass.scm (<cuirass-configuration>)[interval]: Change to 300.
* doc/guix.texi (Continuous Integration): Update accordingly and explain where
it is used.

Change-Id: I30e38ffe0d75cd1f5857b422b4fa5d05dd47a7e5
2025-08-29 17:43:35 +02:00
Ludovic Courtès
173709089b
doc: Add link to issues and pull requests with the ‘deprecation’ label.
* doc/contributing.texi (Deprecation Policy): Add note with link to
issues and pull requests with the ‘deprecation’ label.

Change-Id: If5e833e20c11796f961f48e086c54fdbb9155dd1
2025-08-28 23:01:25 +02:00
Giacomo Leidi
57386498b6
home: Add home-oci-service-type.
* gnu/home/service/containers.scm: New file;
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (OCI backed services): Document it.

Change-Id: I8ce5b301e8032d0a7b2a9ca46752738cdee1f030
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Giacomo Leidi
60f4d72590
services: Add oci-service-type.
This patch implements a generalization of the
oci-container-service-type, which consequently is made deprecated.  The
oci-service-type, in addition to all the features from the
oci-container-service-type, can now provision OCI networks and volumes.
It only handles OCI objects creation, the user is supposed to handle
state once the objects are provsioned.

It currently supports two different OCI runtimes: Docker and rootless
Podman.  Both runtimes are tested to make sure provisioned containers
can connect to each other through provisioned networks and can
read/write data with provisioned volumes.

At last the Scheme API is thought to facilitate the implementation of a
Guix Home service in the future.

* gnu/build/oci-containers.scm: New file containg OCI runtime business
logic used in OCI backed Shepherd services.
oci-read-lines
(oci-system*,oci-object-exists?,oci-object-service-available?
oci-image-load,oci-log-verbose,oci-container-execlp,oci-object-create):
New procedures.
* gnu/local.mk: Add it.
* gnu/services/containers.scm (list-of-oci-containers?,
list-of-oci-networks?,list-of-oci-volumes?,%oci-supported-runtimes,
oci-runtime?,oci-runtime-system-environment,oci-runtime-system-extra-arguments,
oci-runtime-system-requirement,oci-runtime-cli,oci-runtime-system-cli,
oci-runtime-home-cli,oci-runtime-name,oci-runtime-group,
oci-container-shepherd-name,oci-networks-shepherd-name,
oci-networks-home-shepherd-name,oci-volumes-shepherd-name,
oci-volumes-home-shepherd-name,oci-container-configuration->options,
oci-network-configuration->options,oci-volume-configuration->options,
oci-container-shepherd-service,oci-objects-merge-lst,oci-extension-merge,
oci-service-accounts,oci-service-profile,oci-service-subids,
oci-configuration->shepherd-services,oci-configuration-extend): New
procedures.
(image-reference): Implement unambiguous naming convention, that paired
with the new implementation for listing caches images with docker ls or
podman ls, allows for more efficient image caching.
(oci-container-configuration)[user,group]: Change default-type to
maybe-string, since by default containers will run under the user and
group declared in oci-configuration records. When unset the
oci-service-type will derive their value from the OCI runtime state.
[runtime,host-environment,environment,shepherd-actions,ports,extra-arguments]:
define a predicate and use it as a type in the configuration.  This
way errors are reported with source location information.
(lower-manifest): Defer to caller the logic of setting up an image tag.
(lower-oci-image): Rename to load-oci-image-state.
(oci-runtime-state): Intermediate representation of the OCI runtime
details. It is supposed to be an internal API.
(oci-state): Intermediate representation of the OCI provisioning state,
such as containers and networks. It is supposed to be an internal API.
(oci-container-invocation): Intermediate representation of the OCI
runtime run command to start a container. It is supposed to be an
internal API.
(%oci-image-loader): Rename to oci-image-loader and use
oci-runtime-state and (gnu build oci-containers).
(oci-container-shepherd-service): Use oci-state and oci-runtime-state,
add command-line action.
(oci-network-configuration,oci-volume-configuration,oci-configuration,
oci-extension): New record types.
(oci-service-type): New service-type.
* doc/guix.texi: Document it.
* gnu/tests/containers.scm: Test it.
* gnu/services/docker.scm: Deprecate the oci-container-service-type.

Change-Id: I656b3db85832e42d53072fcbfb91d1226f39ef38
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Morgan Arnold
4e2e5c71cb
doc: Increase minimum Guile-Git version.
* doc/contributing.text: bump minimum required version of guile-git from
  0.5.0 to 0.10.0, required by 86022e994e.
* po/doc/guix-manual.*: update translations as well.

Change-Id: I8cc8fd720cc71fbe17e2e530f7411b9c888ba0f6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-23 17:24:45 +02:00
Ludovic Courtès
c1e3c49135
services: system-log: Allow ‘max-silent-time’ to be #f.
* gnu/services/shepherd.scm (gexp-or-integer-or-false?): New procedure.
(system-log-configuration)[max-silent-time]: Change to
‘gexp-or-integer-or-false’.
* doc/guix.texi (Shepherd Services): Regenerate documentation with
‘configuration->documentation’.

Change-Id: I75228cd19ca892c26347a64cbb952668fc893669
2025-08-23 16:57:48 +02:00
Hilton Chain
3e45fc0f37
doc: Document lockfile importer based Rust packaging workflow.
* doc/guix.texi (Build Systems) [cargo-build-system]: Add cross-reference for
the term "Cargo workspaces".
* doc/contributing.texi (Packaging Guidelines)[Rust Crates]: Update
documentation.
* doc/guix-cookbook.texi (Packaging)[Packaging Workflow]: New section.
* gnu/packages/rust-crates.scm,
* gnu/packages/rust-sources.scm: Stop mentioning guix-rust-registry for now, we
may remove the repository if future merges are managed well.

Change-Id: Ic0c6378cf5f5df97d6f8bdd040b486be62c7bddc
2025-08-21 19:09:04 +08:00
Hilton Chain
92d130e035
import: crate: Stop importing dependencies from crates.io.
* guix/scripts/import/crate.scm (show-help, %options, guix-import-crate)
[--recursive, --recursive-dev-dependencies, --mark-missing]: Remove options.
* doc/guix.texi (Invoking guix import)[crate]: Adjust accordingly.
Mention packaging workflow.
* guix/import/crate.scm (make-crate-sexp): Don't use "rust-" prefix and semver
suffix for package name.
[#:cargo-inputs, #:cargo-development-inputs, #:build?]: Remove arguments.
(crate->guix-package)[#:include-dev-deps?, #:mark-missing?]: Remove arguments.
(<crate-dependency>): Remove data type.
(make-crate-dependency, crate-dependency?, json->crate-dependency)
(crate-version-dependencies, package-names->package-inputs)
(maybe-cargo-inputs, maybe-cargo-development-inputs, maybe-arguments)
(version->semver-prefix, find-package-version, crate-recursive-import): Remove
procedures.
* tests/crate.scm (test-foo-crate, test-bar-crate): Adjust for modified tests.
(test-foo-dependencies, test-bar-dependencies, test-root-crate)
(test-root-dependencies, test-intermediate-a-crate)
(test-intermediate-a-dependencies, test-intermediate-b-crate)
(test-intermediate-b-dependencies, test-intermediate-c-crate)
(test-intermediate-c-dependencies, test-leaf-alice-crate)
(test-leaf-alice-dependencies, test-leaf-bob-crate)
(test-leaf-bob-dependencies, rust-leaf-bob-3, rust-leaf-bob-3.0.2-yanked):
Remove variables.
("crate->guix-package yanked", "crate->guix-package only yanked available"): New
tests.
("crate->guix-package"): Adjust accordingly.
("crate->guix-package-marks-missing-packages", "crate-recursive-import")
("crate-recursive-import-honors-existing-packages")
("crate-import-only-yanked-available"): Remove tests.

Change-Id: Ib1d24511ed0ea1a2373f53de12e06afa7950a7d7
2025-08-21 19:09:04 +08:00
Hilton Chain
efaa3e681e
build-system: cargo: Deprecate #:cargo-inputs and #:cargo-development-inputs.
* guix/build-system/cargo.scm (lower): Emit warning when using #:cargo-inputs
or #:cargo-development-inputs.
* doc/guix.texi (Build Systems)[cargo-build-system]: Deprecate #:cargo-inputs
and #:cargo-development-inputs.

Change-Id: I43ed66e04c55368159aed309367c4ac278d8cc58
2025-08-21 19:09:04 +08:00
Hilton Chain
12e0b9e9e4
import: crate: Add ‘--lockfile’ option.
* guix/import/crate.scm (cargo-inputs-from-lockfile)
find-cargo-inputs-location, extract-cargo-inputs): New procedures.
* guix/scripts/import/crate.scm (%options): Add ‘--lockfile’ option.
(show-help): Add it.
(guix-import-crate): Use it.
* doc/guix.texi (Invoking guix import): Document it.

Change-Id: I291478e04adf9f2df0bf216425a5e8aeba0bedd9
2025-08-21 19:08:21 +08:00
Hilton Chain
5494343bfc
build-system: cargo: Support installing Cargo workspace.
*guix/build-system/cargo.scm (cargo-build, cargo-cross-build)
[#:cargo-install-paths]: New argument.
* guix/build/cargo-build-system.scm (install): Use it.
* doc/guix.texi (Build Systems)[cargo-build-system]: Document it.

Change-Id: I74ed1972a5716da05afeac8edb2b0e4b6834bf40
2025-08-21 19:08:19 +08:00
Hilton Chain
878bdd7fb6
build-system: cargo: Support packaging Cargo workspace.
* guix/build-system/cargo.scm (cargo-build, cargo-cross-build)
[#:cargo-package-crates]: New argument.
* guix/build/cargo-build-system.scm (package): Use it.
* doc/guix.texi (Build Systems)[cargo-build-system]: Document it.

Change-Id: I45ccd95e90827d47127015cb0bda2d41f792335b
2025-08-21 19:08:19 +08:00
Denis 'GNUtoo' Carikli
d5cf3b5def
doc: Upgrading Guix: Add instructions for distro packages.
This makes sure that, prior to the upgrade commands, the guix-daemon is run
from /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon instead of
/usr/bin/guix-daemon.

* doc/guix.texi (Upgrading Guix): Add instructions for distro packages.

Change-Id: I71df3603cffc5d20b6a77241b0c384872b54ec83
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-20 16:09:30 +09:00
Denis 'GNUtoo' Carikli
96b0d77231
doc: Upgrading Guix: Constraint update command to guix-install.sh.
At least on distributions based on Arch Linux and Debian, the given command to
update the daemon doesn't work because the systemd service runs
/usr/bin/guix-daemon instead of
@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon.

* doc/guix.texi (Upgrading Guix): Tell that the command works if Guix was
installed with guix-install.sh.

Change-Id: I2360a9dc9a5b23f28e25402b92724f51d9ed3937
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-20 16:09:27 +09:00
Efraim Flashner
17f7e9c4f3
doc: Fix some typos.
* doc/contributing.texi (Bulk Updates): Fix typo.
* doc/guix.texi (Networking Services, Power Management Services, Guix
Services, Backup Home Services): Same.

Change-Id: I4ebde33ad628e35ea2c1888b8247707ab3763cf1
2025-08-06 13:30:53 +03:00