services: cups: Add BrowseDNSSDSubTypes directive.

* gnu/services/cups.scm (comma-separated-string-list?)
(serialize-comma-separated-string-list): New variables.
(cups-configuration)[browse-dns-sd-sub-types]: New field.
* doc/guix.texi (Printing Services): Document it.
This commit is contained in:
Tobias Geerinckx-Rice 2019-08-29 23:02:10 +02:00
parent 7ab5c4e0e8
commit ee0de99454
No known key found for this signature in database
GPG Key ID: 0DB0FF884F556D79
2 changed files with 21 additions and 0 deletions

View File

@ -14248,6 +14248,14 @@ longer required for quotas.
Defaults to @samp{#f}. Defaults to @samp{#f}.
@end deftypevr @end deftypevr
@deftypevr {@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types
Specifies a list of DNS-SD sub-types to advertise for each shared printer.
For example, @samp{"_cups" "_print"} will tell network clients that both
CUPS sharing and IPP Everywhere are supported.
Defaults to @samp{"_cups"}.
@end deftypevr
@deftypevr {@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols @deftypevr {@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols
Specifies which protocols to use for local printer sharing. Specifies which protocols to use for local printer sharing.

View File

@ -83,6 +83,14 @@
(define (serialize-multiline-string-list field-name val) (define (serialize-multiline-string-list field-name val)
(for-each (lambda (str) (serialize-field field-name str)) val)) (for-each (lambda (str) (serialize-field field-name str)) val))
(define (comma-separated-string-list? val)
(and (list? val)
(and-map (lambda (x)
(and (string? x) (not (string-index x #\,))))
val)))
(define (serialize-comma-separated-string-list field-name val)
(serialize-field field-name (string-join val ",")))
(define (space-separated-string-list? val) (define (space-separated-string-list? val)
(and (list? val) (and (list? val)
(and-map (lambda (x) (and-map (lambda (x)
@ -489,6 +497,11 @@ requests.")
(boolean #f) (boolean #f)
"Specifies whether to purge job history data automatically when it is no "Specifies whether to purge job history data automatically when it is no
longer required for quotas.") longer required for quotas.")
(browse-dns-sd-sub-types
(comma-separated-string-list (list "_cups"))
"Specifies a list of DNS-SD sub-types to advertise for each shared printer.
For example, @samp{\"_cups\" \"_print\"} will tell network clients that both
CUPS sharing and IPP Everywhere are supported.")
(browse-local-protocols (browse-local-protocols
(browse-local-protocols 'dnssd) (browse-local-protocols 'dnssd)
"Specifies which protocols to use for local printer sharing.") "Specifies which protocols to use for local printer sharing.")