diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-08-23 01:36:15 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-08-23 01:36:15 -0300 |
commit | 28529fefc594bf968ca30905a5a2d6c9ae1d6f3c (patch) | |
tree | 4c2428f259eb8d14153d27c38659293f4a970f03 /libre/lirc-parabola | |
parent | b1852341008bbce6f23ebc4c300112d98c96ab8d (diff) | |
download | abslibre-28529fefc594bf968ca30905a5a2d6c9ae1d6f3c.tar.gz abslibre-28529fefc594bf968ca30905a5a2d6c9ae1d6f3c.tar.bz2 abslibre-28529fefc594bf968ca30905a5a2d6c9ae1d6f3c.zip |
add modifications from coadde and lukeshu contributions for linux-libre* and dependencies
Diffstat (limited to 'libre/lirc-parabola')
-rw-r--r-- | libre/lirc-parabola/PKGBUILD | 140 | ||||
-rw-r--r-- | libre/lirc-parabola/irexec.service | 11 | ||||
-rw-r--r-- | libre/lirc-parabola/kmod.install | 14 | ||||
-rw-r--r-- | libre/lirc-parabola/lirc-0.9.1a-fix-segfaults.patch | 79 | ||||
-rw-r--r-- | libre/lirc-parabola/lirc-utils.install | 13 | ||||
-rw-r--r-- | libre/lirc-parabola/lirc.logrotate | 5 | ||||
-rw-r--r-- | libre/lirc-parabola/lirc.tmpfiles | 1 | ||||
-rw-r--r-- | libre/lirc-parabola/wpc8769l-build-fix.patch | 90 |
8 files changed, 353 insertions, 0 deletions
diff --git a/libre/lirc-parabola/PKGBUILD b/libre/lirc-parabola/PKGBUILD new file mode 100644 index 000000000..6892f9a8a --- /dev/null +++ b/libre/lirc-parabola/PKGBUILD @@ -0,0 +1,140 @@ +# $Id: PKGBUILD 220120 2014-08-16 22:32:11Z lfleischer $ +# Maintainer (Arch): Paul Mattal <paul@archlinux.org> +# Maintainer: André Silva <emulatorman@parabola.nu> +# Contributor: Luke Shumaker <lukeshu@sbcglobal.net> +# Contributor: Márcio Silva <coadde@parabola.nu> + +# Kernel info +_basekernel=3.16 +_kernelname= + +# Source info +_pkgname=lirc-parabola${_kernelname} +# Only build lirc-utils once; for the stock kernel +if [[ -n "${_kernelname}" ]]; then + pkgname=$_pkgname +else + pkgbase=$_pkgname + pkgname=("$_pkgname" lirc-utils-parabola) +fi + +_pkgver=0.9.1a +[[ $_pkgver =~ [a-z]$ ]] && pkgver="${_pkgver:0:-1}.${_pkgver: -1}" || pkgver="$_pkgver" + +url="http://www.lirc.org/" +license=('GPL') +source=("http://prdownloads.sourceforge.net/lirc/lirc-${_pkgver}.tar.bz2" + "wpc8769l-build-fix.patch" + lirc-0.9.1a-fix-segfaults.patch + lirc.logrotate + irexec.service + lirc.tmpfiles) +md5sums=('1f1fac162ed309dd50f307e96a292957' + '9ec33169b3407f74264062d7679dd269' + 'cd00acf480e82a0bf050032732d0d733' + '3deb02604b37811d41816e9b4385fcc3' + '32df3b9bc859565d6acf5f0e5b747083' + 'febf25c154a7d36f01159e84f26c2d9a') + +# Package info +pkgrel=3.${_basekernel/./} +epoch=1 +arch=('i686' 'x86_64' 'mips64el') +options=('!makeflags' '!strip') +makedepends=('help2man' 'alsa-lib' 'libx11' 'libftdi-compat' 'libirman' 'python2') + +# Generic (you shouldn't have to modify any of these variables) +_toohigh=$(IFS=. read a b <<<$_basekernel; echo $a.$((b+1))) +_extramodules=extramodules-${_basekernel}${_kernelname} +makedepends+=("linux-libre${_kernelname}>=${_basekernel}" "linux-libre${_kernelname}<${_toohigh}" + "linux-libre${_kernelname}-headers>=${_basekernel}" "linux-libre${_kernelname}-headers<${_toohigh}") + +prepare() { + cd "${srcdir}/lirc-${_pkgver}" + + patch -Np1 -i "${srcdir}/wpc8769l-build-fix.patch" + patch -Np1 -i "${srcdir}/lirc-0.9.1a-fix-segfaults.patch" + + sed -i '/AC_PATH_XTRA/d' configure.ac + sed -e 's/@X_CFLAGS@//g' \ + -e 's/@X_LIBS@//g' \ + -e 's/@X_PRE_LIBS@//g' \ + -e 's/@X_EXTRA_LIBS@//g' -i Makefile.am tools/Makefile.am + + libtoolize + autoreconf +} + +build() { + cd "${srcdir}/lirc-${_pkgver}" + _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" + + PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \ + --with-driver=all --with-kerneldir="/usr/lib/modules/${_kernver}/build/" \ + --with-moduledir="/usr/lib/modules/${_kernver}/kernel/drivers/misc" \ + --sbindir=/usr/bin --with-transmitter + + # Remove drivers already in kernel + sed -e "s:lirc_dev::" -e "s:lirc_bt829::" -e "s:lirc_igorplugusb::" \ + -e "s:lirc_imon::" -e "s:lirc_parallel::" -e "s:lirc_sasem::" \ + -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \ + -e "s:lirc_atiusb::" -e "s:lirc_i2c::" \ + -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile + make +} + +_package_lirc() { + pkgdesc="Linux Infrared Remote Control kernel modules (built for the linux-libre${_kernelname} kernel package)" + depends=('lirc-libre-utils' "linux-libre${_kernelname}>=${_basekernel}" "linux-libre${_kernelname}<${_toohigh}") + replaces=('lirc+pctv') + [[ -z "$_kernelname" ]] || provides=("lirc-parabola=${pkgver}") + install=kmod.install + + replaces+=( "lirc${_kernelname}" "lirc-libre${_kernelname}") + conflicts+=("lirc${_kernelname}" "lirc-libre${_kernelname}") + provides+=( "lirc${_kernelname}=${pkgver}" "lirc-libre${_kernelname}=${pkgver}") + + cd "${srcdir}/lirc-${_pkgver}/drivers" + + # Set the correct extramodules directory for install + cp -f "${startdir}/${install}" "${startdir}/${install}.pkg" + true && install=${install}.pkg + sed -r "s/(_extramodules=).*/\1${_extramodules}/" -i "${startdir}/${install}" + + make DESTDIR="${pkgdir}" moduledir="/usr/lib/modules/${_extramodules}" install + gzip -9 "${pkgdir}/usr/lib/modules/${_extramodules}"/*.ko +} +if [[ -n "$_kernelname" ]]; then + eval "package() { _package_lirc; }" +else + eval "package_${_pkgname}() { _package_lirc; }" +fi + +package_lirc-utils-parabola() { + pkgdesc="Linux Infrared Remote Control utilities" + depends=('alsa-lib' 'libx11' 'libftdi-compat' 'libirman') + optdepends=('python2: pronto2lirc utility') + options=('strip') + backup=('etc/lirc/lirc_options.conf' 'etc/lirc/lircd.conf' 'etc/lirc/lircmd.conf') + + replaces=( 'lirc-utils' 'lirc-utils-libre') + conflicts=('lirc-utils' 'lirc-utils-libre') + provides=( "lirc-utils=$pkgver" "lirc-utils-libre=$pkgver") + install=kmod.install + + cd "${srcdir}/lirc-${_pkgver}" + + make DESTDIR="${pkgdir}" install + + install -Dm644 "${srcdir}"/irexec.service "${pkgdir}"/usr/lib/systemd/system/irexec.service + install -Dm644 "${srcdir}"/lirc.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/lirc.conf + + cp -rp remotes "${pkgdir}/usr/share/lirc" + chmod -R go-w "${pkgdir}/usr/share/lirc/" + + # install the logrotate config + install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc" + + # remove built modules + rm -r "${pkgdir}/usr/lib/modules" +} diff --git a/libre/lirc-parabola/irexec.service b/libre/lirc-parabola/irexec.service new file mode 100644 index 000000000..dffbbf5e0 --- /dev/null +++ b/libre/lirc-parabola/irexec.service @@ -0,0 +1,11 @@ +[Unit] +Description=LIRC command handler +After=network.target + +[Service] +Type=forking +ExecStart=/usr/bin/irexec --daemon + +[Install] +WantedBy=multi-user.target +Wants=lircd.service diff --git a/libre/lirc-parabola/kmod.install b/libre/lirc-parabola/kmod.install new file mode 100644 index 000000000..d4bd8cb34 --- /dev/null +++ b/libre/lirc-parabola/kmod.install @@ -0,0 +1,14 @@ +post_install() { + _extramodules=THIS_IS_AUTOMATICALLY_SET_BY_PKGBUILD + depmod $(cat /usr/lib/modules/${_extramodules}/version) +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + +# vim: ts=2 sw=2 et: diff --git a/libre/lirc-parabola/lirc-0.9.1a-fix-segfaults.patch b/libre/lirc-parabola/lirc-0.9.1a-fix-segfaults.patch new file mode 100644 index 000000000..a1f657551 --- /dev/null +++ b/libre/lirc-parabola/lirc-0.9.1a-fix-segfaults.patch @@ -0,0 +1,79 @@ +From 8459a881fd53525a47ae2f9180fa3644be5df343 Mon Sep 17 00:00:00 2001 +From: Alec Leamas <leamas@nowhere.net> +Date: Mon, 18 Aug 2014 10:00:49 +0200 +Subject: [PATCH 1/3] Fix segfault when starting lircd (AUR 41581) + +See https://bugs.archlinux.org/task/41581 +--- + lirc_options.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lirc_options.conf b/lirc_options.conf +index d8ddedd..11293e2 100644 +--- a/lirc_options.conf ++++ b/lirc_options.conf +@@ -7,7 +7,7 @@ nodaemon = False + permission = 666 + driver = default + device = /dev/lirc0 +-output = /var/run/lirc/lircd ++lircdfile = /var/run/lirc/lircd + pidfile = /var/run/lirc/lircd.pid + plugindir = /usr/lib/lirc/plugins + allow-simulate = No +-- +2.1.0 + + +From 4a9b45822890f50c5ed36660468e0a99cd4531e0 Mon Sep 17 00:00:00 2001 +From: Alec Leamas <leamas@nowhere.net> +Date: Mon, 18 Aug 2014 10:05:44 +0200 +Subject: [PATCH 2/3] lircd: Fix bad default for lircdfile. + +--- + daemons/lircd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/daemons/lircd.c b/daemons/lircd.c +index db8ea13..fa8cf17 100644 +--- a/daemons/lircd.c ++++ b/daemons/lircd.c +@@ -2147,7 +2147,7 @@ static void lircd_add_defaults(void) + "lircd:device", LIRC_DRIVER_DEVICE, + "lircd:listen", NULL , + "lircd:connect", NULL, +- "lircd:output", LIRCD, ++ "lircd:lircdfile", LIRCD, + "lircd:pidfile", PIDFILE, + "lircd:logfile", LOGFILE, + "lircd:debug", "False", +-- +2.1.0 + + +From 02252a9fe76c4a4fd809966971759c66af707f02 Mon Sep 17 00:00:00 2001 +From: Andreas Bader <andreasbader at badersystems.de> +Date: Tue, 19 Aug 2014 16:58:21 +0200 +Subject: [PATCH 3/3] 0.9.1a: Bugfix: segfault when parsing --connect in config + file. + +--- + daemons/lircd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/daemons/lircd.c b/daemons/lircd.c +index fa8cf17..7af4265 100644 +--- a/daemons/lircd.c ++++ b/daemons/lircd.c +@@ -2311,7 +2311,7 @@ int main(int argc, char **argv) + } + opt = options_getstring("lircd:connect"); + if (opt != NULL) { +- if (!add_peer_connection(optarg)) ++ if (!add_peer_connection(opt)) + return(EXIT_FAILURE); + } + # ifdef DEBUG +-- +2.1.0 + diff --git a/libre/lirc-parabola/lirc-utils.install b/libre/lirc-parabola/lirc-utils.install new file mode 100644 index 000000000..f7faa07eb --- /dev/null +++ b/libre/lirc-parabola/lirc-utils.install @@ -0,0 +1,13 @@ +post_install() { + systemd-tmpfiles --create lirc.conf +} + +post_upgrade() { + post_install + + if [[ "$(vercmp $2 1:0.9.1-1)" -lt 0 ]]; then + echo ':: lirc.service and lircm.service have been replaced' + echo ' by the upstream unit files lircd.service and' + echo ' lircmd.service.' + fi +} diff --git a/libre/lirc-parabola/lirc.logrotate b/libre/lirc-parabola/lirc.logrotate new file mode 100644 index 000000000..623c4f328 --- /dev/null +++ b/libre/lirc-parabola/lirc.logrotate @@ -0,0 +1,5 @@ +/var/log/lircd { + missingok + notifempty + delaycompress +} diff --git a/libre/lirc-parabola/lirc.tmpfiles b/libre/lirc-parabola/lirc.tmpfiles new file mode 100644 index 000000000..0b80e2e47 --- /dev/null +++ b/libre/lirc-parabola/lirc.tmpfiles @@ -0,0 +1 @@ +d /run/lirc 0755 root root - diff --git a/libre/lirc-parabola/wpc8769l-build-fix.patch b/libre/lirc-parabola/wpc8769l-build-fix.patch new file mode 100644 index 000000000..5e25693ab --- /dev/null +++ b/libre/lirc-parabola/wpc8769l-build-fix.patch @@ -0,0 +1,90 @@ +diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +index 790efa2..4248fe9 100644 +--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c ++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +@@ -51,17 +51,13 @@ + #include <linux/irq.h> + + #include <linux/acpi.h> ++#include <linux/types.h> + + #include <linux/platform_device.h> ++#include <asm-generic/bitops/find.h> + +-#include "drivers/kcompat.h" +-#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35) +-#include <media/lirc.h> +-#include <media/lirc_dev.h> +-#else +-#include "drivers/lirc.h" +-#include "drivers/lirc_dev/lirc_dev.h" +-#endif ++#include "media/lirc_dev.h" ++#include "media/lirc.h" + + #include "lirc_wpc8769l.h" + +@@ -105,11 +101,11 @@ static unsigned int baseport2; + static unsigned int irq; + + /* Debugging flag. */ +-static int debug; ++static bool debug; + + /* If true, we skip ACPI autodetection and use the parameter-supplied I/O and + * IRQ. */ +-static int skip_probe; ++static bool skip_probe; + + /* Whether the device is open or not. */ + static int lirc_wpc8769l_is_open; +@@ -360,14 +356,14 @@ static irqreturn_t irq_handler(int irqno, void *blah, struct pt_regs *regs) + size = count << 3; + + ldata = (unsigned long *) data_buf; +- next_one = generic_find_next_le_bit(ldata, size, 0); ++ next_one = find_next_bit(ldata, size, 0); + + if (next_one > 0) + put_pulse_bit(next_one + * WPC8769L_USECS_PER_BIT); + + while (next_one < size) { +- next_zero = generic_find_next_zero_le_bit(ldata, ++ next_zero = find_next_zero_bit(ldata, + size, next_one + 1); + + put_space_bit( +@@ -375,7 +371,7 @@ static irqreturn_t irq_handler(int irqno, void *blah, struct pt_regs *regs) + * WPC8769L_USECS_PER_BIT); + + if (next_zero < size) { +- next_one = generic_find_next_le_bit(ldata, ++ next_one = find_next_bit(ldata, + size, next_zero + 1); + + put_pulse_bit( +@@ -922,12 +918,12 @@ static int wpc8769l_acpi_detect(void) + #ifdef MODULE + static struct platform_device *lirc_wpc8769l_platform_dev; + +-static int __devinit lirc_wpc8769l_probe(struct platform_device *dev) ++static int lirc_wpc8769l_probe(struct platform_device *dev) + { + return 0; + } + +-static int __devexit lirc_wpc8769l_remove(struct platform_device *dev) ++static int lirc_wpc8769l_remove(struct platform_device *dev) + { + return 0; + } +@@ -955,7 +951,7 @@ static int lirc_wpc8769l_resume(struct platform_device *dev) + + static struct platform_driver lirc_wpc8769l_platform_driver = { + .probe = lirc_wpc8769l_probe, +- .remove = __devexit_p(lirc_wpc8769l_remove), ++ .remove = lirc_wpc8769l_remove, + .suspend = lirc_wpc8769l_suspend, + .resume = lirc_wpc8769l_resume, + .driver = { |