aboutsummaryrefslogtreecommitdiff
;;; 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
ckages/fonts.scm (font-gnu-unifont): Update to 12.1.02. Tobias Geerinckx-Rice 2019-06-08gnu: font-gnu-unifont: Add Unifoundry source URL....* gnu/packages/fonts.scm (font-gnu-unifont)[source]: Add unifoundry.com. Tobias Geerinckx-Rice 2019-05-22gnu: font-tamzen: Fix typo "programmatically"....* gnu/packages/fonts (font-tamzen)[description]: Fix typo. Vagrant Cascadian 2019-05-14gnu: font-hermit: Download as 'url-fetch/tarbomb'....* gnu/packages/fonts.scm (font-hermit)[source]: Use 'url-fetch/tarbomb' method. [arguments]: Remove custom phases. Efraim Flashner 2019-05-14gnu: Add font-hermit...* gnu/packages/fonts.scm (font-hermit): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Zzull 2019-05-08gnu: Add copyright header....* gnu/packages/fonts.scm: Add copyright header. Nicolas Goaziou 2019-05-08gnu: Add font-sil-andika....* gnu/packages/fonts.scm (font-sil-andika): New variable. Nicolas Goaziou 2019-05-05Correct email and license info for Brendan Tildesley....* gnu/packages/audio.scm: Correct email and license info. * gnu/packages/ebook.scm: Correct email and license info. * gnu/packages/fonts.scm: Correct email and license info. * gnu/packages/freedesktop.scm: Correct email and license info. * gnu/packages/gnome.scm: Correct email and license info. * gnu/packages/linux.scm: Correct email and license info. * gnu/packages/lxde.scm: Correct email and license info. * gnu/packages/python-web.scm: Correct email and license info. * gnu/packages/python-xyz.scm: Correct email and license info. * gnu/packages/python.scm: Correct email and license info. * gnu/packages/video.scm: Correct email and license info. * gnu/packages/web.scm: Correct email and license info. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Brendan Tildesley 2019-04-29gnu: font-public-sans: Adjust synopsis and description....* gnu/packages/fonts.scm (font-public-sans)[synopsis, description]: Adjust. Ludovic Courtès 2019-04-29gnu: Add font-public-sans....* gnu/packages/fonts.scm (font-public-sans): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Jens M 2019-03-29gnu: Add font-iosevka-slab....The ’slab’ variants of Iosevka were moved to a separate archive with version 2.0.0. * gnu/packages/fonts.scm (font-iosevka-slab): New public variable. Tobias Geerinckx-Rice 2019-03-29gnu: font-iosevka: Update to 2.2.0....* gnu/packages/fonts.scm (font-iosevka): Update to 2.2.0. Tobias Geerinckx-Rice 2019-03-27gnu: font-open-dyslexic: Don't use unstable tarball....* gnu/packages/fonts.scm (font-open-dyslexic)[source]: Download using git-fetch. Efraim Flashner 2019-03-27gnu: font-google-material-design-icons: Don't use unstable tarball....* gnu/packages/fonts.scm (font-google-material-design-icons)[source]: Download using git-fetch. Efraim Flashner 2019-03-27gnu: font-tamzen: Don't use unstable tarball....* gnu/packages/fonts.scm (font-tamzen)[source]: Download using git-fetch. [native-inputs]: Remove gzip, tar. [arguments]: Adjust build accordingly. Efraim Flashner 2019-03-27gnu: font-fira-sans: Don't use unstable tarball....* gnu/packages/fonts.scm (font-fira-sans)[source]: Download using git-fetch. Efraim Flashner 2019-03-27gnu: font-adobe-source-han-sans: Don't use unstable tarball....* gnu/packages/fonts.scm (font-adobe-source-han-sans)[source]: Download using git-fetch. [native-inputs]: Remove gzip, tar. [arguments]: Adjust build accordingly. Efraim Flashner 2019-03-18Correct name and email address for ng0....* .mailmap, Makefile.am, doc/guix.de.texi, doc/guix.fr.texi, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,gnu/packages/guile-xyz.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2019-03-15gnu: font-liberation: Update to 2.00.5....* gnu/packages/fonts.scm (font-liberation): Update to 2.00.5. [source, home-page]: Update project home. Tobias Geerinckx-Rice 2019-03-14gnu: font-terminus: Install X11 8-bit code pages....* gnu/packages/fonts.scm (font-terminus)[outputs]: Add ‘pcf-8bit’ output. [arguments]: Add new phases to build and install these 8-bit PCF fonts. Tobias Geerinckx-Rice 2019-03-06gnu: font-gnu-unifont: Update to 12.0.01....* gnu/packages/fonts.scm (font-gnu-unifont): Update to 12.0.01. Efraim Flashner 2019-03-05gnu: font-anonymous-pro: Use HTTPS home page....* gnu/packages/fonts.scm (font-anonymous-pro)[source, home-page]: Use HTTPS. Tobias Geerinckx-Rice 2019-03-05gnu: font-fira-code: Update to 1.206....* gnu/packages/fonts.scm (font-fira-code): Update to 1.206. Tobias Geerinckx-Rice 2019-03-05gnu: font-terminus: Update to 4.47....* gnu/packages/fonts.scm (font-terminus): Update to 4.47. Re-indent. [native-inputs]: Replace perl with python. Order alphabetically. [arguments]: Remove #:configure-flags. Tobias Geerinckx-Rice 2019-03-05gnu: font-wqy-zenhei: Remove redundant FILE-NAME....* gnu/packages/fonts.scm (font-wqy-zenhei)[source]: Remove FILE-NAME field. Tobias Geerinckx-Rice 2019-03-05gnu: font-wqy-zenhei: Use HTTPS home page....* gnu/packages/fonts.scm (font-wqy-zenhei)[home-page]: Use HTTPS. Tobias Geerinckx-Rice 2019-02-25Revert "gnu: font-awesome: Update to 5.7.2."...This reverts commit 590b989c95f5b72dfe4b9928d1426fb7d35d1428. Leo Famulari 2019-02-24gnu: font-hack: Future-proof description....* gnu/packages/fonts.scm (font-hack)[description]: Use vague upstream wording. Tobias Geerinckx-Rice 2019-02-24gnu: font-lato: Use HTTPS home page....* gnu/packages/fonts.scm (font-lato)[source, home-page]: Use HTTPS. Tobias Geerinckx-Rice 2019-02-24gnu: font-hack: Update to 3.003....* gnu/packages/fonts.scm (font-hack): Update to 3.003. Tobias Geerinckx-Rice 2019-02-24gnu: font-awesome: Update to 5.7.2....* gnu/packages/fonts.scm (font-awesome): Update to 5.7.2. [home-page]: Use HTTPS. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Pkill -9 2019-02-12gnu: Add font-adobe-source-serif-pro....* gnu/packages/fonts.scm (font-adobe-source-serif-pro): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Jens M 2019-02-12gnu: Add font-adobe-source-sans-pro....* gnu/packages/fonts.scm (font-adobe-source-sans-pro): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Jens M 2019-01-15gnu: font-dosis: Switch to font-build-system....* gnu/packages/fonts.scm (font-dosis): Switch to font-build-system. [source]: Use url-fetch/zipbomb. [native-inputs]: Remove unzip. Arun Isaac 2018-12-24gnu: Add font-mononoki....* gnu/packages/fonts.scm (font-mononoki): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Gabriel Hondet 2018-12-10gnu: font-gnu-unifont: Update to 11.0.03....* gnu/packages/fonts.scm (font-gnu-unifont): Update to 11.0.03. [arguments]: Enable parallel builds. Efraim Flashner 2018-11-21gnu: font-ubuntu: Update url....* gnu/packages/fonts.scm (font-ubuntu): Use new url, update hash. Jan Nieuwenhuizen 2018-10-08gnu: Add font-sil-charis....* gnu/packages/fonts.scm (font-sil-charis): New variable. Ludovic Courtès 2018-10-08gnu: Add font-sil-gentium....* gnu/packages/fonts.scm (font-sil-gentium): New variable. Ludovic Courtès