aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/lirc.scm
blob: 92784b65ca6ececce96f2cd35f855cdf8175b833 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu services lirc)
  #:use-module (gnu services)
  #:use-module (gnu services shepherd)
  #:use-module (gnu packages lirc)
  #:use-module (guix deprecation)
  #:use-module (guix gexp)
  #:use-module (guix records)
  #:use-module (ice-9 match)
  #:export (lirc-configuration
            lirc-configuation?
            lirc-service  ; deprecated
            lirc-service-type))

;;; Commentary:
;;;
;;; LIRC service.
;;;
;;; Code:

(define-record-type* <lirc-configuration>
  lirc-configuration make-lirc-configuration
  lirc-configuation?
  (lirc          lirc-configuration-lirc          ;file-like
                 (default lirc))
  (device        lirc-configuration-device        ;string
                 (default #f))
  (driver        lirc-configuration-driver        ;string
                 (default #f))
  (config-file   lirc-configuration-file          ;string | file-like object
                 (default #f))
  (extra-options lirc-configuration-options       ;list of strings
                 (default '())))

(define %lirc-activation
  #~(begin
      (use-modules (guix build utils))
      (mkdir-p "/var/run/lirc")))

(define lirc-shepherd-service
  (match-lambda
    (($ <lirc-configuration> lirc device driver config-file options)
     (list (shepherd-service
            (provision '(lircd))
            (documentation "Run the LIRC daemon.")
            (requirement '(user-processes))
            (start #~(make-forkexec-constructor
                      (list (string-append #$lirc "/sbin/lircd")
                            "--nodaemon"
                            #$@(if device
                                   #~("--device" #$device)
                                   #~())
                            #$@(if driver
                                   #~("--driver" #$driver)
                                   #~())
                            #$@(if config-file
                                   #~(#$config-file)
                                   #~())
                            #$@options)))
            (stop #~(make-kill-destructor)))))))

(define lirc-service-type
  (service-type (name 'lirc)
                (extensions
                 (list (service-extension shepherd-root-service-type
                                          lirc-shepherd-service)
                       (service-extension activation-service-type
                                          (const %lirc-activation))))
                (description "Run LIRC, a daemon that decodes infrared signals
from remote controls.")
                (default-value (lirc-configuration))))

(define-deprecated (lirc-service #:key (lirc lirc)
                       device driver config-file
                       (extra-options '()))
  lirc-service-type
  "Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that
decodes infrared signals from remote controls.

The daemon will use specified @var{device}, @var{driver} and
@var{config-file} (configuration file name).

Finally, @var{extra-options} is a list of additional command-line options
passed to @command{lircd}."
  (service lirc-service-type
           (lirc-configuration
            (lirc lirc)
            (device device) (driver driver)
            (config-file config-file)
            (extra-options extra-options))))

;;; lirc.scm ends here
scm?id=dc01497850dd1af2378736a018df75a2fd603f22'>gnu: go-github-com-stretchr-testify: Move to (gnu packages golang-check)....* gnu/packages/golang.scm (go-github-com-stretchr-testify): Move from here... * gnu/packages/golang-check.scm: ...to here. * gnu/packages/databases.scm: Add (gnu packages golang-check) module. * gnu/packages/education.scm: As above... * gnu/packages/ipfs.scm: As above... * gnu/packages/irc.scm: As above... * gnu/packages/mail.scm: As above... * gnu/packages/textutils.scm: As above... * gnu/packages/version-control.scm: As above... Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Sharlatan Hellseher 2023-10-09gnu: isync: Patch path to openssl binary....* gnu/packages/mail.scm (isync)[arguments]: Add a phase to patch the path to the openssl binary for mbsync-get-cert. Efraim Flashner 2023-10-06gnu: exim: Update to 4.96.1 [security updates]....Fixes CVE-2023-42114, CVE-2023-42115, CVE-2023-42116, CVE-2023-42117, CVE-2023-42118, and CVE-2023-42119. See <https://www.exim.org/static/doc/security/CVE-2023-zdi.txt> for more details. * gnu/packages/mail.scm (exim): Update to 4.96.1. Signed-off-by: John Kehayias <john.kehayias@protonmail.com> Wilko Meyer 2023-09-24gnu: opensmtpd: Update to 7.3.0p2 [security fixes]....* gnu/packages/mail.scm (opensmtpd): Update to 7.3.0p2. Tobias Geerinckx-Rice 2023-09-25gnu: muchsync: Update to 7....* gnu/packages/mail.scm (muchsync): Update to 7. [source]: Use https. Signed-off-by: Christopher Baines <mail@cbaines.net> Hendursaga 2023-09-22Merge branch 'master' into emacs-teamLiliana Marie Prikler 2023-09-10gnu: mutt: Update to 2.2.12 [security fixes]....Fixes CVE-2023-4874 and CVE-2023-4875. See http://lists.mutt.org/pipermail/mutt-announce/Week-of-Mon-20230904/000056.html * gnu/packages/mail.scm (mutt): Update to 2.2.12 Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> André Batista 2023-09-10gnu: mu: Update to 1.10.7....* gnu/packages/mail.scm (mu): Update to 1.10.7. Tobias Geerinckx-Rice 2023-09-10gnu: dovecot-pigeonhole: Update to 0.5.21....* gnu/packages/mail.scm (dovecot-pigeonhole): Update to 0.5.21. Tobias Geerinckx-Rice 2023-09-10gnu: dovecot: Update to 2.3.21....* gnu/packages/mail.scm (dovecot): Update to 2.3.21. Tobias Geerinckx-Rice 2023-09-09Merge branch 'master' into emacs-teamLiliana Marie Prikler 2023-09-06gnu: gmime: Update home-page URL....* gnu/packages/mail.scm (gmime) [home-page]: Update URL. Maxim Cournoyer 2023-09-05gnu: gmime: Remove version 2.6.23....* gnu/packages/mail.scm (gmime-2.6): Remove package. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> 宋文武 2023-08-26Merge branch 'master' into emacs-teamLiliana Marie Prikler 2023-08-15gnu: notmuch: Fix tests with Emacs 29....* gnu/packages/patches/notmuch-emacs-test-output.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it here. * gnu/packages/mail.scm (notmuch)[patches]: Add here. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Arjan Adriaanse 2023-08-06gnu: Remove duplicate import in (gnu packages mail)....* gnu/packages/mail.scm: Remove duplicate (gnu build-system go) import. Order remaining imports alphabetically. Tobias Geerinckx-Rice 2023-08-06gnu: rspamd: Sort inputs....* gnu/packages/mail.scm (rspamd)[inputs]: Order alphabetically. Tobias Geerinckx-Rice 2023-08-06gnu: rspamd: Update to 3.6....* gnu/packages/mail.scm (rspamd): Update to 3.6. Tobias Geerinckx-Rice 2023-09-04gnu: mumi: Update to 0.0.5-3.2453a5a....* gnu/packages/mail.scm (mumi): Update to 0.0.5-3.2453a5a. Arun Isaac