Date: Saturday, April 27, 2013 @ 13:21:26 Author: tpowa Revision: 183709
archrelease: copy trunk to testing-i686, testing-x86_64 Added: lirc/repos/testing-i686/ lirc/repos/testing-i686/PKGBUILD (from rev 183708, lirc/trunk/PKGBUILD) lirc/repos/testing-i686/irexec.service (from rev 183708, lirc/trunk/irexec.service) lirc/repos/testing-i686/kernel-2.6.39.patch (from rev 183708, lirc/trunk/kernel-2.6.39.patch) lirc/repos/testing-i686/linux-3.8.patch (from rev 183708, lirc/trunk/linux-3.8.patch) lirc/repos/testing-i686/lirc-utils.install (from rev 183708, lirc/trunk/lirc-utils.install) lirc/repos/testing-i686/lirc.install (from rev 183708, lirc/trunk/lirc.install) lirc/repos/testing-i686/lirc.logrotate (from rev 183708, lirc/trunk/lirc.logrotate) lirc/repos/testing-i686/lirc.service (from rev 183708, lirc/trunk/lirc.service) lirc/repos/testing-i686/lirc.tmpfiles (from rev 183708, lirc/trunk/lirc.tmpfiles) lirc/repos/testing-i686/lirc_atiusb-kfifo.patch (from rev 183708, lirc/trunk/lirc_atiusb-kfifo.patch) lirc/repos/testing-i686/lirc_wpc8769l.patch (from rev 183708, lirc/trunk/lirc_wpc8769l.patch) lirc/repos/testing-i686/lircd-handle-large-config.patch (from rev 183708, lirc/trunk/lircd-handle-large-config.patch) lirc/repos/testing-i686/lircm.service (from rev 183708, lirc/trunk/lircm.service) lirc/repos/testing-x86_64/ lirc/repos/testing-x86_64/PKGBUILD (from rev 183708, lirc/trunk/PKGBUILD) lirc/repos/testing-x86_64/irexec.service (from rev 183708, lirc/trunk/irexec.service) lirc/repos/testing-x86_64/kernel-2.6.39.patch (from rev 183708, lirc/trunk/kernel-2.6.39.patch) lirc/repos/testing-x86_64/linux-3.8.patch (from rev 183708, lirc/trunk/linux-3.8.patch) lirc/repos/testing-x86_64/lirc-utils.install (from rev 183708, lirc/trunk/lirc-utils.install) lirc/repos/testing-x86_64/lirc.install (from rev 183708, lirc/trunk/lirc.install) lirc/repos/testing-x86_64/lirc.logrotate (from rev 183708, lirc/trunk/lirc.logrotate) lirc/repos/testing-x86_64/lirc.service (from rev 183708, lirc/trunk/lirc.service) lirc/repos/testing-x86_64/lirc.tmpfiles (from rev 183708, lirc/trunk/lirc.tmpfiles) lirc/repos/testing-x86_64/lirc_atiusb-kfifo.patch (from rev 183708, lirc/trunk/lirc_atiusb-kfifo.patch) lirc/repos/testing-x86_64/lirc_wpc8769l.patch (from rev 183708, lirc/trunk/lirc_wpc8769l.patch) lirc/repos/testing-x86_64/lircd-handle-large-config.patch (from rev 183708, lirc/trunk/lircd-handle-large-config.patch) lirc/repos/testing-x86_64/lircm.service (from rev 183708, lirc/trunk/lircm.service) ------------------------------------------------+ testing-i686/PKGBUILD | 107 +++++++++++++++++++++++ testing-i686/irexec.service | 11 ++ testing-i686/kernel-2.6.39.patch | 54 +++++++++++ testing-i686/linux-3.8.patch | 80 +++++++++++++++++ testing-i686/lirc-utils.install | 7 + testing-i686/lirc.install | 16 +++ testing-i686/lirc.logrotate | 5 + testing-i686/lirc.service | 11 ++ testing-i686/lirc.tmpfiles | 1 testing-i686/lirc_atiusb-kfifo.patch | 31 ++++++ testing-i686/lirc_wpc8769l.patch | 88 ++++++++++++++++++ testing-i686/lircd-handle-large-config.patch | 39 ++++++++ testing-i686/lircm.service | 11 ++ testing-x86_64/PKGBUILD | 107 +++++++++++++++++++++++ testing-x86_64/irexec.service | 11 ++ testing-x86_64/kernel-2.6.39.patch | 54 +++++++++++ testing-x86_64/linux-3.8.patch | 80 +++++++++++++++++ testing-x86_64/lirc-utils.install | 7 + testing-x86_64/lirc.install | 16 +++ testing-x86_64/lirc.logrotate | 5 + testing-x86_64/lirc.service | 11 ++ testing-x86_64/lirc.tmpfiles | 1 testing-x86_64/lirc_atiusb-kfifo.patch | 31 ++++++ testing-x86_64/lirc_wpc8769l.patch | 88 ++++++++++++++++++ testing-x86_64/lircd-handle-large-config.patch | 39 ++++++++ testing-x86_64/lircm.service | 11 ++ 26 files changed, 922 insertions(+) Copied: lirc/repos/testing-i686/PKGBUILD (from rev 183708, lirc/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,107 @@ +# $Id$ +# Maintainer: Paul Mattal <p...@archlinux.org> + +pkgbase=lirc +pkgname=('lirc' 'lirc-utils') +pkgver=0.9.0 +pkgrel=43 +epoch=1 +_extramodules=extramodules-3.8-ARCH +arch=('i686' 'x86_64') +url="http://www.lirc.org/" +license=('GPL') +### NOTICE don't forget to bump version in depends in package_lirc +makedepends=('help2man' 'linux-headers>=3.8' 'linux-headers<3.9' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2') +options=('!makeflags' '!strip') +source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2 + lirc_wpc8769l.patch + lircd-handle-large-config.patch + lirc_atiusb-kfifo.patch + kernel-2.6.39.patch + linux-3.8.patch + lirc.logrotate + lirc.service lircm.service irexec.service + lirc.tmpfiles) + +build() { + _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" + cd "${srcdir}/lirc-${pkgver}" + patch -Np1 -i "${srcdir}/lirc_wpc8769l.patch" + patch -Np1 -i "${srcdir}/lircd-handle-large-config.patch" + patch -Np1 -i "${srcdir}/lirc_atiusb-kfifo.patch" + patch -Np1 -i "${srcdir}/kernel-2.6.39.patch" + patch -Np1 -i "${srcdir}/linux-3.8.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 + # fix for new automake #33497 + sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADER/' configure.ac + libtoolize + autoreconf + + PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \ + --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \ + --with-moduledir=/usr/lib/modules/${_kernver}/kernel/drivers/misc \ + --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::" \ + -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile + make +} + +package_lirc() { + pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel" + depends=('lirc-utils' 'linux>=3.8' 'linux<3.9') + replaces=('lirc+pctv') + install=lirc.install + + cd "${srcdir}/lirc-${pkgver}/drivers" + make DESTDIR="${pkgdir}" moduledir="/usr/lib/modules/${_extramodules}" install + + # set the kernel we've built for inside the install script + sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${_extramodules}/g" "${startdir}/lirc.install" + # gzip -9 modules + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; +} + +package_lirc-utils() { + pkgdesc="Linux Infrared Remote Control utils" + depends=('alsa-lib' 'libx11' 'libftdi' 'libirman') + optdepends=('python2: pronto2lirc utility') + options=('strip' '!libtool') + install=lirc-utils.install + + cd "${srcdir}/lirc-${pkgver}" + make DESTDIR="${pkgdir}" install + install -D -m644 "${srcdir}"/lirc.service "${pkgdir}"/usr/lib/systemd/system/lirc.service + install -D -m644 "${srcdir}"/lircm.service "${pkgdir}"/usr/lib/systemd/system/lircm.service + install -D -m644 "${srcdir}"/irexec.service "${pkgdir}"/usr/lib/systemd/system/irexec.service + install -D -m644 "${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" + + install -d "${pkgdir}/etc/lirc" + + # remove built modules + rm -r "${pkgdir}/usr/lib/modules" +} +md5sums=('b232aef26f23fe33ea8305d276637086' + '1cce37e18e3f6f46044abab29016d18f' + 'b70cc9640505205446ec47b7d4779f38' + '1f8b104a2365d9f93404b143f499059b' + '087a7d102e1c96bf1179f38db2b0b237' + '9ee196bd03ea44af5a752fb0cc6ca96a' + '3deb02604b37811d41816e9b4385fcc3' + 'dab8a73bcc5fd5479d8750493d8d97dc' + 'c2e20fe68b034df752dba2773db16ebe' + '07131d117fcfe9dcd50c453c3a5e9531' + 'febf25c154a7d36f01159e84f26c2d9a') Copied: lirc/repos/testing-i686/irexec.service (from rev 183708, lirc/trunk/irexec.service) =================================================================== --- testing-i686/irexec.service (rev 0) +++ testing-i686/irexec.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=IR Exec +After=lirc.service +Wants=lirc.service + +[Service] +ExecStart=/usr/bin/irexec --daemon +Type=forking + +[Install] +WantedBy=multi-user.target Copied: lirc/repos/testing-i686/kernel-2.6.39.patch (from rev 183708, lirc/trunk/kernel-2.6.39.patch) =================================================================== --- testing-i686/kernel-2.6.39.patch (rev 0) +++ testing-i686/kernel-2.6.39.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,54 @@ +diff -ru lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c 2011-06-07 17:02:20.356580306 +0200 +@@ -48,7 +48,6 @@ + #include <linux/slab.h> + #include <linux/module.h> + #include <linux/kmod.h> +-#include <linux/smp_lock.h> + #include <linux/completion.h> + #include <linux/uaccess.h> + #include <linux/usb.h> +diff -ru lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c +--- lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c 2011-06-07 17:04:19.725933627 +0200 +@@ -555,8 +555,8 @@ + kfree(ir); + return -EINVAL; + } +- printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n", +- adap->id, addr, ir->c.name); ++ printk(KERN_INFO "lirc_i2c: chip found @ 0x%02x (%s)\n", ++ addr, ir->c.name); + + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) + /* register device */ +diff -ru lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-06-07 17:07:23.984935411 +0200 +@@ -361,14 +361,14 @@ + size = count << 3; + + ldata = (unsigned long *) data_buf; +- next_one = generic_find_next_le_bit(ldata, size, 0); ++ next_one = find_next_zero_bit_le(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_le(ldata, + size, next_one + 1); + + put_space_bit( +@@ -376,7 +376,7 @@ + * WPC8769L_USECS_PER_BIT); + + if (next_zero < size) { +- next_one = generic_find_next_le_bit(ldata, ++ next_one = find_next_bit_le(ldata, + size, next_zero + 1); + + put_pulse_bit( Copied: lirc/repos/testing-i686/linux-3.8.patch (from rev 183708, lirc/trunk/linux-3.8.patch) =================================================================== --- testing-i686/linux-3.8.patch (rev 0) +++ testing-i686/linux-3.8.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,80 @@ +diff -upr lirc-0.9.0.orig/drivers/lirc_serial/lirc_serial.c lirc-0.9.0/drivers/lirc_serial/lirc_serial.c +--- lirc-0.9.0.orig/drivers/lirc_serial/lirc_serial.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_serial/lirc_serial.c 2013-02-21 02:39:55.000000000 +0200 +@@ -1103,12 +1103,12 @@ static struct lirc_driver driver = { + + static struct platform_device *lirc_serial_dev; + +-static int __devinit lirc_serial_probe(struct platform_device *dev) ++static int lirc_serial_probe(struct platform_device *dev) + { + return 0; + } + +-static int __devexit lirc_serial_remove(struct platform_device *dev) ++static int lirc_serial_remove(struct platform_device *dev) + { + return 0; + } +@@ -1159,7 +1159,7 @@ static int lirc_serial_resume(struct pla + + static struct platform_driver lirc_serial_driver = { + .probe = lirc_serial_probe, +- .remove = __devexit_p(lirc_serial_remove), ++ .remove = lirc_serial_remove, + .suspend = lirc_serial_suspend, + .resume = lirc_serial_resume, + .driver = { +diff -upr lirc-0.9.0.orig/drivers/lirc_sir/lirc_sir.c lirc-0.9.0/drivers/lirc_sir/lirc_sir.c +--- lirc-0.9.0.orig/drivers/lirc_sir/lirc_sir.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_sir/lirc_sir.c 2013-02-21 02:38:24.000000000 +0200 +@@ -1290,19 +1290,19 @@ static int init_lirc_sir(void) + return 0; + } + +-static int __devinit lirc_sir_probe(struct platform_device *dev) ++static int lirc_sir_probe(struct platform_device *dev) + { + return 0; + } + +-static int __devexit lirc_sir_remove(struct platform_device *dev) ++static int lirc_sir_remove(struct platform_device *dev) + { + return 0; + } + + static struct platform_driver lirc_sir_driver = { + .probe = lirc_sir_probe, +- .remove = __devexit_p(lirc_sir_remove), ++ .remove = lirc_sir_remove, + .driver = { + .name = "lirc_sir", + .owner = THIS_MODULE, +diff -upr lirc-0.9.0.orig/drivers/lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0/drivers/lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0.orig/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2013-02-21 02:39:39.000000000 +0200 +@@ -930,12 +930,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; + } +@@ -963,7 +963,7 @@ static int lirc_wpc8769l_resume(struct p + + 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 = { Copied: lirc/repos/testing-i686/lirc-utils.install (from rev 183708, lirc/trunk/lirc-utils.install) =================================================================== --- testing-i686/lirc-utils.install (rev 0) +++ testing-i686/lirc-utils.install 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,7 @@ +post_install() { + systemd-tmpfiles --create lirc.conf +} + +post_upgrade() { + post_install +} Copied: lirc/repos/testing-i686/lirc.install (from rev 183708, lirc/trunk/lirc.install) =================================================================== --- testing-i686/lirc.install (rev 0) +++ testing-i686/lirc.install 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,16 @@ +EXTRAMODULES=extramodules-3.8-ARCH + +post_install() { + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) > /dev/null 2>&1 +} + +post_upgrade() { + post_install +} + +# arg 1: the old package version +post_remove() { + post_install +} Copied: lirc/repos/testing-i686/lirc.logrotate (from rev 183708, lirc/trunk/lirc.logrotate) =================================================================== --- testing-i686/lirc.logrotate (rev 0) +++ testing-i686/lirc.logrotate 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,5 @@ +/var/log/lircd { + missingok + notifempty + delaycompress +} Copied: lirc/repos/testing-i686/lirc.service (from rev 183708, lirc/trunk/lirc.service) =================================================================== --- testing-i686/lirc.service (rev 0) +++ testing-i686/lirc.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=Linux Infrared Remote Control + +[Service] +ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd +ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid +Type=forking +PIDFile=/run/lirc/lircd.pid + +[Install] +WantedBy=multi-user.target Copied: lirc/repos/testing-i686/lirc.tmpfiles (from rev 183708, lirc/trunk/lirc.tmpfiles) =================================================================== --- testing-i686/lirc.tmpfiles (rev 0) +++ testing-i686/lirc.tmpfiles 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1 @@ +d /run/lirc 0755 root root - Copied: lirc/repos/testing-i686/lirc_atiusb-kfifo.patch (from rev 183708, lirc/trunk/lirc_atiusb-kfifo.patch) =================================================================== --- testing-i686/lirc_atiusb-kfifo.patch (rev 0) +++ testing-i686/lirc_atiusb-kfifo.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,31 @@ +From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001 +From: Jason Martin <public...@gmail.com> +Date: Fri, 3 Jun 2011 00:12:51 -0400 +Subject: [PATCH] lirc_atiusb: fix buffer alloc to work with new kfifo + +I came across posts with regards to lirc_atiusb and its compatibility +with newer kernels, and their use of kfifo.I spent a little bit of time +this evening, and was able to correct the issues with the driver, and +now have a functioning lirc_atiusb device under the 2.6.38 kernel. + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + drivers/lirc_atiusb/lirc_atiusb.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/lirc_atiusb/lirc_atiusb.c b/drivers/lirc_atiusb/lirc_atiusb.c +index 52080de..bf2b631 100644 +--- a/drivers/lirc_atiusb/lirc_atiusb.c ++++ b/drivers/lirc_atiusb/lirc_atiusb.c +@@ -1048,7 +1048,7 @@ static struct atirf_dev *new_irctl(struct usb_interface *intf) + goto new_irctl_failure_check; + } + +- if (lirc_buffer_init(driver->rbuf, dclen, 1)) { ++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) { + mem_failure = 4; + goto new_irctl_failure_check; + } +-- +1.7.0.1 + Copied: lirc/repos/testing-i686/lirc_wpc8769l.patch (from rev 183708, lirc/trunk/lirc_wpc8769l.patch) =================================================================== --- testing-i686/lirc_wpc8769l.patch (rev 0) +++ testing-i686/lirc_wpc8769l.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,88 @@ +From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skanda...@gmail.com> +Date: Wed, 30 Mar 2011 16:46:35 -0400 +Subject: [PATCH] Make lirc_wpc8769l functional again + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + drivers/lirc_wpc8769l/lirc_wpc8769l.c | 28 +++++++++++++++++----------- + 1 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +index f820d11..4d04063 100644 +--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c ++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +@@ -816,10 +816,6 @@ static int set_use_inc(void *data) + /* Reset last timeout value. */ + lastus = 0; + +- /* Init the read buffer. */ +- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) +- return -ENOMEM; +- + /* Acquire the IRQ. */ + result = request_irq(irq, irq_handler, + IRQF_DISABLED | IRQF_SHARED, +@@ -863,9 +859,6 @@ static void set_use_dec(void *data) + /* Free the IRQ. */ + free_irq(irq, THIS_MODULE); + dprintk("Freed IRQ %d\n", irq); +- +- /* Free the RX buffer. */ +- lirc_buffer_free(&rbuf); + } + + static struct lirc_driver driver = { +@@ -1065,19 +1058,29 @@ static int __init lirc_wpc8769l_module_init(void) + /* Do load-time checks. */ + wpc8769l_power_up_and_check_if_we_woke_us_up(); + ++ /* Init the read buffer. */ ++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) { ++ rc = -ENOMEM; ++ goto exit_platform_exit; ++ } ++ + /* Configure the driver hooks. */ + driver.features = LIRC_CAN_REC_MODE2; ++ driver.dev = &lirc_wpc8769l_platform_dev->dev; + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + eprintk("lirc_register_driver failed!\n"); + rc = -EIO; +- goto exit_platform_exit; ++ goto exit_release_buffer; + } + + iprintk("Driver loaded.\n"); + + return 0; /* Everything OK. */ + ++exit_release_buffer: ++ lirc_buffer_free(&rbuf); ++ + exit_platform_exit: + lirc_wpc8769l_platform_exit(); + +@@ -1095,12 +1098,15 @@ module_init(lirc_wpc8769l_module_init); + + static void __exit lirc_wpc8769l_module_exit(void) + { +- /* Unregister the platform driver and device. */ +- lirc_wpc8769l_platform_exit(); +- + /* Unregister the LIRC driver. */ + lirc_unregister_driver(driver.minor); + ++ /* Free the buffer. */ ++ lirc_buffer_free(&rbuf); ++ ++ /* Unregister the platform driver and device. */ ++ lirc_wpc8769l_platform_exit(); ++ + /* Release the second range. */ + if (baseport2) + release_region(baseport2, WPC8769L_IO_REGION_2_SIZE); +-- +1.7.0.1 + Copied: lirc/repos/testing-i686/lircd-handle-large-config.patch (from rev 183708, lirc/trunk/lircd-handle-large-config.patch) =================================================================== --- testing-i686/lircd-handle-large-config.patch (rev 0) +++ testing-i686/lircd-handle-large-config.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,39 @@ +From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001 +From: Jarod Wilson <ja...@redhat.com> +Date: Wed, 6 Apr 2011 11:04:12 -0400 +Subject: [PATCH] lircd: handle larger config files in write_socket better + +Pointed out by Michael Zanetti on list, irsend LIST has issues with long +config files, which didn't exist in maintainer mode, as we were using a +do while loop to make sure we spit out everything. Just use that loop +all the time. + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + daemons/lircd.c | 8 ++------ + 1 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/daemons/lircd.c b/daemons/lircd.c +index 6c21a3a..ddcca05 100644 +--- a/daemons/lircd.c ++++ b/daemons/lircd.c +@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len) + int done, todo = len; + + while (todo) { +-#ifdef SIM_REC + do { + done = write(fd, buf, todo); +- } +- while (done < 0 && errno == EAGAIN); +-#else +- done = write(fd, buf, todo); +-#endif ++ } while (done < 0 && errno == EAGAIN); ++ + if (done <= 0) + return (done); + buf += done; +-- +1.7.0.1 + Copied: lirc/repos/testing-i686/lircm.service (from rev 183708, lirc/trunk/lircm.service) =================================================================== --- testing-i686/lircm.service (rev 0) +++ testing-i686/lircm.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=LIRC Mouse +After=lirc.service +Wants=lirc.service + +[Service] +ExecStart=/usr/sbin/lircmd -u +Type=forking + +[Install] +WantedBy=multi-user.target Copied: lirc/repos/testing-x86_64/PKGBUILD (from rev 183708, lirc/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,107 @@ +# $Id$ +# Maintainer: Paul Mattal <p...@archlinux.org> + +pkgbase=lirc +pkgname=('lirc' 'lirc-utils') +pkgver=0.9.0 +pkgrel=43 +epoch=1 +_extramodules=extramodules-3.8-ARCH +arch=('i686' 'x86_64') +url="http://www.lirc.org/" +license=('GPL') +### NOTICE don't forget to bump version in depends in package_lirc +makedepends=('help2man' 'linux-headers>=3.8' 'linux-headers<3.9' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2') +options=('!makeflags' '!strip') +source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2 + lirc_wpc8769l.patch + lircd-handle-large-config.patch + lirc_atiusb-kfifo.patch + kernel-2.6.39.patch + linux-3.8.patch + lirc.logrotate + lirc.service lircm.service irexec.service + lirc.tmpfiles) + +build() { + _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" + cd "${srcdir}/lirc-${pkgver}" + patch -Np1 -i "${srcdir}/lirc_wpc8769l.patch" + patch -Np1 -i "${srcdir}/lircd-handle-large-config.patch" + patch -Np1 -i "${srcdir}/lirc_atiusb-kfifo.patch" + patch -Np1 -i "${srcdir}/kernel-2.6.39.patch" + patch -Np1 -i "${srcdir}/linux-3.8.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 + # fix for new automake #33497 + sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADER/' configure.ac + libtoolize + autoreconf + + PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \ + --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \ + --with-moduledir=/usr/lib/modules/${_kernver}/kernel/drivers/misc \ + --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::" \ + -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile + make +} + +package_lirc() { + pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel" + depends=('lirc-utils' 'linux>=3.8' 'linux<3.9') + replaces=('lirc+pctv') + install=lirc.install + + cd "${srcdir}/lirc-${pkgver}/drivers" + make DESTDIR="${pkgdir}" moduledir="/usr/lib/modules/${_extramodules}" install + + # set the kernel we've built for inside the install script + sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${_extramodules}/g" "${startdir}/lirc.install" + # gzip -9 modules + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; +} + +package_lirc-utils() { + pkgdesc="Linux Infrared Remote Control utils" + depends=('alsa-lib' 'libx11' 'libftdi' 'libirman') + optdepends=('python2: pronto2lirc utility') + options=('strip' '!libtool') + install=lirc-utils.install + + cd "${srcdir}/lirc-${pkgver}" + make DESTDIR="${pkgdir}" install + install -D -m644 "${srcdir}"/lirc.service "${pkgdir}"/usr/lib/systemd/system/lirc.service + install -D -m644 "${srcdir}"/lircm.service "${pkgdir}"/usr/lib/systemd/system/lircm.service + install -D -m644 "${srcdir}"/irexec.service "${pkgdir}"/usr/lib/systemd/system/irexec.service + install -D -m644 "${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" + + install -d "${pkgdir}/etc/lirc" + + # remove built modules + rm -r "${pkgdir}/usr/lib/modules" +} +md5sums=('b232aef26f23fe33ea8305d276637086' + '1cce37e18e3f6f46044abab29016d18f' + 'b70cc9640505205446ec47b7d4779f38' + '1f8b104a2365d9f93404b143f499059b' + '087a7d102e1c96bf1179f38db2b0b237' + '9ee196bd03ea44af5a752fb0cc6ca96a' + '3deb02604b37811d41816e9b4385fcc3' + 'dab8a73bcc5fd5479d8750493d8d97dc' + 'c2e20fe68b034df752dba2773db16ebe' + '07131d117fcfe9dcd50c453c3a5e9531' + 'febf25c154a7d36f01159e84f26c2d9a') Copied: lirc/repos/testing-x86_64/irexec.service (from rev 183708, lirc/trunk/irexec.service) =================================================================== --- testing-x86_64/irexec.service (rev 0) +++ testing-x86_64/irexec.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=IR Exec +After=lirc.service +Wants=lirc.service + +[Service] +ExecStart=/usr/bin/irexec --daemon +Type=forking + +[Install] +WantedBy=multi-user.target Copied: lirc/repos/testing-x86_64/kernel-2.6.39.patch (from rev 183708, lirc/trunk/kernel-2.6.39.patch) =================================================================== --- testing-x86_64/kernel-2.6.39.patch (rev 0) +++ testing-x86_64/kernel-2.6.39.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,54 @@ +diff -ru lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c 2011-06-07 17:02:20.356580306 +0200 +@@ -48,7 +48,6 @@ + #include <linux/slab.h> + #include <linux/module.h> + #include <linux/kmod.h> +-#include <linux/smp_lock.h> + #include <linux/completion.h> + #include <linux/uaccess.h> + #include <linux/usb.h> +diff -ru lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c +--- lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c 2011-06-07 17:04:19.725933627 +0200 +@@ -555,8 +555,8 @@ + kfree(ir); + return -EINVAL; + } +- printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n", +- adap->id, addr, ir->c.name); ++ printk(KERN_INFO "lirc_i2c: chip found @ 0x%02x (%s)\n", ++ addr, ir->c.name); + + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) + /* register device */ +diff -ru lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-06-07 17:07:23.984935411 +0200 +@@ -361,14 +361,14 @@ + size = count << 3; + + ldata = (unsigned long *) data_buf; +- next_one = generic_find_next_le_bit(ldata, size, 0); ++ next_one = find_next_zero_bit_le(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_le(ldata, + size, next_one + 1); + + put_space_bit( +@@ -376,7 +376,7 @@ + * WPC8769L_USECS_PER_BIT); + + if (next_zero < size) { +- next_one = generic_find_next_le_bit(ldata, ++ next_one = find_next_bit_le(ldata, + size, next_zero + 1); + + put_pulse_bit( Copied: lirc/repos/testing-x86_64/linux-3.8.patch (from rev 183708, lirc/trunk/linux-3.8.patch) =================================================================== --- testing-x86_64/linux-3.8.patch (rev 0) +++ testing-x86_64/linux-3.8.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,80 @@ +diff -upr lirc-0.9.0.orig/drivers/lirc_serial/lirc_serial.c lirc-0.9.0/drivers/lirc_serial/lirc_serial.c +--- lirc-0.9.0.orig/drivers/lirc_serial/lirc_serial.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_serial/lirc_serial.c 2013-02-21 02:39:55.000000000 +0200 +@@ -1103,12 +1103,12 @@ static struct lirc_driver driver = { + + static struct platform_device *lirc_serial_dev; + +-static int __devinit lirc_serial_probe(struct platform_device *dev) ++static int lirc_serial_probe(struct platform_device *dev) + { + return 0; + } + +-static int __devexit lirc_serial_remove(struct platform_device *dev) ++static int lirc_serial_remove(struct platform_device *dev) + { + return 0; + } +@@ -1159,7 +1159,7 @@ static int lirc_serial_resume(struct pla + + static struct platform_driver lirc_serial_driver = { + .probe = lirc_serial_probe, +- .remove = __devexit_p(lirc_serial_remove), ++ .remove = lirc_serial_remove, + .suspend = lirc_serial_suspend, + .resume = lirc_serial_resume, + .driver = { +diff -upr lirc-0.9.0.orig/drivers/lirc_sir/lirc_sir.c lirc-0.9.0/drivers/lirc_sir/lirc_sir.c +--- lirc-0.9.0.orig/drivers/lirc_sir/lirc_sir.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_sir/lirc_sir.c 2013-02-21 02:38:24.000000000 +0200 +@@ -1290,19 +1290,19 @@ static int init_lirc_sir(void) + return 0; + } + +-static int __devinit lirc_sir_probe(struct platform_device *dev) ++static int lirc_sir_probe(struct platform_device *dev) + { + return 0; + } + +-static int __devexit lirc_sir_remove(struct platform_device *dev) ++static int lirc_sir_remove(struct platform_device *dev) + { + return 0; + } + + static struct platform_driver lirc_sir_driver = { + .probe = lirc_sir_probe, +- .remove = __devexit_p(lirc_sir_remove), ++ .remove = lirc_sir_remove, + .driver = { + .name = "lirc_sir", + .owner = THIS_MODULE, +diff -upr lirc-0.9.0.orig/drivers/lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0/drivers/lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0.orig/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2013-02-21 02:36:25.000000000 +0200 ++++ lirc-0.9.0/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2013-02-21 02:39:39.000000000 +0200 +@@ -930,12 +930,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; + } +@@ -963,7 +963,7 @@ static int lirc_wpc8769l_resume(struct p + + 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 = { Copied: lirc/repos/testing-x86_64/lirc-utils.install (from rev 183708, lirc/trunk/lirc-utils.install) =================================================================== --- testing-x86_64/lirc-utils.install (rev 0) +++ testing-x86_64/lirc-utils.install 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,7 @@ +post_install() { + systemd-tmpfiles --create lirc.conf +} + +post_upgrade() { + post_install +} Copied: lirc/repos/testing-x86_64/lirc.install (from rev 183708, lirc/trunk/lirc.install) =================================================================== --- testing-x86_64/lirc.install (rev 0) +++ testing-x86_64/lirc.install 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,16 @@ +EXTRAMODULES=extramodules-3.8-ARCH + +post_install() { + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) > /dev/null 2>&1 +} + +post_upgrade() { + post_install +} + +# arg 1: the old package version +post_remove() { + post_install +} Copied: lirc/repos/testing-x86_64/lirc.logrotate (from rev 183708, lirc/trunk/lirc.logrotate) =================================================================== --- testing-x86_64/lirc.logrotate (rev 0) +++ testing-x86_64/lirc.logrotate 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,5 @@ +/var/log/lircd { + missingok + notifempty + delaycompress +} Copied: lirc/repos/testing-x86_64/lirc.service (from rev 183708, lirc/trunk/lirc.service) =================================================================== --- testing-x86_64/lirc.service (rev 0) +++ testing-x86_64/lirc.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=Linux Infrared Remote Control + +[Service] +ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd +ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid +Type=forking +PIDFile=/run/lirc/lircd.pid + +[Install] +WantedBy=multi-user.target Copied: lirc/repos/testing-x86_64/lirc.tmpfiles (from rev 183708, lirc/trunk/lirc.tmpfiles) =================================================================== --- testing-x86_64/lirc.tmpfiles (rev 0) +++ testing-x86_64/lirc.tmpfiles 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1 @@ +d /run/lirc 0755 root root - Copied: lirc/repos/testing-x86_64/lirc_atiusb-kfifo.patch (from rev 183708, lirc/trunk/lirc_atiusb-kfifo.patch) =================================================================== --- testing-x86_64/lirc_atiusb-kfifo.patch (rev 0) +++ testing-x86_64/lirc_atiusb-kfifo.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,31 @@ +From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001 +From: Jason Martin <public...@gmail.com> +Date: Fri, 3 Jun 2011 00:12:51 -0400 +Subject: [PATCH] lirc_atiusb: fix buffer alloc to work with new kfifo + +I came across posts with regards to lirc_atiusb and its compatibility +with newer kernels, and their use of kfifo.I spent a little bit of time +this evening, and was able to correct the issues with the driver, and +now have a functioning lirc_atiusb device under the 2.6.38 kernel. + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + drivers/lirc_atiusb/lirc_atiusb.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/lirc_atiusb/lirc_atiusb.c b/drivers/lirc_atiusb/lirc_atiusb.c +index 52080de..bf2b631 100644 +--- a/drivers/lirc_atiusb/lirc_atiusb.c ++++ b/drivers/lirc_atiusb/lirc_atiusb.c +@@ -1048,7 +1048,7 @@ static struct atirf_dev *new_irctl(struct usb_interface *intf) + goto new_irctl_failure_check; + } + +- if (lirc_buffer_init(driver->rbuf, dclen, 1)) { ++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) { + mem_failure = 4; + goto new_irctl_failure_check; + } +-- +1.7.0.1 + Copied: lirc/repos/testing-x86_64/lirc_wpc8769l.patch (from rev 183708, lirc/trunk/lirc_wpc8769l.patch) =================================================================== --- testing-x86_64/lirc_wpc8769l.patch (rev 0) +++ testing-x86_64/lirc_wpc8769l.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,88 @@ +From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skanda...@gmail.com> +Date: Wed, 30 Mar 2011 16:46:35 -0400 +Subject: [PATCH] Make lirc_wpc8769l functional again + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + drivers/lirc_wpc8769l/lirc_wpc8769l.c | 28 +++++++++++++++++----------- + 1 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +index f820d11..4d04063 100644 +--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c ++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +@@ -816,10 +816,6 @@ static int set_use_inc(void *data) + /* Reset last timeout value. */ + lastus = 0; + +- /* Init the read buffer. */ +- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) +- return -ENOMEM; +- + /* Acquire the IRQ. */ + result = request_irq(irq, irq_handler, + IRQF_DISABLED | IRQF_SHARED, +@@ -863,9 +859,6 @@ static void set_use_dec(void *data) + /* Free the IRQ. */ + free_irq(irq, THIS_MODULE); + dprintk("Freed IRQ %d\n", irq); +- +- /* Free the RX buffer. */ +- lirc_buffer_free(&rbuf); + } + + static struct lirc_driver driver = { +@@ -1065,19 +1058,29 @@ static int __init lirc_wpc8769l_module_init(void) + /* Do load-time checks. */ + wpc8769l_power_up_and_check_if_we_woke_us_up(); + ++ /* Init the read buffer. */ ++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) { ++ rc = -ENOMEM; ++ goto exit_platform_exit; ++ } ++ + /* Configure the driver hooks. */ + driver.features = LIRC_CAN_REC_MODE2; ++ driver.dev = &lirc_wpc8769l_platform_dev->dev; + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + eprintk("lirc_register_driver failed!\n"); + rc = -EIO; +- goto exit_platform_exit; ++ goto exit_release_buffer; + } + + iprintk("Driver loaded.\n"); + + return 0; /* Everything OK. */ + ++exit_release_buffer: ++ lirc_buffer_free(&rbuf); ++ + exit_platform_exit: + lirc_wpc8769l_platform_exit(); + +@@ -1095,12 +1098,15 @@ module_init(lirc_wpc8769l_module_init); + + static void __exit lirc_wpc8769l_module_exit(void) + { +- /* Unregister the platform driver and device. */ +- lirc_wpc8769l_platform_exit(); +- + /* Unregister the LIRC driver. */ + lirc_unregister_driver(driver.minor); + ++ /* Free the buffer. */ ++ lirc_buffer_free(&rbuf); ++ ++ /* Unregister the platform driver and device. */ ++ lirc_wpc8769l_platform_exit(); ++ + /* Release the second range. */ + if (baseport2) + release_region(baseport2, WPC8769L_IO_REGION_2_SIZE); +-- +1.7.0.1 + Copied: lirc/repos/testing-x86_64/lircd-handle-large-config.patch (from rev 183708, lirc/trunk/lircd-handle-large-config.patch) =================================================================== --- testing-x86_64/lircd-handle-large-config.patch (rev 0) +++ testing-x86_64/lircd-handle-large-config.patch 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,39 @@ +From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001 +From: Jarod Wilson <ja...@redhat.com> +Date: Wed, 6 Apr 2011 11:04:12 -0400 +Subject: [PATCH] lircd: handle larger config files in write_socket better + +Pointed out by Michael Zanetti on list, irsend LIST has issues with long +config files, which didn't exist in maintainer mode, as we were using a +do while loop to make sure we spit out everything. Just use that loop +all the time. + +Signed-off-by: Jarod Wilson <ja...@redhat.com> +--- + daemons/lircd.c | 8 ++------ + 1 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/daemons/lircd.c b/daemons/lircd.c +index 6c21a3a..ddcca05 100644 +--- a/daemons/lircd.c ++++ b/daemons/lircd.c +@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len) + int done, todo = len; + + while (todo) { +-#ifdef SIM_REC + do { + done = write(fd, buf, todo); +- } +- while (done < 0 && errno == EAGAIN); +-#else +- done = write(fd, buf, todo); +-#endif ++ } while (done < 0 && errno == EAGAIN); ++ + if (done <= 0) + return (done); + buf += done; +-- +1.7.0.1 + Copied: lirc/repos/testing-x86_64/lircm.service (from rev 183708, lirc/trunk/lircm.service) =================================================================== --- testing-x86_64/lircm.service (rev 0) +++ testing-x86_64/lircm.service 2013-04-27 11:21:26 UTC (rev 183709) @@ -0,0 +1,11 @@ +[Unit] +Description=LIRC Mouse +After=lirc.service +Wants=lirc.service + +[Service] +ExecStart=/usr/sbin/lircmd -u +Type=forking + +[Install] +WantedBy=multi-user.target