1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-16 03:50:45 +02:00
Commit graph

3833 commits

Author SHA1 Message Date
Tomas Volf
364694773e
gnu: home: services: Add home-mpv-service-type.
This commit adds a new service type to generate configuration file for the mpv
media player.

Originally I attempted to use Guix Records (via define-configuration) for
this, but ran into the bug #74748, so I had to switch to procedures instead.
The usage is (hopefully) sufficiently described in the documentation.  When
the bug is resolved, I will update it to use define-configuration instead.

The full list of supported options is documented, however I decided to *not*
document types and purpose for each individual fields.  While I had mostly
working prototype to extract the documentation from mpv, once I realized it
would be few 10k of lines added, I decided it is not worth it.  It would bloat
the .texi file (by more than 50%), be hard to maintain and, in my opinion,
would not provide enough value to justify that.  The current version seems
like sane middle ground.

* gnu/home/services/mpv.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
* doc/guix.texi (mpv Media Player): Document it.

Change-Id: I2deb44799a28047cb5d67da97dc6007a9df873af
2025-05-13 10:55:49 +09:00
Christopher Baines
8a7e623eeb
doc: build.scm: Handle (current-source-directory) being #f.
Since this seems to be the case when the devel manual is being built on
bayfront.

* doc/build.scm: Use the current working directory as a fallback
if (current-source-directory) is #f, and log the value of root.

Change-Id: Ic43fd05a4a0822d9efb935069850f0a8cadd80aa
2025-05-12 15:54:52 +01:00
Evgeny Pisemsky
c2d9d5580e
doc: Add missing heading and fix accidental duplication.
* doc/guix.texi: Add missing heading for Snuik Service, fix accidental
duplication of sections for Mosquitto Service.

Change-Id: Id3e3a80da70e6eb47ee9c5afa69d3c48efea4754
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-12 15:26:50 +09:00
Evgeny Pisemsky
44d178265c
services: Add mosquitto-service-type.
* gnu/services/messaging.scm (<mosquitto-configuration>): New record type.
(mosquitto-accounts): New procedure.
(mosquitto-shepherd-service): New procedure.
(mosquitto-service-type): New variable.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I3500c5b6b69084c1f4a6da66ea45bfd42c871f3f
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-05-09 19:47:24 +02:00
Maxim Cournoyer
2e1ead7c8b
doc: Fix building documentation on Berlin.
This reverts 4df6eda30f ("gnu: Rename
`texlive-updmap.cfg' into `texlive-local-tree'.") just for doc/build.scm.

As the build farm uses 'guix' as provided by the guix-daemon; an updated to the
guix package and reconfiguration of Berlin would be required to fix building
the latest development manual.  Use the deprecated texlive-updmap.cfg binding
for now.

* doc/build.scm (pdf-manual): Revert to use texlive-updmap.cfg for now.

Change-Id: I133deaa7a345e711a99ea469ec6fecfde9c729de
2025-05-09 11:44:29 +09:00
Nicolas Goaziou
4df6eda30f
gnu: Rename texlive-updmap.cfg' into texlive-local-tree'.
* doc/build.scm (pdf-manual):
* doc/contributing.texi (Submitting Patches):
* gnu/packages/algebra.scm (pari-gp):
(giac):
* gnu/packages/assembly.scm (asl):
* gnu/packages/audio.scm (chow-tape-model):
* gnu/packages/bioconductor.scm (r-biocstyle):
* gnu/packages/bioinformatics.scm (discrover):
(phyml):
(velvet):
* gnu/packages/chemistry.scm (yaehmop):
* gnu/packages/chez.scm (chez-scheme-for-racket):
(stex-bootstrap):
(chez-web):
(chez-sockets):
* gnu/packages/cran.scm (r-papaja):
(r-prereg):
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/emacs-xyz.scm (emacs-auctex):
* gnu/packages/engineering.scm (fastcap):
* gnu/packages/finance.scm (optionmatrix):
* gnu/packages/fsf.scm (book-faif):
* gnu/packages/gettext.scm (po4a):
(po4a-minimal):
* gnu/packages/graphics.scm (mmg):
* gnu/packages/graphviz.scm (dot2tex):
* gnu/packages/guile-xyz.scm (emacsy):
(guile-cv):
* gnu/packages/lisp.scm (sbcl):
* gnu/packages/maths.scm (cddlib):
(gnuplot):
(itpp):
(octave):
(suitesparse-amd):
(suitesparse-camd):
(suitesparse-cholmod):
(suitesparse-klu):
(suitesparse-ldl):
(suitesparse-mongoose):
(suitesparse-spex):
(suitesparse-spqr):
(suitesparse-umfpack):
(hypre):
* gnu/packages/music.scm (lilypond):
* gnu/packages/ocaml.scm (unison):
(ocaml-bibtex2html):
* gnu/packages/pdf.scm (extractpdfmark):
* gnu/packages/photo.scm (enblend-enfuse):
* gnu/packages/plotutils.scm (asymptote):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):
(python-pypandoc):
* gnu/packages/radio.scm (gnuradio):
(libosmo-dsp):
* gnu/packages/scheme.scm (mit-scheme):
* gnu/packages/security-token.scm (yubico-piv-tool):
* gnu/packages/sphinx.scm (python-sphinx):
(python-sphinx-5):
* gnu/packages/statistics.scm (r-with-tests):
(r-spams):
* gnu/packages/tex.scm (texlive-local-tree): Renamed from…
(texlive-updmap.cfg): … this. Deprecate the latter.
(texlive-biblatex-philosophy):
(texlive-bropd):
(texlive-fontsize):
(texlive-poetrytex):
(texlive-reverxii):
(texlive-stix):
(texlive-suftesi):
(texlive-thucoursework):
(texlive-ulqda):
(texlive-yathesis):
(texlive-makecell):
(texlive-robotarm):
(texlive-bbold):
(texlive-babel-romansh):
(texlive-polyglossia):
(texlive-innerscript):
(teximpatient):
(texlive-xkeyval):
(texlive-arabxetex):
(texlive-blox):
(texlive-ecgdraw):
(texlive-gradientframe):
(texlive-everyhook):
(texlive-actuarialangle):
(texlive-actuarialsymbol):
(texlive-autopdf):
(texlive-etaremune):
(texlive-extract):
(texlive-forarray):
(texlive-graphicx-psmin):
(texlive-ha-prosper):
(texlive-namespc):
(texlive-newspaper):
(texlive-powerdot):
(texlive-recipecard):
(texlive-show2e):
(texlive-tablists):
(texlive-ted):
(texlive-xargs):
(texlive-xpeek):
* gnu/packages/xdisorg.scm (xforms):
* gnu/packages/algebra.scm (gap):
* gnu/packages/cpp.scm (jthread):
* guix/lint.scm (check-inputs-should-be-native): Rename `texlive-updmap.cfg' into `texlive-local-tree'.

Change-Id: I129280807c418e57acbcbda399545ab27a9e0a33
2025-05-06 11:25:06 +02:00
Ludovic Courtès
ce363c1dc7
environment: Add ‘--writable-root’ and default to read-only root.
This is an incompatible change where the root file system in
‘guix shell -C’ is now read-only by default.

* guix/scripts/environment.scm (show-environment-options-help)
(%options): Add ‘--writable-root’.
* guix/scripts/environment.scm (setup-fhs): Invoke /sbin/ldconfig; moved
from…
(launch-environment): … here.
(launch-environment/container): Add #:writable-root? and pass it to
‘call-with-container’.  Move root file system setup to #:populate-file-system.
(guix-environment*): Honor ‘--writable-root’.
* tests/guix-environment-container.sh: Test it.
* doc/guix.texi (Invoking guix shell): Document ‘--writable-root’.
(Debugging Build Failures): Mention it before “rm /bin/sh”.

Change-Id: I2e8517d6f01eb8093160bffc0f9f56071ad6fee6
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-05 14:33:59 +02:00
Romain GARBAGE
79bc4ebb33
transformations: Git source transformations honour RECURSIVE?.
* guix/transformations.scm (package-git-url+recursive?): New variable.
(package-git-url): Remove variable.
(evaluate-git-replacement-specs): Use package-git-url+recursive?.
(transform-package-source-branch, transform-package-source-commit, transform-package-source-git-url): Update
according to changes above.
* doc/guix.texi (Package Transformation Options): Update documentation.
* tests/transformations.scm: Update tests. Add tests for RECURSIVE?
inheritance with WITH-COMMIT and WITH-SOURCE.

Change-Id: Id6a5e6957a9955c8173b06b3e14f2986c6dfc4bc
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-05 12:15:47 +02:00
Hilton Chain
415e3d98d6
scripts: home: Support extracting home-environment from Guix System declaration.
* guix/scripts/home.scm (process-action): Handle operating-system declaration
and extract home environment for current user.
* doc/guix.texi (Guix Services)[Guix Home Service]: Document it.

Change-Id: I995f79c2549e6edc76322542d0422159e0b79996
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
2025-05-03 15:53:46 +08:00
Florian Pelz
1678ebf86d
nls: Update translations.
* po/guix/kab.po: New file.
* po/guix/LINGUAS: Add 'kab'.
* po/doc/guix-cookbook.es.po: New file.
* po/doc/local.mk: Add 'es' cookbook.
* doc/local.mk: Add 'es' cookbook.
* doc/htmlxref.cnf: Update URLs for cookbook.
* doc/build.scm (%cookbook-languages): Add 'es'.
* doc/guix-cookbook.texi (Top): Mention 'es' cookbook.

Change-Id: I795563ee78c930248ff860a03d9ce970099429da
2025-05-03 00:21:43 +02:00
Maxim Cournoyer
5d5c0dfcda
doc: Regenerate Texinfo menus.
Done with 'M-x texinfo-all-menus-update' in Emacs.

* doc/guix.texi (Top): Regenerate menus.

Change-Id: I4ae480d5e77296cb8b187b5629805b60f4a3cf02
2025-05-02 22:06:26 +09:00
Sergio Pastor Pérez
492bbb9700
services: kwallet: New service.
Change-Id: I1330ce5e1648a8ddf6ddd507255a73335d6baa51
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-02 22:06:26 +09:00
Giacomo Leidi
9d216d2ae9
services: postgresql-role: Add support for password files.
This commit adds a password-file to the postgresql-role field.  It
allows users to provision Postgres roles with a set password.

* gnu/services/databases.scm (postgresql-role): Add password-file field.
(postgresql-role-configuration): Add requirement field.
(postgresql-create-roles): Add support for setting passwords from a
file without leaking passwords to the command line.
(postgresql-role-shepherd-service): Add support for customizable
requirements.
(postgresql-role-service-type): Pass on postgresql-role-configuration
fields values by default, this way user configured fields are not lost.
* gnu/tests/databases.scm: Test it.
* doc/guix.texi: Document the new field and fix the extension point example.

Change-Id: I3aabaa10b0c5e826c5aa874e5649e25a3508a585
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-02 15:32:25 +09:00
Maxim Cournoyer
74325f91c9
services: Normalize and improve libvirt-configuration documentation.
* gnu/services/virtualization.scm (libvirt-configuration): Fix typos and
punctuation, and decorate with more Texinfo adornments.  Remove extraneous
text.  Convert enumerations to sentences re-generating the Texinfo
documentation with configuration->documentation doesn't require fixing these
by hand after (the text is re-flowed, breaking enumerations).  Mention the use
of 'log-filters' is preferable to 'log-level', as commented in the defaut
libvirt.conf template.
* doc/guix.texi (Virtualization Services): Re-generate.

Change-Id: Icc2abe21a787b4bb6ac3b35a95f6aaaf3bbda9aa
2025-05-02 09:53:54 +09:00
Maxim Cournoyer
bb8cc412c8
services/udev: Allow configuring udev to run in debug mode.
This re-introduces commit dd64f441d3, which had
been reverted due to previously causing a system hang when debug? was enabled,
a problem that appears to have been resolved within Shepherd.

* gnu/services/base.scm (<udev-configuration>): <debug?>: New field.
* gnu/services/base.scm (udev-shepherd-service): Use it to add '--debug' to
the command line, if applicable.
* doc/guix.texi (Base Services): Document it.

Change-Id: I88243fb4f321ff0876dd227e3c2b22082d37cfcf
2025-04-30 22:44:34 +09:00
Greg Hogan
47a20a1259
doc: cookbook: Fix extended example.
* doc/guix-cookbook.texi (Extended example): Include missing module.

Change-Id: Ibbda03344ad8762ea0c775a7eac36036c3b6200a
2025-04-29 14:21:39 +00:00
Maxim Cournoyer
f10d00e4e2
services: elogind: Split sleep.conf and port to define-configuration.
* gnu/services/desktop.scm (pascal-case): New procedure.
(<elogind-configuration>): Rewrite in terms of define-configuration.
(elogind-configuration-file): Delete.
(maybe-list-of-suspend-states?, maybe-list-of-suspend-modes?)
maybe-list-of-user-names?, maybe-boolean?maybe-package?)
(maybe-action?, maybe-percent?, maybe-list-of-strings?)
(maybe-list-of-hibernation-modes?, maybe-non-negative-integer?)
(non-negative-integer?, percent?, char-set:user-name, user-name?)
(list-of-user-names?, %elogind-actions, action?, %linux-suspend-states)
(string->symbol/maybe, suspend-state?, list-of-suspend-states?)
(%linux-suspend-modes, suspend-mode?, list-of-suspend-modes?)
(%linux-hibernation-modes, hibernation-mode?, list-of-hibernation-modes?)
(elogind-deprecated-empty-serializer, list-of-file-likes?)
(elogind-serialize-boolean, elogind-base-serializer, elogind-serialize-action)
(elogind-serialize-non-negative-integer, elogind-serialize-percent)
(elogind-list-serializer, elogind-serialize-list-of-strings)
(elogind-serialize-list-of-user-names, elogind-serialize-list-of-suspend-states)
(elogind-serialize-list-of-suspend-modes)
(elogind-serialize-list-of-hibernation-modes)
(%elogind-configuration-sleep-fields, logind.conf, sleep.conf): New procedures.
(elogind-etc-directory): Create the main configuration files there too.
(elogind-dbus-service): Adjust for package accessor name change.
(pam-extension-procedure, elogind-shepherd-service)
(elogind-service-type):  Likewise.
(shepherd-configuration-action*): New procedure.
* doc/guix.texi (Desktop Services): Fully document configuration options.

Fixes: https://issues.guix.gnu.org/77806
Change-Id: I8767891871d83e58d64995ec986a7d01689fa6d8
Reported-by: Ludovic Courtès <ludo@gnu.org>
2025-04-26 22:56:59 +09:00
Tomas Volf
5bbb053bea
services: postgresql-service-type: Allow allowing to log into the user.
It is often useful to be able to use the `postgres' user for management tasks,
so this commit allows setting that.  The default behavior is not changed.

I have also added missing exports and sorted them by alphabet.

* gnu/services/databases.scm (%default-home-directory): New variable.
(<postgresql-configuration>): Add home-directory, allow-login? fields.
(create-postgresql-account): Use them.
* doc/guix.texi (Database Services): Document it.

Change-Id: I2212e5082ff4e87c49a5a8a4711bf929dd08626a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-23 12:25:46 +02:00
Sughosha
6a4b662cc2
doc: Update ReadyMedia URL.
* doc/guix.texi (DLNA/UPnP Services): Update ReadyMedia URL.

Change-Id: Ief346066edd6b9e679f020a6ff8528856cf853d9
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-22 23:44:14 +09:00
Maxim Cournoyer
aab89b3d93
services: pounce: New service.
* gnu/services/messaging.scm (pounce-serialize-boolean):
(pounce-serialize-string, pounce-serialize-list-of-strings)
(pounce-serialize-pair, power-of-two?)
(pounce-serialize-number, pounce-serialize-power-of-two)
(pounce-serialize-port, pounce-serialize-maybe-boolean)
(pounce-serialize-maybe-number, pounce-serialize-maybe-pair)
(pounce-serialize-maybe-port, pounce-serialize-maybe-port
(pounce-maybe-power-of-two, pounce-serialize-maybe-string)
(pounce-serialize-maybe-list-of-strings): New procedures.
(pounce-configuration): New configuration.
(pounce-activation): New procedure.
(serialize-pounce-configuration, pounce-wrapper): Likewise.
(pounce-service-type): New service type.
* gnu/tests/messaging.scm (ngircd-tls-cert-service-type): New variable.
(%pounce-os): Likewise.
(run-pounce-test): New procedure.
(%test-pounce): New test.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I4bbd2bc4821072a93c2c4017b86df329c4b240cb
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-04-22 11:35:24 +09:00
Sergey Trofimov
7a4193ec4a
machine: hetzner: Allow attaching existing public IPs.
* gnu/machine/hetzner.scm (hetzner-configuration): Add ipv4 and ipv6
fields. Export accessors.
* gnu/machine/hetzner/http.scm (hetnzer-api-primary-ips): New function.
(<hetzner-primary-ip>): New json mapping.
(hetzner-api-server-create): Pass IP addresses in request.
* doc/guix.texi (Invoking guix deploy): Document it.

Change-Id: I44509cc98e041762dc483e876566e79bde85b26a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-21 23:55:50 +02:00
Ludovic Courtès
e2583b5a17
services: guix: Allow ‘guix-daemon’ to run without root privileges.
* gnu/services/base.scm (run-with-writable-store)
(guix-ownership-change-program): New procedures.
(<guix-configuration>)[privileged?]: New field.
(guix-shepherd-service): Rename to…
(guix-shepherd-services): … this.   Add the ‘guix-ownership’ service.
Change ‘guix-daemon’ service to depend on it; when unprivileged,
prefix ‘daemon-command’ by ‘run-with-writable-store’ and
omit ‘--build-users-group’; adjust socket activation endpoints.
(guix-accounts): When unprivileged, create the “guix-daemon” user and
group in addition to the others.
(guix-service-type)[extensions]: Adjust to name change.
* gnu/tests/base.scm (run-guix-daemon-test): Add ‘name’ parameter.
(%test-guix-daemon): Adjust accordingly.
(%test-guix-daemon-unprivileged): New test.
* doc/guix.texi (Base Services): Document ‘privileged?’.
(Migrating to the Unprivileged Daemon): Explain that this is automatic
on Guix System.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I28a9a22e617416c551dccb24e43a253b544ba163
2025-04-20 18:52:59 +02:00
Ludovic Courtès
78f493dcf8
doc: Document migration to the unprivileged daemon.
* doc/guix.texi (Build Environment Setup): Add “Migrating to the
Unprivileged Daemon” section.
(Upgrading Guix): Link to it.

Change-Id: I2bac3f4419d85b7c718c6c4a3908387b4f6ee582
2025-04-20 18:50:47 +02:00
Maxim Cournoyer
a6c96cdb70
services: ngircd: Require networking.
Otherwise the service could fail starting if the networking interface takes
some time to be created during the boot (one such example are WireGuard
interfaces).

* gnu/services/messaging.scm (ngircd-configuration)
[shepherd-requirement]: Add networking.
* doc/guix.texi (Messaging Services): Update.

Change-Id: I387ae5780a35cad5b74d9883ac53f13de1a08c78
2025-04-19 21:43:18 +09:00
Ludovic Courtès
a5f09791fd
Revert "doc: Emacs Packages: Remove outdated commentary on testing."
This reverts commit b17268b53e, which was
meant for the ‘emacs-team’ branch as part of a patch series.

Change-Id: I9d9b01924698aaf5bb6ac2c8472311976eeaacc6
2025-04-15 10:21:00 +02:00
Morgan Smith
b17268b53e
doc: Emacs Packages: Remove outdated commentary on testing.
* doc/contributing.texi (Emacs Packages): Removeoutdated commentary on
testing.  We now run the tests by default like is done in other build systems.

Change-Id: I245a0a412615a1177fbd1b6e723fda3749f7e49f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-14 16:59:34 +02:00
Roman Scherer
98a6071b5a
gnu: speakersafetyd: Add log file.
* gnu/services/sound.scm (speakersafetyd-configuration) [log-file]: New field.
(speakersafetyd): Use it via #:log-file.

Change-Id: I870bc7bfd69249da3a9c981f627e751395386bd2
2025-04-14 13:49:29 +09:00
Roman Scherer
01a66639ef
gnu: speakersafetyd: Run as unprivileged user.
* gnu/services/sound.scm (speakersafetyd): Run as unprivileged user.
(speakersafetyd-accounts): New procedure.
(speakersafetyd-activation): Likewise.
(speakersafetyd-shepherd-service): Specify the #:group, #:user and
 #:supplementary-groups arguments.
(speakersafetyd-service-type): Extend activation-service-type.

Change-Id: I870bc7bfd69249da3a9c981f627e751395386bd2
2025-04-14 13:48:01 +09:00
Maxim Cournoyer
e78f8a85bb
services: ngircd: Revert to use make-forkexec-constructor.
The use of make-systemd-constructor appears to cause problems when connecting
via TLS (see: https://github.com/ngircd/ngircd/issues/330).

* gnu/services/messaging.scm (ngircd-global): [pid-file]: Set default value
and remove maybeness.  Adjust doc.
* gnu/services/messaging.scm (ngircd-configuration): Adjust comment.
(ngircd-wrapper): Expose writable PID file and preserve pid namespace.
(ngircd-shepherd-service): Replace make-systemd-constructor with
make-forkexec-constructor and adjust surrounding accordingly.
(ngircd-activation): New procedure.
(ngircd-service-type): Extend activation-service-type with it.

Change-Id: Ic7c135ab45122e180107cde8bb9976426e3afbc4
2025-04-14 10:34:52 +09:00
Maxim Cournoyer
f1d1f3c945
services: ngircd: Fix typo in doc.
* gnu/services/messaging.scm (ngircd-options) <pam?>: Fix typo.
* doc/guix.texi (Messaging Services): Update.

Change-Id: If14e406089b2c945cac37e25d8e08a3812e4b28e
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
d46bad2cd9
services: ngircd: Disable PAM by default.
This was the original intention, as PAM authentication cannot be easily
satisfied when the service runs as non-root, which is the case.

* gnu/services/messaging.scm (ngircd-configuration) <options>: Remove maybe
and set default value.
* doc/guix.texi (Messaging Services): Update.

Change-Id: I8435cf5be7206f9165d69cbbac11c205bf928c8f
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
a42630e85b
services: ngircd: Expose a new ssl-verify? option.
* gnu/services/messaging.scm (ngircd-server) [ssl-verify?]: New field.
* doc/guix.texi (Messaging Services): Regenerate doc.

Change-Id: Ia2d6e557bd89448d8cc2d1cd88e606e2b1ef5029
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
f47ff4fcce
services: ngircd: Allow specifying Shepherd requirements.
* gnu/services/messaging.scm (ngircd-configuration)
[shepherd-requirement]: New field.
* gnu/services/messaging.scm (ngircd-shepherd-service) [requirement]: Use it.
* doc/guix.texi (Messaging Services): Update doc.

Change-Id: I8164c132ca25830885005d0e8f55554047c84a95
2025-04-14 10:34:51 +09:00
Felix Lechner
6036f1f305
services: opensmtpd: Add logging to a file.
* gnu/services/mail.scm (opensmtpd-configuration): Add log-file field.
(opensmtpd-shepherd-service)[start]: Add a command line flag to not
daemonize. Drop #:pid-file. Add #:log-file.
* doc/guix.texi (Mail Services): Document the additional parameter.

Change-Id: I485e040d680ccb39fa62e49d2e6ea916f047972c
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-04-10 15:40:25 +02:00
Ludovic Courtès
8c3e925ace
services: anonip: Rotate log files.
* gnu/services/web.scm (anonip-log-files): New procedure.
(anonip-service-type): Use it to extend ‘log-rotation-service-type’.
* doc/guix.texi (Log Rotation): Document it.

Change-Id: I903bb79e0992b794bb0a40e504283cd57a8a087b
2025-04-08 17:12:29 +02:00
Maxim Cournoyer
e839cd1108
services: Add a default configuration value for the ngircd service.
* gnu/services/messaging.scm (ngircd-configuration): Adjust comment.
(ngircd-wrapper): Nest bindings within the (maybe-value-set? ssl) check, to
avoid errors when not providing an explicit value to the ssl field.
(ngircd-service-type) [default-value]: New field.

Change-Id: I1d2d7973cc9314e9bbc5870bf7b5f872d074b49b
2025-04-08 15:26:17 +09:00
Maxim Cournoyer
c9524b5841
services: Add ngircd-service-type.
* gnu/services/messaging.scm (pascal-case, ngircd-serialize-string)
(ngircd-serialize-boolean, ngircd-serialize-file-like)
(ngircd-serialize-list-of-strings, ngircd-serialize-list-of-ports)
(ngircd-serialize-number, ngircd-serialize-port)
(string-or-number?, ngircd-serialize-string-or-number): New procedures.
(ngircd-global, ngircd-limits, ngircd-options, ngircd-ssl)
(ngircd-operator, ngircd-server, ngircd-channel)
(ngircd-configuration): New configurations.
(serialize-ngircd-global, serialize-ngircd-limits)
(serialize-ngircd-options, serialize-ngircd-operator)
(serialize-list-of-ngircd-operators, serialize-ngircd-server)
(serialize-ngircd-channel, serialize-list-of-ngircd-channels)
(serialize-ngircd-configuration): New procedures.
(list-of-ngircd-operators?, list-of-ngircd-servers?)
(list-of-ngircd-channels?): New predicates.
(ngircd-generate-documentation): New procedure.
(ngircd-user+group, ngircd-account, ngircd-wrapper): Likewise.
(ngircd-shepherd-service): New shepherd service.
(ngircd-service-type): New service type.
* gnu/tests/messaging.scm (%ngircd-os): New variable.
(run-ngircd-test): New procedure.
(%test-ngircd): New test.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I3ce9a7fd0b33afab22cf15942a1db0cf5b12bfdb
2025-04-08 10:50:17 +09:00
Adam Quandour
0e144a0da2
doc: cookbook: Update instructions for building a custom kernel.
* doc/guix-cookbook.texi (Customizing the Kernel): Update.

Change-Id: I4451f038219c73b685fa3e80e1b05c729d4bea35
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-06 11:49:59 +02:00
Sergey Trofimov
a2ef2bcbfd
machine: hetzner: Allow connections using ssh-agent.
* gnu/machine/hetzner.scm (<hetzner-configuration>): Add ssh-public-key.
* doc/guix.texi (System Configuration)[hetzner-configuration]: Document it.

Change-Id: I7354ead508b1a4819534c6b22ba1f089749927c2
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-06 11:45:18 +02:00
Tomas Volf
85e6371a3f
services: gitolite-service-type: Allow setting the admin name.
* gnu/services/version-control.scm (<gitolite-configuration>): Add admin-name
field.
(gitolite-activation): Use it.
* doc/guix.texi (Version Control Services): Document it.  Remove the wrong
default value of admin-pubkey.  State the need for .pub extension.

Change-Id: Idadf4b2697cee6d1da10e6ba03bdc2e1d729c417
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:24 +09:00
Tomas Volf
24396e8327
services: gitolite-git-configuration: Add extra-content field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
extra-content field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:22 +09:00
Tomas Volf
d4f3719a92
services: gitolite-git-configuration: Add receive-fsck-objects field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
receive-fsck-objects field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:20 +09:00
Tomas Volf
1f1a0e8773
services: gitolite-git-configuration: Add default-branch field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
default-branch field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:17 +09:00
Tomas Volf
a0ce5501ca
services: Add gitolite-git-configuration.
In preparation for further customizability of the git configuration, extract
the current setup into a separate record type.

* gnu/services/version-control.scm (<gitolite-git-configuration>): New record
type.
(gitolite-git-configuration-compiler): And gexp compiler for it.
(<gitolite-configuration>): Add git-config field.
(gitolite-activation): Use it.
* doc/guix.texi (Version Control Services): Document both.

Change-Id: I7658698a93f938f62f41a4fa45b72de1eeb14414
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:15 +09:00
Tomas Volf
0110eeee0a
services: gitolite-rc-file: Add extra-content field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add extra-content
field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: I5082e1d7a27cc746641ba9ec8ae07c703da5f279
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:03 +09:00
Tomas Volf
5466a46a72
services: gitolite-rc-file: Add host-name field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add host-name field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: I1231ed47a294ff48b35a301f76ae8e9cbfcd9b95
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:01 +09:00
Tomas Volf
9306539f08
services: gitolite-rc-file: Add log-extra field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add log-extra field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Ice65dbdf4f42549e3c83914da7229db9d2cf856b
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:00 +09:00
Jake Forster
c6d27c20f4
doc: Update guix-science URL.
* doc/guix.texi (Customizing the System-Wide Guix): Update guix-science URL.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 20:24:15 +09:00
Sergio Pastor Pérez
354ffea720
services: file-database: Search ‘updatedb’ in package.
`file-database-service-type' appends 'bin/updatedb' path to the `package'
field provided by `file-database-configuration'. This prevents users from
using alternate packages which also provide 'updatedb' but in a different
location.

For example, the `plocate' package installs 'updatedb' in 'sbin/updatedb'.

Fallback to 'sbin/' if 'updatedb' is not found in 'bin/'.

* gnu/services/admin.scm (<file-database-configuration>)[package]:
Update docstring.
(file-database-shepherd-services): Locate 'updatedb' binary.
* doc/guix.texi (File Search Services): Update accordingly.

Change-Id: Ic741716044be3a8f51a157510f9f923bd66c41d7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-01 14:49:34 +02:00
Ludovic Courtès
a2606a1739
doc: Remove extra paren in example.
* doc/guix.texi (Networking Setup): Remove extra parent in
‘dhcpcd-configuration’ example.

Change-Id: I10cea18054424ee14318730b9e8d750e9484b35a
2025-04-01 14:49:33 +02:00