<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/gnu/services/databases.scm, branch python-team</title>
<subtitle>Transactional package manager, declarative GNU/Linux distribution, reproducible deployment tool, and more! https://guix.gnu.org</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/'/>
<entry>
<title>services: postgresql: Log to stderr instead of syslog by default.</title>
<updated>2026-06-19T02:04:25+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2026-06-19T02:04:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=16b1072f661051e6bc20d8dcafdb183960dd188b'/>
<id>16b1072f661051e6bc20d8dcafdb183960dd188b</id>
<content type='text'>
This corresponds to postgresql's own default; it means we can let go of the
syslogd dependency by default and arguably makes it easier to find some
postgresql related errors.

* doc/guix.texi (Database Services) &lt;postgresl-config-file&gt;: Adjust example
to showcase something different than the new default.  Change documented
default to stderr.
* gnu/services/databases.scm (&lt;postgresql-config-file&gt;)
[log-destination]: Change default value to stderr.
(postgresql-shepherd-service) &lt;requirement&gt;: Conditionally add
syslogd dependency only if found in log-destination value.
(postgresql-role-shepherd-service) &lt;#:log-file&gt;: Uncomment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This corresponds to postgresql's own default; it means we can let go of the
syslogd dependency by default and arguably makes it easier to find some
postgresql related errors.

* doc/guix.texi (Database Services) &lt;postgresl-config-file&gt;: Adjust example
to showcase something different than the new default.  Change documented
default to stderr.
* gnu/services/databases.scm (&lt;postgresql-config-file&gt;)
[log-destination]: Change default value to stderr.
(postgresql-shepherd-service) &lt;requirement&gt;: Conditionally add
syslogd dependency only if found in log-destination value.
(postgresql-role-shepherd-service) &lt;#:log-file&gt;: Uncomment.
</pre>
</div>
</content>
</entry>
<entry>
<title>services: postgresql: Use match-record to access record values.</title>
<updated>2026-05-19T06:40:56+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2026-05-19T06:37:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=8de7f580cd98c4b85d3442ebac9d17caffb039ff'/>
<id>8de7f580cd98c4b85d3442ebac9d17caffb039ff</id>
<content type='text'>
* gnu/services/databases.scm
(postgresql-config-file-compiler): Use match-record.
(postgresql-activation): Use match-record-lambda.
(postgresql-shepherd-service): Likewise.

Change-Id: I2aabaa90e1a0958973df3838efbcd1421c41dfce
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm
(postgresql-config-file-compiler): Use match-record.
(postgresql-activation): Use match-record-lambda.
(postgresql-shepherd-service): Likewise.

Change-Id: I2aabaa90e1a0958973df3838efbcd1421c41dfce
</pre>
</div>
</content>
</entry>
<entry>
<title>services: mysql: Extend system profile with mysql package.</title>
<updated>2026-05-05T14:48:31+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2026-04-28T14:40:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c8f53f4b2e73587296daa0fa41cff583287d434d'/>
<id>c8f53f4b2e73587296daa0fa41cff583287d434d</id>
<content type='text'>
* gnu/services/databases.scm (mysql-service-type): Add profile-service-type
extension.

Change-Id: Ib4748c5faa2368713427c299396501d3516cf990
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm (mysql-service-type): Add profile-service-type
extension.

Change-Id: Ib4748c5faa2368713427c299396501d3516cf990
</pre>
</div>
</content>
</entry>
<entry>
<title>services: postgresql: Change default authentification method.</title>
<updated>2026-04-28T06:03:16+00:00</updated>
<author>
<name>Mattia Bunel</name>
<email>mattia.bunel@ehess.fr</email>
</author>
<published>2026-04-10T12:03:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=abaf568edf024fc5c498db0ac983e0026ab8ca73'/>
<id>abaf568edf024fc5c498db0ac983e0026ab8ca73</id>
<content type='text'>
* gnu/services/databases.scm (%default-postgres-hba):
  Change the authentification method from the deprecated md5
  to the recommended scram-sha-256.

Change-Id: I4ae06bf2f77daa7a9339964182153c5f02897e4f
Merges: https://codeberg.org/guix/guix/pulls/7780
Reviewed-by: jgart &lt;jgart@dismail.de&gt;
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm (%default-postgres-hba):
  Change the authentification method from the deprecated md5
  to the recommended scram-sha-256.

Change-Id: I4ae06bf2f77daa7a9339964182153c5f02897e4f
Merges: https://codeberg.org/guix/guix/pulls/7780
Reviewed-by: jgart &lt;jgart@dismail.de&gt;
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>services: redis: Add prefix `redis-`.</title>
<updated>2026-04-07T20:41:58+00:00</updated>
<author>
<name>Ashvith Shetty</name>
<email>ashvith@noreply.codeberg.org</email>
</author>
<published>2026-03-03T16:32:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=75ad22703e7b22a19de0a0733555d33f1010f6a4'/>
<id>75ad22703e7b22a19de0a0733555d33f1010f6a4</id>
<content type='text'>
* gnu/services/databases.scm
(maybe-string): Add prefix.
(serialize-field): Rename to `redis-serialize-field`,
remove gexp.
(redis-serialize-package): Add variable.
(serialize-string): Rename to `redis-serialize-string`.
(serialize-number): Rename to `redis-serialize-number`.
(redis-configuration): Add prefix.
* doc/guix.texi (Database Services) &lt;redis&gt;: Regenerate
documentation.

Merges: https://codeberg.org/guix/guix/pulls/6850
Change-Id: Iccbbb7108f8211b31769638ef885e485bab0ebc3
Signed-off-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm
(maybe-string): Add prefix.
(serialize-field): Rename to `redis-serialize-field`,
remove gexp.
(redis-serialize-package): Add variable.
(serialize-string): Rename to `redis-serialize-string`.
(serialize-number): Rename to `redis-serialize-number`.
(redis-configuration): Add prefix.
* doc/guix.texi (Database Services) &lt;redis&gt;: Regenerate
documentation.

Merges: https://codeberg.org/guix/guix/pulls/6850
Change-Id: Iccbbb7108f8211b31769638ef885e485bab0ebc3
Signed-off-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: Remove postgresql-service procedure.</title>
<updated>2026-03-09T12:09:41+00:00</updated>
<author>
<name>Andreas Enge</name>
<email>andreas@enge.fr</email>
</author>
<published>2026-03-09T10:30:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c4f5971dbe09d7e4b9ba5f28a53f5121f8b01988'/>
<id>c4f5971dbe09d7e4b9ba5f28a53f5121f8b01988</id>
<content type='text'>
* gnu/services/databases.scm (postgresql-service): Delete variable.

Change-Id: Iec27908b892eae666ea4c1b28a63a2d3d48b804d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm (postgresql-service): Delete variable.

Change-Id: Iec27908b892eae666ea4c1b28a63a2d3d48b804d
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: Remove mysql-service procedure.</title>
<updated>2026-03-09T12:09:41+00:00</updated>
<author>
<name>Andreas Enge</name>
<email>andreas@enge.fr</email>
</author>
<published>2026-03-09T10:28:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=f9094fc6c2fd4f88b5a157d64257019d79f5bb8b'/>
<id>f9094fc6c2fd4f88b5a157d64257019d79f5bb8b</id>
<content type='text'>
* gnu/services/databases.scm (mysql-service): Delete variable.

Change-Id: Idbf3c9e2d595722792231f2417f85927bf89330c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm (mysql-service): Delete variable.

Change-Id: Idbf3c9e2d595722792231f2417f85927bf89330c
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: postgresql-role: Avoid leaking passwords through kernel's command line facility.</title>
<updated>2026-02-11T09:57:06+00:00</updated>
<author>
<name>Giacomo Leidi</name>
<email>therewasa@fishinthecalculator.me</email>
</author>
<published>2026-01-13T15:29:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=b6578368635c348413c2bdc7abcf234557bea83a'/>
<id>b6578368635c348413c2bdc7abcf234557bea83a</id>
<content type='text'>
The implementation of postgresql-role's password up until now relied on
spawining a subshell reading the password file and passing its content
via command line to a psql process which would create users and set
passwords. This allowed a (fast) attacker to eavesdrop, via the kernel
command line facility, the password while they were read,
without having the permissions required for reading the password
file.

This new implementation reads passwords directly from password files
into the Guile process, temporarily stores them in query files living in
a memory backed file system and deletes the query files after executing
them. It also makes sure to turn off logging of commands for the
duration of the password setting transaction, so passwords don't get
leaked to system logs through misconfiguration.

* gnu/services/databases.scm (%postgresql-role-runtime-dir): New
variable.
(postgresql-create-roles): Rework the way passwords are set to avoid
leaking them through subshells and command lines.
(%postgresql-role-file-systems): New variable.
(postgresql-role-service-type): Add file-system-service-type extension
point.

Change-Id: I52406d1d24f5d163081b5c21d3e1760fc0b67a1e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implementation of postgresql-role's password up until now relied on
spawining a subshell reading the password file and passing its content
via command line to a psql process which would create users and set
passwords. This allowed a (fast) attacker to eavesdrop, via the kernel
command line facility, the password while they were read,
without having the permissions required for reading the password
file.

This new implementation reads passwords directly from password files
into the Guile process, temporarily stores them in query files living in
a memory backed file system and deletes the query files after executing
them. It also makes sure to turn off logging of commands for the
duration of the password setting transaction, so passwords don't get
leaked to system logs through misconfiguration.

* gnu/services/databases.scm (%postgresql-role-runtime-dir): New
variable.
(postgresql-create-roles): Rework the way passwords are set to avoid
leaking them through subshells and command lines.
(%postgresql-role-file-systems): New variable.
(postgresql-role-service-type): Add file-system-service-type extension
point.

Change-Id: I52406d1d24f5d163081b5c21d3e1760fc0b67a1e
</pre>
</div>
</content>
</entry>
<entry>
<title>services: Modernize redis service.</title>
<updated>2025-12-22T14:42:39+00:00</updated>
<author>
<name>Ashvith Shetty</name>
<email>ashvith@noreply.codeberg.org</email>
</author>
<published>2025-06-28T16:53:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=4b25873c123da8d835e2c2078f1ed3d07023666f'/>
<id>4b25873c123da8d835e2c2078f1ed3d07023666f</id>
<content type='text'>
* gnu/services/databases.scm
(redis-configuration): Rewrite using `define-configuration'.
(redis-shepherd-service): Honor it.
* doc/guix.texi (Database Services) &lt;redis&gt;: Regenerate
documentation.

Change-Id: I5b99822ca3d8d23fb5133497d00eada0336d0c65
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #2158
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/databases.scm
(redis-configuration): Rewrite using `define-configuration'.
(redis-shepherd-service): Honor it.
* doc/guix.texi (Database Services) &lt;redis&gt;: Regenerate
documentation.

Change-Id: I5b99822ca3d8d23fb5133497d00eada0336d0c65
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #2158
</pre>
</div>
</content>
</entry>
<entry>
<title>services: postgres: Return #f on stop.</title>
<updated>2025-12-13T13:02:08+00:00</updated>
<author>
<name>Rutherther</name>
<email>rutherther@ditigal.xyz</email>
</author>
<published>2025-12-11T20:37:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=6935e6c51d6423ecfca7a775280da3ae16a2713b'/>
<id>6935e6c51d6423ecfca7a775280da3ae16a2713b</id>
<content type='text'>
Shepherd expects #f to know the service has stopped.

* gnu/services/databases.scm (postgresql-shepherd-service): Return #f
on stop.

Change-Id: Ie5c45efc7eef75c325ddfd0ef197b306c7b60e5b
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Shepherd expects #f to know the service has stopped.

* gnu/services/databases.scm (postgresql-shepherd-service): Return #f
on stop.

Change-Id: Ie5c45efc7eef75c325ddfd0ef197b306c7b60e5b
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</pre>
</div>
</content>
</entry>
</feed>
