[lirc] Updating after review and test of not-released -15
leamas
leamas at fedoraproject.org
Fri Oct 18 08:32:39 UTC 2013
commit 34cdc2ea64e4eddaf4ba972e0bb0d1bfa7fd2e0d
Author: Alec Leamas <leamas.alec at gmail.com>
Date: Fri Oct 18 10:32:10 2013 +0200
Updating after review and test of not-released -15
0018-Start-lirc-0.9.1-git.patch | 82 ++------------------
...-lircs-use-systemctl-instead-of-sysV-init.patch | 43 ++++++++++
0100-configure-ac-revert-to-git-branch.patch | 15 ++--
0104-Add-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(-)
---
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 <jarod at redhat.com>
-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 <leamas at nowhere.net>
+Date: Tue, 15 Oct 2013 11:19:15 +0200
+Subject: [PATCH] patch18
-Signed-off-by: Jarod Wilson <jarod at redhat.com>
---
- 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 <rjkm at thp.uni-koeln.de>
- Copyright (C) 1998-2010 Christoph Bartelmus <lirc at bartelmus.de>
--Copyright (C) 2010 Jarod Wilson <jarod at redhat.com>
-+Copyright (C) 2010-2011 Jarod Wilson <jarod at redhat.com>
- (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 @@
- <A NAME="welcome"></A><HR>
-- <H1 ALIGN="CENTER">Welcome to the LIRC 0.9.0-git Manual</H1>
-+ <H1 ALIGN="CENTER">Welcome to the LIRC 0.9.1-git Manual</H1>
- <HR WIDTH="70%">
-
- <P>
-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 <leamas.alec at gmail.com>
+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 <leamas at nowhere.net>
-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 <alec at tests.notat.diaspora.com>
-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 <leamas at nowhere.net>
+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 <rjkm at thp.uni-koeln.de>
+ * Copyright (C) 1998,99 Christoph Bartelmus <lirc at bartelmus.de>
+ *
@@ -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 <leamas.alec at nowhere.net> - 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 <chat-to-me at raveit.de> - 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 <leamas.alec at nowhere.net> - 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ä <ville.skytta at iki.fi> 0.7.1-2
- 0.7.1.
-* Fri Apr 7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
+* Thu Apr 7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
- rebuilt
* Sun Dec 5 2004 Ville Skyttä <ville.skytta at iki.fi> 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
More information about the scm-commits
mailing list