<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests/services, branch koszko</title>
<subtitle>Wojtek's customized Guix</subtitle>
<id>https://git.koszko.org/guix/atom?h=koszko</id>
<link rel='self' href='https://git.koszko.org/guix/atom?h=koszko'/>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/'/>
<updated>2023-10-07T16:41:05Z</updated>
<entry>
<title>services: configuration: Use transducers within serialize-configuration.</title>
<updated>2023-10-07T16:41:05Z</updated>
<author>
<name>Bruno Victal</name>
<email>mirai@makinata.eu</email>
</author>
<published>2023-10-07T15:57:15Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=a7994ed58dc1ac3b57aa2df8508f05fd0748b3e0'/>
<id>urn:sha1:a7994ed58dc1ac3b57aa2df8508f05fd0748b3e0</id>
<content type='text'>
Introduces 'base-transducer', a SRFI-171 based transducer that can be used as a
starting point for writing custom configuration record serializing procedures.

This also fixes the symbol maybe-value serialization test case.

* gnu/services/configuration.scm (empty-serializer?): New predicate.
(base-transducer, tfilter-maybe-value): New procedure.
(serialize-configuration): Adapt to use base-transducer.

* gnu/services/telephony.scm (jami-account-&gt;alist): Use transducers to skip
fields that are unserializable or whose field maybe-value is unset.

* tests/services/configuration.scm: Remove test-expect-fail.

Signed-off-by: Maxim Cournoyer &lt;maxim.cournoyer@gmail.com&gt;
</content>
</entry>
<entry>
<title>services: Add pam-mount-volume-service-type.</title>
<updated>2023-08-10T07:26:08Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@spork.org</email>
</author>
<published>2023-07-18T14:06:16Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=8a88b8b0b5924f8ed00a49e79714cb005cffc7cb'/>
<id>urn:sha1:8a88b8b0b5924f8ed00a49e79714cb005cffc7cb</id>
<content type='text'>
The `pam-mount-volumes-service-type' adds additional volumes to the
pam-mount-service-type in addition to any that are already specified in
`pam-mount-rules'.

* doc/guix.texi (PAM Mount Volume Service): add documentation for
`pam-mount-service-type'.
* gnu/services/pam-mount.scm: new file.
* Makefile.am: add pam-mount tests
* tests/services/pam-mount.scm: new tests

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
</entry>
<entry>
<title>services: wireguard: Implement a dynamic IP monitoring feature.</title>
<updated>2023-07-21T15:58:44Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2023-05-09T20:52:22Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=8d785c43bad05546cfe8e08a1bbe065a63215f9d'/>
<id>urn:sha1:8d785c43bad05546cfe8e08a1bbe065a63215f9d</id>
<content type='text'>
* gnu/services/vpn.scm (&lt;wireguard-configuration&gt;)
[monitor-ips?, monitor-ips-internal]: New fields.
* gnu/services/vpn.scm (define-with-source): New syntax.
(wireguard-service-name, strip-port/maybe)
(ipv4-address?, ipv6-address?, host-name?)
(endpoint-host-names): New procedure.
(wireguard-monitoring-jobs): Likewise.
(wireguard-service-type): Register it.
* tests/services/vpn.scm: New file.
* Makefile.am (SCM_TESTS): Register it.
* doc/guix.texi (VPN Services): Update doc.

Reviewed-by: Bruno Victal &lt;mirai@makinata.eu&gt;
</content>
</entry>
<entry>
<title>services: replace bare serializers with (serializer ...)</title>
<updated>2023-04-02T10:35:30Z</updated>
<author>
<name>Bruno Victal</name>
<email>mirai@makinata.eu</email>
</author>
<published>2023-03-26T18:41:30Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=0fbb356714f4ae3ea18e4997131a0e1746cc923c'/>
<id>urn:sha1:0fbb356714f4ae3ea18e4997131a0e1746cc923c</id>
<content type='text'>
* gnu/home/services/shells.scm
(home-zsh-configuration)[environment-variables]: Use (serializer ...).
(home-bash-configuration)[aliases, environment-variables]: Likewise.
(home-fish-configuration)[abbreviations, aliases]
[environment-variables]: Likewise.
* gnu/services/audio.scm (mpd-configuration)[music-dir, playlist-dir]
[endpoints, address, inputs, archive-plugins, input-cache-size]
[decoders, filters, playlist-plugins]: Likewise.
* gnu/services/linux.scm (fstrim-configuration)[extra-arguments]:
Likewise.
* gnu/services/security.scm (fail2ban-jail-configuration)[backend]
[log-encoding, extra-content]: Likewise.
* tests/services/configuration.scm: Update tests.
("serialize-configuration [deprecated]"): New test.

Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
</content>
</entry>
<entry>
<title>services: configuration: Add user-defined sanitizer support.</title>
<updated>2023-04-02T10:31:51Z</updated>
<author>
<name>Bruno Victal</name>
<email>mirai@makinata.eu</email>
</author>
<published>2023-03-26T18:41:29Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=6f48efa9b89f3c33f7b2827cae88e87ec64faa09'/>
<id>urn:sha1:6f48efa9b89f3c33f7b2827cae88e87ec64faa09</id>
<content type='text'>
This changes the 'custom-serializer' field into a generic
'extra-args' field that can be extended to support new literals.
Within extra-args, the literals 'sanitizer' and 'serializer' allow
for user-defined sanitization and serialization procedures respectively.
The 'empty-serializer' was also added as a literal to be used as before.

To prevent confusion between the new “explicit” style of specifying
a sanitizer, and the old “implicit” style, the latter has been
deprecated, and a warning is issued if it is encountered.

* gnu/services/configuration.scm (define-configuration-helper):
Rename 'custom-serializer' to 'extra-args'.  Add support for literals
'sanitizer', 'serializer' and 'empty-serializer'.  Rename procedure
'field-sanitizer' to 'default-field-sanitizer' to avoid syntax clash.
Only define default field sanitizers if user-defined ones are absent.
(normalize-extra-args): New variable.
(&lt;configuration-field&gt;)[sanitizer]: New field.
* doc/guix.texi (Complex Configurations): Document the newly added
literals.
* tests/services/configuration.scm: Add tests for the new literals.

Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
</content>
</entry>
<entry>
<title>services: Add lightdm-service-type.</title>
<updated>2022-08-29T02:28:47Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2022-08-04T03:41:35Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=0ea62e84a787fe94cfeadf67ef27ea995a382b84'/>
<id>urn:sha1:0ea62e84a787fe94cfeadf67ef27ea995a382b84</id>
<content type='text'>
* 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 &lt;guix@lprndn.info&gt;
Co-authored-by: Ricardo Wurmus &lt;rekado@elephly.net&gt;
</content>
</entry>
<entry>
<title>services: configuration: Change the value of the unset marker.</title>
<updated>2022-08-25T04:10:42Z</updated>
<author>
<name>Attila Lendvai</name>
<email>attila@lendvai.name</email>
</author>
<published>2022-08-24T12:40:42Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=6fb9759ef3b8eb2a2b10c3f02a57ece29b5c53ba'/>
<id>urn:sha1:6fb9759ef3b8eb2a2b10c3f02a57ece29b5c53ba</id>
<content type='text'>
The new value of %unset-value sticks out more when something goes wrong, and
is also more unique; i.e. easier to search for.

Signed-off-by: Maxim Cournoyer &lt;maxim.cournoyer@gmail.com&gt;
</content>
</entry>
<entry>
<title>services: Use the new maybe/unset API.</title>
<updated>2022-08-25T04:10:32Z</updated>
<author>
<name>Attila Lendvai</name>
<email>attila@lendvai.name</email>
</author>
<published>2022-08-24T12:40:41Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=ee08277a70d29b6d707524a4e17620f50b87adf4'/>
<id>urn:sha1:ee08277a70d29b6d707524a4e17620f50b87adf4</id>
<content type='text'>
* gnu/home/services/ssh.scm (serialize-address-family): Use the public API of
the maybe infrastructure.
* gnu/services/file-sharing.scm (serialize-maybe-string): Use maybe-value.
(serialize-maybe-file-object): Use maybe-value-set?.
* gnu/services/getmail.scm (getmail-retriever-configuration): Don't use
internals in unset field declarations.
(getmail-destination-configuration): Ditto.
* gnu/services/messaging.scm (raw-content?): Use maybe-value-set?.
(prosody-configuration): Use %unset-value.
* gnu/services/telephony.scm (jami-shepherd-services): Use maybe-value-set?.
(archive-name-&gt;username): Use maybe-value-set?.
* tests/services/configuration.scm ("maybe type, no default"): Use
%unset-value.

Modified-by: Maxim Cournoyer &lt;maxim.cournoyer@gmail.com&gt;
Signed-off-by: Maxim Cournoyer &lt;maxim.cournoyer@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: configuration: Add a test to cover 'unset regression.</title>
<updated>2022-08-10T03:14:42Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2022-08-10T03:06:16Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=97cb43e732a38758c95b7caf3963507188d011cf'/>
<id>urn:sha1:97cb43e732a38758c95b7caf3963507188d011cf</id>
<content type='text'>
The regression was introduced with a2b89a3319dc1d621c546855f578acae5baaf6da,
and introduce a risk that 'unset leaks to serialized configuration files.

* tests/services/configuration.scm (maybe-symbol): New type.
(config-with-maybe-symbol): New configuration.
("symbol maybe value serialization, unspecified"): New test.

Reported-by: Attila Lendvai &lt;attila@lendvai.name&gt;
</content>
</entry>
<entry>
<title>services: configuration: Step back from *unspecified*.</title>
<updated>2022-08-01T16:49:35Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2022-07-27T19:18:51Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=a2b89a3319dc1d621c546855f578acae5baaf6da'/>
<id>urn:sha1:a2b89a3319dc1d621c546855f578acae5baaf6da</id>
<content type='text'>
Fixes &lt;https://issues.guix.gnu.org/56799&gt;.

This partially reverts 8cb1a49a3998c39f315a4199b7d4a121a6d66449.

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
&lt;jami-account&gt; 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.
</content>
</entry>
</feed>
