[Pkg-lirc-maint] Bug#845499: lirc: FTBFS on !linux

Samuel Thibault sthibault at debian.org
Wed Nov 23 23:33:53 UTC 2016


Source: lirc
Version: 0.9.4c-4
Severity: important
Tags: patch
User: debian-hurd at lists.debian.org
Usertags: hurd

Hello,

lirc currently FTBFS on !linux archs because it build-depends on
systemd, hardwires having uinput, and tries to install the systemd
files. The attached first patch fixes this. It also needs a

chmod +x debian/install

to make dh-exec work.

There are however various build issues, the attached patch fixes them.
(upstream had a convoluted way of calling Linux: "!BSD" :) )

Samuel

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.8.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Samuel
	/* Amuse the user. */
	printk(
"              \\|/ ____ \\|/\n"
"              \"@'/ ,. \\`@\"\n"
"              /_| \\__/ |_\\\n"
"                 \\__U_/\n");
(From linux/arch/sparc/kernel/traps.c:die_if_kernel())
-------------- next part --------------
--- debian/control.original	2016-11-23 22:35:48.000000000 +0000
+++ debian/control	2016-11-23 23:33:20.000000000 +0000
@@ -14,6 +14,7 @@
  dh-autoreconf,
  dh-systemd,
  dh-python,
+ dh-exec,
  doxygen,
  kmod [linux-any],
  libasound2-dev [linux-any kfreebsd-any],
@@ -28,7 +29,7 @@
  portaudio19-dev,
  python3,
  python3-yaml,
- systemd,
+ systemd [linux-any],
  xsltproc
 # libjs-jquery
 
--- debian/rules.original	2016-11-23 23:02:38.000000000 +0000
+++ debian/rules	2016-11-23 23:02:39.000000000 +0000
@@ -9,8 +9,10 @@
 override_dh_autoreconf:
 	dh_autoreconf $(CURDIR)/autogen.sh
 
+ifeq ($(DEB_HOST_ARCH_OS),linux)
 override_dh_auto_configure:
 	dh_auto_configure -- HAVE_UINPUT=1
+endif
 
 override_dh_shlibdeps:
 	dh_shlibdeps -l $(CURDIR)/debian/tmp/usr/lib/*/lirc/plugins
--- debian/install.original	2016-11-23 23:13:41.000000000 +0000
+++ debian/install	2016-11-23 23:13:43.000000000 +0000
@@ -1,5 +1,6 @@
+#! /usr/bin/dh-exec
 etc/lirc
-lib/systemd/*
+[linux-any] lib/systemd/*
 usr/lib/*/python3*/*
 usr/lib/tmpfiles.d/*
 usr/lib/*/lirc
-------------- next part --------------
Index: lirc-0.9.4c/Makefile.am
===================================================================
--- lirc-0.9.4c.orig/Makefile.am
+++ lirc-0.9.4c/Makefile.am
@@ -38,7 +38,7 @@ dist_lirc_conf_DATA     = lircd.conf \
 lircdconfigdir		= $(sysconfdir)/lirc/lircd.conf.d
 dist_lircdconfig_DATA	= README.conf.d 
 
-if !BSD
+if LINUX
 dist_lircdconfig_DATA	+= devinput.lircd.conf
 endif
 
Index: lirc-0.9.4c/configure.ac
===================================================================
--- lirc-0.9.4c.orig/configure.ac
+++ lirc-0.9.4c/configure.ac
@@ -19,7 +19,7 @@ AC_PATH_PROG(SH_PATH,[sh])
 AC_CHECK_PROGS([MODINFO], [modinfo], [no], [$PATH:/sbin:/usr/sbin])
 if test x$MODINFO = xno; then
   AC_MSG_WARN(["No modinfo command found - skipping kernel drivers."])
-  MODINFO="/usr/bin/false"
+  MODINFO="/bin/false"
 else
   MODINFO=$( PATH=$PATH:/sbin:/usr/sbin which modinfo )
 fi
@@ -93,11 +93,13 @@ case $host_os in
 	;;
     *bsd*) osflags='-DFREEBSD'
 	;;
+    linux*) osflags='-DLINUX'
+	;;
     *)  osflags=''
 esac
 
 AM_CONDITIONAL([DARWIN], [test "$osflags" = "-DDARWIN"])
-AM_CONDITIONAL([BSD], [test -n "$osflags"])
+AM_CONDITIONAL([LINUX], [test "$osflags" = "-DLINUX"])
 AC_SUBST(osflags)
 
 x_progs="irxevent xmode2"
@@ -514,7 +516,7 @@ AC_REPORT_CONDITIONAL([SYSTEMD_INSTALL])
 AC_REPORT_CONDITIONAL([DEVEL])
 AC_REPORT_CONDITIONAL([HAVE_UINPUT])
 AC_REPORT_CONDITIONAL([DARWIN])
-AC_REPORT_CONDITIONAL([BSD])
+AC_REPORT_CONDITIONAL([LINUX])
 
 echo
 
Index: lirc-0.9.4c/lib/Makefile.am
===================================================================
--- lirc-0.9.4c.orig/lib/Makefile.am
+++ lirc-0.9.4c/lib/Makefile.am
@@ -104,7 +104,7 @@ input_map.lo: lirc/input_map.inc
 
 input_map.inc: lirc/input_map.inc
 
-if BSD
+if !LINUX
 lirc/input_map.inc:
 	touch $@
 	touch touch input_map.inc
Index: lirc-0.9.4c/plugins/Makefile.am
===================================================================
--- lirc-0.9.4c.orig/plugins/Makefile.am
+++ lirc-0.9.4c/plugins/Makefile.am
@@ -41,7 +41,7 @@ srm7500libusb_la_SOURCES    = srm7500lib
 srm7500libusb_la_LDFLAGS    = $(AM_LDFLAGS) @usb_libs@
 srm7500libusb_la_CFLAGS     = $(AM_CFLAGS) $(LIBUSB_CFLAGS)
 
-if !BSD
+if LINUX
 plugin_LTLIBRARIES          += commandir.la
 commandir_la_SOURCES        = commandir.c
 commandir_la_LDFLAGS        = $(AM_LDFLAGS) @usb_libs@
@@ -113,7 +113,7 @@ osx_usbraw_la_SOURCES       = osx_usbraw
 osx_usbraw_la_LDFLAGS       = $(AM_LDFLAGS) -framework IOKit -framework Cocoa
 endif
 
-if !BSD
+if LINUX
 plugin_LTLIBRARIES          += default.la
 default_la_SOURCES          = default.c
 
Index: lirc-0.9.4c/include/media/lirc.h
===================================================================
--- lirc-0.9.4c.orig/include/media/lirc.h
+++ lirc-0.9.4c/include/media/lirc.h
@@ -6,8 +6,16 @@
 #ifndef _LINUX_LIRC_H
 #define _LINUX_LIRC_H
 
+#ifdef __linux__
 #include <linux/types.h>
 #include <linux/ioctl.h>
+#else
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#if defined(_IOT_SIMPLE) && !defined(_IOT__IOTBASE___u32)
+#define _IOT__IOTBASE___u32 _IOT_SIMPLE(__u32)
+#endif
+#endif
 
 #define PULSE_BIT       0x01000000
 #define PULSE_MASK      0x00FFFFFF
Index: lirc-0.9.4c/lib/lirc_client.c
===================================================================
--- lirc-0.9.4c.orig/lib/lirc_client.c
+++ lirc-0.9.4c/lib/lirc_client.c
@@ -40,6 +40,10 @@
 
 #include "lirc_client.h"
 
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 4096
+#endif
+
 /** Timeout in lirc_read_string. */
 static const struct timeval CMD_TIMEOUT = { .tv_sec = 1, .tv_usec = 0 };
 
Index: lirc-0.9.4c/plugins/atilibusb.c
===================================================================
--- lirc-0.9.4c.orig/plugins/atilibusb.c
+++ lirc-0.9.4c/plugins/atilibusb.c
@@ -34,6 +34,10 @@
 
 #include "lirc_driver.h"
 
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
 #define CODE_BYTES 5
 #define USB_TIMEOUT (1000 * 60)
 
Index: lirc-0.9.4c/plugins/awlibusb.c
===================================================================
--- lirc-0.9.4c.orig/plugins/awlibusb.c
+++ lirc-0.9.4c/plugins/awlibusb.c
@@ -43,6 +43,10 @@
 
 #include "lirc_driver.h"
 
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
 #define AW_MODE_LIRCCODE 1
 
 #define AWUSB_RECEIVE_BYTES 5
Index: lirc-0.9.4c/plugins/dfclibusb.c
===================================================================
--- lirc-0.9.4c.orig/plugins/dfclibusb.c
+++ lirc-0.9.4c/plugins/dfclibusb.c
@@ -35,6 +35,10 @@
 
 #include "lirc_driver.h"
 
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
 #define CODE_BYTES 6
 #define USB_TIMEOUT (5000)
 
Index: lirc-0.9.4c/tools/irpty.cpp
===================================================================
--- lirc-0.9.4c.orig/tools/irpty.cpp
+++ lirc-0.9.4c/tools/irpty.cpp
@@ -142,6 +142,10 @@ static void copy_loop(int ptym, int igno
 	lirc_deinit();
 }
 
+#undef RESET
+#undef RAW
+#undef CBREAK
+
 static struct termios save_termios;
 static int ttysavefd = -1;
 static enum {
Index: lirc-0.9.4c/plugins/ftdix.c
===================================================================
--- lirc-0.9.4c.orig/plugins/ftdix.c
+++ lirc-0.9.4c/plugins/ftdix.c
@@ -51,11 +51,13 @@
 
 #include <ftdi.h>
 
+#ifdef LINUX
 #define LIRC_FTDIX_SET_SCHEDULER 1
 #ifdef LIRC_FTDIX_SET_SCHEDULER
 #include <sched.h>
 #include <linux/sched.h>
 #endif
+#endif
 
 static const logchannel_t logchannel = LOG_DRIVER;
 


More information about the Pkg-lirc-maint mailing list