Age | Commit message (Expand) | Author |
2023-02-05 | services: mpd: Fix serialization procedure for list-of-string....This is a followup to commit 5c5f0fc1135ff15f9c4adfc5f27eadd9a592b5d1
* gnu/services/audio.scm (mpd-serialize-list-of-string): Fix serialization procedure.
Signed-off-by: Leo Famulari <leo@famulari.name>
| Bruno Victal |
2023-02-05 | 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>
| Bruno Victal |
2023-02-05 | 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>
| Bruno Victal |
2023-02-05 | 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>
| Bruno Victal |
2023-02-05 | services: mpd: Rewrite using 'define-configuration'....* gnu/services/audio.scm
(mpd-configuration, mpd-output): Rewrite using define-configuration.
(uglify-field-name, mpd-serialize-field, mpd-serialize-alist)
(mpd-serialize-number, mpd-serialize-boolean, mpd-serialize-list-of-mpd-output)
(mpd-serialize-configuration): New procedure.
(list-of-mpd-output?): New predicate.
(mpd-config->file, mpd-output->string): Remove procedure.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Bruno Victal |
2020-12-06 | services: mpd: Make /var/run/mpd/USER user-owned....Fixes <https://bugs.gnu.org/44820>.
Reported by Simon <lists@netpanic.org>.
This is a followup to bb124f6e9c0af0a23736f233c2ea2c9c9b4a40a6.
* gnu/services/audio.scm (mpd-service-activation): Chown the parent of
DIRECTORY as well.
| Ludovic Courtès |
2020-11-06 | services: mpd: Fix daemon startup....Until now it would wait for a PID file that'd never come.
* gnu/services/audio.scm (mpd-shepherd-service): Add 'requirement'.
Remove #:pid-file from 'start'.
(mpd-service-activation): Create the ".mpd" directory since that's what
the daemon expects.
| Ludovic Courtès |
2020-11-06 | services: mpd: Always create the "mpd" user account....* gnu/services/audio.scm (%mpd-accounts): New variable.
(mpd-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension.
| Ludovic Courtès |
2020-11-06 | services: mpd: Do not eagerly look for a user....Running 'guix system search mpd' would throw a backtrace because the
mpd-shepherd-service service start Gexp contained an unquoted call to
'getpwnam', which would look for a missing 'mpd' user and fail.
* gnu/services/audio.scm (mpd-shepherd-service): gexp-unquote only the
relevant variable rather than the whole expression.
| Maxim Cournoyer |
2020-05-13 | services: Add missing import....* gnu/services/audio.scm: Import (ice-9 format).
| Ludovic Courtès |
2019-11-08 | services: mpd: Connect to the user's PulseAudio socket....* gnu/services/audio.scm (mpd-shepherd-service): Set the XDG_RUNTIME_DIR
environment variable.
Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
| Robert Smith |
2019-10-29 | gnu: mpd-service-type: Support configuration of outputs....* gnu/services/audio.scm (<mpd-output>): New record type.
(<mpd-configuration>)[outputs]: New field.
(mpd-output, mpd-output?, mpd-output->string): New procedures.
(mpd-config->file): Use mpd-output->string.
* doc/guix.texi (Audio Services): Document mpd-output fields.
| Ricardo Wurmus |
2019-03-15 | services: mpd: add more configuration options...* gnu/services/audio.scm (<mpd-configuration>): Add 'db-file', 'state-file'
and 'sticker-file' fields.
* doc/guix.texi (Music Player Daemon): Document it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| nixo |
2017-11-05 | services: Add 'description' fields....* gnu/services/admin.scm (rottlog-service-type)
(tailon-service-type): Add 'description' field.
* gnu/services/audio.scm (mpd-service-type): Likewise.
* gnu/services/avahi.scm (avahi-service-type): Likewise.
* gnu/services/ssh.scm (lsh-service-type)
(openssh-service-type, dropbear-service-type): Likewise.
| Ludovic Courtès |
2017-08-31 | services: mpd: Remove the mpd-file field....Since MPD switches user, the pid-file must be in a writable dir. This
is now always /var/run/mpd/(user)/pid.
* gnu/services/audio.scm (mpd-service-type): Add a activation-service
extension.
(<mpd-configuration>)[pid-file]: Remove.
(mpd-service): Rename to...
(mpd-shepherd-service): ... this.
(mpd-file-name, mpd-service-activation): New procedure.
* doc/guix.texi (Audio Services): Document the changes.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Peter Mikkelsen |
2017-08-13 | gnu: Add mpd service....* doc/guix.texi: Add documentation.
* gnu/services/audio.scm (<mpd-configuration>): New record type.
(mpd-service-type): New service type.
* gnu/tests/audio.scm: New file.
* gnu/local.mk: Add new files.
Signed-off-by: Christopher Baines <mail@cbaines.net>
| Peter Mikkelsen |