1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-06-21 23:14:07 +02:00

4168 Commits

Author SHA1 Message Date
宋文武 5c41a431df import: git: Support 'stable-version-regexp' property.
Some packages (eg: xfce4-panel) use even number for minor version to indicate
a stable release, when refresh such packages to latest versions we'd like them
to be stable ones.  Introduce 'stable-version-regexp' as a package property,
so that unwanted releases can be filtered out.

* doc/guix.texi (Invoking guix refresh): Document 'stable-version-regexp'.
* guix/import/git.scm (import-git-release): Filter out unstable releases when
target-version is unset but 'stable-version-regexp' is available.

Change-Id: I7bbb2cb41b19175a7e3fb79e00cd8dbb20d049ad
2026-05-30 10:01:58 +08:00
Herman Rimm 4514f4cf19 scripts: lint: Add 'whole-file' option with ordering checker.
* guix/scripts/lint.scm (show-help): Describe option.
(%options): Add 'whole-file' option.
(guix-lint): Run checkers on packages defined in files.
* doc/guix.texi (Invoking guix lint): Document option.
* tests/guix-lint.sh: Define unordered package and invoke new option.

Change-Id: I52b48a9a6982d0c4a03416e3d070887c64716485
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8796
2026-05-29 14:23:28 +02:00
Arun Isaac b8354c2979 services: mumi: Make rsync and index timer event configurable.
* gnu/services/web.scm (<mumi-configuration>)[rsync-and-index-event]: New
field.
* gnu/services/web.scm (mumi-shepherd-services): Use it.
* doc/guix.texi (Web Services)[Mumi]: Document it.

Change-Id: I5910c4a93106b44eaf3900d6a72fb501c01b8773
2026-05-29 09:48:26 +01:00
Reepca Russelstein f519ddf733 daemon: Allow ADDR_NO_RANDOMIZE to be omitted if `--allow-aslr'.
Docker's default seccomp filter prevents use of the ADDR_NO_RANDOMIZE flag
with the personality system call.  It causes personality to return EPERM.  In
general, we assume that any result other than the only documented one, EINVAL,
is caused by seccomp.  If we detect that ADDR_NO_RANDOMIZE is blocked, and the
--allow-aslr option was passed, we simply don't use it.

This allows guix-daemon to continue to work even in these containers, without
any implicit weakening of reproducibility.

Since it is presumably desirable to be able to build guix itself in such an
environment, also pass --allow-aslr to guix-daemon in test-env.

* nix/libstore/globals.hh (Settings::allowASLR): new field.
* nix/nix-daemon/guix-daemon.cc (options): add --allow-aslr option.
  (parse_opt): use it to set Settings::allowASLR.
* nix/libstore/build.cc (DerivationGoal::startBuilder): detect when
  ADDR_NO_RANDOMIZE is blocked and --allow-aslr is passed and don't use it in
  that case.
* doc/guix.texi: document --allow-aslr in "Invoking guix-daemon".
* build-aux/test-env.in: always pass --allow-aslr.

Fixes: guix/guix#3917
Change-Id: I51c5899a9559e161f9e107c2e6a36df395ab3134
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4616
2026-05-27 18:25:16 +02:00
Maxim Cournoyer 17960b2313 doc: Add missing menu entry for volunteer run mirrors.
* doc/guix.texi (Substitutes): Add missing menu entry.

Change-Id: Ia2e6e516ddff3f836b51c34fd8441350793c352d
2026-05-27 09:21:17 +09:00
Sören Tempel 056de157b2 services: gunicorn: Allow configuration of control-socket.
Since gunicorn is run in its own Linux namespace, where $HOME is
read-only, creating that control-socket fails and prevents gunicorn
from starting by default.  Therefore, this patch disables it by
default but allows supplying a custom path via a newly added
configuration field.

* gnu/services/web.scm (gunicorn-app): Add gunicorn-app-control-socket.
(gunicorn-shepherd-services): Respect gunicorn-app-control-socket.
* doc/guix.texi (gunicorn-app): Document it.

Change-Id: I648079b630293a47801713425728a4d602c8088c
2026-05-26 18:43:22 +02:00
Maxim Cournoyer dc4db2273a service: dnsmasq: Expose new options for authoritative operation.
* gnu/services/dns.scm (<dnsmasq-configuration>)
[authoritative-servers, authoritative-zones, host-records]: New fields.
(dnsmasq-shepherd-service): Use them.
* doc/guix.texi (DNS Services): Add a new example and document the new fields.

Change-Id: Ib26c3f59e90b2a9997ecdac03c5564ae02b6754e
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-26 16:07:53 +09:00
Maxim Cournoyer 7d9b4b7bb7 service: dnsmasq: Add 'locals' configuration option.
* gnu/services/dns.scm (<dnsmasq-configuration>)
[locals]: New field.
(dnsmasq-shepherd-service): Use it.
* doc/guix.texi (DNS Services): Document it.

Change-Id: I1c2bc86c1636aa82451d1a38959380c3791fd8d4
2026-05-26 16:07:53 +09:00
Maxim Cournoyer 185b9f4f19 service: dnsmasq: Add ipv4? and ipv6? configuration options.
* gnu/services/dns.scm (<dnsmasq-configuration>) [ipv4?, ipv6?]: New fields.
(dnsmasq-shepherd-service): Use them.
* doc/guix.texi (DNS Services): Document them.

Change-Id: I50a4e407cea9e55295c9cfff081b7678ab7e061c
2026-05-26 16:07:53 +09:00
Cayetano Santos 37592835c4 doc: Add agitjo under the ’perfect setup’ section.
This is a complement to the AGit workflow included in "Submitting
Patches".

* doc/guix.texi: Mention ‘emacs-agitjo’ in the ’Emacs’ subsection.

Merges guix/guix!8445

Change-Id: Ia49a0da71e8b08e252ff4dd996c414173920ecac
2026-05-25 19:57:33 +02:00
Nemin 31566995dc doc: Mention the volunteer run mirrors.
* doc/guix.texi (Volunteer Run Mirrors): New subsection.
* doc/guix.texi (Official Substitution Servers):
  Rephrase due to new subsection.

Change-Id: I6e0861b632a78b705ce7ed8615a423c6d370f4c9
Merges: https://codeberg.org/guix/guix/pulls/6272
Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-26 00:20:52 +09:00
Maxim Cournoyer 3777bf133e machine: hetzner: Fix initial deploy when ssh-key is #f.
This fixes a regression introduced in commit a2ef2bcbfd ("machine: hetzner:
Allow connections using ssh-agent"), where having no ssh-key would cause the
early Hetzner provisioning to fail due to the lack of SSH authentication.

* gnu/machine/hetzner.scm (%hetzner-ssh-key-file): New parameter.
(<hetzner-configuration>) [ssh-public-key]: Compute default according to the
value of the private ssh-key field.  Introduce an indirection via...
(hetzner-configuration-ssh-public-key): ... this new procedure, to honor
%hetzner-ssh-key-file.
(hetzner-configuration-ssh-key): Likewise for the private ssh-key.
(hetzner-configuration-ssh-key-fingerprint): Rename to...
(public-key->fingerprint): ... this, taking just the public key as argument.
Update doc.
(hetzner-configuration-ssh-key-public): Rename to...
(public-key->string-with-type): ...this, for clarity, and accept just a
public-key object.  Update doc.
(hetzner-machine-ssh-key): Exit early with #f when no ssh key is provided.
(temporary-ssh-key-file): New procedure.
(hetzner-machine-ssh-key-create): Assert a public key is defined.  Adjust
calls to renamed procedures, and adjust for the `hetzner-api-server-create'
API change.
(hetzner-machine-enable-rescue-system): Refine doc and fix code path when
ssh-key is #f.
(hetzner-machine-rescue-install-os): Document.
(hetzner-machine-provision): Refine doc. Remove extraneous sleep and #:unwind
argument. Limit ssh-session dynamic scope to where it's needed.
(cleanup-temporary-ssh-key/maybe): New procedure.
(deploy-hetzner): Create and use a temporary SSH key when none is defined, and
clean it up when done or on errors.
* gnu/machine/hetzner/http.scm (hetzner-api-server-create): Make ssh-keys a
keyword argument, and fix execution when it's #f.
(hetzner-api-server-enable-rescue-system): Likewise.
* tests/machine/hetzner.scm ("deploy-machine-mock-with-unprovisioned-server"):
Adjust test.
* tests/machine/hetzner/http.scm (create-server)
("hetzner-api-server-create-unit")
("hetzner-api-server-enable-rescue-system-unit")
("hetzner-api-actions-integration")
("hetzner-api-server-enable-rescue-system-integration"): Likewise.
* doc/guix.texi (Invoking guix deploy): Precise what happens when 'ssh-key' is
 #f in hetzner-configuration, and suggest declaratively authorizing your SSH
key.

Change-Id: I812b348fb553f3b5aebd0bf66850c6ecb9e06653
2026-05-23 13:21:16 +09:00
Maxim Cournoyer 6e7d100ee3 machine: hetzner: Allow providing the SSH user.
* gnu/machine/hetzner.scm (<hetzner-configuration>)
[user]: New field.
(hetzner-machine-delegate): Use match-record to bind the field values; honor
user.
* doc/guix.texi (Invoking guix deploy): Document it.

Fixes: #8493
Change-Id: I026828c508ea936523fe864e2646ab9e3a1329c4
2026-05-23 13:21:16 +09:00
Cayetano Santos d7065ad369 doc: Remove footnote under “The Perfect Setup”.
This doesn’t hold true anymore.

* doc/contributing.texi (The Perfect Setup)[Emacs]: Remove footnote.

Change-Id: Iafe3bddad665c817eef463a264fcf3503f4a7691
2026-05-21 15:36:58 +02:00
Joan V. C. 3b7fd1e766 gnu: services: Add btrfs-scrub-service-type.
* gnu/services/linux.scm (btrfs-scrub-configuration): New configuration
record.
(btrfs-scrub-service-type): New service type with custom actions.
(fstrim-/shepherd-calendar-event?): Refactor to avoid name collisions.
* doc/guix.texi: Add service documentation.

Change-Id: I04747914591a80cd535d2f79d35e08f68081b2fc
Signed-off-by: Joan Vilardaga Castro <codeberg-hn80@joanvc.cat>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-05-20 11:37:30 +03:00
Maxim Cournoyer 7309f55abc doc: Fix typo.
Follow-up to commit 02352f186f.

* doc/guix.texi (Database Services): Fix typo.

Change-Id: If3c672c3a986b4d0eaf0892cfb44c59fe9413310
2026-05-19 15:46:57 +09:00
Maxim Cournoyer 02352f186f doc: Document valid values for log-destination in postgresql-config-file.
* doc/guix.texi (Database Services) <posgresql-config-file>
[log-destination]: Mention valid values.

Change-Id: I111a258efba01c3889dfc36e44dc21f5137b91f1
2026-05-19 15:40:56 +09:00
Maxim Cournoyer bf55797e7b doc: Remove stale paragraph about postgres socket-directory's default.
The default value was changed in commit
502925655d ("doc: Update postgresql defaut
socket directory.").

Change-Id: I9d495de696273bd35f77c858fd22653a556e2c13
2026-05-19 15:40:56 +09:00
Maxim Cournoyer b5e047ff9b machine: hetzner: Introduce the `make-hetzner-os' procedure.
All the performance and general purpose newer x86 Hetzner server types like
the 'cpx22' now require an EFI bootloader, while older ones like the 'cx23'
still expect a BIOS bootloader.

Instead of exposing the user to errors when selecting the correct operating
system template to use, provide a procedure that takes returning one based on
the server type name.

* gnu/machine/hetzner.scm (%hetzner-os-arm): Rename to...
(%hetzner-os-arm/efi): ... this.  Adjust for variable name change.
(%hetzner-os-x86): Rename to...
(%hetzner-os-x86/bios): ... this.  Adjust for variable name change.
(%hetzner-os-x86/efi): New variable.
(server-type-name->arch, server-type-name->bootloader)
(make-hetzner-os): New procedures.
(%hetzner-os-x86, %hetzner-os-x86): Deprecate variables.
(hetzner-machine-bootstrap-os-form): Use the server type name to infer whether
the EFI or BIOS bootloader should be used, along the EFI partition.
* doc/guix.texi (Invoking guix deploy): Updated doc.

Fixes: #8523
Change-Id: I331a76e12bb3c19f5664dcbe4437a8d1cfe1d363
2026-05-19 14:15:27 +09:00
Ludovic Courtès c69d577a6f doc: Mention that trusted channels must have an introduction.
* doc/guix.texi (Invoking guix pull): Mention that “trusted channels” must
have an introduction; explain how channels are identified.

Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
Change-Id: Ie89702cc17bc90130153a56df1f0844b19cfff23
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8565
2026-05-17 22:12:07 +02:00
Ludovic Courtès 2baa1f3f0c doc: cookbook: More cross-reference fixes under “Packaging Tutorial”.
* doc/guix-cookbook.texi (Recursive importers): Turn @pxref into @xref to
avoid repetition.
(Automatic update): Add cross-reference to “Invoking guix refresh”.

Change-Id: I7511c539209ee1d861270dfe520c3f4930449d4e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-17 22:12:07 +02:00
Ludovic Courtès c8894c3ca5 doc: cookbook: Fix typo.
The typo was introduced in 2cbe77f480.

* doc/guix-cookbook.texi (Inheritance): Fix typo.

Change-Id: I09616d4336ab827ae298e331be7a9117a0b9214c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-17 22:12:07 +02:00
Sören Tempel 258cabed32 services: gunicorn: Allow configuration of socket user/group/mode
Without this change, the mode is not at all configurable meaning
that—depending on the umask(1)—it may allow access to others.  Further,
in many scenarios the owner/group of the Unix domain socket should
differ from the owner/group of the gunicorn process.  For example,
we might want to grant the nginx group access to the socket but not
use that as the GID for the gunicorn process.

* gnu/services/web.scm (<gunicorn-app>): Add socket-user, socket-group
and socket-mode.
* gnu/services/web.scm (gunicorn-activation): Respect
gunicorn-app-socket-user, gunicorn-socket-app-group, and
gunicorn-app-socket-mode.
* doc/guix.texi (Guix Services): Document new record fields.

Change-Id: I1fe5b77deb791c38c1642753a52098d304124049
2026-05-17 17:59:35 +02:00
Efraim Flashner 49dfc18f43 doc: Add EFI hint for Chrooting into an existing system.
* doc/guix.texi (Chrooting into an existing system): Mention the
canonical directory to check to see if a machine has booted with EFI
support.

Change-Id: I98b2b3a8adc0cc5b49a91b976ca02c10ac424d40
2026-05-17 11:30:51 +03:00
Janneke Nieuwenhuizen 99438d8775 doc: Substitute @' with @@' when generating os-config*.texi files.
* doc/local.mk (%D%/os-config-%.texi): Use SED to substitute `@', rather than
CP.

Change-Id: I515ab99adb3c2c7ee8fa01d314c777df395930fc
2026-05-17 10:22:35 +02:00
Patrick Norton 89438b98fb gnu: home-services: Add config options to ssh.
* gnu/home/services/ssh.scm (openssh-host): Add new explicit
configuration options.

Change-Id: Ie67ed10829642cd1f64c55f25ccd50b8e557983e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6288
2026-05-16 00:42:25 +02:00
Danylo Kondratiev efe3506396 doc: Replace idutils import under the 'Shepherd Home Service' subsection.
* doc/guix.texi: Replace '(gnu packages idutils)' in the 'Shepherd Home
Service' subsection with '(gnu packages code)'.

Change-Id: Ib45c48148c8f8117d5d0be4bd6c68473b55d4b22
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8447
2026-05-16 00:42:25 +02:00
Maxim Cournoyer 89403c70ec doc: Document binary installation using a pre-mounted store.
* doc/guix.texi (Binary Installation): Add new 'Installation with a
pre-mounted store' subsection.

Fixes: #8452
Change-Id: I360399362765b6c29e177c2a6eb750d59a8531a6
Suggested-by: Rutherther <rutherther@ditigal.xyz>
Reviewed-by: Rutherther <rutherther@ditigal.xyz>
2026-05-15 22:07:41 +09:00
Brickworld e68faafcd3 doc: Move the --repo option under OPAM.
* doc/guix.texi (Invoking guix import): Move the --repo option under OPAM.

Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-05-13 08:36:42 +09:00
Ludovic Courtès 2cbe77f480 doc: cookbook: Add links from “Packaging Tutorial” to the manual.
* doc/guix-cookbook.texi (A ``Hello World'' package): Add link to “origin
Reference” and adjust markup.
(Extended example): Link to “origin Reference”.  Fix markup.  Link to
“Packages with Multiple Outputs”, “Build Systems”, “Build Phases”, and
“G-Expressions”.  Adjust reference to the Guile manual.
(Inheritance): Link to “Defining Package Variants”.
(References): Use @xref to reference the manual.

Change-Id: Ifa605adc1c91f2735b66005c8a7412f60cdb4484
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8392
2026-05-11 17:49:11 +02:00
Maxim Cournoyer eb9379c682 doc: Regenerate menus.
* doc/guix.texi: Regenerate menus.

Change-Id: If0394687ad607c7b869147733d38d609767a125e
2026-05-11 20:31:38 +09:00
Ludovic Courtès 03b2e7f34a doc: Add a list of ‘guix hash’ examples.
* doc/guix.texi (Invoking guix hash): Add examples.
(Invoking guix time-machine): Add cross reference.

Change-Id: I128d8a884f26e580955a0316caa2e119cff4498b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10 17:01:08 +02:00
Ludovic Courtès c9dcd203e5 pull, time-machine: ‘--allow-untrusted-channels’ takes an argument.
* guix/scripts/pull.scm (%default-options): Change ‘require-trusted-channels?’
to ‘require-trusted-channels’.
(show-help, %options): Support optional argument to
‘--allow-untrusted-channels’.
(channel-list): Adjust accordingly.
* guix/scripts/time-machine.scm (show-help, %options)
(%default-options): Likewise.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull)
(Invoking guix time-machine): Adjust accordingly.

Suggested-by: Reepca Russelstein <reepca@russelstein.xyz>
Change-Id: I342ebbcc7355953487a5c6c8ac85048943a5ac46
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10 17:01:08 +02:00
Ludovic Courtès f13901f6cb pull, time-machine: Accept content SWHIDs as arguments to ‘--channels’.
* guix/swh.scm (swhid-content-data): New procedure.
(call): Do not close ‘port’ when ‘result’ is the same as ‘port’.
* guix/scripts/pull.scm (swhid-content-data*): New procedure.
(channel-list): Accept ‘file’ as a SWHID.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Document it.
(Invoking guix time-machine): Likewise.

Change-Id: I8145cd8685fe2926b1548d4a2dcd54804d89228a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10 17:01:08 +02:00
Ludovic Courtès 4b81a4df19 pull, time-machine: Support transparent download of channel files.
* guix/scripts/pull.scm (%default-options): Add ‘require-trusted-channels?’.
(show-help, %options): Add ‘--allow-untrusted-channels’.
(trusted-channels, equivalent-channels?, check-trusted-channels): New
procedures.
(channel-list)[require-trusted-channels?]: New variable.
[load-channels]: Honor it and call ‘check-trusted-channels’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--allow-untrusted-channels’.
(%default-options): Add ‘require-trusted-channels?’.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Update ‘--channels’ documentation and
document ‘allow-untrusted-channels’.
(Invoking guix time-machine): Likewise.
(Channels with Substitutes): Add example of ‘guix pull’ with a URL.

Change-Id: If0bb6acaedf324e35a21c9c7d285f3e423ae49aa
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10 17:01:08 +02:00
Ludovic Courtès 36d431c051 pull, time-machine: Evaluate channels in a sandbox by default.
* guix/scripts/pull.scm (%default-options): Add
‘isolated-channel-evaluation?’.
(show-help, %options): Add ‘--unsafe-channel-evaluation’.
(%safe-channel-bindings): New variable.
(channel-list): Honor ‘isolated-channel-evaluation?’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--unsafe-channel-evaluation’.
(%default-options): Add ‘isolated-channel-evaluation?’.
* tests/guix-time-machine.sh: Test use of unauthorized bindings in channel
files.
* doc/guix.texi (Invoking guix time-machine): Document
‘--unsafe-channel-evaluation’.
(Invoking guix pull): Likewise.
(Channels with Substitutes): Add index entry for
‘channel-with-substitutes-available’.  Mention that it requires
‘--unsafe-channel-evaluation’.

Change-Id: I75f60dba516f42ef62a9d779cde8e2f0a9d0c140
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10 17:01:07 +02:00
Ludovic Courtès ef3dcc29e5 doc: Build with Texinfo 7.
This is a backport of guix/lernigilo#7 and followup commits.

* doc/build.scm (html-manual-identifier-index)[build]
(collect-anchors): Add clauses matching Texinfo 7 output.
(syntax-highlighted-html)[build](concatenate-snippets): Likewise.
(syntax-highlight):Likewise.
(stylized-html)[stylized-html]: Do not insert <link> tag for ‘%manual-css-url’
since it’s already added by ‘makeinfo’.

Change-Id: I3a51eece053d4fdeeaa72d2642fd4a62695cc3a6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8272
2026-05-08 22:22:14 +02:00
Ludovic Courtès b84d3cb9bf doc: Remove extra parent in ‘shepherd-signal-action’ example.
* doc/guix.texi (Shepherd Services): Remove extra paren in example.

Change-Id: I6530e8a9cb3a5f9596f57f8b6c7dc4ea8e3fab77
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-08 22:22:13 +02:00
Ludovic Courtès cd9d6853d4 doc: For Guile identifiers, refer to doc.guix.gnu.org.
* doc/build.scm (%guile-manual-base-url): Point to doc.guix.gnu.org.

Change-Id: I0be6a42e6bbb84a5ee7c3cbe9fd9d0e0867acb14
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-08 22:22:13 +02:00
Nicolas Graves 8a505cfd48 style: Add ‘remove-input’ and related styling rules.
* guix/scripts/style.scm (input-matches?, package-list->string,
%field-accessors, remove-from-package-field, transform-package-field):
Add variables.
(%options): Add options --remove-input, --remove-native-input,
--remove-propagated-input, and --parameter.
(guix-style): Implement those options.  To keep ony one autoload, use
specification->package+output rather than specification->package.

* tests/style.scm ("remove-input, single input removed",
"remove-input, one of multiple inputs removed",
"remove-input, middle input removed from list",
"remove-input, non-existent input unchanged",
"remove-input, input with output specifier",
"remove-native-input, single input removed",
"remove-native-input, one of multiple inputs removed",
"remove-native-input, does not affect inputs field",
"remove-propagated-input, single input removed",
"remove-propagated-input, one of multiple inputs removed",
"remove-propagated-input, does not affect other fields",
"remove-input from all three fields independently",
"remove-input, dry-run does not modify file"): New tests.
("url-fetch->git-fetch, preserved field"): Drop the use of %patch-path
and %package-module-path, which are not necessary because of -L.
Change the mocked procedure from specification->package to
specification->package+output, as in the implementation.

* doc/guix.texi (Invoking guix style): Add description for guix style
-S remove-*input rules.

Change-Id: I449c87930310a73ad316b4cb5db72d0906ea495d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5862
2026-05-07 17:35:32 +02:00
Nicolas Graves 10bf5b6c29 doc: Rebalance guix style inputs description.
* doc/guix.texi: It seems that there were two places where styling
rules were declared, and one was vastly outdated.  Only describe
styling rules once instead, and move their specific discussion where
the styling rule is described.

Change-Id: Ic83d4c59e45ed51f63dfe91e624b6f453a800818
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-07 17:34:44 +02:00
Giacomo Leidi 126a51d0e5 gnu: Add fwupd-service-type.
* gnu/services/firmware.scm: New file.
(fwupd-configuration): New configuration record.
(fwupd-service-type): New service type.
* gnu/local.mk: Add it.
* doc/guix.texi: Document it.

Change-Id: Ibea27566d6ae64ccfdfdd2750be006df1ffde22d
Signed-off-by: Sughosha <sughosha@disroot.org>
Merges: guix/guix!5409
2026-05-06 19:41:09 +05:30
Zhu Zihao 43833afaa1 doc: Document the GUIX_DISTRO_AGE_WARNING environment variable.
* doc/guix.texi: (Invoking guix pull): Add document for the outdate warning.
(GUIX_DISTRO_AGE_WARNING): New environment variable.

Change-Id: Icb4537d59640fd92c0f552a57ba1f5a35d8ebb3d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-05-04 11:36:58 +09:00
Ludovic Courtès 47919d9f99 doc: Fix typo.
This is a followup to 0e18caf221.

* doc/guix.texi (Bootloader Configuration): Change “logo” to singular.

Reported-by: Maxim Cournoyer <maxim@guixotic.coop>
Change-Id: I98c46746e33c0e7a14ebb90919fc28567780aa63
2026-05-03 22:45:54 +02:00
Yelninei c0d0ba76e5 services: syslog: Add pid file option.
Alternative syslogd implementations use a different pid file.

* gnu/services/base.scm: Export all syslog-configuration accessors.
(syslog-configuration): Add pid-file field.
(syslog-shepherd-service-type): Use it.
* doc/guix.texi (syslog-configuration): Document it.

Change-Id: I9be9fc741d98d4f49a37fbcbb2c644db859cadc1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6096
2026-05-03 22:45:53 +02:00
Charles Roelli 9d0bb1ef26 build: Fix out-of-tree make.
* doc/local.mk (lang_to_texinfo): Refer to .texi files using srcdir.
(xref_command): Reference pre-inst-env using builddir.
($(srcdir)/%D%/guix.%.texi):
($(srcdir)/%D%/guix-cookbook.%.texi):
($(srcdir)/%D%/contributing.%.texi): Refer to source files using srcdir.
* nix/local.mk (etc/guix-gc.timer): Use the name of the prerequisite,
not just its file name.

Change-Id: I247bcd873c8355d0eae07870ec849d2eb8cfa6c5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8267
2026-05-03 22:45:53 +02:00
Daniel Herzig bfcfbd4613 doc: fix image-type for lightweight-desktop example.
Merges: https://codeberg.org/guix/guix/pulls/7388
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-02 17:00:25 +09:00
宋文武 60317b1dcf doc: cookbook: Fix qemu network bridge example.
* doc/guix-cookbook.texi (Virtual Machines) [Network bridge for QEMU]:
Enable 'autoconnect' for the 'bridge-slave-enp2s0' connection.
Fix 'bridge.conf' example.  Add missing 'helper' argument to the qemu invocation.

Change-Id: I94fdb69b65cb032cfc9f21ae1dfab950937f1a70
2026-05-01 22:26:44 +08:00
Danny Milosavljevic 62992295d6 shell: Add --cwd.
* guix/scripts/environment.scm (show-environment-options-help): Document
--cwd.
(%options): Add cwd.
(launch-environment/container): Add cwd parameter.  Implement passing it to
the container.
(guix-environment*): Reject --cwd without --container.
* doc/guix.texi (Invoking guix shell): Document it.
* tests/guix-environment-container.sh: Add tests.
* tests/guix-shell.sh: Add tests.

Fixes: guix/guix# 7825
Change-Id: Iba4ff3d2058e92f504fbcbf688346357ce913213
2026-04-30 02:07:20 +02:00
Rutherther a2b68d8f64 docs: Update release signing key.
The release artifacts are now signed by Efraim, not Ludo.

* doc/guix-cookbook.texi: Switch gpg url to codeberg, mention Efraim's key.
* doc/guix.texi: Likewise.

Change-Id: Iae667796b6978cdd4a44f73990da7b9599ab509c
Fixes: #5946
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #6213
2026-04-29 13:09:25 +02:00