From 34cdc2ea64e4eddaf4ba972e0bb0d1bfa7fd2e0d Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 18 Oct 2013 10:32:10 +0200 Subject: [PATCH] Updating after review and test of not-released -15 --- 0018-Start-lirc-0.9.1-git.patch | 82 ++----------------- ...s-use-systemctl-instead-of-sysV-init.patch | 43 ++++++++++ 0100-configure-ac-revert-to-git-branch.patch | 15 ++-- ...dd-systemd-socket-activation-support.patch | 44 ++++------ 99-remote-control-lirc.rules | 1 + README.fedora | 65 ++++++++++++++- lirc.spec | 58 +++++++++---- lirc.sysconfig | 21 +++-- lircd.service | 5 +- lircd.socket | 1 + 10 files changed, 205 insertions(+), 130 deletions(-) create mode 100644 0019-lircs-use-systemctl-instead-of-sysV-init.patch create mode 100644 99-remote-control-lirc.rules diff --git a/0018-Start-lirc-0.9.1-git.patch b/0018-Start-lirc-0.9.1-git.patch index b5f1c7d..83af27e 100644 --- a/0018-Start-lirc-0.9.1-git.patch +++ b/0018-Start-lirc-0.9.1-git.patch @@ -1,91 +1,25 @@ -From 7c8034be8a79dce219b60cce3afcf39f1b85d004 Mon Sep 17 00:00:00 2001 -From: Jarod Wilson -Date: Fri, 25 Mar 2011 18:27:31 -0400 -Subject: [PATCH] Start lirc 0.9.1-git +From 08fc775629662fbdeae05b020e0c6ff9a5d45ccf Mon Sep 17 00:00:00 2001 +From: Alec Leamas +Date: Tue, 15 Oct 2013 11:19:15 +0200 +Subject: [PATCH] patch18 -Signed-off-by: Jarod Wilson --- - ANNOUNCE | 4 ++-- - NEWS | 8 ++++++-- - configure.ac | 2 +- - doc/html-source/index.html | 2 +- - setup.sh | 2 +- - 5 files changed, 11 insertions(+), 7 deletions(-) + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/ANNOUNCE b/ANNOUNCE -index 4db8756..da33538 100644 ---- a/ANNOUNCE -+++ b/ANNOUNCE -@@ -1,8 +1,8 @@ --LIRC - Linux Infrared Remote Control, Version: 0.9.0-git -+LIRC - Linux Infrared Remote Control, Version: 0.9.1-git - - Copyright (C) 1996 Ralph Metzler - Copyright (C) 1998-2010 Christoph Bartelmus --Copyright (C) 2010 Jarod Wilson -+Copyright (C) 2010-2011 Jarod Wilson - (according to GNU General Public Licence 2.0 or later) - - LIRC is a package that allows you to decode and send infra-red signals -diff --git a/NEWS b/NEWS -index 08d1abf..c097f0d 100644 ---- a/NEWS -+++ b/NEWS -@@ -1,4 +1,9 @@ --0.9.0-git: UNDER DEVELOPMENT -+0.9.1-git: UNDER DEVELOPMENT -+ * TBD -+ -+0.9.0: 03/25/11 -+ * Remove mceusb, streamzap, it8x, ene0100 drivers, as they're -+ now redundant with upstream kernel drivers - * fix oops unplugging igorplugusb receiver while in use (special - thanks to Timo Boettcher for providing hardware) - * more error-checking for NULL irctl in various lirc_dev paths -@@ -13,7 +18,6 @@ - * use portable type definitions all over the place - * drop an old GLIBC work-around for printing 64-bit values - * fix timing-specific repeat-after-release issue (Christoph Bartelmus) -- * renamed lirc_ite8709 to lirc_it85 and updated (Yan-Min Lin, ITE) - - 0.8.7: 09/06/10 - * improved usb-uirt support for FreeBSD (John Wehle) diff --git a/configure.ac b/configure.ac -index 485b8f3..4fedee1 100644 +index e47eff0..750264f 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ AC_INIT AC_CONFIG_SRCDIR([daemons/lircd.c]) AC_CONFIG_MACRO_DIR([m4]) --AM_INIT_AUTOMAKE(lirc, 0.9.0-git) +-AM_INIT_AUTOMAKE(lirc, 0.9.0) +AM_INIT_AUTOMAKE(lirc, 0.9.1-git) AM_CONFIG_HEADER(config.h) CFLAGS="${CFLAGS--O2 -g -Wall}" -diff --git a/doc/html-source/index.html b/doc/html-source/index.html -index 77bf381..0e44f83 100644 ---- a/doc/html-source/index.html -+++ b/doc/html-source/index.html -@@ -1,5 +1,5 @@ -
--

Welcome to the LIRC 0.9.0-git Manual

-+

Welcome to the LIRC 0.9.1-git Manual

-
- -

-diff --git a/setup.sh b/setup.sh -index 6220cda..9a3bdec 100755 ---- a/setup.sh -+++ b/setup.sh -@@ -1,6 +1,6 @@ - #! /bin/sh - --LIRC_VERSION="0.9.0-git" -+LIRC_VERSION="0.9.1-git" - - ############################################################################# - ## Default Values -- 1.8.3.1 diff --git a/0019-lircs-use-systemctl-instead-of-sysV-init.patch b/0019-lircs-use-systemctl-instead-of-sysV-init.patch new file mode 100644 index 0000000..ff2452a --- /dev/null +++ b/0019-lircs-use-systemctl-instead-of-sysV-init.patch @@ -0,0 +1,43 @@ +From 55870fd91d8e36927f6807931ecd1cfa49ce4ed1 Mon Sep 17 00:00:00 2001 +From: Alec Leamas +Date: Fri, 18 Oct 2013 00:21:44 +0200 +Subject: [PATCH] lircs: use systemctl instead of sysV init. + +--- + lirc-0.9.0/contrib/lircs | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/contrib/lircs b/contrib/lircs +index 1db2f2a..47350f9 100755 +--- a/contrib/lircs ++++ b/contrib/lircs +@@ -24,7 +24,7 @@ + CONFIG_FILE=${HOME}/.lircrc + + # any editor to edit LIRC config file +-FILE_EDITOR=vim ++FILE_EDITOR=${EDITOR:-vim} + + + +@@ -48,7 +48,7 @@ start_clients () { + restart_lircd () { + if [ "${USER}" = "root" ]; then + # change this if your Linux system keeps the init scripts elsewhere +- /sbin/init.d/lircd restart ++ systemctl restart lircd.service + else + echo "`basename ${0}`: you must be 'root' to restart the LIRC daemon (lircd)." + exit 1 +@@ -58,7 +58,7 @@ restart_lircd () { + stop_lircd () { + if [ "${USER}" = "root" ]; then + # change this if your Linux system keeps the init scripts elsewhere +- /sbin/init.d/lircd stop ++ systemctl stop lircd.service + else + echo "`basename ${0}`: you must be 'root' to stop the LIRC daemon (lircd)." + exit 1 +-- +1.8.3.1 + diff --git a/0100-configure-ac-revert-to-git-branch.patch b/0100-configure-ac-revert-to-git-branch.patch index 2ae5e34..96ec399 100644 --- a/0100-configure-ac-revert-to-git-branch.patch +++ b/0100-configure-ac-revert-to-git-branch.patch @@ -1,26 +1,25 @@ -From 7635b1e321bf2f98468ae4f2233e28e3d78505cb Mon Sep 17 00:00:00 2001 +From f23dfe414e95def3c094a344f7b27eedd06b062e Mon Sep 17 00:00:00 2001 From: Alec Leamas -Date: Fri, 11 Oct 2013 05:50:12 +0200 -Subject: [PATCH] configure-ac: revert to git branch +Date: Tue, 15 Oct 2013 11:07:25 +0200 +Subject: [PATCH] Reverting to 0.9.1-git (base for upstream patches) -rebasing for further changes to match upstream merge request. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 5a9b31d..9efe2f9 100644 +index 052908b..51ee9a5 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ AC_INIT AC_CONFIG_SRCDIR([daemons/lircd.c]) AC_CONFIG_MACRO_DIR([m4]) - + -AM_INIT_AUTOMAKE(lirc, 0.9.0) +AM_INIT_AUTOMAKE(lirc, 0.9.1-git) AM_CONFIG_HEADER(config.h) - + CFLAGS="${CFLAGS--O2 -g -Wall}" --- +-- 1.8.3.1 diff --git a/0104-Add-systemd-socket-activation-support.patch b/0104-Add-systemd-socket-activation-support.patch index 0481231..e2f0ab6 100644 --- a/0104-Add-systemd-socket-activation-support.patch +++ b/0104-Add-systemd-socket-activation-support.patch @@ -1,31 +1,15 @@ -From 171ac321f1e97a60fbda3858c4c84d60d0b7dacb Mon Sep 17 00:00:00 2001 -From: Alec Leamas -Date: Wed, 9 Oct 2013 20:57:12 +0200 -Subject: [PATCH 104/105] Add systemd socket activation support. +From b5fec91d4b91e6798e9c92b389b96f7f44639a9a Mon Sep 17 00:00:00 2001 +From: Alec Leamas +Date: Tue, 15 Oct 2013 07:34:51 +0200 +Subject: [PATCH] fixing 104 -Since systemd was introduced lirc clients have had problems at -startup when trying to connect to the lircd socket before it's -created. The root cause is the aggressive parallell boot performed -by systemd. - -The solution is to add socket activation. In this mode, the socket -is created by systemd and handed over to lircd at startup. The patch -implements this. It should be reasonably transparent. - -At configure time it enables systemd support if it's available, -otherwise it's silently ignored. - -In runtime lircd looks for and uses a socket handed over by systemd. -If there is no such socket it proceeds as normal. - -Adds a dependency on pkg-config for the PKG_CHECK_MODULES macro. --- configure.ac | 7 +++++ - daemons/lircd.c | 94 ++++++++++++++++++++++++++++++++++----------------------- - 2 files changed, 63 insertions(+), 38 deletions(-) + daemons/lircd.c | 95 ++++++++++++++++++++++++++++++++++----------------------- + 2 files changed, 63 insertions(+), 39 deletions(-) diff --git a/configure.ac b/configure.ac -index af28e4f..7df186a 100644 +index 0ee99e4..e49dc8d 100644 --- a/configure.ac +++ b/configure.ac @@ -232,6 +232,9 @@ AH_TEMPLATE([HAVE_SCSI], @@ -50,9 +34,18 @@ index af28e4f..7df186a 100644 AC_ARG_WITH(driver, diff --git a/daemons/lircd.c b/daemons/lircd.c -index 8ace7af..9cde69b 100644 +index 8ace7af..5b8f361 100644 --- a/daemons/lircd.c +++ b/daemons/lircd.c +@@ -5,7 +5,7 @@ + **************************************************************************** + * + * lircd - LIRC Decoder Daemon +- * ++ * + * Copyright (C) 1996,97 Ralph Metzler + * Copyright (C) 1998,99 Christoph Bartelmus + * @@ -63,6 +63,10 @@ #include "input_map.h" #endif @@ -72,7 +65,7 @@ index 8ace7af..9cde69b 100644 /* create pid lockfile in /var/run */ if ((fd = open(pidfile, O_RDWR | O_CREAT, 0644)) == -1 || (pidf = fdopen(fd, "r+")) == NULL) { -@@ -881,51 +886,64 @@ void start_server(mode_t permission, int nodaemon) +@@ -881,51 +886,63 @@ void start_server(mode_t permission, int nodaemon) (void)ftruncate(fileno(pidf), ftell(pidf)); /* create socket */ @@ -87,7 +80,6 @@ index 8ace7af..9cde69b 100644 + fprintf(stderr, "Too many file descriptors received.\n"); goto start_server_failed0; - } -+ exit(1); + } + else if (n == 1) + sockfd = SD_LISTEN_FDS_START + 0; diff --git a/99-remote-control-lirc.rules b/99-remote-control-lirc.rules new file mode 100644 index 0000000..c6d6bed --- /dev/null +++ b/99-remote-control-lirc.rules @@ -0,0 +1 @@ +SUBSYSTEM=="rc", ATTR{protocols}="lirc" diff --git a/README.fedora b/README.fedora index 43458c4..090003a 100644 --- a/README.fedora +++ b/README.fedora @@ -1,6 +1,33 @@ ## Fedora README -As of current releases, the Fedora lirc package sports systemd socket +#### New service name: lirc -> lircd. + +For reasons of consistency we have renamed the lirc service to +lircd. Basically, this means that to start the service one need +to use systemctl start lircd.service instead of lirc.service etc. +Sorry for the inconvenience. + +#### Enable lirc protocol + +For lirc to work with ir devices, the lirc protocol must be enabled +for the actual device used. This only applies to ir devices which +are visible as /sys/class/rc/rc? devices. E. g., I have an RF remote +which is just an usb device (driver atilibusb) and this one does +*not* require the the lirc protocol to be enabled in this way. + +If you have a "classic" ir device needing lirc to be enabled one option +is to install the lirc-disable-kernel-rc subpackage. This is an udev +rule which disables the kernel built-in ir device handling and makes +lirc the only protocol used. This might or might not be what you want. + +Another option is to set the LIRCD_IR_DEVICE in /etc/sysconfig/lirc. This +will enable the lirc protocol for that device when lirc is running. The +kernel built-in protocols are still in place, but not used. Again, this +might or might not be what you want. + +#### Socket activation + +As of 0.9.4-15+, the Fedora lirc package sports systemd socket activation. This should fix the problems at startup when clients can't connect to /var/run/lircd because the lircd service is yet not started. @@ -14,5 +41,41 @@ The lircmd is started the usual way: # systemctl enable lircmd.service # systemctl start lircmd.service +#### Running another instance. + +Sometimes another lircd instance is required to handle some other input +device. This could be done by creating a new service definition in +/etc/systemd/system. + +In my case I have an extra instance handling ir output to the transciever. +This is accomplished with a file /etc/systemd/system/lirc-tx: +---------------- +[Unit] +Description=LIRC Infrared Signal Decoder +After=network.target + +[Service] +Type=simple +ExecStart=/usr/sbin/lircd --driver=iguanaIR \ + --device=/var/run/iguanaIR/0 \ + --output=/var/run/lirc/lircd-tx \ + --pidfile=/run/lirc/dont-use-lircd-tx.pid \ + --nodaemon \ + --allow-simulate + +[Install] +WantedBy=multi-user.target + +----------------------- + +This defines a new service which can be started using +'systemctl start lirc-tx' etc. It's essential that each service has an +unique output socket. You should probably also think twice before running +two instances with the same input device. + + + + + http://stackoverflow.com/questions/11939255/writing-to-dev-uinput-on-ubuntu-12-04 diff --git a/lirc.spec b/lirc.spec index 48630e2..239c2da 100644 --- a/lirc.spec +++ b/lirc.spec @@ -6,7 +6,6 @@ # https://sf.net/mailarchive/forum.php?forum_name=lirc-list&viewmonth=201310 # - %bcond_without alsa %bcond_without portaudio %bcond_without x @@ -23,7 +22,7 @@ Name: lirc Version: 0.9.0 %if 0%{?released} -Release: 15%{?dist} +Release: 17%{?dist} %else Release: 0.2.%{pre}%{?dist} %endif @@ -44,6 +43,7 @@ Source3: lircmd.service Source4: lircd.socket Source5: lirc.conf Source6: README.fedora +Source7: 99-remote-control-lirc.rules # Patches 7..17 are from upstream. Patch7: 0007-Make-lirc_wpc8769l-functional-again.patch Patch8: 0008-lirc_sir-fix-resource-busy-error-from-bunk-lirc_open.patch @@ -57,16 +57,16 @@ Patch15: 0015-media-lirc_dev-fixes-in-lirc_dev_fop_read.patch Patch16: 0016-media-lirc_dev-add-some-__user-annotations.patch Patch17: 0017-media-media-rc-lirc_dev-check-kobject_set_name-resul.patch Patch18: 0018-Start-lirc-0.9.1-git.patch - # 101-104 is upstream merge request, 101+105 - # local support which should no upstream. -Patch100: 0100-configure-ac-revert-to-git-branch.patch +Patch19: 0019-lircs-use-systemctl-instead-of-sysV-init.patch + # 101-104: upstream merge request: + # https://sourceforge.net/p/lirc/git/merge-requests/3/ Patch101: 0101-Stripping-some-eol-whitespace.patch Patch102: 0102-Update-autotools-config-files.patch Patch103: 0103-xmode2.c-Use-generic-fixed-font-instead-of-Courier.patch Patch104: 0104-Add-systemd-socket-activation-support.patch + # local glue which should not go upstream. Patch105: 0105-configure-ac-back-to-0.9.0.patch -BuildRequires: %{__perl} Buildrequires: autoconf BuildRequires: automake @@ -161,6 +161,15 @@ signals as well as user space applications which allow controlling a computer with a remote control. This package contains a collection of remote control configuration files. +%package disable-kernel-rc +Summary: Disable kernel ir device handling in favor of lirc +Requires: %{name} = %{version}-%{release} + +%description disable-kernel-rc +Udev rule which disables the kernel built-in handling of infrared devices +(i. e., rc* ones) by making lirc the only used protocol. An alternative is +to use the LIRCD_IR_DEVICE option in /etc/sysconfig/lirc + # Don't provide or require anything from _docdir, per policy. %global __provides_exclude_from ^%{_docdir}/.*$ @@ -185,8 +194,9 @@ of remote control configuration files. %patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch18 -p1 +%patch19 -p1 -%patch100 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 @@ -198,16 +208,17 @@ chmod +x contrib/hal chmod +x daemons/input_map.sh sed -i -e 's|/usr/local/etc/|/etc/|' contrib/irman2lirc -sed -i -e 's|/sbin/init.d/lircd|%{_initrddir}/lirc|' contrib/lircs for f in remotes/chronos/lircd.conf.chronos \ remotes/creative/lircd.conf.livedrive remotes/atiusb/lircd.conf.atiusb \ - NEWS ChangeLog AUTHORS contrib/lircrc ; do + NEWS ChangeLog AUTHORS contrib/lircrc +do iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f done %build +mkdir m4 || : autoreconf -fi %configure \ @@ -235,6 +246,8 @@ install -Dpm 644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/lircd.socket install -Dpm 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lirc install -Dpm 644 %{SOURCE5} $RPM_BUILD_ROOT/etc/lirc/lircd.conf install -Dpm 644 %{SOURCE5} $RPM_BUILD_ROOT/etc/lirc/lircmd.conf +install -Dpm 644 %{SOURCE7} \ + $RPM_BUILD_ROOT%{_udevrulesdir}/99-remote-control-lirc.rules cp -a %{SOURCE6} README.fedora # Put remote definitions in place @@ -256,13 +269,14 @@ rm -rf doc/Makefile* doc/.libs doc/man* doc/lirc.hwdb rm -rf contrib/irman2lirc contrib/lirc.* contrib/sendxevent.c cd .. -mkdir -p $RPM_BUILD_ROOT/etc/tmpfiles.d +mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir} echo "d /var/run/lirc 0755 root root 10d" \ - > $RPM_BUILD_ROOT/etc/tmpfiles.d/lirc.conf + > $RPM_BUILD_ROOT/%{_tmpfilesdir}/lirc.conf %post %systemd_post lircd.service lircmd.service +systemd-tmpfiles --create %{_tmpfilesdir}/lirc.conf %post libs -p /sbin/ldconfig @@ -291,7 +305,7 @@ echo "d /var/run/lirc 0755 root root 10d" \ %dir /etc/lirc %config(noreplace) /etc/lirc/lirc*d.conf %config(noreplace) /etc/sysconfig/lirc -%config(noreplace) /etc/tmpfiles.d/lirc.conf +%{_tmpfilesdir}/lirc.conf %{_unitdir}/lirc* %{_bindir}/*ir* %{_bindir}/*mode2 @@ -316,10 +330,26 @@ echo "d /var/run/lirc 0755 root root 10d" \ %doc AUTHORS ChangeLog COPYING README %{_datadir}/lirc-remotes +%files disable-kernel-rc +%{_udevrulesdir}/99-remote-control-lirc.rules + %changelog +* Thu Oct 17 2013 Alec Leamas - 0.9.0-17 +- Add a udev "Only use lirc" subpackage. +- Revise enabling of lirc protocol. +- Documenting upstream merge request. +- Resurrect contrib/lircs, use systemctl. +- Force creation of /run/lirc after installation. +- Use /lib/tmpfiles.d, not /etc/tmpfiles.d with _tmpfilesdir macro. + +* Tue Oct 15 2013 Wolfgang Ulbrich - 0.9.0-16 +- fix build for f18 +- remove BR perl, already called in build system +- fix bogus in changelog date + * Thu Oct 10 2013 Alec Leamas - 0.9.0-15 -- Actually use sysconfig files (881976) +- Actually use sysconfig files (881976). - Modify lirc.service to not fork. - Add support for iguanaIR driver (#954146). - Add hardened build flag (955144). @@ -633,7 +663,7 @@ echo "d /var/run/lirc 0755 root root 10d" \ * Sun Apr 17 2005 Ville Skyttä 0.7.1-2 - 0.7.1. -* Fri Apr 7 2005 Michael Schwendt +* Thu Apr 7 2005 Michael Schwendt - rebuilt * Sun Dec 5 2004 Ville Skyttä 0.7.0-1 diff --git a/lirc.sysconfig b/lirc.sysconfig index 1bca325..4e32a76 100644 --- a/lirc.sysconfig +++ b/lirc.sysconfig @@ -11,12 +11,21 @@ LIRCD_OPTIONS="" LIRC_DRIVER="default" # Which lirc device will be used by lircd(8). -# This is the same as passing "-d device" to lircd. -# An empty value will use the default /dev/lirc0 device. +# This is the same as passing "-d device" to lircd. It must be set. LIRC_DEVICE="/dev/lirc0" -# Options to lircmd(8). The default --version effectively disables -# lircmd, setting it to "" enables it with default options. lircmd -# always runs with --nodaemon added to LIRCMD_OPTIONS. -LIRCMD_OPTIONS="--version" +# Options to lircmd(8). lircmd always runs with --nodaemon added +# to LIRCMD_OPTIONS. +LIRCMD_OPTIONS="" + +# The infrared device used by lirc, if any. If this is set, lircd will +# enable the lirc protocol and disable kernel built-in handling using +# "echo lirc > /sys/class/rc/$LIRCD_IR_DEVICE/protocols" at startup. +# If unset, this is ignored. +# - The common case when there is just one ir device: LIRCD_IR_DEVICE="rc0". +# - Non-IR devices e. g., RF ones typically don't need this set. +# - If not set when required, the typical symptom is duobled key-presses. +# - If installing the lirc-disable-kernel-rc subpackage this setting is not +# needed. +LIRCD_IR_DEVICE="" diff --git a/lircd.service b/lircd.service index fd184cb..f8e92e8 100644 --- a/lircd.service +++ b/lircd.service @@ -5,9 +5,12 @@ After=network.target [Service] Type=simple EnvironmentFile=-/etc/sysconfig/lirc -ExecStartPre=/bin/sh -c 'echo lirc > /sys/class/rc/rc0/protocols' +ExecStartPre=/bin/sh -c 'test -n "$LIRCD_IR_DEVICE" && \ + echo lirc > /sys/class/rc/$LIRCD_IR_DEVICE/protocols || :' ExecStart=/usr/sbin/lircd $LIRCD_OPTIONS \ --driver $LIRC_DRIVER --device $LIRC_DEVICE --nodaemon +ExecStopPost=/bin/sh -c 'test -n "$LIRCD_IR_DEVICE" && \ + echo -lirc > /sys/class/rc/$LIRCD_IR_DEVICE/protocols || :' [Install] WantedBy=multi-user.target diff --git a/lircd.socket b/lircd.socket index ef9752f..0ee7d0d 100644 --- a/lircd.socket +++ b/lircd.socket @@ -3,4 +3,5 @@ ListenStream=/run/lirc/lircd [Install] WantedBy=sockets.target +Also=lircd.service