services: Replace murmur-service-type with mumble-server-service-type.

* gnu/services/telephony.scm (murmur-configuration, make-murmur-configuration)
(murmur-configuration?, murmur-configuration-package)
(murmur-configuration-user, murmur-configuration-group)
(murmur-configuration-port, murmur-configuration-welcome-text)
(murmur-configuration-server-password)
(murmur-configuration-max-users)
(murmur-configuration-max-user-bandwidth)
(murmur-configuration-database-file)
(murmur-configuration-log-file, murmur-configuration-pid-file)
(murmur-configuration-autoban-attempts)
(murmur-configuration-autoban-timeframe)
(murmur-configuration-autoban-time)
(murmur-configuration-opus-threshold)
(murmur-configuration-channel-nesting-limit)
(murmur-configuration-channelname-regex)
(murmur-configuration-username-regex)
(murmur-configuration-test-message-length)
(murmur-configuration-image-message-length)
(murmur-configuration-cert-required?)
(murmur-configuration-remember-channel?)
(murmur-configuration-allow-html?)
(murmur-configuration-allow-ping?)
(murmur-configuration-bonjour?)
(murmur-configuration-send-version?)
(murmur-configuration-log-days)
(murmur-configuration-obfuscate-ips?)
(murmur-configuration-ssl-cert murmur-configuration-ssl-key)
(murmur-configuration-ssl-dh-params murmur-configuration-ssl-ciphers)
(murmur-configuration-public-registration)
(murmur-configuration-file)
(murmur-public-registration-configuration)
(make-murmur-public-registration-configuration)
(murmur-public-registration-configuration?)
(murmur-public-registration-configuration-name)
(murmur-public-registration-configuration-url)
(murmur-public-registration-configuration-password)
(murmur-public-registration-configuration-hostname)
(murmur-service-type): Add deprecation alias and rename to ...
(mumble-server-configuration, make-mumble-server-configuration)
(mumble-server-configuration?, mumble-server-configuration-package)
(mumble-server-configuration-user, mumble-server-configuration-group)
(mumble-server-configuration-port, mumble-server-configuration-welcome-text)
(mumble-server-configuration-server-password)
(mumble-server-configuration-max-users)
(mumble-server-configuration-max-user-bandwidth)
(mumble-server-configuration-database-file)
(mumble-server-configuration-log-file, mumble-server-configuration-pid-file)
(mumble-server-configuration-autoban-attempts)
(mumble-server-configuration-autoban-timeframe)
(mumble-server-configuration-autoban-time)
(mumble-server-configuration-opus-threshold)
(mumble-server-configuration-channel-nesting-limit)
(mumble-server-configuration-channelname-regex)
(mumble-server-configuration-username-regex)
(mumble-server-configuration-test-message-length)
(mumble-server-configuration-image-message-length)
(mumble-server-configuration-cert-required?)
(mumble-server-configuration-remember-channel?)
(mumble-server-configuration-allow-html?)
(mumble-server-configuration-allow-ping?)
(mumble-server-configuration-bonjour?)
(mumble-server-configuration-send-version?)
(mumble-server-configuration-log-days)
(mumble-server-configuration-obfuscate-ips?)
(mumble-server-configuration-ssl-cert mumble-server-configuration-ssl-key)
(mumble-server-configuration-ssl-dh-params) (mumble-server-configuration-ssl-ciphers)
(mumble-server-configuration-public-registration)
(mumble-server-configuration-file)
(mumble-server-public-registration-configuration)
(make-mumble-server-public-registration-configuration)
(mumble-server-public-registration-configuration?)
(mumble-server-public-registration-configuration-name)
(mumble-server-public-registration-configuration-url)
(mumble-server-public-registration-configuration-password)
(mumble-server-public-registration-configuration-hostname)
(mumble-server-service-type): ... these.
* doc/guix.texi ("Murmur (VoIP server)"): Rename to ...
("Mumble server"): ... this.  Adjust documentation accordingly.
This commit is contained in:
Liliana Marie Prikler 2022-03-26 09:57:18 +01:00
parent 9ab158a457
commit 42679e3f81
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87
2 changed files with 310 additions and 163 deletions

View file

@ -25072,21 +25072,21 @@ account fingerprint for a registered username.
@end deftp @end deftp
@subsubheading Murmur (VoIP server) @subsubheading Mumble server
@cindex Murmur (VoIP server) @cindex Mumble
@cindex Murmur
@cindex VoIP server @cindex VoIP server
This section describes how to set up and run a Murmur server. Murmur is This section describes how to set up and run a
the server of the @uref{https://mumble.info, Mumble} voice-over-IP @uref{https://mumble.info, Mumble} server (formerly known as Murmur).
(VoIP) suite.
@deftp {Data Type} murmur-configuration @deftp {Data Type} mumble-server-configuration
The service type for the Murmur server. An example configuration can The service type for the Mumble server. An example configuration can
look like this: look like this:
@lisp @lisp
(service murmur-service-type (service mumble-server-service-type
(murmur-configuration (mumble-server-configuration
(welcome-text (welcome-text
"Welcome to this Mumble server running on Guix!") "Welcome to this Mumble server running on Guix!")
(cert-required? #t) ;disallow text password logins (cert-required? #t) ;disallow text password logins
@ -25094,7 +25094,8 @@ look like this:
(ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem"))) (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))
@end lisp @end lisp
After reconfiguring your system, you can manually set the murmur @code{SuperUser} After reconfiguring your system, you can manually set the mumble-server
@code{SuperUser}
password with the command that is printed during the activation phase. password with the command that is printed during the activation phase.
It is recommended to register a normal Mumble user account It is recommended to register a normal Mumble user account
@ -25106,17 +25107,17 @@ the @code{SuperUser} password that you set previously,
and grant your newly registered mumble user administrator or moderator and grant your newly registered mumble user administrator or moderator
rights and create some channels. rights and create some channels.
Available @code{murmur-configuration} fields are: Available @code{mumble-server-configuration} fields are:
@table @asis @table @asis
@item @code{package} (default: @code{mumble}) @item @code{package} (default: @code{mumble})
Package that contains @code{bin/murmurd}. Package that contains @code{bin/mumble-server}.
@item @code{user} (default: @code{"murmur"}) @item @code{user} (default: @code{"mumble-server"})
User who will run the Murmur server. User who will run the Mumble-Server server.
@item @code{group} (default: @code{"murmur"}) @item @code{group} (default: @code{"mumble-server"})
Group of the user who will run the murmur server. Group of the user who will run the mumble-server server.
@item @code{port} (default: @code{64738}) @item @code{port} (default: @code{64738})
Port on which the server will listen. Port on which the server will listen.
@ -25133,11 +25134,11 @@ Maximum of users that can be connected to the server at once.
@item @code{max-user-bandwidth} (default: @code{#f}) @item @code{max-user-bandwidth} (default: @code{#f})
Maximum voice traffic a user can send per second. Maximum voice traffic a user can send per second.
@item @code{database-file} (default: @code{"/var/lib/murmur/db.sqlite"}) @item @code{database-file} (default: @code{"/var/lib/mumble-server/db.sqlite"})
File name of the sqlite database. File name of the sqlite database.
The service's user will become the owner of the directory. The service's user will become the owner of the directory.
@item @code{log-file} (default: @code{"/var/log/murmur/murmur.log"}) @item @code{log-file} (default: @code{"/var/log/mumble-server/mumble-server.log"})
File name of the log file. File name of the log file.
The service's user will become the owner of the directory. The service's user will become the owner of the directory.
@ -25176,8 +25177,9 @@ If it is set to @code{#t} clients that use weak password authentication
will not be accepted. Users must have completed the certificate wizard to join. will not be accepted. Users must have completed the certificate wizard to join.
@item @code{remember-channel?} (default: @code{#f}) @item @code{remember-channel?} (default: @code{#f})
Should murmur remember the last channel each user was in when they disconnected Should mumble-server remember the last channel each user was in when
and put them into the remembered channel when they rejoin. they disconnected and put them into the remembered channel when they
rejoin.
@item @code{allow-html?} (default: @code{#f}) @item @code{allow-html?} (default: @code{#f})
Should html be allowed in text messages, user comments, and channel descriptions. Should html be allowed in text messages, user comments, and channel descriptions.
@ -25193,10 +25195,10 @@ Disabling this setting will prevent public listing of the server.
Should the server advertise itself in the local network through the bonjour protocol. Should the server advertise itself in the local network through the bonjour protocol.
@item @code{send-version?} (default: @code{#f}) @item @code{send-version?} (default: @code{#f})
Should the murmur server version be exposed in ping requests. Should the mumble-server server version be exposed in ping requests.
@item @code{log-days} (default: @code{31}) @item @code{log-days} (default: @code{31})
Murmur also stores logs in the database, which are accessible via RPC. Mumble also stores logs in the database, which are accessible via RPC.
The default is 31 days of months, but you can set this setting to 0 to keep logs forever, The default is 31 days of months, but you can set this setting to 0 to keep logs forever,
or -1 to disable logging to the database. or -1 to disable logging to the database.
@ -25229,17 +25231,19 @@ This option is specified using
@uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT,
OpenSSL cipher list notation}. OpenSSL cipher list notation}.
It is recommended that you try your cipher string using 'openssl ciphers <string>' It is recommended that you try your cipher string using
before setting it here, to get a feel for which cipher suites you will get. 'openssl ciphers <string>' before setting it here, to get a feel for
After setting this option, it is recommend that you inspect your Murmur log which cipher suites you will get.
to ensure that Murmur is using the cipher suites that you expected it to. After setting this option, it is recommend that you inspect your Mumble
server log to ensure that Mumble is using the cipher suites that you
expected it to.
Note: Changing this option may impact the backwards compatibility of your Note: Changing this option may impact the backwards compatibility of your
Murmur server, and can remove the ability for older Mumble clients to be able Mumble-Server server, and can remove the ability for older Mumble clients to be able to connect to it.
to connect to it.
@item @code{public-registration} (default: @code{#f}) @item @code{public-registration} (default: @code{#f})
Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}. Must be a @code{<mumble-server-public-registration-configuration>}
record or @code{#f}.
You can optionally register your server in the public server list that the You can optionally register your server in the public server list that the
@code{mumble} client shows on startup. @code{mumble} client shows on startup.
@ -25253,8 +25257,8 @@ Optional alternative override for this configuration.
@end table @end table
@end deftp @end deftp
@deftp {Data Type} murmur-public-registration-configuration @deftp {Data Type} mumble-server-public-registration-configuration
Configuration for public registration of a murmur service. Configuration for public registration of a mumble-server service.
@table @asis @table @asis
@item @code{name} @item @code{name}
@ -25274,7 +25278,12 @@ If it is set your server will be linked by this host name instead.
@end table @end table
@end deftp @end deftp
@quotation Deprecation notice
Due to historical reasons, all of the above @code{mumble-server-}
procedures are also exported with the @code{murmur-} prefix.
It is recommended that you switch to using @code{mumble-server-}
going forward.
@end quotation
@node File-Sharing Services @node File-Sharing Services
@subsection File-Sharing Services @subsection File-Sharing Services

View file

@ -28,6 +28,7 @@ (define-module (gnu services telephony)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages jami) #:use-module (gnu packages jami)
#:use-module (gnu packages telephony) #:use-module (gnu packages telephony)
#:use-module (guix deprecation)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix modules) #:use-module (guix modules)
#:use-module (guix packages) #:use-module (guix packages)
@ -56,53 +57,53 @@ (define-module (gnu services telephony)
jami-service-type jami-service-type
murmur-configuration mumble-server-configuration
make-murmur-configuration make-mumble-server-configuration
murmur-configuration? mumble-server-configuration?
murmur-configuration-package mumble-server-configuration-package
murmur-configuration-user mumble-server-configuration-user
murmur-configuration-group mumble-server-configuration-group
murmur-configuration-port mumble-server-configuration-port
murmur-configuration-welcome-text mumble-server-configuration-welcome-text
murmur-configuration-server-password mumble-server-configuration-server-password
murmur-configuration-max-users mumble-server-configuration-max-users
murmur-configuration-max-user-bandwidth mumble-server-configuration-max-user-bandwidth
murmur-configuration-database-file mumble-server-configuration-database-file
murmur-configuration-log-file mumble-server-configuration-log-file
murmur-configuration-pid-file mumble-server-configuration-pid-file
murmur-configuration-autoban-attempts mumble-server-configuration-autoban-attempts
murmur-configuration-autoban-timeframe mumble-server-configuration-autoban-timeframe
murmur-configuration-autoban-time mumble-server-configuration-autoban-time
murmur-configuration-opus-threshold mumble-server-configuration-opus-threshold
murmur-configuration-channel-nesting-limit mumble-server-configuration-channel-nesting-limit
murmur-configuration-channelname-regex mumble-server-configuration-channelname-regex
murmur-configuration-username-regex mumble-server-configuration-username-regex
murmur-configuration-text-message-length mumble-server-configuration-text-message-length
murmur-configuration-image-message-length mumble-server-configuration-image-message-length
murmur-configuration-cert-required? mumble-server-configuration-cert-required?
murmur-configuration-remember-channel? mumble-server-configuration-remember-channel?
murmur-configuration-allow-html? mumble-server-configuration-allow-html?
murmur-configuration-allow-ping? mumble-server-configuration-allow-ping?
murmur-configuration-bonjour? mumble-server-configuration-bonjour?
murmur-configuration-send-version? mumble-server-configuration-send-version?
murmur-configuration-log-days mumble-server-configuration-log-days
murmur-configuration-obfuscate-ips? mumble-server-configuration-obfuscate-ips?
murmur-configuration-ssl-cert mumble-server-configuration-ssl-cert
murmur-configuration-ssl-key mumble-server-configuration-ssl-key
murmur-configuration-ssl-dh-params mumble-server-configuration-ssl-dh-params
murmur-configuration-ssl-ciphers mumble-server-configuration-ssl-ciphers
murmur-configuration-public-registration mumble-server-configuration-public-registration
murmur-configuration-file mumble-server-configuration-file
murmur-public-registration-configuration mumble-server-public-registration-configuration
make-murmur-public-registration-configuration make-mumble-server-public-registration-configuration
murmur-public-registration-configuration? mumble-server-public-registration-configuration?
murmur-public-registration-configuration-name mumble-server-public-registration-configuration-name
murmur-public-registration-configuration-url mumble-server-public-registration-configuration-url
murmur-public-registration-configuration-password mumble-server-public-registration-configuration-password
murmur-public-registration-configuration-hostname mumble-server-public-registration-configuration-hostname
murmur-service-type)) mumble-server-service-type))
;;; ;;;
@ -747,91 +748,91 @@ (define jami-service-type
;;; ;;;
;;; Murmur. ;;; Mumble server.
;;; ;;;
;; https://github.com/mumble-voip/mumble/blob/master/scripts/murmur.ini ;; https://github.com/mumble-voip/mumble/blob/master/scripts/murmur.ini
(define-record-type* <murmur-configuration> murmur-configuration (define-record-type* <mumble-server-configuration> mumble-server-configuration
make-murmur-configuration make-mumble-server-configuration
murmur-configuration? mumble-server-configuration?
(package murmur-configuration-package ;file-like (package mumble-server-configuration-package ;file-like
(default mumble)) (default mumble))
(user murmur-configuration-user (user mumble-server-configuration-user
(default "murmur")) (default "mumble-server"))
(group murmur-configuration-group (group mumble-server-configuration-group
(default "murmur")) (default "mumble-server"))
(port murmur-configuration-port (port mumble-server-configuration-port
(default 64738)) (default 64738))
(welcome-text murmur-configuration-welcome-text (welcome-text mumble-server-configuration-welcome-text
(default "")) (default ""))
(server-password murmur-configuration-server-password (server-password mumble-server-configuration-server-password
(default "")) (default ""))
(max-users murmur-configuration-max-users (max-users mumble-server-configuration-max-users
(default 100)) (default 100))
(max-user-bandwidth murmur-configuration-max-user-bandwidth (max-user-bandwidth mumble-server-configuration-max-user-bandwidth
(default #f)) (default #f))
(database-file murmur-configuration-database-file (database-file mumble-server-configuration-database-file
(default "/var/lib/murmur/db.sqlite")) (default "/var/lib/mumble-server/db.sqlite"))
(log-file murmur-configuration-log-file (log-file mumble-server-configuration-log-file
(default "/var/log/murmur/murmur.log")) (default "/var/log/mumble-server/mumble-server.log"))
(pid-file murmur-configuration-pid-file (pid-file mumble-server-configuration-pid-file
(default "/var/run/murmur/murmur.pid")) (default "/var/run/mumble-server/mumble-server.pid"))
(autoban-attempts murmur-configuration-autoban-attempts (autoban-attempts mumble-server-configuration-autoban-attempts
(default 10)) (default 10))
(autoban-timeframe murmur-configuration-autoban-timeframe (autoban-timeframe mumble-server-configuration-autoban-timeframe
(default 120)) (default 120))
(autoban-time murmur-configuration-autoban-time (autoban-time mumble-server-configuration-autoban-time
(default 300)) (default 300))
(opus-threshold murmur-configuration-opus-threshold (opus-threshold mumble-server-configuration-opus-threshold
(default 100)) ; integer percent (default 100)) ; integer percent
(channel-nesting-limit murmur-configuration-channel-nesting-limit (channel-nesting-limit mumble-server-configuration-channel-nesting-limit
(default 10)) (default 10))
(channelname-regex murmur-configuration-channelname-regex (channelname-regex mumble-server-configuration-channelname-regex
(default #f)) (default #f))
(username-regex murmur-configuration-username-regex (username-regex mumble-server-configuration-username-regex
(default #f)) (default #f))
(text-message-length murmur-configuration-text-message-length (text-message-length mumble-server-configuration-text-message-length
(default 5000)) (default 5000))
(image-message-length murmur-configuration-image-message-length (image-message-length mumble-server-configuration-image-message-length
(default (* 128 1024))) ; 128 Kilobytes (default (* 128 1024))) ; 128 Kilobytes
(cert-required? murmur-configuration-cert-required? (cert-required? mumble-server-configuration-cert-required?
(default #f)) (default #f))
(remember-channel? murmur-configuration-remember-channel? (remember-channel? mumble-server-configuration-remember-channel?
(default #f)) (default #f))
(allow-html? murmur-configuration-allow-html? (allow-html? mumble-server-configuration-allow-html?
(default #f)) (default #f))
(allow-ping? murmur-configuration-allow-ping? (allow-ping? mumble-server-configuration-allow-ping?
(default #f)) (default #f))
(bonjour? murmur-configuration-bonjour? (bonjour? mumble-server-configuration-bonjour?
(default #f)) (default #f))
(send-version? murmur-configuration-send-version? (send-version? mumble-server-configuration-send-version?
(default #f)) (default #f))
(log-days murmur-configuration-log-days (log-days mumble-server-configuration-log-days
(default 31)) (default 31))
(obfuscate-ips? murmur-obfuscate-ips? (obfuscate-ips? mumble-server-obfuscate-ips?
(default #t)) (default #t))
(ssl-cert murmur-configuration-ssl-cert (ssl-cert mumble-server-configuration-ssl-cert
(default #f)) (default #f))
(ssl-key murmur-configuration-ssl-key (ssl-key mumble-server-configuration-ssl-key
(default #f)) (default #f))
(ssl-dh-params murmur-configuration-ssl-dh-params (ssl-dh-params mumble-server-configuration-ssl-dh-params
(default #f)) (default #f))
(ssl-ciphers murmur-configuration-ssl-ciphers (ssl-ciphers mumble-server-configuration-ssl-ciphers
(default #f)) (default #f))
(public-registration murmur-configuration-public-registration (public-registration mumble-server-configuration-public-registration
(default #f)) ; <murmur-public-registration-configuration> (default #f)) ; <mumble-server-public-registration-configuration>
(file murmur-configuration-file (file mumble-server-configuration-file
(default #f))) (default #f)))
(define-record-type* <murmur-public-registration-configuration> (define-record-type* <mumble-server-public-registration-configuration>
murmur-public-registration-configuration mumble-server-public-registration-configuration
make-murmur-public-registration-configuration make-mumble-server-public-registration-configuration
murmur-public-registration-configuration? mumble-server-public-registration-configuration?
(name murmur-public-registration-configuration-name) (name mumble-server-public-registration-configuration-name)
(password murmur-public-registration-configuration-password) (password mumble-server-public-registration-configuration-password)
(url murmur-public-registration-configuration-url) (url mumble-server-public-registration-configuration-url)
(hostname murmur-public-registration-configuration-hostname (hostname mumble-server-public-registration-configuration-hostname
(default #f))) (default #f)))
(define (flatten . lst) (define (flatten . lst)
@ -842,10 +843,10 @@ (define (flatten1 head out)
(cons head out))) (cons head out)))
(fold-right flatten1 '() lst)) (fold-right flatten1 '() lst))
(define (default-murmur-config config) (define (default-mumble-server-config config)
(match-record (match-record
config config
<murmur-configuration> <mumble-server-configuration>
(user port welcome-text server-password max-users max-user-bandwidth (user port welcome-text server-password max-users max-user-bandwidth
database-file log-file pid-file autoban-attempts autoban-timeframe database-file log-file pid-file autoban-attempts autoban-timeframe
autoban-time opus-threshold channel-nesting-limit channelname-regex autoban-time opus-threshold channel-nesting-limit channelname-regex
@ -853,7 +854,7 @@ (define (default-murmur-config config)
remember-channel? allow-html? allow-ping? bonjour? send-version? remember-channel? allow-html? allow-ping? bonjour? send-version?
log-days obfuscate-ips? ssl-cert ssl-key ssl-dh-params ssl-ciphers log-days obfuscate-ips? ssl-cert ssl-key ssl-dh-params ssl-ciphers
public-registration) public-registration)
(apply mixed-text-file "murmur.ini" (apply mixed-text-file "mumble-server.ini"
(flatten (flatten
"welcometext=" welcome-text "\n" "welcometext=" welcome-text "\n"
"port=" (number->string port) "\n" "port=" (number->string port) "\n"
@ -896,7 +897,7 @@ (define (default-murmur-config config)
(match public-registration (match public-registration
(#f '()) (#f '())
(($ <murmur-public-registration-configuration> (($ <mumble-server-public-registration-configuration>
name password url hostname) name password url hostname)
(if (and (or (not server-password) (string-null? server-password)) (if (and (or (not server-password) (string-null? server-password))
allow-ping?) allow-ping?)
@ -907,41 +908,41 @@ (define (default-murmur-config config)
(if hostname (if hostname
(string-append "registerHostname=" hostname "\n") (string-append "registerHostname=" hostname "\n")
"")) ""))
(error "To publicly register your murmur server your server must be publicy visible (error "To publicly register your mumble-server server your server must be publicy visible
and users must be able to join without a password. To fix this set: and users must be able to join without a password. To fix this set:
(allow-ping? #t) (allow-ping? #t)
(server-password \"\") (server-password \"\")
Or set public-registration to #f")))))))) Or set public-registration to #f"))))))))
(define (murmur-activation config) (define (mumble-server-activation config)
#~(begin #~(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
(let* ((log-dir (dirname #$(murmur-configuration-log-file config))) (let* ((log-dir (dirname #$(mumble-server-configuration-log-file config)))
(pid-dir (dirname #$(murmur-configuration-pid-file config))) (pid-dir (dirname #$(mumble-server-configuration-pid-file config)))
(db-dir (dirname #$(murmur-configuration-database-file config))) (db-dir (dirname #$(mumble-server-configuration-database-file config)))
(user (getpwnam #$(murmur-configuration-user config))) (user (getpwnam #$(mumble-server-configuration-user config)))
(init-dir (init-dir
(lambda (name dir) (lambda (name dir)
(format #t "creating murmur ~a directory '~a'\n" name dir) (format #t "creating mumble-server ~a directory '~a'\n" name dir)
(mkdir-p dir) (mkdir-p dir)
(chown dir (passwd:uid user) (passwd:gid user)) (chown dir (passwd:uid user) (passwd:gid user))
(chmod dir #o700))) (chmod dir #o700)))
(ini #$(or (murmur-configuration-file config) (ini #$(or (mumble-server-configuration-file config)
(default-murmur-config config)))) (default-mumble-server-config config))))
(init-dir "log" log-dir) (init-dir "log" log-dir)
(init-dir "pid" pid-dir) (init-dir "pid" pid-dir)
(init-dir "database" db-dir) (init-dir "database" db-dir)
(format #t "murmur: use config file: ~a~%\n" ini) (format #t "mumble-server: use config file: ~a~%\n" ini)
(format #t "murmur: to set the SuperUser password run: (format #t "mumble-server: to set the SuperUser password run:
`~a -ini ~a -readsupw`\n" `~a -ini ~a -readsupw`\n"
#$(file-append (murmur-configuration-package config) #$(file-append (mumble-server-configuration-package config)
"/bin/mumble-server") ini) "/bin/mumble-server") ini)
#t))) #t)))
(define murmur-accounts (define mumble-server-accounts
(match-lambda (match-lambda
(($ <murmur-configuration> _ user group) (($ <mumble-server-configuration> _ user group)
(list (list
(user-group (user-group
(name group) (name group)
@ -950,37 +951,174 @@ (define murmur-accounts
(name user) (name user)
(group group) (group group)
(system? #t) (system? #t)
(comment "Murmur Daemon") (comment "Mumble server daemon")
(home-directory "/var/empty") (home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin"))))))) (shell (file-append shadow "/sbin/nologin")))))))
(define (murmur-shepherd-service config) (define (mumble-server-shepherd-service config)
(list (shepherd-service (list (shepherd-service
(provision '(murmur)) (provision '(mumble-server))
(documentation "Run the Murmur Mumble server.") (documentation "Run the Mumble server.")
(requirement '(networking)) (requirement '(networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append (murmur-configuration-package config) '(#$(file-append (mumble-server-configuration-package config)
"/bin/mumble-server") "/bin/mumble-server")
"-ini" "-ini"
#$(or (murmur-configuration-file config) #$(or (mumble-server-configuration-file config)
(default-murmur-config config))) (default-mumble-server-config config)))
#:pid-file #$(murmur-configuration-pid-file config))) #:pid-file #$(mumble-server-configuration-pid-file config)))
(stop #~(make-kill-destructor))))) (stop #~(make-kill-destructor)))))
(define murmur-service-type (define mumble-server-service-type
(service-type (name 'murmur) (service-type (name 'mumble-server)
(description (description
"Run the Murmur voice-over-IP (VoIP) server of the Mumble "Run the Mumble voice-over-IP (VoIP) server.")
suite.")
(extensions (extensions
(list (service-extension shepherd-root-service-type (list (service-extension shepherd-root-service-type
murmur-shepherd-service) mumble-server-shepherd-service)
(service-extension activation-service-type (service-extension activation-service-type
murmur-activation) mumble-server-activation)
(service-extension account-service-type (service-extension account-service-type
murmur-accounts))) mumble-server-accounts)))
(default-value (murmur-configuration)))) (default-value (mumble-server-configuration))))
(define-deprecated/public-alias
murmur-configuration
mumble-server-configuration)
(define-deprecated/public-alias
make-murmur-configuration
make-mumble-server-configuration)
(define-deprecated/public-alias
murmur-configuration?
mumble-server-configuration?)
(define-deprecated/public-alias
murmur-configuration-package
mumble-server-configuration-package)
(define-deprecated/public-alias
murmur-configuration-user
mumble-server-configuration-user)
(define-deprecated/public-alias
murmur-configuration-group
mumble-server-configuration-group)
(define-deprecated/public-alias
murmur-configuration-port
mumble-server-configuration-port)
(define-deprecated/public-alias
murmur-configuration-welcome-text
mumble-server-configuration-welcome-text)
(define-deprecated/public-alias
murmur-configuration-server-password
mumble-server-configuration-server-password)
(define-deprecated/public-alias
murmur-configuration-max-users
mumble-server-configuration-max-users)
(define-deprecated/public-alias
murmur-configuration-max-user-bandwidth
mumble-server-configuration-max-user-bandwidth)
(define-deprecated/public-alias
murmur-configuration-database-file
mumble-server-configuration-database-file)
(define-deprecated/public-alias
murmur-configuration-log-file
mumble-server-configuration-log-file)
(define-deprecated/public-alias
murmur-configuration-pid-file
mumble-server-configuration-pid-file)
(define-deprecated/public-alias
murmur-configuration-autoban-attempts
mumble-server-configuration-autoban-attempts)
(define-deprecated/public-alias
murmur-configuration-autoban-timeframe
mumble-server-configuration-autoban-timeframe)
(define-deprecated/public-alias
murmur-configuration-autoban-time
mumble-server-configuration-autoban-time)
(define-deprecated/public-alias
murmur-configuration-opus-threshold
mumble-server-configuration-opus-threshold)
(define-deprecated/public-alias
murmur-configuration-channel-nesting-limit
mumble-server-configuration-channel-nesting-limit)
(define-deprecated/public-alias
murmur-configuration-channelname-regex
mumble-server-configuration-channelname-regex)
(define-deprecated/public-alias
murmur-configuration-username-regex
mumble-server-configuration-username-regex)
(define-deprecated/public-alias
murmur-configuration-text-message-length
mumble-server-configuration-text-message-length)
(define-deprecated/public-alias
murmur-configuration-image-message-length
mumble-server-configuration-image-message-length)
(define-deprecated/public-alias
murmur-configuration-cert-required?
mumble-server-configuration-cert-required?)
(define-deprecated/public-alias
murmur-configuration-remember-channel?
mumble-server-configuration-remember-channel?)
(define-deprecated/public-alias
murmur-configuration-allow-html?
mumble-server-configuration-allow-html?)
(define-deprecated/public-alias
murmur-configuration-allow-ping?
mumble-server-configuration-allow-ping?)
(define-deprecated/public-alias
murmur-configuration-bonjour?
mumble-server-configuration-bonjour?)
(define-deprecated/public-alias
murmur-configuration-send-version?
mumble-server-configuration-send-version?)
(define-deprecated/public-alias
murmur-configuration-log-days
mumble-server-configuration-log-days)
(define-deprecated/public-alias
murmur-configuration-obfuscate-ips?
mumble-server-configuration-obfuscate-ips?)
(define-deprecated/public-alias
murmur-configuration-ssl-cert
mumble-server-configuration-ssl-cert)
(define-deprecated/public-alias
murmur-configuration-ssl-key
mumble-server-configuration-ssl-key)
(define-deprecated/public-alias
murmur-configuration-ssl-dh-params
mumble-server-configuration-ssl-dh-params)
(define-deprecated/public-alias
murmur-configuration-ssl-ciphers
mumble-server-configuration-ssl-ciphers)
(define-deprecated/public-alias
murmur-configuration-public-registration
mumble-server-configuration-public-registration)
(define-deprecated/public-alias
murmur-configuration-file
mumble-server-configuration-file)
(define-deprecated/public-alias
murmur-public-registration-configuration
mumble-server-public-registration-configuration)
(define-deprecated/public-alias
make-murmur-public-registration-configuration
make-mumble-server-public-registration-configuration)
(define-deprecated/public-alias
murmur-public-registration-configuration?
mumble-server-public-registration-configuration?)
(define-deprecated/public-alias
murmur-public-registration-configuration-name
mumble-server-public-registration-configuration-name)
(define-deprecated/public-alias
murmur-public-registration-configuration-url
mumble-server-public-registration-configuration-url)
(define-deprecated/public-alias
murmur-public-registration-configuration-password
mumble-server-public-registration-configuration-password)
(define-deprecated/public-alias
murmur-public-registration-configuration-hostname
mumble-server-public-registration-configuration-hostname)
(define-deprecated/public-alias
murmur-service-type
mumble-server-service-type)
;; Local Variables: ;; Local Variables:
;; eval: (put 'with-retries 'scheme-indent-function 2) ;; eval: (put 'with-retries 'scheme-indent-function 2)