Commit graph

3316 commits

Author SHA1 Message Date
Pierre Langlois
dbd4d2d070
build-system: Add tree-sitter-build-system.
* guix/build-system/tree-sitter.scm: New module.
* guix/build/tree-sitter-build-system.scm: Likewise.
* Makefile.am (MODULES): Add them.
* doc/guix.texi: Document it.

Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-02-12 11:32:20 +04:00
Remco van 't Veer
fe554337de
doc: Fix documentation typo.
* doc/guix.texi (Service Reference): Fix typo.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2023-02-11 13:07:05 +01:00
Bruno Victal
8a2c2eaa90
services: lightdm: Sync documentation with source.
Table entry @item nodes cannot span multiple lines.

* gnu/services/lightdm.scm
(lightdm-gtk-greeter-configuration): Fix cursor-theme-size description.
* doc/guix.texi (lightdm-service-type): Sync with source.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-02-08 22:40:40 -05:00
Bruno Victal
b0e18601db
services: Add block-facebook-hosts-service-type.
Deprecates %facebook-host-aliases in favour of using
hosts-service-type service extensions.

* gnu/services/networking.scm
(block-facebook-hosts-service-type): New variable.
(%facebook-host-aliases): Deprecate variable.
* doc/guix.texi: Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-02-09 01:07:54 +01:00
Bruno Victal
802ea1f3a4
system: Deprecate hosts-file.
* gnu/system.scm (operating-system-hosts-file): Deprecate procedure.
(warn-hosts-file-field-deprecation): New procedure, helper for
deprecated variable.
(operating-system)[hosts-file]: Use helper to warn deprecated field.
(local-host-aliases): Mark as deprecated.
(local-host-entries): New procedure.
(operating-system-default-essential-services,
hurd-default-essential-services): Use hosts-service-type.  Use
'%operating-system-hosts-file' and 'local-host-entries'.
(default-/etc/hosts): Remove procedure.
(operating-system-etc-service): Remove hosts file.
* doc/guix.texi (operating-system Reference)
(Networking Services) (Virtualization Services): Rewrite documentation
entries to use hosts-service-type.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-02-09 01:07:47 +01:00
Bruno Victal
22dd558c70
services: Add hosts-service-type.
* gnu/services/base.scm (<host>): New record type.
(host): New procedure.
(hosts-service-type): New variable.
* doc/guix.texi (Service Reference): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-02-09 01:07:39 +01:00
Bruno Victal
139c9a53cb
services: Add mympd-service-type.
* gnu/services/audio.scm (mympd-service-type): New variable.
* gnu/tests/audio.scm (%test-mympd): New variable.
* doc/guix.texi: Document it.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05 06:56:44 +01:00
Bruno Victal
637a9c3b26
services: mpd: Do not hardcode environment variables.
Services should not expect for XDG_RUNTIME_DIR to be set.
Inferring from the past comment, this seemed to resolve an issue when
the service was launched with an _interactive_ user-account,
which tends to have this variable set by the login-manager.

This is not the case for system accounts and setting this variable
results in PulseAudio (launched by the same system user) failing to start
since it attempts to use a nonexistent directory.

Ideally, this service should have a home-service counterpart but the old
behavior can be emulated by setting the environment-variables field to:

(environment-variables
  (list
    (string-append "XDG_RUNTIME_DIR=/run/user/"
                   (number->string (passwd:uid (getpwnam "myuser"))))))

* gnu/services/audio.scm
(mpd-configuration)[environment-variables]: New field.
(mpd-shepherd-service)[start]: Use new field.
* doc/guix.texi (Audio Services)[Music Player Daemon]: Document it.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05 06:56:43 +01:00
Bruno Victal
5c5f0fc113
services: mpd: Refactor MPD service.
Refactor mpd-service-type to support additional mpd.conf directives
and move activation-service-extension into service constructor.

* gnu/services/audio.scm (mpd-plugin, mpd-partition): New records.

(mpd-serialize-boolean): Alias to and integrate logic into...
(mpd-serialize-field): ... this.
(mpd-serialize-list-of-string): New variable.

(mpd-plugin?, mpd-partition?, list-of-string?, list-of-symbol?)
(list-of-mpd-plugin?, list-of-mpd-partition?)
(list-of-mpd-plugin-or-output?, port?): New variables.

(mpd-file-name, mpd-service-activation): Remove variables.

(mpd-configuration)
[package, group, shepherd-requirement, log-file, log-level, music-directory]
[playlist-directory, endpoints, database, partitions, neighbors, inputs]
[archive-plugins, input-cache-size, decoders, resampler, filters]
[playlist-plugins, extra-options]: New fields.
[music-dir, playlist-dir, address]: Deprecate shorthand fields.
[db-file, state-file, sticker-file, port, outputs]: Change admissible type.

(mpd-shepherd-service)
[actions]: New shepherd actions: 'reopen' and 'configuration'.
[requirement]: Splice with 'shepherd-requirement' field.
[start]: Use 'package' field. Remove #:log-file parameter.
Move activation-service extension into constructor.

(mpd-accounts): Honor user and group names from configuration.
(mpd-log-rotation): New procedure.
(mpd-service-type)[extensions]: Add rottlog-service-type extension.
Remove activation-service-type extension.

(mpd-output-name, mpd-output-type, mpd-output-enabled?, mpd-output-format)
(mpd-output-tags?, mpd-output-always-on?, mpd-output-mixer-type)
(mpd-output-replay-gain-handler, mpd-output-extra-options)
(mpd-plugin-plugin, mpd-plugin-name, mpd-plugin-enabled?)
(mpd-plugin-extra-options)
(mpd-partition-name, mpd-partition-extra-options)
(mpd-configuration-package, mpd-configuration-user)
(mpd-configuration-group, mpd-configuration-shepherd-requirement)
(mpd-configuration-log-file, mpd-configuration-log-level)
(mpd-configuration-music-directory, mpd-configuration-music-dir)
(mpd-configuration-playlist-directory, mpd-configuration-playlist-dir)
(mpd-configuration-db-file, mpd-configuration-state-file)
(mpd-configuration-sticker-file, mpd-configuration-default-port)
(mpd-configuration-endpoints, mpd-configuration-address)
(mpd-configuration-database, mpd-configuration-partitions)
(mpd-configuration-neighbors, mpd-configuration-inputs)
(mpd-configuration-archive-plugins, mpd-configuration-input-cache-size)
(mpd-configuration-decoders, mpd-configuration-resampler)
(mpd-configuration-filters, mpd-configuration-outputs)
(mpd-configuration-playlist-plugins, mpd-configuration-extra-options): Export accessors.

* doc/guix.texi (Audio Services)[Music Player Daemon]: Update documentation.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05 06:56:43 +01:00
Christopher Baines
9a5533c653
services: nar-herder: Add cached compression support.
* gnu/services/guix.scm (<nar-herder-cached-compression-configuration>): New
record type.
(nar-herder-configuration-cached-compressions,
nar-herder-configuration-cached-compression-min-uses,
nar-herder-configuration-cached-compression-workers,
nar-herder-configuration-cached-compression-nar-source,
nar-herder-cached-compression-configuration,
nar-herder-cached-compression-configuration?,
nar-herder-cached-compression-configuration-type,
nar-herder-cached-compression-configuration-level,
nar-herder-cached-compression-configuration-directory,
nar-herder-cached-compression-configuration-directory-max-size): New
procedures.
* doc/guix.texi (Guix Services): Document this.
2023-02-03 15:18:44 +01:00
Giacomo Leidi
f85865a05a
home: services: fontutils: Add service value.
* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add
support for multiple paths;
(home-fontconfig-service-type): Honor it;
* doc/guix.texi (Fonts Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-01-31 23:08:38 +01:00
Efraim Flashner
4cf1acc7f3
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts:
	doc/guix.texi
	gnu/local.mk
	gnu/packages/admin.scm
	gnu/packages/base.scm
	gnu/packages/chromium.scm
	gnu/packages/compression.scm
	gnu/packages/databases.scm
	gnu/packages/diffoscope.scm
	gnu/packages/freedesktop.scm
	gnu/packages/gnome.scm
	gnu/packages/gnupg.scm
	gnu/packages/guile.scm
	gnu/packages/inkscape.scm
	gnu/packages/llvm.scm
	gnu/packages/openldap.scm
	gnu/packages/pciutils.scm
	gnu/packages/ruby.scm
	gnu/packages/samba.scm
	gnu/packages/sqlite.scm
	gnu/packages/statistics.scm
	gnu/packages/syndication.scm
	gnu/packages/tex.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
	gnu/packages/xml.scm
	guix/build-system/copy.scm
	guix/scripts/home.scm
2023-01-30 12:39:40 +02:00
Bruno Victal
f912d5c740
doc: Substitute @deffn usage with @defvar for Scheme variables.
* doc/guix.texi (Base Services) (Networking Setup)
(Networking Services) (Printing Services) (Desktop Services)
(Sound Services) (Database Services) (Mail Services) (Messaging Services)
(File-Sharing Services) (Web Services) (DNS Services)
(Power Management Services) (Virtualization Services) (Linux Services)
(Miscellaneous Services): Substitute @deffn usage with @defvar for Scheme variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-23 23:51:33 +01:00
Bruno Victal
f88e855f9f
doc: Use @defvar instead of @defvr for Scheme variables.
* doc/guix.texi (Build Systems) (Search Paths) (The Store)
(The Store Monad) (File Systems) (Mapped Devices) (User Accounts)
(Locales) (Base Services) (Scheduled Job Execution) (Log Rotation)
(Networking Setup) (Networking Services) (Unattended Upgrades)
(X Window) (Desktop Services) (Database Services) (Messaging Services)
(Kerberos Services) (Web Services) (Certificate Services) (VPN Services)
(Network File System) (Samba Services) (Power Management Services)
(Audio Services) (Virtualization Services) (Linux Services) (Hurd Services)
(Miscellaneous Services) (Setuid Programs) (Name Service Switch)
(Initial RAM Disk) (Service Reference) (Shepherd Services)
(Essential Home Services) (Mcron Home Service)
(Power Management Home Services) (Shepherd Home Service) (Secure Shell)
(Desktop Home Services) (Guix Home Services) (Supported Platforms)
(Instantiate an Image) (image-type Reference): Use @defvar instead of @defvr for Scheme variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-23 23:51:02 +01:00
Bruno Victal
d2454e91b3
doc: Fix incorrect use of @defvar.
* doc/guix.texi (Monitoring Services) (VNC Services)
(Samba Services) (Game Services) (PAM Mount Service)
(Guix Services): Fix incorrect use of @defvar.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-23 23:49:45 +01:00
Ludovic Courtès
5aef6a55a2
doc: Document the 'release-monitoring-url' package property.
* doc/guix.texi (Invoking guix refresh): Mention the
'release-monitoring-url' property.
2023-01-23 23:23:08 +01:00
Ludovic Courtès
6ffeef92e6
services: hpcguix-web: Provide default values.
* gnu/services/web.scm (<hpcguix-web-configuration>)[specs]: Default to #f.
(hpcguix-web-shepherd-service): Do not pass '--config' when SPECS is #f.
(hpcguix-web-service-type)[default-value]: New field.
* doc/guix.texi (Web Services): Adjust accordingly.
2023-01-22 18:12:09 +01:00
Ludovic Courtès
e1dbac04c3
gnu: hpcguix-web: Update to 0.3.0.
* gnu/packages/web.scm (hpcguix-web): Update to 0.3.0.
[inputs]: Add GUILE-SYNTAX-HIGHLIGHT.
[arguments]: In 'wrap-program' phase, take guile-syntax-highlight into
account.
* gnu/tests/web.scm (%hpcguix-web-specs): Remove 'define'.
* doc/guix.texi (Web Services): Adjust accordingly.
2023-01-22 18:12:09 +01:00
Maxim Cournoyer
2491a60404
doc: Fix Xvnc service example.
Reported by bost on #guix (thank you!)

* doc/guix.texi (VNC Services): Add the missing host argument in the SSH
command example.
2023-01-20 12:32:34 -05:00
Maxim Cournoyer
8221cb6d2a
doc: Fix typo.
* doc/guix.texi (Cross-Compilation): Replace "penaly" with "penalty".
Replace "few users" with "fewer users".
2023-01-18 21:40:07 -05:00
Ludovic Courtès
79b11cafcf
doc: Use the right cross-reference command.
* doc/guix.texi (Package Transformation Options): Use @pxref, not @ref.
2023-01-17 16:05:20 +01:00
Declan Tsien
0f20fc4dd9
services: connman: Add iwd backend support.
* gnu/services/networking.scm (connman-configuration)[iwd?]: New field.
(connman-shepherd-service): Add iwd? logic, remove wpa-supplicant requirement.
* doc/guix.texi: Add information about connman-configuration iwd? option.

Co-authored-by: Andrew Tropin <andrew@trop.in>
Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-01-16 20:59:30 +04:00
Maxim Cournoyer
a472aa1bb0
doc: Fix erroneous copyright line.
* doc/guix.texi: Fix copyright line for Antero Mejr.
2023-01-16 09:02:40 -05:00
Antero Mejr
93e683a952
scripts: repl: Add -i, --interactive flag.
* guix/scripts/repl.scm (%options): Add -i, --interactive flag.
(guix-repl): Honor -i, --interactive flag.
* doc/guix.texi (Invoking guix repl): Add documentation for -i, --interactive.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-01-16 09:00:03 -05:00
Antero Mejr
abd9569571
scripts: repl: Add --list-types flag.
* guix/scripts/repl.scm (%options): Add --list-types.
* doc/guix.texi (Invoking guix repl): Add documentation for --list-types.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-01-16 08:50:05 -05:00
Ludovic Courtès
137b91f03b
transformations: Add '--with-version'.
This is a followup to 8aeccc6240.

* guix/transformations.scm (package-with-upstream-version): New procedure.
(transform-package-latest)[package-with-latest-upstream]: Remove.
Use 'package-with-upstream-version' instead.
(transform-package-version): New procedure.
(%transformations, %transformation-options)
(show-transformation-options-help/detailed): Add '-with-version'.
* tests/transformations.scm ("options->transformation, with-version"):
New test.
* doc/guix.texi (Package Transformation Options): Document '--with-version'.
(Defining Package Variants): Mention it.
2023-01-16 13:41:27 +01:00
Jelle Licht
a5b914156e
services: greetd: Add 'source-profile?' configuration field.
* gnu/services/base.scm (<greetd-terminal-configuration>)[source-profile?]:
New field.
(make-greetd-terminal-configuration-file): Serialize new field to
configuration file.
* doc/guix.texi (Base Services): Document it.
2023-01-15 20:30:12 +01:00
David Thompson
202ac747e6
gnu: services: Add joycond-service.
* gnu/services/games.scm (joycond-configuration): New configuration type.
(joycond-shepherd-service): New procedure.
(joycond-service-type): New variable.
* doc/guix.texi (Game Services): Document it.
2023-01-14 07:53:21 -05:00
Leo Famulari
9aa3b6eb6d
doc: Clarify how to use the #:go key of go-build-system.
This is a followup to commit 9ec62d1b9c.

* doc/guix.texi (Build Systems): Clarify the '#:go' key.
2023-01-11 20:20:05 -05:00
Leo Famulari
9ec62d1b9c
doc: Document the #:go key of the Go build system.
* doc/guix.texi (Build Systems): Document '#:go'.
2023-01-11 20:17:37 -05:00
(
09cd488c97
doc: contributing: Note '-v REVISION' bug in 'git send-email'.
* doc/contributing.texi ("Submitting Patches")["Sending a Patch Series"]:
Note that a bug in 'git send-email' means '-v REVISION' (with a
space) will not work.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-01-11 10:31:58 +00:00
Christopher Baines
9aa2b74198
doc: contributing: Tweak the Commit Policy.
Add more examples of when it can be appropriate to push changes without
review, as I think this can be appropriate in the case of trivial changes (as
mentioned before), but also non-trivial fixes.

No longer suggest pushing simple new packages or package upgrades (that don't
cause lots of rebuilds) without sending to guix-patches. Now there's some
automation for testing changes sent to guix-patches, sending changes there
before pushing can mean that more rigorous testing takes place and help speed
up substitutes becoming available. This is true, even if no human review takes
place.

Only suggest waiting one week for review for simpler changes, wait two weeks
for more significant changes.

Also, reorder some of the information in this section so it's grouped together
better.

* doc/contributing.texi (Commit Policy): Tweak.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-01-11 10:31:55 +00:00
jgart
65d24b9a24
doc: Fix documentation typo.
* doc/guix.texi (VNC Services): Fix typo.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-01-10 11:12:11 -05:00
Giacomo Leidi
5f63811032
services: unattended-upgrade: Add 'operating-system-expression' field.
* gnu/services/admin.scm (<unattended-upgrade-configuration>)
[operating-system-expression]: New field.
(unattended-upgrade-mcron-jobs): Honor it.
* doc/guix.texi (Unattended Upgrades): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-01-10 11:49:14 +01:00
Bruno Victal
22e9b01bda
services: git-daemon: Deprecate 'git-daemon-service' procedure.
* gnu/services/version-control.scm
(git-daemon-service): Define with 'define-deprecated'
* doc/guix.texi (Version Control Services): Replace with
'git-daemon-service-type'

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-10 11:49:13 +01:00
Tobias Geerinckx-Rice
e4673b45d3
doc: Fix <openntpd-configuration> openntpd default.
* doc/guix.texi (Networking Services): <openntpd-configuration>'s
openntpd field takes a package: it does not default to a FILE-APPEND
call.
2023-01-08 01:00:01 +01:00
Ludovic Courtès
47c1de22df
doc: cookbook: Add "Installing Guix on a Cluster" chapter.
This is derived from the article at
<https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/>, with
clarifications and updates.

* doc/guix-cookbook.texi (Installing Guix on a Cluster): New chapter.
2023-01-09 17:40:53 +01:00
Mathieu Othacehe
8b314efd50
services: base: Add environment support to guix-configuration.
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field.
(guix-shepherd-service): Honor it.
* doc/guix.texi (Base Services): Document it.
2023-01-09 17:15:28 +01:00
Mathieu Othacehe
699d104146
Revert "services: base: Add extra-env support to guix-configuration."
This reverts commit 78a9b4f996. It was pushed by
error, while not reviewed yet.
2023-01-07 20:14:24 +01:00
Mathieu Othacehe
78a9b4f996
services: base: Add extra-env support to guix-configuration.
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field.
(guix-shepherd-service): Honor it.
* doc/guix.texi (Base Services): Document it.
2023-01-07 19:41:51 +01:00
Ludovic Courtès
efb0f8950f
doc: cookbook: Remove 404 link to mitpress.mit.edu.
* doc/guix-cookbook.texi (A Scheme Crash Course): Remove 404 link to
mitpress.mit.edu.
2023-01-06 23:46:31 +01:00
Ivan Vilata-i-Balaguer
c9b383fb38
doc: Introduce using swap space for hibernation, with examples.
* doc/guix.texi (Swap Space): Add a concise introduction to hibernation and
specifying a swap space to the kernel to make resume work.  Mention space
requirements and the need of an offset for swap files.  Include a trivial
example on how to set up a mapped swap volume for hibernation and another one
for a swap file, including how to compute the file offset.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-05 23:02:45 +01:00
Ludovic Courtès
73684dc90e
home: services: environment-variables: Add support for literal strings.
* gnu/home/services.scm (<literal-string>): New record type.
(environment-variable-shell-definitions): Split 'shell-quote' into
'quote-string' and 'shell-double-quote'.  Add 'shell-single-quote'.
Add clause for 'literal-string' records.
* tests/guix-home.sh: Test it.
* doc/guix.texi (Essential Home Services): Document it.
2023-01-05 14:20:23 +01:00
Bruno Victal
ec365d1959
doc: Fix broken link for go-build-system.
* doc/guix.texi (Build Systems): Fix broken link for go-build-system.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-01-03 16:25:38 -05:00
Lars-Dominik Braun
d57dd25d38
import/cran: Allow custom license prefix.
* guix/import/cran.scm (string-licenses): Add license-prefix argument.
(string->license): Ditto.
(description->package): Ditto.
(cran->guix-package): Ditto.
(cran-recursive-import): Ditto.
* guix/scripts/import/cran.scm (%options): Add new option -p/--license-prefix.
(show-help): Document it.
(parse-options): Pass it to importer.
* doc/guix.texi (Invoking guix import): Document it.
2022-12-31 14:48:46 +01:00
Karl Hallsby
de781de2e9
doc: Give example of when to use describe in .guix-channel file.
* doc/guix.texi (Package Modules in a Sub-directory): Mention "guix deploy"
files as an example.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2022-12-29 20:01:59 +01:00
Karl Hallsby
d0d700526c
doc: Describe format of channel that uses directory field.
* doc/guix.texi (Package Modules in a Sub-directory): Explain that directory
must be the module root.
2022-12-29 20:01:59 +01:00
Marius Bakke
fe14f88d56
doc: Update expired URL.
* doc/guix.texi (DNS Services): Update knot-resolver documentation link.
2022-12-28 00:38:40 +01:00
Hartmut Goebel
7c476873e0
doc: Describe how to update to a specific version.
* doc/guix.texi (Invoking guix refresh): Describe how to update to a specific
version.
2022-12-26 17:38:07 +01:00
Ivan Vilata i Balaguer
9369c1ccf4
gnu: services: Fix bluetooth-service docstring.
* gnu/services/desktop.scm (bluetooth-service): Sync docstring with info,
remove mention to group not really needed to access D-Bus service.
* doc/guix.texi (Desktop Services): Also remove mention to group here.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-26 00:48:05 +01:00
Timo Wilken
2967abf1a2
services: wireguard: Allow specifying pre-shared keys.
* gnu/services/vpn.scm (<wireguard-peer>)[preshared-key]: New field.
* doc/guix.texi (VPN Services): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-12-25 16:56:48 +01:00
Tobias Geerinckx-Rice
9cadac9787
doc: Fix typo.
* doc/contributing.texi (Sending a Patch Series): Fix e-mail address of
<guix-patches@gnu.org>.

Reported by Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>.
2022-12-18 01:00:10 +01:00
Ricardo Wurmus
0a45d4bad4
doc: Wrap $localstatedir in Texinfo syntax.
* doc/guix.texi (Limitations): Use @file syntax.
2022-12-23 20:20:06 +01:00
Ricardo Wurmus
672c48f15d
doc: Suggest remounting store before relabeling the file system.
* doc/guix.texi (Installing the SELinux policy): Mention that the store may
need to be remounted before writing to it.
2022-12-23 20:20:06 +01:00
Bruno Victal
00f48860e9
services: opensmtpd: Add 'shepherd-requirement' field.
* gnu/services/mail.scm (<opensmtpd-configuration>)[shepherd-requirement]:
New field.
(opensmtpd-shepherd-service): Honor it.
* doc/guix.texi (Mail Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-20 16:56:04 +01:00
Ludovic Courtès
3f6c5c6f78
doc: Avoid 'match' on the <udev-configuration> record.
Fixes <https://issues.guix.gnu.org/59907>.
Reported by MANCINI Raffael <Raffael.MANCINI@mnhn.lu>.

* doc/guix.texi (Service Types and Services): Change
'udev-configuration' example to avoid 'match'.
2022-12-20 16:56:03 +01:00
Ludovic Courtès
12ca767702
Merge branch 'version-1.4.0' 2022-12-19 00:40:33 +01:00
Ludovic Courtès
553f46a094
doc: Tweak cross-ref Texinfo command.
* doc/guix.texi (Swap Space): Use @pxref instead of @xref at the end of
a sentence.
2022-12-18 23:02:59 +01:00
Ludovic Courtès
8e2f32cee9
doc: Update URLs for the manual and cookbook translations.
* doc/htmlxref.cnf: Update URLs for "guix" and "guix-cookbook".
2022-12-18 16:01:32 +01:00
Ludovic Courtès
b77b4c7c3a
doc: Add guile-netlink to 'htmlxref.cnf'.
* doc/htmlxref.cnf: Add guile-netlink.
2022-12-18 15:53:43 +01:00
Ludovic Courtès
047ae5c345
doc: Use VM image file name consistently.
Previously, what "/tmp/qemu-image" refers to could be unclear at first.

* doc/guix.texi (Running Guix in a VM): Use the original image file
name instead of /tmp/qemu-image.
* po/doc/guix-manual.de.po, po/doc/guix-manual.es.po,
po/doc/guix-manual.fr.po, po/doc/guix-manual.pt_BR.po,
po/doc/guix-manual.ru.po, po/doc/guix-manual.zh_CN.po: Adjust
accordingly.
2022-12-15 00:15:36 +01:00
Bruno Victal
2cf16f2c31
doc: Fix formatting for 'computed-file'.
* doc/guix.texi (G-Expressions): Fix formatting for 'computed-file'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-14 15:09:49 +01:00
Ludovic Courtès
09b984b77d
doc: Verify the release with my own OpenPGP key.
* doc/guix.texi (OPENPGP-SIGNING-KEY-ID, OPENPGP-SIGNING-KEY-URL):
Switch to my key.
2022-12-14 09:50:38 +01:00
Marius Bakke
88908c6edc
services: ganeti: Add support for cluster hooks.
* gnu/services/ganeti.scm (<ganeti-configuration>): Add HOOKS.
(hooks->directory): Rename to ...
(debootstrap-hooks->directory): ... this, for clarity.
(debootstrap-configuration-compiler): Adjust accordingly.
(ganeti-directory): Add HOOKS when set.
(ganeti-etc-service): Pass HOOKS.
* doc/guix.texi (Virtualization Services): Mention it.
2022-12-17 17:08:50 +01:00
Ricardo Wurmus
82c511dd54
gnu: slapd-configuration: Update default for run-dir.
* gnu/services/ldap.scm (slapd-configuration): Update default value for
run-dir to match defaults of 389-ds-base package.
* doc/guix.texi: Update documentation.
2022-12-14 22:56:00 +01:00
Ricardo Wurmus
c6f81ff7a6
gnu: Add directory-server-service-type.
* gnu/services/ldap.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (LDAP Services): Document it.
2022-12-14 20:55:04 +01:00
Bruno Victal
dcfd97b42e
doc: Fix formatting for 'computed-file'.
* doc/guix.texi (G-Expressions): Fix formatting for 'computed-file'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-14 12:44:02 +01:00
Petr Hodina
22acc0b029
services: nix: Add more configuration fields.
* gnu/services/nix.scm (<nix-configuration>)[build-directory]: New field.
(nix-service-etc, nix-shepherd-service): Take them into account.
* doc/guix.texi (Nix): Update it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-13 17:46:39 +01:00
Ludovic Courtès
883aa80b45
doc: Recommend 'match-record'.
* doc/contributing.texi (Data Types and Pattern Matching): Recommend
'match-record'.
2022-12-08 13:21:35 +01:00
Ludovic Courtès
cc6b88d00d
doc: Replace reference to Freenode.
* doc/guix.texi (Reduced Binary Seed Bootstrap): Libera.Chat, not
Freenode.
2022-12-08 13:07:45 +01:00
Marius Bakke
10251c4456
services: zabbix: Don't write user to configuration file.
The service already runs with the specified user and group, so there is no use
in writing it to the configuration files.  This change is mainly done for
compatibility with 'zabbix-agent2' which does not understand the User=
setting, but also to document the correct data type for the "group" setting.

* gnu/services/monitoring.scm (serialize-string): Filter USER and GROUP
fields.
(group?, serialize-group): Remove variables.
(zabbix-server-configuration, zabbix-agent-configuration): Document the GROUP
field as 'string'.
* doc/guix.texi (Monitoring Services): Adjust accordingly.
2022-12-07 20:08:36 +01:00
Florian Pelz
39f88ee29f
doc: cookbook: Fix commands in example.
Fixes <https://issues.guix.gnu.org/59463>.
Reported by Luca Cirrottola <luca.cirrottola@inria.fr>.

* doc/guix-cookbook.texi (Reproducible profiles): Make it work.
2022-11-27 19:00:01 +01:00
Ludovic Courtès
cc9ee514e3
doc: Recommend 'match-record'.
* doc/contributing.texi (Data Types and Pattern Matching): Recommend
'match-record'.
2022-12-02 00:02:12 +01:00
Stefan
a9acbf919a
gnu: bootloader: Rework chaining, add grub-efi-netboot-removable-bootloader.
This rework allows to use an (efi-bootloader-chain) like this, which is able
to boot over network or local storage, depending on whether the bootloader
target has support for symbolic links:

   (operating-system
    (bootloader
      (bootloader-configuration
        (bootloader
          (efi-bootloader-chain
            grub-efi-netboot-removable-bootloader
            #:packages (list my-firmware-package
                             my-u-boot-package)
            #:files (list (plain-file "config.txt"
                                      "kernel=u-boot.bin"))
            #:hooks my-special-bootloader-profile-manipulator))
        (targets '("/booti/efi"))
        …))
    …)

* doc/guix.texi (Bootloader Configuration): Describe the new
‘grub-efi-netboot-removable-bootloader’.  Mention the file names used and that
the UEFI Boot Manager is not modified.  Advise to disable write-access over
TFTP.
* gnu/bootloader.scm (efi-bootloader-profile): Allow a list of packages and
collect everything directly in the profile, avoiding a separate collection
directory.  Renamed the profile from "bootloader-profile" to
"efi-bootloader-profile".
[bootloader-collection]: Rename to...
[efi-bootloader-profile-hook]: ... this and remove unused modules.  Do not
create the now extraneous collection directory.
(efi-bootloader-chain): Add PACKAGES and DISK-IMAGE-INSTALLER arguments.
Remove handling of the collection directory, now only calling the given
installer procedure.
* gnu/bootloader/grub.scm (make-grub-efi-netboot-installer): New helper.
(make-grub-configuration): New helper based on (grub-configuration-file).  Add
a GRUB argument, fix indentation, remove previous code retrieving GRUB from
CONFIG.
(grub-configuration-file): Make use of make-grub-configuration.
(grub-efi-configuration-file): New procedure.
(grub-cfg): New variable to replace "/boot/grub/grub.cfg".
(install-grub-efi-netboot): Remove, splitting logic to...
(make-grub-efi-netboot-installer): ... this new helper procedure, as well as
to make-grub-efi-netboot, added below.
(grub-bootloader): Adjust to use the GRUB-CFG.
(grub-efi-bootloader): Likewise.  Removed inheritance and declare all fields
explicitly.
(make-grub-efi-netboot-bootloader): New procedure.
(grub-efi-netboot-bootloader): Use it.
(grub-efi-netboot-removable-bootloader): New variable.
* gnu/packages/bootloaders.scm (make-grub-efi-netboot): New procedure.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-12-01 14:31:28 -05:00
Andrew Tropin
0823fd1aa9
services: network-manager: Add iwd backend support.
* gnu/services/networking.scm (network-manager-configuration)[iwd?]: New
field.
(network-manager-shepherd-service): Add iwd to requirements if needed.
* doc/guix.texi: Add information about iwd? option.
2022-12-01 18:56:24 +04:00
Maxim Cournoyer
3e14e316a5
doc: Remove unimplemented 'herd rules udev'.
Since this text was added, the rules.d directory is now exposed
straightforwardly via the standard /etc/udev/rules.d directory, so there's no
need for a special 'rules' service action to print that directory.

* doc/guix.texi (Base Services): Remove the paragraph documenting the
nonexistent 'herd rules udev' command.
2022-11-29 14:52:36 -05:00
Maxim Cournoyer
3578fb1323
doc: Recommend avoiding execl, execle or execlp in mcron job specifications.
* doc/guix.texi (Scheduled Job Execution): Adjust the 'updatedb' example and
add a new tip.
2022-11-28 22:49:23 -05:00
Maxim Cournoyer
d524ec6fb5
doc: Add a security keys section to the cookbook.
* doc/guix-cookbook.texi (Top): Register new menu.
(System Configuration): Likewise.
(Using security keys): New section.
2022-11-24 20:51:30 -05:00
Tobias Geerinckx-Rice
22d44f8776
doc: Note that ‘guix package’ accepts file names.
* doc/guix.texi (Package Management)[Invoking guix package]:
Mention support for operating on store file names.

Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-11-20 01:00:00 +01:00
Ludovic Courtès
d33ed58169
offload: Increase default 'overload-threshold' value.
When offloading to a single machine, the previous default value would
lead 'guix offload' to wait possibly for several minutes between
subsequent builds until normalized load would finally go below 0.6.
Increasing it mitigates that.

* guix/scripts/offload.scm (<build-machine>)[overload-threshold]: Bump
to 0.8.
* doc/guix.texi (Daemon Offload Setup): Likewise.
2022-11-23 19:34:42 +01:00
pelzflorian (Florian Pelz)
b8d4c323f5
doc: Call out potential for security vulnerabilities in old software.
* doc/guix.texi (Invoking guix time-machine): Add a note.

Co-authored by: Simon Tournier <zimon.toutoune@gmail.com>
2022-11-22 15:36:25 +01:00
Vivien Kraus
9283c80e60
guix: modify-input: Recommend prepend instead of append.
* doc/guix.texi (Defining Package Variants): Document the "prepend" clause of
modify-inputs first.
* guix/packages.scm (modify-inputs): use "prepend" in the docstring.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-21 14:25:13 +00:00
Hilton Chain
6d1177b2c8
doc: Build more man pages.
* doc/local.mk (sub_commands_mans): Add guix-container.1, guix-copy.1,
guix-describe.1, guix-git.1, guix-graph.1, guix-home.1, guix-offload.1,
guix-pack.1, guix-processes.1, guix-repl.1, guix-shell.1, guix-style.1.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-19 19:54:14 +01:00
Ludovic Courtès
8d9647d8a7
services: Add Shepherd 'configuration' action to various services.
* gnu/services/avahi.scm (avahi-shepherd-service): Add 'actions' field.
* gnu/services/base.scm (nscd-actions): Add call to
'shepherd-configuration-action'.
* gnu/services/desktop.scm (upower-shepherd-service): Add 'actions'
field.
(elogind-shepherd-service): Likewise.
* gnu/services/dict.scm (dicod-shepherd-service): Likewise.
* gnu/services/networking.scm (openntpd-shepherd-service): Likewise.
(tor-shepherd-service): Likewise.
* gnu/services/ssh.scm (openssh-shepherd-service): Likewise.
* gnu/services/web.scm (nginx-shepherd-service): Likewise.
* gnu/services/xorg.scm (gdm-shepherd-service): Likewise.
* gnu/tests/base.scm (run-basic-test)["nscd configuration action"]: New
test.
* doc/guix.texi (Services): Document it.
2022-11-18 15:44:39 +01:00
Ludovic Courtès
ebc7de6a1e
services: shepherd: Define 'shepherd-configuration-action' helper.
* gnu/services/shepherd.scm (shepherd-configuration-action): New
* doc/guix.texi (Shepherd Services): Document it.
2022-11-18 15:44:39 +01:00
Hilton Chain
a6da50d60a
linux-initrd: raw-initrd: Add keyword argument #:pre-mount.
* gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.
Document it.
* doc/guix.texi (initial RAM disk): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-18 15:44:38 +01:00
Maxim Cournoyer
44554e7133
Revert "services: configuration: Revert to a working ‘guix home’."
This reverts commit 39e4e00f75, with fixes for
the guix home issues reported and another one found while reconfiguring berlin
in the subsequent commit.
2022-11-17 06:49:51 -05:00
Tobias Geerinckx-Rice
39e4e00f75
services: configuration: Revert to a working ‘guix home’.
This reverts commit 543d971ed2, and
its dependent commit 9b21cd2e9a, which
appear to have triggered a recent wave of ‘guix home’ regressions
involving (services (list (service home-bash-service-type))):

In gnu/home/services/shells.scm:
    504:7  3 (home-bash-extensions #<<home-bash-configuration> package: #<package bash@5.1.8 gnu/packages/ba…> …)
In unknown file:
           2 (append #<<location> file: "…" line: 14 column: 12> ())
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure append: Wrong type argument in position 1 (expecting empty list): #<<location> file: "…" line: 14 column: 12>

I should love to dive in & fix this rather than revert, but urgently
need sleep.
2022-11-13 01:00:00 +01:00
Maxim Cournoyer
9b21cd2e9a
services: mcron: Add log? and log-format fields to mcron-configuration.
* gnu/services/mcron.scm (list-of-gexps?): New predicate.
(mcron-configuration): Rewrite using define-configuration.
[log?, log-format]: New fields.
(mcron-shepherd-services): Invoke mcron with the --log and --log-format
arguments when log? is #t,
(generate-doc): New procedure.
* doc/guix.texi (Scheduled Job Execution): Update doc.
(Mcron Home Service): Likewise.
* gnu/home/services/mcron.scm: Keep in sync with the above changes to
gnu/services/mcron.scm.
2022-11-15 16:26:16 -05:00
Maxim Cournoyer
b31ea797ed
guix: shell: Add '--symlink' option.
* guix/scripts/pack.scm (%options): Extract symlink parsing logic to...
(symlink-spec-option-parser): ... here.
(self-contained-tarball/builder): Add a comment mentioning why a relative file
name is used for the link target.
* guix/scripts/environment.scm (show-environment-options-help): Document new
--symlink option.
(%default-options): Add default value for symlinks.
(%options): Register new symlink option.
(launch-environment/container): Add #:symlinks argument and extend doc, and
create symlinks using evaluate-populate-directive.
(guix-environment*): Pass symlinks arguments to launch-environment/container.
* doc/guix.texi (Invoking guix shell): Document it.
* tests/guix-shell.sh: Add a --symlink (negative) test.
* tests/guix-environment-container.sh: Add tests.
2022-11-15 14:15:11 -05:00
Ludovic Courtès
5b555d639d
doc: Add missing closing parentheses in examples.
* doc/guix.texi (VNC Services, Guix Home Services): Add missing closing
parentheses.
2022-11-15 12:16:44 +01:00
pelzflorian (Florian Pelz)
fd13259d85
doc: Link to the Git book instead of the git-scm.com homepage.
The Pro Git book, unlike the git-scm.com homepage, is translated to
many languages.  Therefore translators of the Guix Manual can point
to the appropriate translation now.

* doc/guix.texi (Invoking guix pull): Point to the Pro Git book's URL.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-15 12:16:44 +01:00
Ludovic Courtès
0be722a0b5
doc: Build pt_BR manual.
* doc/build.scm (%manual-languages): Add "pt_BR".
2022-11-15 12:16:44 +01:00
pelzflorian (Florian Pelz)
8162d207b1
doc: Refer to the pt_BR translation.
* doc/guix.texi (Top): Mention Brazilian Portuguese.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-15 12:16:44 +01:00
Ludovic Courtès
514fedbf39
installer: Report known-unsupported PCI devices.
* gnu/installer/hardware.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* gnu/installer.scm (installer-steps): Pass #:pci-database to the
'welcome' step procedure.
* gnu/installer/newt.scm (welcome-page): Add #:pci-database and pass it
to 'run-welcome-page'.
* gnu/installer/newt/welcome.scm (check-hardware-support): Add #:pci-database.
Enumerate unsupported PCI devices and run an error page when unsupported
devices are found.
(run-welcome-page): Add #:pci-database and pass it to
'check-hardware-support' and to the recursive call.
* gnu/installer/record.scm (<installer>)[welcome-page]: Adjust comment.
* doc/guix.texi (Hardware Considerations): Mention it.
2022-11-15 12:16:43 +01:00
Alexey Abramov
73b3519568
services: gitolite: Add local-code configuration option.
* gnu/services/version-control.scm (gitolite-rc-file): Add local-code
field.
(gitolite-rc-file-compiler): Serialize the field.
* doc/guix.texi: Document it.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-07 20:29:14 +01:00
Efraim Flashner
97d565c786
guix gc: Add '--vacuum-database'.
* guix/scripts/gc.scm (show-help, %options): Add '--vacuum-database'.
* guix/store/database.scm (vacuum-database): New procedure.
* doc/guix.texi (Invoking guix gc): Document the option.
2022-11-06 14:02:08 +02:00
Ricardo Wurmus
b43200e5b1
doc: cookbook: Add section on MPD with bluealsa.
* doc/guix-cookbook.texi (Music Server with Bluetooth Audio): New section
under System Configuration.
2022-11-06 00:35:56 +01:00
Ricardo Wurmus
769c5f563d
doc: cookbook: Update detailed menu for "System Configuration".
* doc/guix-cookbook.texi: Update menu.
2022-11-06 00:35:56 +01:00
Marius Bakke
706f25f24d
services: ganeti: OS variants can be a directory.
* gnu/services/ganeti.scm (<ganeti-os>)[extension]: Default to #f.
(ganeti-os->directory): Only add extension if set.  Support a file-like object
for VARIANTS.
* doc/guix.texi (Virtualization Services): Document this change and add
example.  Update Ganeti URLs while at it.
2022-11-03 20:00:30 +01:00
EuAndreh
7bb3644dd0
doc: Change example for special-files-service-type.
Also update the default value given in the docs. Change the example since the
base system includes /usr/bin/env by default.

* doc/guix.texi (Base Services): Change the example for
special-files-service-type and update default.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-03 17:32:34 +01:00
(
807bfe55dc
doc: contributing: Use proper subsections.
* doc/contributing.texi ("Submitting Patches")
["Sending a Patch Series", "Teams"]: Convert to numbered subsections.
Add nodes.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-11-01 13:53:59 +01:00
(
8fed831e2a
doc: contributing: Expand "Sending a Patch Series".
* doc/contributing.texi: Expand on sending patches and using
  git send-email.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-10-28 17:25:58 +02:00
Marius Bakke
e944734ef9
build-system/pyproject: Always run tests verbosely for supported backends.
* guix/build-system/pyproject.scm (pyproject-build): Default to '() instead of
 #false for TEST-FLAGS.
* guix/build/pyproject-build-system.scm (check): Unconditionally enable
verbose test flags.
* doc/guix.texi (Build Systems): Document this change.
* gnu/packages/fontutils.scm (python-glyphslib)[arguments]: Remove verbosity
from #:test-flags.
* gnu/packages/pdf.scm (python-pydyf, weasyprint)[arguments]: Likewise.
* gnu/packages/python-web.scm (python-openapi-spec-validator)[arguments]: Likewise.
* gnu/packages/python-xyz.scm (python-path, python-tempora)[arguments]: Likewise.
2022-10-27 21:30:03 +02:00
Lars-Dominik Braun
400a7a4c80
build-system: Add pyproject-build-system.
This is an experimental build system based on python-build-system
that implements PEP 517-compliant builds.

* doc/guix.texi (Build Systems): Add pyproject-build-system section.
* doc/contributing.texi (Python Modules): Mention pyproject.toml and the
PYTHON-TOOLCHAIN package, as well as differences to python-build-system.
* guix/build-system/pyproject.scm,
guix/build/pyproject-build-system.scm,
gnu/packages/aux-files/python/sanity-check-next.py,
gnu/packages/python-commencement.scm: New files.
* Makefile.am (MODULES): Register the new build systems.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add python-commencement.scm.
* gnu/packages/python.scm (python-sans-pip, python-sans-pip-wrapper): New
variables.

Co-authored-by: Marius Bakke <marius@gnu.org>
2022-10-27 19:43:06 +02:00
David Thompson
966118da71
gnu: version-control: Add make-gitolite procedure.
* gnu/packages/version-control.scm (make-gitolite): New procedure.
(gitolite): Use make-gitolite.
* doc/guix.texi (Gitolite service): Document how to use make-gitolite.
2022-10-24 16:37:22 -04:00
Ludovic Courtès
c077345539
file-systems: Support the 'no-diratime' mount flag.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Handle 'no-diratime'.
* doc/guix.texi (File Systems): Document it.
2022-10-20 23:07:37 +02:00
Mathieu Othacehe
7ee77dc6df
services: wireguard: Add more configuration fields.
* gnu/services/vpn.scm (<wireguard-configuration>)[pre-up, post-up, pre-down,
post-down, table]: New fields.
(wireguard-configuration-file): Take them into account.
* doc/guix.texi (Wireguard): Update it.
2022-10-20 13:07:46 +02:00
Ludovic Courtès
7460b06a2d
doc: Mention Guile-GnuTLS in the requirements.
* doc/guix.texi (Requirements): Update.
2022-10-18 14:27:01 +02:00
Ludovic Courtès
f36522416e
channels: Interpret the 'commit' field of channel as a tag or commit.
Previously the 'commit' field would always be interpreted as a commit
ID.  This change adds flexibility, allowing for things like:

  guix time-machine --commit=v1.2.0 -- describe

* guix/channels.scm (channel-reference): Use 'tag-or-commit' rather than 'commit'.
* guix/inferior.scm (channel-full-commit): Likewise.
* doc/guix.texi (Invoking guix pull): Document it.
(Invoking guix time-machine): Likewise.
2022-10-17 09:37:27 +02:00
Julien Lepiller
63bb79fa38
doc: Fix typos.
These typos were found and reported on weblate.

* doc/guix.texi: Fix typos.
2022-10-17 07:29:51 +02:00
zimoun
4cb5144df0
doc: Explain Emacs native-compilation.
* doc/guix.texi ("Application Setup")["Emacs Packages"]: Add a note
explaining that Emacs can compile packages to native code now.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-10-15 15:34:56 +02:00
Ricardo Wurmus
56915dc275
doc: Add chapter on containers to Cookbook.
* doc/guix-cookbook.texi (Containers): New chapter.
2022-10-13 17:42:05 +02:00
John Kehayias
c7ba5f38b8
environment: Add '--emulate-fhs'.
* guix/scripts/environment.scm (show-environment-options-help, %options): Add
'--emulate-fhs'.
(setup-fhs): New procedure.  Setup for the Filesystem Hierarchy Standard (FHS)
container.  Defines and uses FHS-SYMLINKS and LINK-CONTENTS to create FHS
expected directories and creates /etc/ld.so.conf.
(launch-environment): Add 'emulate-fhs?' key and implement it to set $PATH and
generate /etc/ld.so.cache before calling COMMAND.
(launch-environment/container): Add 'emulate-fhs?' and 'setup-hook' keys and
implement them.  Define and use FHS-MAPPINGS, to set up additional bind mounts
in the container to follow FHS expectations.
(guix-environment*): Add glibc-for-fhs to the container packages when
'emulate-fhs?' key is in OPTS.
* doc/guix.texi (Invoking guix shell): Document '--emulate-fhs'.
(Invoking guix environment): Document '--emulate-fhs'.
* tests/guix-environment-container.sh: Add tests for '--emulate-fhs'.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-10-13 09:19:08 +02:00
( via Guix-patches via
4ab434958b
gnu: home: Add home-dbus-service-type.
* gnu/home/services/desktop.scm (home-dbus-service-type): New variable.
(home-dbus-configuration): New record type.
* doc/guix.texi: Document them.

Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-10-13 09:05:46 +04:00
Maxim Cournoyer
f78cfcd7d3
system: operating-system: Make the timezone field default to Etc/UTC.
* gnu/system.scm (<operating-system>) [timezone]: Default to "Etc/UTC".
2022-10-11 11:29:03 +00:00
(
ba6ea435e2
gnu: base: Add greetd-wlgreet-sway-session.
* gnu/services/base.scm (greetd-wlgreet-session): New data type.
(greetd-wlgreet-sway-session): Likewise.
* doc/guix.texi ("Base Services")[greetd-service-type]: Document
  them.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-10-11 11:43:01 +01:00
Christopher Baines
e83b9fe44e
services: guix: Include max-allocated-builds gbc agent option.
* gnu/services/guix.scm (guix-build-coordinator-agent-configuration-max-allocated-builds):
New procedure.
(guix-build-coordinator-agent-shepherd-services): Use max-allocated-builds.
* doc/guix.texi (Guix Build Coordinator): Document this new field.
2022-10-11 11:41:15 +01:00
Maxim Cournoyer
00e8430500
Revert "Revert "services: Add xvnc-service-type.""
This reverts commit 0c49661600.  The fix appears
in the subsequent commit, for clarity.
2022-10-07 15:07:48 -04:00
Maxim Cournoyer
0c49661600
Revert "services: Add xvnc-service-type."
This reverts commit 1c528a95cb.  This broke
'guix pull', for (yet) unknown reasons.
2022-10-07 12:53:22 -04:00
Maxim Cournoyer
1c528a95cb
services: Add xvnc-service-type.
* gnu/services/vnc.scm: New file.
* gnu/tests/vnc.scm: Likewise.
* gnu/local.mk: Register them.
2022-10-07 10:11:13 -04:00
Maxim Cournoyer
aad4e4fc6b
services: xorg: Add auto-suspend? field to <gdm-configuration>.
* gnu/services/xorg.scm (<gdm-configuration>)
<auto-suspend?>: New field.
(gdm-dconf-profiles): New variable.
* gnu/services/xorg.scm (gdm-shepherd-service)
<environment-variables> [!auto-suspend?]: Specify DCONF_PROFILE.
(gdm-service-type): Extend DCONF-SERVICE-TYPE.
* doc/guix.texi (X Window): Document the new field.
2022-10-07 10:11:13 -04:00
Maxim Cournoyer
1936668f5b
services: gdm: Add a configuration field to enable XDMCP.
* gnu/services/xorg.scm (<gdm-configuration>)[xdmcp?]: New field.
* gnu/services/xorg.scm (gdm-configuration-file): Use it.  Use (ice-9 format)
to serialize boolean.
(gdm-polkit-rules): New variable.
(gdm-service-type): Use it to extend polkit.
* doc/guix.texi (X Window): Document it.
2022-10-07 10:11:11 -04:00
Maxim Cournoyer
f9694a04ab
doc: Add git send-email tip in 'Submitting Patches' section.
* doc/contributing.texi (Submitting Patches): Add a tip detailing how to
prefix the subject line with the branch name the change should be installed
to.
2022-10-07 09:17:11 -04:00
Taiju HIGASHI
5b42b64ea8
doc: Fix missing package name.
* doc/guix.texi (Invoking guix import): Fix missing package name for gem
importer.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-10-06 15:08:04 +01:00
Ricardo Wurmus
e351749c44
doc: Add terms to concept index for "guix style".
* doc/guix.texi (Invoking guix style): Add terms to concept index.
2022-10-06 12:22:49 +02:00
Ricardo Wurmus
6ede81b6a4
doc: Add concept index terms for "guix archive".
* doc/guix.texi (Invoking guix archive): Add terms to concept index.
2022-10-06 12:22:49 +02:00
Ricardo Wurmus
b310c4f02a
doc: Add every command name to concept index.
* doc/guix.texi: Add an entry for each Guix command to the concept index.
2022-10-06 12:22:49 +02:00
Ricardo Wurmus
32ba74ab48
doc: Use @command instead of @code.
* doc/guix.texi: Use @command to refer to Guix commands.
2022-10-06 12:22:48 +02:00
Alexey Abramov
40ad967322
services: dhcp-client: Implement and use a configuration record.
* gnu/services/networking.scm (dhcp-client-configuration): New record
configuration.
(dhcp-client-shepherd-service): Implement a shepher service. Provide a
deprication message for legacy configurations.
(dhcp-client-service-type): Use dhcp-client-shepherd-service.
* doc/guix.texi (Networking Setup): Update.
* po/guix/POTFILES.in: Add 'gnu/services/networking.scm'.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-10-06 00:11:18 +02:00
( via Guix-patches via
7030f592c6
home: Add home-batsignal-service-type.
* gnu/home/services/pm.scm (home-batsignal-service-type): New variable.
(home-batsignal-configuration): New record type.
* doc/guix.texi: Document them.
* gnu/local.mk: Add gnu/home/services/pm.scm.
2022-10-04 17:04:45 +04:00
Andrew Tropin
224fd038f2
doc: Mention network mask in network-route.
* doc/guix.texi (Networking Setup): Mention network mask in network-route.
2022-10-04 16:51:22 +04:00
Maxim Cournoyer
d573494387
doc: Mention sourcing system profile when chrooting.
* doc/guix.texi (Chrooting into an existing system): Add sourcing of system
profile along user profile.
2022-10-03 11:22:19 -04:00
Ludovic Courtès
3624f4358c
doc: Update the URL of ISC DHCP.
* doc/guix.texi (Networking Services): Update ISC DHCP URL.
2022-10-02 22:14:45 +02:00
Ludovic Courtès
28ade1bab2
transformations: '--with-source' now operates in depth.
The '--with-source' option is the first one that was implemented, and
it's the only one that would operate only on leaf packages rather than
traversing the dependency graph.  This change makes it consistent with
the rest of the transformation options.

* guix/transformations.scm (evaluate-source-replacement-specs): New
procedure.
(transform-package-source): Rewrite using it.
* tests/transformations.scm ("options->transformation, with-source, no
matches"): Rewrite since we no longer get a warning.
("options->transformation, with-source, in depth"): New test.
* doc/guix.texi (Package Transformation Options): Adjust examples.
2022-09-29 22:59:49 +02:00
Ludovic Courtès
f63adbf6f9
doc: Tweak wsdd wording.
* doc/guix.texi (Samba Services)[Web Service Discovery Daemon]: Tweak
wording.
2022-09-28 22:58:10 +02:00
Ludovic Courtès
67cf25e6cd
doc: Fix syntax for 'wsdd-configuration'.
* doc/guix.texi (Samba Services): Fix syntax of 'wsdd-configuration'
data type definition.
2022-09-28 22:53:35 +02:00
Maxim Cournoyer
b43ed95028
doc: Mention where one can learn more about the samba config file syntax.
* doc/guix.texi (Samba Services): Refer users to "man smb.conf" to learn more
about the Samba config file format.
2022-09-28 09:57:31 -04:00
Maxim Cournoyer
f2d071c832
doc: Add a simple Samba share example.
* doc/guix.texi (Samba Services): Add a configuration example.
2022-09-28 09:57:31 -04:00
Maxim Cournoyer
13ed651870
doc: Clarify Samba Services configuration.
* doc/guix.texi (Samba Services): Explicit the fact that no daemons are
automatically run.  Remove the word "Manually", that suggested otherwise.
2022-09-28 09:57:30 -04:00
Maxim Cournoyer
990a4822f1
Merge branch 'staging' into core-updates
Conflicts resolved in:
	gnu/local.mk
	gnu/packages/cran.scm
	gnu/packages/gnome.scm
	gnu/packages/gtk.scm
	gnu/packages/icu4c.scm
	gnu/packages/java.scm
	gnu/packages/machine-learning.scm
	gnu/packages/tex.scm
2022-09-27 15:59:30 -04:00
Mathieu Othacehe
e842aeb8c1
doc: Turn example to lisp.
* doc/guix.texi (System Images): Turn example snippets to lisp snippets.
2022-09-25 11:38:11 +02:00
Mathieu Othacehe
506e0aa438
doc: Remove an extra dot.
* doc/guix.texi (System Images): Remove it.
2022-09-25 11:35:09 +02:00
Mathieu Othacehe
2a66304535
etc: teams: Add scope support.
Add a scope list to each team.  This list defines all the files and
directories that are mentored by the team.

Also add a cc-members command that takes two Git revision strings as input,
add returns the members that should be CC'ed given the files impacted between
the two revisions.

* etc/teams.scm.in (<team>)[scope]: New field.
(team, list-teams): Adapt those procedures.
(find-team-by-scope, diff-revisions): New procedures.
(main): Add a "cc-members" command.
* doc/contributing.texi ("Teams"): Document it.
("Sending a Patch Series"): Adapt it.
2022-09-25 09:27:59 +02:00
Alex Griffin
c8112f3bd9
system: images: Add wsl2 module.
* gnu/system/images/wsl2.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi ("System Images"): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24 14:49:09 +02:00
Alex Griffin
8757c3f293
system: image: Add tarball support.
* gnu/image.scm (<image>)[fields]: Add tarball to the supported formats.
* gnu/system/image.scm (tarball-image, tarball-image-type): New variables.
(system-tarball-image): New procedure.
(image->root-file-system): Add tarball image support.
(system-image): Ditto.
* doc/guix.texi ("System Images"): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24 14:49:09 +02:00
Mathieu Othacehe
a13f5ead02
doc: Add a "System Images" chapter.
* doc/guix.texi ("System Images"): New chapter.
2022-09-24 14:49:09 +02:00
Mathieu Othacehe
61bf25bb4e
doc: Add a "Platforms" chapter.
* doc/guix.texi ("Platforms"): New chapter.
("Porting"): Link it.
2022-09-24 14:49:08 +02:00
Simon Streit
e1ce100915
services: Add wsdd service.
* doc/guix.texi: Add documentation for wsdd service.
* gnu/services/samba.scm (<wsdd-configuration>): New record.
(wsdd-service-type): New variable.
(wsdd-shepherd-services): New procedure.
* gnu/tests/samba.scm (%wsdd-os): Add variable.
(run-wsdd-test): New procedure.
(%test-wsdd): New variable.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24 09:41:24 +02:00
Simon Streit
d68721c55a
services: Add samba service.
* gnu/services/samba.scm: New file.
* gnu/tests/samba.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add them.
* po/guix/POTFILES.in Add 'gnu/services/samba.scm'.
* doc/guix.texi: Document it.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24 09:38:57 +02:00
Marius Bakke
80c76f5d8e
Merge branch 'staging' into core-updates 2022-09-18 16:30:21 +02:00
Taiju HIGASHI
5d22261db3
import: gem: Support importing a specific version of a gem.
* guix/import/gem.scm: (rubygems-fetch, gem->guix-package)
(gem-recursive-import): Fix to fetch the specified version of the gem.
* guix/scripts/import/gem.scm (show-help): Update the help message.
(guix-import-gem): Modify so the version number to be passed to subsequent
procedures.
* tests/gem.scm: Add tests.
* doc/guix.texi (Invoking guix import): Document.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-09-17 19:09:27 +02:00
Maxim Cournoyer
4920f6e634
Merge branch 'staging' into core-updates
Conflicts resolved in:
	gnu/local.mk
	gnu/packages/cmake.scm
	gnu/packages/glib.scm
	gnu/packages/gnome.scm
	gnu/packages/gtk.scm
	gnu/packages/sdl.scm

pango-next, vala-next and librsvg-bootstrap were removed in the process.
2022-09-15 11:43:21 -04:00
muradm
29d52a56f2
gnu: fail2ban-service-type: Improve extra-content fields.
* gnu/services/security.scm
(fail2ban-jail-configuration)[extra-content]: Change to text-config.
(fail2ban-configuration)[extra-content]: Change to text-config.
* gnu/doc/guix.texi: Update type of extra-content fields.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-09-14 11:29:11 -04:00
Marius Bakke
9ef33dce94
Merge branch 'staging' into core-updates 2022-09-09 23:04:13 +02:00
tiantian
52d780ea2b
gnu: bootloader: Extend `<menu-entry>' for chain-loader.
* gnu/bootloader.scm (<menu-entry>)[chain-loader]: New field.
(menu-entry->sexp, sexp->menu-entry): Support chain-loader.
* doc/guix.texi (Bootloader Configuration): Document it.

Co-Authored-By: Julien Lepiller <julien@lepiller.eu>
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2022-09-08 22:29:57 +02:00
Marius Bakke
884548b476
Merge branch 'staging' into core-updates 2022-09-08 21:12:52 +02:00
Ricardo Wurmus
d18bddf5d7
doc: Fix typo.
* doc/guix.texi (Miscellaneous Services): Fix typo.
2022-09-07 20:08:23 +02:00
Ludovic Courtès
8c5065c6d1
services: nginx: Add 'shepherd-requirement' configuration field.
* gnu/services/web.scm (<nginx-configuration>)[shepherd-requirement]:
New field.
(nginx-shepherd-service): Honor it.
* doc/guix.texi (Web Services): Document it.
2022-09-06 16:58:12 +02:00
Andrew Tropin
a278f632de
doc: Add more info about commits signature local verification.
* doc/contributing.texi (Commit Access): Add more info about commits signature
local verification.
2022-09-05 14:55:49 +03:00
Ludovic Courtès
eedf71f948
services: upower: Default to a percentage-based policy.
This is the documented default of UPower 0.99.15 (the actual default
appears to be #f though).

* gnu/services/desktop.scm (<upower-configuration>)
[use-percentage-for-policy?]: Default to #t.
* doc/guix.texi (Desktop Services): Adjust accordingly.  Explain the
tradeoff.
2022-09-04 23:10:10 +02:00
Ludovic Courtès
4765242540
services: upower: Update default percentage values.
These values are those used by default by UPower 0.99.15.

* gnu/services/desktop.scm (<upower-configuration>)[percentage-low]
[percentage-critical]: Increase.
* doc/guix.texi (Desktop Services): Update accordingly.
2022-09-04 23:10:09 +02:00
Ludovic Courtès
5c444a0208
doc: Link to the "Scheme Crash Course".
* doc/guix.texi (Defining Packages): Add @quotation block linking to "A
Scheme Crash Course".
2022-09-02 18:16:51 +02:00
Marius Bakke
58863b93b0
Merge branch 'staging' into core-updates 2022-09-01 23:26:57 +02:00
Ludovic Courtès
98a8b48a69
doc: Suggest more RAM for "Running Guix in a VM".
Fixes <https://issues.guix.gnu.org/57474>.
Reported by Michael F. Lamb <mike@orbital.rodeo>.

Running 'guix pull' to target current revisions would lead to memory
exhaustion.  Bumping the memory size works around that.

* doc/guix.texi (Running Guix in a VM): Change "-m 1024" to "-m 2048".
2022-09-01 18:31:26 +02:00
muradm
fa2d651475
gnu: fail2ban-service-type: Fix documentation typos.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-09-01 08:58:16 -04:00
Marius Bakke
59c136ef61
Merge branch 'staging' into core-updates 2022-08-30 20:18:55 +02:00
Nicolas Graves
c4acaf4120
etc: Add tempel snippets.
* etc/snippets/tempel/scheme-mode: New file.
* etc/snippets/tempel/text-mode: New file.
* etc/snippets/scheme-mode: Moved from here...
* etc/snippets/yas/scheme-mode: ... to here.
* etc/snippets/text-mode: Moved from here...
* etc/snippets/yas/text-mode: ... to here.
* doc/contributing.texi ("The Perfect Setup"): Adjust yasnippet setup
accordingly.  Add tempel setup.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-08-30 11:50:14 +02:00
Thiago Jung Bauermann
65ce5fe2fb
guix system: Use standard cross and native build options.
This change prevents guix system from erroring out with an ugly backtrace
when it's passed an invalid value to the “--system” or “--target”
option. It also adds the “--list-systems” and “--list-targets” options.

The manual section about guix system doesn't mention the “--target” option,
so add it there.

* guix/scripts/system (show-help): Call show-cross-build-options-help and
show-native-build-options-help.
(%options): Remove own implementation of “system” and “target” options and
use the ones in %standard-cross-build-options and
%standard-native-build-options.
* doc/guix.texi (Invoking guix system): Document “--target” option.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-08-30 08:55:16 +02:00
Reza Alizadeh Majd
f126f23b13
bootloader: Add device-tree-support? option.
In some specific cases where the device tree file is already loaded in RAM, it
can be preferable that the bootloader does not try to use a device tree from
the Linux kernel tree.

* gnu/bootloader.scm (<bootloader-configuration>)[device-tree-support?]: New field.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Add FDTDIR line
based on <device-tree-support?> field of <bootloader-configuration>.
* doc/guix.texi (Bootloader Configuration)[device-tree-support?]: Add
documentation for the new field.
2022-08-30 08:50:44 +02:00
Maxim Cournoyer
0ea62e84a7
services: Add lightdm-service-type.
* gnu/services/lightdm.scm: New service.
* tests/services/lightdm.scm: Test it.
* doc/guix.texi (X Window): Document it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.

Co-authored-by: L p R n d n <guix@lprndn.info>
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2022-08-28 22:28:47 -04:00
muradm
3c2d2b4538
gnu: security: Add fail2ban-service-type.
* gnu/services/security.scm: New module.
* gnu/tests/security.scm: New module.
* gnu/local.mk: Add new security module and tests.
* doc/guix.text: Add fail2ban-service-type documentation.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-28 21:46:30 -04:00
Marius Bakke
ad384816fe
Merge branch 'staging' into core-updates 2022-08-27 17:10:55 +02:00
muradm
cac3914dfc
gnu: greetd-service-type: Add supplementary groups to greeter.
* gnu/services/base.scm (<greetd-configuration>)
[greeter-supplementary-groups]: New field.
(%greetd-accounts): Rename to...
(greetd-accounts): ... this.  Convert to a function that takes a config
argument.  Use greeter-supplementary-groups.
(greetd-service-type): Adjust accordingly.
* gnu/tests/desktop.scm (%minimal-services): Add test for
greeter-supplementary-groups.
* doc/guix.texi ("Base Services")[greetd-service-type]: Document
greeter-supplementary-groups.
2022-08-26 18:50:33 +02:00
muradm
d1815a68ea
gnu: seatd-service-type: Use seat group.
* gnu/services/desktop.scm (seatd-group-sanitizer): New variable.
(<seatd-configuration>)[user]: Removed field.
[group]: Changed to "seat".  Sanitize via seatd-group-sanitizer.
(seatd-accounts): New variable.
(seatd-environment): Adjust to <seatd-configuration> ABI.
(seatd-service-type)[extensions]: Add account-service-type with seatd-accounts.
* gnu/tests/desktop.scm (run-minimal-desktop-test): Check for correct
ownership of $SEATD_SOCK.
* doc/guix.texi ("Desktop Services")[seatd-service-type]: Mention that users
may need to become members of the "seat" group.
Update default value for group field.
Add explanation on seatd.sock file.
Remove dropped user field.
2022-08-26 18:48:37 +02:00
Maxim Cournoyer
98457ba47b
doc: Replace remaining 'unset mentions with %unset-value.
* doc/guix.texi (Networking Services): Replace 'unset with %unset-value.
(Power Management Services): Likewise.
(Complex Configurations): Likewise.
2022-08-25 00:10:57 -04:00
Maxim Cournoyer
1c803e63f9
services: configuration: Add a 'maybe-value-set?' procedure.
* gnu/services/configuration.scm (maybe-value-set?): New procedure.
* doc/guix.texi (Complex Configurations): Document it.  Remove comment showing
usage of 'maybe-string' with a default value, which doesn't make sense.

Co-authored-by: Attila Lendvai <attila@lendvai.name>
2022-08-24 22:34:45 -04:00
Julien Lepiller
92b25a09c4
doc: Fix typos.
* doc/guix.texi: Fix various typos found by translators.
2022-08-20 13:16:28 +02:00
Andrew Tropin
b379b4f4a2
doc: Add files, xdg-configuration and symlink-manager home services.
* doc/guix.texi (Essential Home Services): Add files, xdg-configuration-files
and symlink-manager home services.
2022-08-19 18:55:43 +03:00
Tobias Geerinckx-Rice
6c2e14a43a
doc: Note the pitfalls of man 8 mount.
* doc/guix.texi (File Systems): Warn against flags presented as options.
2022-08-14 02:00:00 +02:00
Tobias Geerinckx-Rice
6983ded42b
doc: Remove extraneous ‘Note…’.
* doc/guix.texi (File Systems): Remove a ‘Note that’ & begin a new
paragraph.
2022-08-14 02:00:00 +02:00
Marius Bakke
77eb3008e3
Merge branch 'staging' into core-updates 2022-08-11 23:36:10 +02:00
Maxim Cournoyer
59ee837d8b
services: elogind: Fix default behavior for lid close.
Fixes <https://issues.guix.gnu.org/57052>, which was a behavior change
introduced inadvertently in 4c698cd512.

* gnu/services/desktop.scm (<elogind-configuration>)
[handle-lid-switch-external-power]: Default to *unspecified*, which serializes
to nothing.  This matches upstream behavior, meaning that even when plugged to
a power cord, a laptop will suspend when the lid is closed.
* doc/guix.texi (Desktop Services): Update doc.

Reported-by: Cairn <cairn@pm.me>
2022-08-10 00:33:30 -04:00
Oleg Pykhalov
4b49487838
gnu: system: file-systems: Add shared flag.
* gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system):
Handle shared flag.
* gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known
flags.
* guix/build/syscalls.scm (MS_SHARED): New variable.
* doc/guix.texi (File Systems): Document shared flag.
2022-08-10 07:12:25 +03:00
Maxim Cournoyer
4b780d002d
doc: Fix name of gdm-configuration x-session field.
* doc/guix.texi (X Window): Correctly refer to 'x-session', not 'xsession', as
the name of the field.
2022-08-09 17:08:26 -04:00
Ricardo Wurmus
26af06b66b
linux-container: container-script: Parse command line options.
* gnu/system/linux-container.scm (container-script): Accept command line
options to bind mount host directories into the container.
* doc/guix.texi (Invoking guix system): Document options.
2022-08-09 20:32:13 +02:00
Ludovic Courtès
cf60a0a906
build-system/channel: Accept a channel or instance as the source.
* guix/build-system/channel.scm (latest-channel-instances*): New
variable.
(build-channels): New procedure, with code formerly in
'channel-build-system', augmented with clauses for when SOURCE is a
channel instance or a channel.
* doc/guix.texi (Build Systems): Adjust accordingly.
2022-08-09 15:16:06 +02:00
Ludovic Courtès
5bce4c8242
build-system: Add 'channel-build-system'.
* gnu/ci.scm (channel-build-system, channel-source->package): Remove.
* gnu/packages/package-management.scm (channel-source->package): New
procedure, moved from (gnu ci).
* guix/build-system/channel.scm: New file, with code moved from (gnu ci).
* doc/guix.texi (Build Systems): Document it.
2022-08-09 15:16:06 +02:00
Ludovic Courtès
a15542d26d
style: Add '--whole-file' option.
* guix/scripts/style.scm (format-whole-file): New procedure.
(%options, show-help): Add '--whole-file'.
(guix-style): Honor it.
* tests/guix-style.sh: New file.
* Makefile.am (SH_TESTS): Add it.
* doc/guix.texi (Invoking guix style): Document it.
2022-08-08 11:53:33 +02:00
Ludovic Courtès
ad8beb6325
lint: Add '-e'.
* guix/scripts/lint.scm (show-help, %options): Add '-e'.
(guix-lint): Call 'specification->package' while traversing OPTS.  Add
case for 'expression pair.  Adjust 'for-each' loop to expect packages.
* doc/guix.texi (Invoking guix lint): Document it.
2022-08-08 11:22:31 +02:00
Ludovic Courtès
6e5a1e2a62
doc: Add reference to "Writing Manifests".
* doc/guix.texi (Defining Package Variants): Rewrite to "Writing
Manifests" rather than the 'profile-manifest' anchor.
2022-08-06 23:14:41 +02:00
Tobias Geerinckx-Rice
79fbe4f524
doc: Fix typo.
* doc/guix.texi (X Window): Fix ‘string-apppend’ typo.
2022-07-31 02:00:12 +02:00
Ludovic Courtès
f9a267c6d2
doc: Fix Guix manual URLs in 'htmlxref.cnf'.
Fixes a regression introduced in
868da34d54.

* doc/htmlxref.cnf (GUIX): Remove "/guix".
2022-08-05 00:14:29 +02:00
Maxim Cournoyer
a2b89a3319
services: configuration: Step back from *unspecified*.
Fixes <https://issues.guix.gnu.org/56799>.

This partially reverts 8cb1a49a39.

Rationale: *unspecified* cannot be serialized thus used as a G-Expression
input, which is problematic/inconvenient when using deeply nested records.  As
an example, jami-service-type was broken when using partially defined
<jami-account> records.

* gnu/services/configuration.scm (define-maybe-helper): Check against the
'unset symbol.
(normalize-field-type+def): Adjust value to 'unset.
(define-configuration-helper): Use 'unset as the default value thunk.
* gnu/services/file-sharing.scm (serialize-maybe-string): Check against the
'unset symbol.
(serialize-maybe-file-object): Likewise.
* gnu/services/messaging.scm (define-all-configurations): Use 'unset as
value.
(raw-content?): Check against 'unset symbol.
(prosody-configuration)[http-max-content-size]: Default to 'unset.
[http-external-url]: Likewise.
[mod-muc]: Likewise.
[raw-content]: Likewise.
* gnu/services/networking.scm (opendht-configuration): Adjust documentation.
* gnu/services/telephony.scm (jami-shepherd-services): Replace *undefined*
with the 'unset symbol.
* tests/services/configuration.scm ("maybe type, no default"): Check against
the 'unset symbol.
* doc/guix.texi: Regenerate the opendht-configuration,
openvpn-client-configuration and openvpn-server-configuration documentation.
2022-08-01 12:49:35 -04:00
Maya
dd3cf14402
services: opensmtpd: Make commands setgid to "smtpq" by default.
This is a patch that fixes "<executable name>: this program must be setgid smtpq".

* gnu/services/mail.scm (<opensmtpd-configuration>)[setgid-commands?]: New field.
(opensmtpd-set-gids): New procedure.
(opensmtpd-service-type)[extensions]: Add SETUID-PROGRAM-SERVICE-TYPE extension.
* doc/guix.texi (Mail Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-08-01 14:08:08 +02:00
Ludovic Courtès
7d0ebc467f
services: rottlog: More convenient default options for <log-rotation>.
* gnu/services/admin.scm (%default-log-rotation-options): New variable.
(%default-rotations): Use it.
* gnu/services/cuirass.scm (cuirass-log-rotations): Likewise.
* doc/guix.texi (Log Rotation): Adjust accordingly.
2022-08-01 00:02:04 +02:00
Ludovic Courtès
4de445f3da
guix gc: '--delete-generations' now deletes old Home generations.
This reverts commit 24c0518dd4,
thereby reinstating ba22560627, with an
additional fix in (guix self).

Fixes <https://issues.guix.gnu.org/56722>.
Reported by "(" <paren@disroot.org>.

* guix/scripts/gc.scm (guix-gc)[delete-generations]: Add call to
'home-generation-base'.
* guix/self.scm (compiled-guix)[*core-cli-modules*]: Remove (guix
scripts gc).
* doc/guix.texi (Invoking guix gc): Document the change.
2022-08-01 00:02:04 +02:00
Marius Bakke
6a3ed96af7
Merge branch 'staging' into core-updates 2022-07-27 17:53:05 +02:00
Marius Bakke
9044b086dd
Merge branch 'staging' into core-updates 2022-07-22 01:09:14 +02:00
Ricardo Wurmus
be7b314f3f
import: Enable recursive import for texlive packages.
* guix/import/texlive.scm (tlpdb->package): Add VERSION argument; include
explicit version field in output.
(texlive->guix-package): Set default value for VERSION argument; adjust call
of tlpdb->package.
(texlive-recursive-import): Accept REPO and VERSION keyword arguments.
* guix/import/utils.scm (package->definition): Add a clause to deal with
output from tlpdb->package.
* guix/scripts/import/texlive.scm (%options): Add "recursive" option.
(guix-import-texlive): Honor "recursive" option.
* doc/guix.texi (Using TeX and LaTeX): Mention "recursive" option.
2022-07-19 23:49:42 +02:00
Antero Mejr
95acd67dd3
system: Add -I, --list-installed option.
* guix/scripts/system.scm (display-system-generation): Add
 #:list-installed-regex and honor it.
(list-generations): Likewise.
(show-help, %options): Add "--list-installed".
(process-command): For 'describe' and 'list-generation', honor the
'list-installed option.
* doc/guix.texi (Invoking Guix System): Add information for
--list-installed flag.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-07-19 18:54:42 +02:00
Antero Mejr
55725724dd
home: Add -I, --list-installed option.
* guix/scripts/package.scm (list-installed): New procedure.
* guix/scripts/home.scm (%options, show-help): Add '--list-installed'.
(process-command): For 'describe' and 'list-generations', honor the
'list-installed option.
(display-home-environment-generation): Add #:list-installed-regex and
honor it.
(list-generations): Likewise.
* guix/scripts/utils.scm (pretty-print-table): New argument "left-pad".
* doc/guix.texi (Invoking Guix Home): Add information and example for
--list-installed flag.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-07-19 18:54:42 +02:00
Rostislav Svoboda
969e86784b
doc: Fix the example of "Run make automatically"
* doc/contributing.texi (Running Guix Before It Is Installed): add missing
command separator '--'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-07-18 00:21:31 +02:00
Ludovic Courtès
fa65e645e9
doc: Tweak.
* doc/guix.texi (Using Guix Interactively): Add @cindex commands.  Add
missing word.
2022-07-18 00:21:30 +02:00
Tobias Geerinckx-Rice
24c0518dd4
Revert "guix gc: '--delete-generations' now deletes old Home generations."
This reverts commit ba22560627.
2022-07-17 02:00:00 +02:00
Ludovic Courtès
6c42db8351
doc: Clarify "Replicating Guix" section.
* doc/guix.texi (Specifying Additional Channels): Replace 'guix pull
--list-generations' example with 'guix describe'.
(Replicating Guix): Rewrite to insist on 'guix describe', to include
an example capturing channels and another one restoring them, and
mention "lock files".
2022-07-23 00:39:57 +02:00
Ludovic Courtès
ba22560627
guix gc: '--delete-generations' now deletes old Home generations.
Previously, 'guix gc -d4m' would ignore Home generations.  With this
change, they are treated like profiles and generations that match the
pattern are deleted.

* guix/scripts/gc.scm (guix-gc)[delete-generations]: Add call to
'home-generation-base'.
* doc/guix.texi (Invoking guix gc): Document the change.
2022-07-23 00:39:55 +02:00
Ludovic Courtès
4ce7f1fb24
monad-repl: Add "build", "lower", and "verbosity" commands.
Fixes <https://issues.guix.gnu.org/56114>.
Reported by Maxime Devos <maximedevos@telenet.be>.

* guix/monad-repl.scm (%build-verbosity): New variable.
(evaluate/print-with-store): New procedure.
(run-in-store): Rewrite in terms of 'evaluate/print-with-store'.
(verbosity, lower, build): New meta-commands.
* doc/guix.texi (Using Guix Interactively): New node.
(The Store Monad): Link to it.
(Invoking guix repl): Likewise.
* doc/contributing.texi (Running Guix Before It Is Installed): Refer to
it.
(The Perfect Setup): Suggest 'guix install' rather than 'guix package -i'.
2022-07-15 17:36:57 +02:00
Ludovic Courtès
5f8adea86c
doc: Add example of 'bash-extension'.
* doc/guix.texi (Shells Home Services): Add 'bash-extension' example.
2022-07-14 01:05:34 +02:00
Ludovic Courtès
6cd6753218
doc: Prefer "guix show" over "guix package --show".
* doc/contributing.texi (Synopses and Descriptions): Use "guix show"
instead of "guix package --show".
2022-07-13 00:20:06 +02:00
Reily Siegel
8d922504b2
gnu: home: Add Guix channels service.
* gnu/home/services/guix.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add guix.scm.
* doc/guix.texi: Add documentation for home-channels-service.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-07-12 01:17:46 +02:00
Maxim Cournoyer
5ecbf5b163
doc: Fix cross-reference to Git Info manual.
Partially fixes <https://issues.guix.gnu.org/55821>.  Partially because our
git package doesn't yet include the documentation.  This change will need to
go to core-updates.

* doc/contributing.texi (Submitting Patches): Adjust the node name.
2022-07-11 17:21:55 -04:00
Ludovic Courtès
9100acb6fb
doc: cookbook: Link to "A Scheme Primer".
* doc/guix-cookbook.texi (A Scheme Crash Course): Link to "A Scheme
Primer".  Group references in @quotation for clarity.
2022-07-08 17:28:50 +02:00
Ludovic Courtès
da7bee91fa
doc: cookbook: Suggest 'guix shell'.
* doc/guix-cookbook.texi (A Scheme Crash Course): Suggest 'guix shell'
instead of 'guix environment'.
(Customizing the Kernel, The benefits of manifests): Likewise.
2022-07-08 17:28:50 +02:00
jgart
e103d61485
doc: Document the documentation process.
* doc/contributing.texi (Contributing): Add Writing Documentation section.

Co-authored-by: Julien Lepiller <julien@lepiller.eu>
Co-authored-by: Matt Trzcinski <matt@excalamus.com>
Co-authored-by: Fabio Natali <me@fabionatali.com>
Co-authored-by: Gabor Boskovits <boskovits@gmail.com>
Co-authored-by: Luis Felipe <luis.felipe.la@protonmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-07-07 14:40:50 -04:00
Ludovic Courtès
ef97576972
doc: Document the 'validate-runpath' phase.
* doc/guix.texi (Build Systems): Replace paragraph about RUNPATH
validation with a cross-reference.
(Build Phases): Add 'validate-runpath' phase, with the paragraph taken
above.
2022-07-05 16:56:04 +02:00
Hartmut Goebel
a3d86b341d
style: Add option '--list-stylings'.
* guix/scripts/style.scm (show-stylings): New procedure.
  (%options, show-help): Add "--list-stylings".
* doc/guix.texi (Invoking guix style): Document "-l".
2022-07-04 16:13:13 +02:00
Ricardo Wurmus
cba98b58bf
services: Add anonip-service-type.
* gnu/services/web.scm (anonip-configuration): New record type.
(anonip-configuration?, anonip-configuration-anonip,
anonip-configuration-input, anonip-configuration-output,
anonip-configuration-skip-private?, anonip-configuration-column,
anonip-configuration-replacement, anonip-configuration-ipv4mask,
anonip-configuration-ipv6mask, anonip-configuration-increment,
anonip-configuration-delimiter, anonip-configuration-regex): New procedures.
(anonip-service-type): New service type.
* doc/guix.texi (Log Rotation): Add subheading for Anonip Service.
2022-07-03 14:12:32 +02:00
Ludovic Courtès
e7ab3d33ae
challenge: Do nothing when passed zero arguments.
Previously, 'guix challenge' without arguments would list live store
items that had been locally built.  This was deemed confusing,
especially since 'list-live' is an expensive operation.

* guix/scripts/challenge.scm (guix-challenge): Warn and exit with 0 when
FILES is empty.
* doc/guix.texi (Invoking guix challenge): Update accordingly.
2022-07-03 01:41:06 +02:00
Christopher Baines
b5c6062bce
services: nginx: Add support for extra content in upstream blocks.
I'm looking at this as I'd like to use the keepalive functionality.

* gnu/services/web.scm (nginx-upstream-configuration-extra-content): New
procedure.
(emit-nginx-upstream-config): Include the extra-content if applicable.
* doc/guix.texi (NGINX): Document this.
2022-07-01 09:45:28 +01:00
Christopher Baines
09aeabb9d3
services: guix: Support guix-build-coordinator parallel hooks.
* gnu/services/guix.scm (guix-build-coordinator-configuration-parallel-hooks):
New procedure.
(make-guix-build-coordinator-start-script): Accept and use #:parallel-hooks.
(guix-build-coordinator-shepherd-services): Pass parallel-hooks to
make-guix-build-coordinator-start-script.
* doc/guix.texi (Guix Build Coordinator): Document this new field.
2022-07-01 09:45:28 +01:00
Marius Bakke
2a7648774f
Merge branch 'master' into core-updates 2022-06-27 19:23:48 +02:00
Ludovic Courtès
d9d77d9479
doc: Update "updating substitutes" message.
This is a followup to 2bf9351e31.

* doc/guix.texi (Invoking guix challenge)
(Invoking guix weather): Adjust "updating substitutes" message.
2022-06-26 23:19:13 +02:00
Ludovic Courtès
8655a71445
Merge branch master into core-updates 2022-06-22 18:48:00 +02:00
Ludovic Courtès
6337f62dde
doc: Show (service ...) form in 'home-openssh-service-type' example.
* doc/guix.texi (Secure Shell): Include the (service ...) form in the
example.
2022-06-19 23:14:56 +02:00
Ludovic Courtès
dc16ac2d8b
doc: Mention installation via distro packages.
* doc/guix.texi (Binary Installation): In quotation, mention Debian,
Ubuntu, and openSUSE.
2022-06-24 23:18:21 +02:00
Ludovic Courtès
6505f727e1
services: configuration: Remove 'validate-configuration'.
Now that configuration records use the 'sanitize' property for each
field, 'validate-configuration' has become useless because it's
impossible to construct an invalid configuration record.

* gnu/services/configuration.scm (validate-configuration): Remove.
* gnu/services/mail.scm (dovecot-service): Remove call.
* gnu/services/vpn.scm (openvpn-client-service)
(openvpn-server-service): Likewise.
* doc/guix.texi (Complex Configurations): Remove documentation.
2022-06-24 23:18:21 +02:00
swedebugia
3e7b6dd149
doc: Fix formatting of notes in multiple sections.
* doc/guix.texi (Instantiating the system): Add suggestion to keep
config.scm under version control.
(Printing Services, Messaging Services)
(Telephony Services, Invoking guix system): Use "@quotation Note" for notes.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-06-24 23:18:19 +02:00
Maxim Cournoyer
3cdfad5cd8
doc: Fix typo.
* doc/guix.texi (Networking Setup): Fix typo.
2022-06-23 20:34:32 -04:00
Ludovic Courtès
2327bf41d9
doc: Expound description of the <package> 'arguments' field.
* doc/guix.texi (package Reference): Augment description of the
'arguments' field.
2022-06-23 23:20:55 +02:00
Ludovic Courtès
054937f17d
doc: Remove trailing #t in example.
* doc/guix.texi (Build Phases): Remove trailing #t in example.
2022-06-23 23:20:55 +02:00
Ludovic Courtès
bdf4221767
refresh: Repurpose '-L' for '--load-path'.
This incompatible change fixes an inconsistency with other commands
where '-L' is short for '--load-path'.

* guix/scripts/refresh.scm (%options): Add --load-path option from
%STANDARD-BUILD-OPTIONS.  Remove #\L shortcut for --list-updaters, and
remove --load-path option that lacked the #\L shortcut.
(show-help): Update accordingly.
* doc/guix.texi (Invoking guix refresh): Update accordingly.
2022-06-22 23:43:22 +02:00
Ludovic Courtès
7f208f68de
home: Add OpenSSH service.
* gnu/home/services/ssh.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* doc/guix.texi (Secure Shell): New section.
2022-06-17 23:39:32 +02:00
muradm
d6dda325c1
gnu: desktop: Add seatd-service-type.
* gnu/services/desktop.scm (seatd-service-type): New variable
* gnu/services/desktop.scm (seatd-configuration): New data type

Signed-off-by: Lars-Dominik Braun <ldb@leibniz-psychology.org>
2022-06-17 10:30:43 +02:00
muradm
530e0f0260
gnu: base: Add greetd-service-type.
* gnu/services/base.scm (greetd-service-type): New variable
* gnu/services/base.scm (greetd-configuration): New data type
* gnu/services/base.scm (greetd-terminal-configuration): New data type
* gnu/services/base.scm (greetd-agreety-session): New data type
* gnu/services/base.scm (pam-limits-service-type): Should be aware of
greetd PAM service
* gnu/services/pam-mount.scm (pam-mount-pam-service): Should be aware
of greetd PAM service

Signed-off-by: Lars-Dominik Braun <ldb@leibniz-psychology.org>
2022-06-17 10:30:41 +02:00
Maxim Cournoyer
ec7a750344
doc: Remove obsolete comment from htmlxref.cnf.
This is follow up to <https://issues.guix.gnu.org/55290>.

* doc/htmlxref.cnf (geiser): Delete obsolete comment.
2022-06-16 21:52:49 -04:00
Maxim Cournoyer
1cde647cc0
doc: Use a minimal texlive profile in build.scm.
* doc/build.scm (pdf-manual) <texinfo-profile>: New variable.
<PATH>: Define in terms of the above.
<GUIX_TEXMF>: New environment variable.
2022-06-15 17:24:46 -04:00
Tobias Geerinckx-Rice
5c0ef02db9
doc: Substitute ‘copy’ for confusing ‘drop’.
* doc/guix.texi (Build Environment Setup): ‘drop in’ → ‘copy to’.

Reported by lechner in #guix.
2022-06-12 02:00:00 +02:00
Hartmut Goebel
0d9f1f15cb
import: Add hex.pm importer.
hex.pm is a package repository for Erlang and Elixir.

* guix/scripts/import.scm (importers): Add "hexpm".
* guix/scripts/import/hexpm.scm, guix/import/hexpm.scm,
  guix/hexpm-download.scm: New files.
* guix/import/utils.scm (source-spec->object): Add "hexpm-fetch" to list of
  fetch methods.
* guix/upstream.scm (package-update/hexpm-fetch): New function.
  (%method-updates) Add it.
* Makefile.am: Add them.
2022-06-15 10:18:34 +02:00
Hartmut Goebel
97586ca1cb
build-system: Add 'rebar-build-system'.
* guix/build-system/rebar.scm, guix/build/rebar-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Update rebar-build-system section.
2022-06-15 10:17:25 +02:00
Attila Lendvai
713d140750
doc: Follow the 'disabled -> *unspecified* configuration refactor.
* doc/guix.texi (Networking Services)
(Messaging Services)
(Telephony Services)
(File-Sharing Services)
(VPN Services)
(Power Management Services)
(Complex Configurations)
(Desktop Home Services): Remove mentions of the 'disabled symbol or
replace them by *unspecified*, depending on context.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-15 00:25:21 +02:00
Maxim Cournoyer
4e93ca70da
doc: Document how to repair Guix System from a chroot.
* doc/guix.texi (System Troubleshooting Tips): New chapter.
2022-06-14 15:19:35 -04:00
Maxim Cournoyer
a860a5fa95
services: dbus: Add a VERBOSE? configuration option.
* gnu/services/dbus.scm (<dbus-configuration>)[verbose?]: New field.
(dbus-shepherd-service): Use it.
(dbus-service)[verbose?]: Add argument and update doc.
* doc/guix.texi (Desktop Services): Document it.
2022-06-14 14:23:21 -04:00
terramorpha
fcad622648
services: guix: Generalize extensions.
* gnu/services/base.scm (<guix-extension>): New record type.
(guix-extension-merge): New procedure.
(guix-service-type): Honor extensions.
* doc/guix.texi (Base Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-13 12:27:35 +02:00
Ludovic Courtès
8c3e9da13a
Merge branch 'master' into core-updates 2022-06-08 14:46:24 +02:00
Tobias Geerinckx-Rice
aeca46ae0f
doc: Remove left-over MIPS.
* doc/guix.texi (Additional Build Options): Substitute aarch64 for MIPS.
2022-06-05 02:00:00 +02:00
Karl Hallsby
618f665a5f
bootloader: grub: Add removable grub-efi bootloader option.
For single-disk installs (external USBs) and for amnesiac UEFIs, Guix is not
found using its default Grub EFI bootloader location of
/boot/efi/EFI/Guix/grubx64.efi means the Guix install will not be found.

To handle this, we can place the bootloader file in the UEFI specification
location, overwriting any other OS that may have placed a file there. This
location is namely /boot/efi/EFI/BOOT/BOOTX64.efi. Grub has explicit support
for this location/situation with the `--removable` flag.

* gnu/bootloader/grub.scm (install-grub-efi-removable)
(grub-efi-removable-bootloader): New variables.
* doc/guix.texi (Bootloader Configuration): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-06 22:43:30 +02:00
Josselin Poiret
a99015c878
system: Align zram priority with swap-space spec to clarify.
Fixes <https://issues.guix.gnu.org/54783>.

* gnu/services/linux.scm (zram-device-configuration)
[priority]: Adapt to use #f or an integer from 0 to 32767.  Add sanitizer to
warn for the change and delay the field.
(zram-device-configuration->udev-string): Adapt as above.
* doc/guix.texi (Zram Device Service): Remove double copyright line.
Change priority description to refer to the Swap Space one, and suggest not
leaving the default #f on to properly use zram.

Reported-by: Stefan Baums <baums@stefanbaums.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-06-11 00:57:13 -04:00
Maxim Cournoyer
8649ac5eaa
services: jami-configuration: Rename 'jamid' field to 'libjami'.
* gnu/services/telephony.scm (gnu):
(jami-configuration)[jamid]: Rename field to...
[libjami]: ... this.
(jami-configuration->command-line-arguments): Adjust accordingly.
(jami-shepherd-services): Likewise.
2022-06-10 23:52:34 -04:00
Maxim Cournoyer
85b4dabd94
services: jami: Modernize to adjust to Shepherd 0.9+ changes.
This partially fixes <https://issues.guix.gnu.org/54786>, allowing the 'jami'
and 'jami-provisioning' system tests to pass again.

In version 0.9.0, Shepherd constructors are now run concurrently, via
cooperative scheduling (Guile Fibers).  The Jami service previously relied on
blocking sleeps while polling for D-Bus services to become ready after forking
a process; this wouldn't work anymore since while blocking the service process
wouldn't be given the chance to finish starting.  The new reliance on Fibers
in Shepherd's fork+exec-command in the helper 'send-dbus' procedure also meant
that it wouldn't work outside of Shepherd anymore.  Finally, the
'start-service' Shepherd procedure used in the test suite would cause the Jami
daemon to be spawned multiple times (a bug introduced in Shepherd 0.9.0).

To fix/simplify these problems, this change does the following:

1. Use the Guile AC/D-Bus library for D-Bus communication, which simplify
things, such as avoiding the need to fork 'dbus-send' processes.

2. The non-blocking 'sleep' version of Fiber is used for the 'with-retries'
waiting syntax.

3. A 'dbus' package variant is used to adjust the session bus configuration,
tailoring it for the use case at hand.

4. Avoid start-service in the tests, preferring 'jami-service-available?' for
now.

* gnu/build/jami-service.scm (parse-dbus-reply, strip-quotes)
(deserialize-item, serialize-boolean, dbus-dict->alist)
(dbus-array->list, parse-account-ids, parse-account-details)
(parse-contacts): Delete procedures.
(%send-dbus-binary, %send-dbus-bus, %send-dbus-user, %send-dbus-group)
(%send-dbus-debug): Delete parameters.
(jami-service-running?): New procedure.
(send-dbus/configuration-manager): Rename to...
(call-configuration-manager-method): ... this.  Turn METHOD into a positional
argument.  Turn ARGUMENTS into an optional argument.  Invoke
`call-dbus-method' instead of `send-dbus', adjusting callers accordingly.
(get-account-ids, id->account-details, id->account-details)
(id->volatile-account-details, username->id, add-account remove-account)
(username->contacts, remove-contact, add-contact, set-account-details)
(set-all-moderators, username->all-moderators?, username->moderators)
(set-moderator): Adjust accordingly.
(with-retries, send-dbus, dbus-available-services)
(dbus-service-available?): Move to ...
* gnu/build/dbus-service.scm: ... this new module.
(send-dbus): Rewrite to use the Guile AC/D-Bus library.
(%dbus-query-timeout, sleep*): New variables.
(%current-dbus-connection): New parameter.
(initialize-dbus-connection!, argument->signature-type)
(call-dbus-method): New procedures.
(dbus-available-services): Adjust accordingly.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register new module.
* gnu/packages/glib.scm (dbus-for-jami): New variable.
* gnu/services/telephony.scm: (jami-configuration)[dbus]: Default to
dbus-for-jami.
(jami-dbus-session-activation): Write a D-Bus daemon configuration file at
'/var/run/jami/session-local.conf'.
(jami-shepherd-services): Add the closure of guile-ac-d-bus and guile-fibers
as extensions.  Adjust imported modules.  Remove no longer used parameters.
<jami-dbus-session>: Use a PID file, avoiding the need for the manual
synchronization.
<jami>:  Set DBUS_SESSION_BUS_ADDRESS environment variable.  Poll using
'jami-service-available?' instead of 'dbus-service-available?'.
* gnu/tests/telephony.scm (run-jami-test): Add needed Guile extensions.  Set
DBUS_SESSION_BUS_ADDRESS environment variable.  Adjust all tests to use
'jami-service-available?' to determine if the service is started rather than
the now problematic Shepherd's 'start-service'.
2022-06-10 23:52:33 -04:00