[Pkg-lirc-maint] Bug#617523: Please change the default socket location to /var/run/lirc/lircd

Stefan Lippers-Hollmann s.L-H at gmx.de
Wed Mar 9 15:43:40 UTC 2011

Package: inputlirc
Version: 16-1
Severity: important
Tags: patch sid
X-Debbugs-CC: pkg-lirc-maint at lists.alioth.debian.org


lirc >= 0.8.6 changed the default, and expected by liblircclient0, 
socket location from /dev/lircd to /var/run/lirc/lircd.

--- lirc-0.8.5/ChangeLog
+++ lirc-0.8.6/ChangeLog
+2009-05-24  lirc  <lirc at m320>
+	* TODO: cleanup
+	* NEWS, configure.ac, contrib/lirc.m4, doc/html-source/configure.html, doc/html-source/install.html, doc/html-source/technical.html, doc/man-source/irsend.inc, doc/man-source/irw.inc, doc/man-source/lircd.inc:
+	moved lircd socket from /dev/lircd to /var/run/lirc/lircd,
+	moved default pid file location from /var/run/lircd.pid to /var/run/lirc/lircd.pid
+	* NEWS, daemons/config_file.h, daemons/ir_remote.c, daemons/ir_remote.h, daemons/ir_remote_types.h, daemons/receive.c, daemons/transmit.c, remotes/generic/XMP:
+	added support for XMP protocol
+	* ANNOUNCE, NEWS, configure.ac, doc/html-source/foot.html, doc/html-source/index.html, setup.sh:
+	started 0.8.6 development
 2009-05-21  lirc  <lirc at m320>

While /etc/init.d/lirc retains compatibility with old clients by 
creating a symlink from /dev/lircd to the new /var/run/lirc/lircd, this
is not represented by inputlirc, which thereby breaks clients using 
liblircclient0 >= 0.8.6 (0.9.0~pre1-1) to access the socket. Given that
this change is established upstream (lirc) and in several distributions
for almost 2 years already, I'd suggest adapting inputlirc instead of
reverting lirc to use /dev/lircd again - especially as the socket 
doesn't really belong under /dev/. Ideally the compatibility symlink
can also be dropped after, maybe even before, wheezy gets released, as
only two packages in Debian/ unstable (audacious-plugins and irmp3) 
hardcode /dev/lircd for build-time feature detection, while none 
(except inputlirc) hardcode it at runtime.

Please consider applying something equivalent to the attached patch, as
lirc >= 0.9~ is required for using kernel driven remotes in combination
with linux-2.6 >= 2.6.36 and would ideally migrate with linux-2.6 
2.6.37 to testing. Please refer to #617417 for further information 
about the breakage, I'll add an according versioned Breaks to inputlirc
in liblircclient0, to allow a smooth transition for testing/ wheezy.

switch default socket location to /var/run/lirc/lircd

Starting with liblircclient0 >= 0.8.6, the default socket location for
lirc has moved to /var/run/lirc/lircd, this adapts inputlirc to follow
that precedence by retaining compatibility to old clients.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h at gmx.de>
 debian/changelog      |    8 ++++++++
 debian/control        |    2 +-
 debian/inputlirc.init |    6 ++++++
 inputlircd.8          |    4 ++--
 inputlircd.c          |    2 +-
 5 files changed, 18 insertions(+), 4 deletions(-)

diff -u a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+inputlirc (16-1+nmu1) unstable; urgency=low
+  * Non-maintainer upload.
+  * switch default socket location to /var/run/lirc/lircd, as needed by 
+    liblircclient0 >= 0.8.6, by retaining compatibility with old clients.
+ -- Stefan Lippers-Hollmann <s.l-h at gmx.de>  Wed, 09 Mar 2011 15:50:38 +0100
 inputlirc (16-1) unstable; urgency=low
   * New upstream release.
diff -u a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@
 Package: inputlirc
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, liblircclient0 (>= 0.8.6)
 Suggests: lirc, input-utils
 Description: Zeroconf LIRC daemon using input event devices
  This is a small LIRC-compatible daemon that reads from /dev/input/eventX
only in patch2:
diff -u a/debian/inputlirc.init b/debian/inputlirc.init
--- a/debian/inputlirc.init
+++ b/debian/inputlirc.init
@@ -21,7 +21,13 @@
 case "$1" in
     echo "Starting $DESC"
+    [ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc"
     start-stop-daemon --exec $DAEMON --start -- $OPTIONS $EVENTS
+    # retain compatibility with old clients
+    if [ -S "/var/run/lirc/lircd" ] && [ "/dev/lircd" != "/var/run/lirc/lircd" ]; then
+        rm -f /dev/lircd && ln -s /var/run/lirc/lircd /dev/lircd
+    fi
     echo "Stopping $DESC"
--- a/inputlircd.c
+++ b/inputlircd.c
@@ -62,7 +62,7 @@
 static bool grab = false;
 static int key_min = 88;
-static char *device = "/dev/lircd";
+static char *device = "/var/run/lirc/lircd";
 static bool capture_modifiers = false;
 static bool meta = false;
only in patch2:
--- a/inputlircd.8
+++ b/inputlircd.8
@@ -33,7 +33,7 @@
 .It Fl d Ar socket
 Location of the UNIX socket to which LIRC clients can connect.
 The default is
-.Pa /dev/lircd .
+.Pa /var/run/lirc/lircd .
 .It Fl f
 Run in the foreground.
 .It Fl c
@@ -97,7 +97,7 @@
 .Bl -tag -width indent
-.It Pa /dev/lircd
+.It Pa /var/run/lirc/lircd
 Default location of the UNIX socket to which LIRC clients can connect.
 .It Pa /dev/input/event Ns X
 The kernel input layer's event device files.

Met vriendelijke groet,
	Stefan Lippers-Hollmann

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-rc8-aptosid-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages inputlirc depends on:
ii  libc6                         2.11.2-13  Embedded GNU C Library: Shared lib

inputlirc recommends no packages.

Versions of packages inputlirc suggests:
ii  input-utils               0.0.20081014-1 utilities for the input layer of t
ii  lirc                      0.9.0~pre1-1   infra-red remote control support

-- no debconf information

More information about the Pkg-lirc-maint mailing list