Commit graph

3250 commits

Author SHA1 Message Date
Efraim Flashner
87cf2a859d
home: services: ssh: Allow unset boolean options in ssh-config.
From man 5 ssh_config:
Unless noted otherwise, for each parameter, the first obtained value
will be used.

We want to allow falling through to the first explicitly chosen user
defined value.

* gnu/home/services.ssh.scm (define-maybe boolean): New configuration.
(openssh-host)[forward-x11?, forward-x11-trusted?, forward-agent?,
compression?]: Replace default value with maybe-boolean.
* doc/guix.texi (Secure Shell): Update documentation to match the
changes in the code.
2023-06-14 21:51:44 +03:00
Christopher Baines
0ea096ae23
doc: Move and rewrite the branching strategy.
Move away from using staging and core-updates, and make the strategy
independant of branch names.

Keep the 300 dependent threshold for changes to master, as I don't have any
specific reason to change this.

Most importantly, require using guix-patches issues to coordinate merging of
the branches, as I think that'll address the key issues that have shown up
recently where it's been unclear which branch should be merged next.

* doc/contributing.texi (Submitting Patches): Move the branching strategy to a
new Managing Patches and Branches section.
(Managing Patches and Branches): New section.
(Commit Policy): Simplify through referencing the new Managing Patches and
Branches section.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-06-12 19:52:57 +01:00
Nicolas Graves
95853e61a7
home: services: ssh: Add 'match-criteria' option.
* gnu/home/services/ssh.scm (serialize-address-family): Raise
'&formatted-message' instead of '&error'.
(ssh-match-keywords): New variable.
(match-criteria?): New procedure.
(match-criteria): New maybe type.
(openssh-host)[name]: Turn into 'maybe-string'.
[match-criteria]: New field.
(serialize-openssh-host): Adjust accordingly.
* doc/guix.texi (Secure Shell): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-09 23:28:18 +02:00
Nicolas Graves
f19e1b4f96
home: services: ssh: Add 'add-keys-to-agent' field.
* gnu/home/services/ssh.scm (<home-openssh-configuration>)[add-keys-to-agent]:
New field.
(serialize-add-keys-to-agent): New procedure.
(openssh-configuration->string): Use it.
* doc/guix.texi (Secure Shell): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-09 23:27:52 +02:00
Ludovic Courtès
aceb150d29
doc: Use the term "Procedure" for definitions.
In an effort to homogenize things, commit
3c40dfe285 replaced:

  @deffn {Scheme Procedure}

with:

  @defun

However, the latter prints "Function" when all existing material about
Scheme uses the term "procedure".

Thus, for consistency, this commit switches to:

  @deffn {Procedure}

* doc/guix.texi, doc/contributing.texi: Use "@deffn {Procedure}"
consistently rather than "@defun" or similar.
2023-06-08 23:29:27 +02:00
Felix Lechner
8f855dd187
doc: Update outdated URL for Eudev wiki.
Change was coordinated with upstream maintainer Boian Bonev.

* doc/guix.texi: Update outdated URL for Eudev wiki.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-08 22:59:26 +02:00
Felix Lechner
44e4dc7c72
doc: Replace reference to non-existing (gnu home services ssh-agent).
Thanks to Alexandros Prekates and Markku Korkeala for pointing out the bug in
the documentation. [1]

[1] https://lists.gnu.org/archive/html/help-guix/2023-05/msg00220.html

* doc/gnu.texi (Secure Shell): Replace reference to non-existing (gnu home
services ssh-agent)

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-08 22:58:25 +02:00
Ludovic Courtès
d62c6170ef
doc: Add missing node to the main menu.
This is a followup to 110462bb2f.

* doc/guix.texi (Top): Add "Mail Home Services" to the menu.
2023-06-06 11:54:39 +02:00
Efraim Flashner
c1b8f1bc7a
doc: Fix some typos in the manual.
* doc/guix.texi (Invoking guix pull): Correct followings to following.
(Using Guix Interactively): Correct expresssion to expression.
(Base Services): Correct overriden to overridden.
(Audio Services): Correct Supress to Suppress.
(Setuid Programs): Correct goup to group.
(Essential Home Services): Correct apropiate to appropriate, similiar to
similar.
(Messaging Home Services): Correct seperately to separately.
(image Reference): Correct instanciated to instantiated.
(Full-Source Bootstrap): Correct udpate to update, Frome to From.
2023-06-05 21:36:09 +03:00
Efraim Flashner
5cf38fb6d6
doc: cookbook: Update example my-libgit2 package.
* doc/guix-cookbook.texi (Packaging Tutorial): Improve the code quality
of the example my-libgit2 package.
2023-06-05 21:36:06 +03:00
Josselin Poiret
80d1228321
build-system: New agda-build-system.
* guix/build-system/agda.scm: New file.
* guix/build/agda-build-system.scm: New file.
* Makefile.am (MODULES): Register them.
* doc/guix.texi (Build Systems): Add documentation for agda-build-system.
2023-06-04 10:59:34 +02:00
muradm
f4f5ee6ad6
services: screen-locker-service-type: Configurable PAM and setuid.
screen-locker-service-type by default does both define PAM entry
and make program setuid binary. Normally both methods are
mutually exclusive, if binary has setuid set it does not really
needs PAM, otherway around also similar, if PAM is enabled
binary should not relay on setuid.

Recent swaylock package now compiled with PAM support. When PAM
support is compiled in, swaylock rejects executing if binary is
also setuid program.

This change turns screen-locker-configuration from strict
PAM AND setuid to more flexible PAM AND/OR setuid. Allowing
swaylock to be configured properly while supporting other
screen locker preferences.

* gnu/services/xorg.scm (screen-locker-configuration): Switch from
define-record-type to define-configuration.
[using-pam?]: New field to control PAM entry existence.
[using-setuid?]: New field to control setuid binary existence.
(screen-locker-pam-services): Should not make unix-pam-service if
using-pam? is set to #f.
(screen-locker-setuid-programs): Should not make program setuid
program if using-setuid? is set to #f.
(screen-locker-generate-doc): Internal function to generate
configuration documentation.
(screen-locker-service): Adapt to new screen-locker-configuration.
* gnu/services/desktop.scm (desktop-services-for-system): Adapt to
new screen-locker-configuration.
* doc/guix.texi: Reflect new changes to screen-locker-configuration.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2023-06-04 10:33:55 +02:00
Ludovic Courtès
57ceb64e34
upstream: Honor package properties for ignored and extra inputs.
* guix/upstream.scm (update-package-inputs)[filtered-inputs]
[regular-inputs, native-inputs, propagated-inputs]: New procedures.
Use them in 'update-field' calls.
* tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add "libreoffice"
to the dependencies of "the-test-package".  Add 'updater-ignored-inputs'
property to "the-test-package".
* doc/guix.texi (Invoking guix refresh): Document it.
2023-05-31 23:25:26 +02:00
Ludovic Courtès
ec0a2fc87b
upstream: 'update-package-source' edits input fields.
Previously, 'guix refresh r-ggplot2 -u' and similar commands would print
of list of input changes that would have to be made manually.  With this
change, 'guix refresh -u' takes care of updating input fields
automatically.

* guix/upstream.scm (update-package-inputs): New procedure.
(update-package-source): Call it when 'upstream-source-inputs' returns
true.
* guix/scripts/refresh.scm (update-package): Remove iteration over the
result of 'changed-inputs'.
* guix/import/test.scm (available-updates): Add support for input
lists.
* tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add input list for
"the-test-package".
Make sure 'guix refresh -u' updates 'inputs' accordingly.
* doc/guix.texi (Invoking guix refresh): Mention it.
2023-05-31 23:25:25 +02:00
Ludovic Courtès
db10a4a2ae
doc: Mention 'guix refresh -u' for third-party channels.
* doc/guix.texi (Invoking guix refresh): Show how to run 'guix refresh
-u' on a third-party channel.
2023-05-31 23:25:24 +02:00
Florian Pelz
8e9e6a6482
nls: Update translations.
* doc/guix-cookbook.texi (Top): Mention Slovak.
2023-05-31 17:23:21 +02:00
Florian Pelz
718eb55104
doc: Quote all list values.
* doc/guix.texi (System Configuration)[Services]: Replace all () by
'(), and similar quotings.
(Home Configuration)[Home Services]: Likewise.
2023-05-30 17:04:10 +02:00
Tanguy Le Carrour
110462bb2f
home: services: Add msmtp service.
* gnu/home/services/mail.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Mail Home Services): New node.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-05-30 00:15:30 +02:00
Ludovic Courtès
4ebefac412
doc: Update references to the Shepherd manual.
* doc/guix.texi (Shepherd Services): Update cross-references to
shepherd.info nodes removed in 0.10.0.
2023-05-30 00:15:30 +02:00
Ludovic Courtès
fb1c5d4df7
doc: Adjust HTML patterns to correctly process Texinfo 6.8 output.
Prior to ceb5ef8347, (@ (gnu packages
texinfo) texinfo), which is what is used here, was pointing to version 6.7.

* doc/build.scm (html-manual-identifier-index)[build](worthy-entry?):
Adjust patterns for Texinfo 6.8.
(syntax-highlighted-html)[build](syntax-highlight): Likewise.
2023-05-25 23:24:40 +02:00
Ludovic Courtès
b59c18f761
doc: Tweak SELinux instructions.
* doc/guix.texi (SELinux Support): Add note about 'guix-install.sh'.
Provide the absolute file name of 'guix-daemon.cil'.  Wrap important
commands in @example.  Suggest relabeling just /gnu and /var/guix
instead of all of /.  Add "systemctl restart guix-daemon".
2023-05-25 12:51:16 +02:00
Felix Lechner
df72c45d5c
doc: guix.texi: Add Texinfo line breaks.
Adds two line breaks to the copyright block. The same kind of breaks [1] are
present in the remaining fifty-five entries.

[1] https://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html#Line-Breaks

* doc (guix.texi): Add Texinfo line breaks.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-24 15:04:00 +02:00
Felix Lechner
3c2f833257
doc: contributing.texi: Specify recipient via equal sign in 'git send-email --to'.
The documentation for git send-email recommends the use of an equal sign when
specifying a recipient with the --to option. [1] Adjusts the reference manual
accordingly.

[1] https://git-scm.com/docs/git-send-email

* doc (contributing.texi): Specify recipient via equal sign in
'git send-email --to'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-24 15:04:00 +02:00
Janneke Nieuwenhuizen
c57693846c
home: services: ssh: Do not empty ~/.ssh/authorized_keys by default.
The default was an empty list which would remove any ~/.ssh/authorized_keys
file and replace it with a symlink to an empty file.  On some systems, notably
Ubuntu 22.10, the guix home generated ~/.ssh/authorized_keys file does not
allow login.

* doc/guix.texi (Secure Shell): Update, describe default #false value.
* gnu/home/services/ssh.scm (<home-openssh-configuration>)
[authorized-keys]: Change default to #f.
(openssh-configuration-files): Cater for default #f value: Do not register
"authorized_keys".
2023-05-24 11:56:12 +02:00
Ludovic Courtès
7d1d5e16da
doc: Clarify instructions for hibernation on a swap file.
Fixes <https://issues.guix.gnu.org/62711>.

* doc/guix.texi (Swap Space): Change 'resume' argument to a device in
example; add comments.  Update sentence describing 'resume' and
'resume_offset'.
2023-05-21 01:04:39 +02:00
Ludovic Courtès
ba5da5125a
style: Add 'arguments' styling rule.
* guix/scripts/style.scm (unquote->ungexp, gexpify-argument-value)
(quote-argument-value, gexpify-argument-tail)
(gexpify-package-arguments): New procedures.
(%gexp-keywords): New variable.
(%options): Add "arguments" case for 'styling-procedure.
(show-stylings): Update.
* tests/style.scm ("gexpify arguments, already gexpified")
("gexpify arguments, non-gexp arguments, margin comment")
("gexpify arguments, phases and flags")
("gexpify arguments, append arguments")
("gexpify arguments, substitute-keyword-arguments")
("gexpify arguments, append substitute-keyword-arguments"): New tests.
* doc/guix.texi (package Reference): For 'arguments', add compatibility
note and link to 'guix style'.
(Invoking guix style): Document the 'arguments' styling rule.
2023-05-18 20:01:32 +02:00
Ludovic Courtès
fddf97456c
doc: Change '--with-configure-flag' example to something that works.
Passing '-DBUILD_COMPLEX=OFF' to lapack would eventually lead to a link
error.

Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* doc/guix.texi (Package Transformation Options): Change
'--with-configure-flag' example.
* etc/news.scm: Likewise.
2023-05-18 19:20:58 +02:00
Christopher Baines
9a6bbea9d4
services: nar-herder: Support extra environment vars.
* gnu/services/guix.scm (nar-herder-configuration-extra-environment-variables):
New procedure.
(nar-herder-shepherd-services): Pass the environment variables to the
shepherd.
* doc/guix.texi (Guix Services): Document it.
2023-05-13 11:26:37 +01:00
Bruno Victal
0e3bb48d36
services: Add vnstat-service-type.
* gnu/services/monitoring.scm (vnstat-service-type): New variable.
* doc/guix.texi (Monitoring Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11 16:38:29 +02:00
Nathaniel Nicandro
2ecf4a9ba3
doc: Update dicod-configuration example
* doc/guix.texi (Dictionary Service): Update dicod-configuration example to
fix outdated WordNet database configuration.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11 16:38:29 +02:00
Gabriel Wicki
199218e372
doc: Clarify substitute* docstring with an example.
* doc/guix.texi (Build Utilities): Update the corresponding passage.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11 16:38:28 +02:00
Sergey Trofimov
61031dd32f
services: dhcp-client-configuration: Add 'shepherd-requirement' field.
* gnu/services/networking.scm (<dhcp-client-configuration>)
[shepherd-requirement]: New field.
(dhcp-client-shepherd-service): Honor it.
(dhcp-client-configuration-shepherd-requirement): Export accessor.
* doc/guix.texi (Networking Setup): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11 16:38:28 +02:00
Andrew Patterson
8d442e8a53
gnu: home: services: fontutils: Add support for SXML fragments.
* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add
support for adding arbitrary SXML configuration into fonts.conf;
* doc/guix.texi (Fonts Services): Update the documentation.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11 16:38:27 +02:00
Christopher Baines
98c3931641
services: guix-build-coordinator-agent: Support max-parallel-uploads.
This should be usable with the new guile-gnutls.

* gnu/services/guix.scm
(guix-build-coordinator-agent-configuration-max-parallel-uploads): New
procedure.
* gnu/services/guix.scm (guix-build-coordinator-agent-shepherd-services): Use
the new argument.
* doc/guix.texi (Guix Services): Document it.
2023-05-10 11:06:20 +01:00
Blake Shaw
8f92dfd9ae
doc: Fix module name for 'home-znc-service-type'.
* doc/guix.texi (Messaging Home Services): Fix.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-10 00:35:52 +02:00
Christopher Baines
a759cbffaf
services: guix-build-coordinator: Support extra environment vars.
I'm looking at this because I need to do some debugging of Guile's GC, and
there are some useful environment variables for that, but it should be
generally useful.

* gnu/services/guix.scm (guix-build-coordinator-configuration-extra-environment-variables):
New procedure.
(guix-build-coordinator-shepherd-services): Pass the environment variables to
the shepherd.
* doc/guix.texi (Guix Services): Document it.
2023-05-09 16:19:21 +01:00
Maxim Cournoyer
4228d3c358
Partly reinstate "doc: Update all menus."
This partly reinstates commit 9719d7d ("doc: Update all menus."), omitting the
hunk touching doc/contributing.texi.

* doc/guix.texi: Update all menus.
2023-05-08 09:57:09 -04:00
Maxim Cournoyer
b7e7744626
Revert "doc: Update all menus."
This reverts commit 9719d7d2b0.  It breaks Guix
pull, building the 'guix-manual' for reasons that currently escape me.
2023-05-07 22:49:29 -04:00
Maxim Cournoyer
9719d7d2b0
doc: Update all menus.
Automated via 'M-x texinfo-all-menus-update' in Emacs, and dropping
the *Contributing menu removal, which is erroneously removed because defined
in a different Texinfo file.

* doc/guix.texi: Update all menus.
* doc/contributing.texi (Submitting Patches): Likewise.
2023-05-07 21:51:27 -04:00
Maxim Cournoyer
26a788ae06
doc: Add some information/recommendation regarding --sysconfdir.
* doc/contributing.texi (Building from Git): Mention sysconfdir along
localstatedir.
* doc/guix.texi (Requirements): Likewise.
2023-05-07 21:51:27 -04:00
Bruno Victal
8ffe52df47
doc: Use G-Expressions for package definition example.
* doc/guix.texi (Build Phases): Use G-Expressions for example.

Co-authored-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-06 18:07:37 +02:00
Ludovic Courtès
86bf0c5a3f
doc: cookbook: Remove outdated section about GUIX_PACKAGE_PATH.
The section insisted on GUIX_PACKAGE_PATH, mentioned version 0.16, and
didn't say much about channels, which made it look obsolete.

* doc/guix-cookbook.texi (GUIX_PACKAGE_PATH): Remove section.
(Guix channels): Rename to...
(Channels): ... this.  Merge most of the explanations previously in the
GUIX_PACKAGE_PATH section.  Say more about channels and add
cross-references.
2023-05-06 18:01:16 +02:00
Sarthak Shah
ae11fcb84a
transformations: Add '--with-configure-flag'.
* guix/transformations.scm (transform-package-configure-flag): New
procedure.
(%transformation-options, %transformation-options)
(show-transformation-options-help/detailed): Add it.
* tests/transformations.scm ("options->transformation,
with-configure-flag"): New test.
* doc/guix.texi (Package Transformation Options): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-05-04 17:06:44 +02:00
Maxim Cournoyer
1d77fd705b
doc: Simplify contributing section by automating git configuration.
Fixes <https://issues.guix.gnu.org/58813>.  No longer suggests to splice the
output of etc/teams.scm commands into the 'git send-email' command line; this
is now transparently handled by the Git configuration, which is also
automatic.

* doc/contributing.texi (Configuring Git): Streamline section, now automated
via Automake.
(Sending a Patch Series): Do not specify options configured as default by the
above.  Prefer long option names, for readability.
(Teams): Rewrite the examples to use --header-cmd.
(Commit Access): Refer to the Configuring Git section instead of detailing
manual steps.
2023-05-01 12:39:11 -04:00
Josselin Poiret
e4f17429a6
doc: Add --sysconfdir=/etc to the recommended ./configure.
* doc/contributing.texi (Building from Git): Add --sysconfdir=/etc to the
recommended ./configure invocation.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-30 23:11:12 +02:00
Bruno Victal
9be1ee6a49
services: tor: Deprecate 'tor-hidden-service' procedure.
Due to (now renamed) 'hidden-service' record type not being exported, the only
way Onion services (formely hidden services) could have worked is through the
now deprecated 'tor-hidden-service' procedure.

This commit updates the Tor service documentation, corrects some inconsistently
named accessors in <tor-configuration> record-type, renames and refactors
tor-hidden-service-configuration to tor-onion-service-configuration using
define-configuration and also exports it, allowing Onion services to be
configured directly within a <tor-configuration> record.
Lastly, it also deprecates the 'tor-hidden-service' procedure.

* doc/guix.texi (Networking Services): Substitute mentions of “Hidden services”
with “Onion Services”. Add a Tor Onion service configuration example.
Document <tor-onion-service-configuration>. Remove mention of
'tor-hidden-service' procedure.
* gnu/services/networking.scm: Export tor-configuration-tor,
tor-configuration-config-file, tor-configuration-hidden-services,
tor-configuration-socks-socket-type, tor-configuration-control-socket-path,
tor-onion-service-configuration, tor-onion-service-configuration?,
tor-onion-service-configuration-name, tor-onion-service-configuration-mapping.
(<tor-configuration>)[control-socket?]: Rename accessor.
(<hidden-service>): Replace with …
(<tor-onion-service-configuration>): … this.
(tor-configuration->torrc): Update record-type name.
(tor-activation): Ditto.
(tor-hidden-service-type): Remove variable.
(tor-hidden-service): Deprecate procedure.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-25 17:19:21 +02:00
Andreas Enge
d7ec2805fb
Merge remote-tracking branch 'origin/master' into core-updates 2023-04-23 22:21:00 +02:00
宋文武
4502de61f2
refresh: Support select packages SUBSET by module name.
* guix/scripts/refresh.scm (%options): Support '--select module:NAME'.
(show-help): Adjust accordingly.
(options->update-specs): Honor the module passed by '--select'.
* doc/guix.texi (Invoking guix refresh): Document it.
2023-04-23 15:28:46 +08:00
Andreas Enge
d1252b597d
Merge remote-tracking branch 'origin/master' into core-updates 2023-04-22 09:21:22 +02:00
Saku Laesvuori
13ebf5e36c
doc: Update openssh-host documentation.
* doc/guix.texi (Secure Shell): Update openssh-host documentation to
match the code.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-21 17:09:51 +02:00