extra/lirc to 0.9.1-1

This commit is contained in:
Kevin Mihelich 2014-08-16 14:20:07 +00:00
parent 4d75b980f0
commit 3c16a0e0cc
10 changed files with 131 additions and 286 deletions

View file

@ -1,82 +1,67 @@
# $Id: PKGBUILD 133620 2011-07-30 06:46:23Z ibiru $
# $Id$
# Maintainer: Paul Mattal <paul@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - removed dependencies to the kernel, thus removed drivers not already in the kernel
# - complain if you want this changed back
# - removed dependencies to the kernel
pkgbase=lirc
pkgname=('lirc' 'lirc-utils')
pkgver=0.9.0
pkgrel=76
pkgver=0.9.1
pkgrel=1
epoch=1
arch=('i686' 'x86_64')
url="http://www.lirc.org/"
license=('GPL')
makedepends=('help2man' 'alsa-lib' 'libx11' 'libftdi-compat' '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
lirc.logrotate
lirc.service
lircm.service
irexec.service
lirc.tmpfiles
)
md5sums=('b232aef26f23fe33ea8305d276637086'
'1cce37e18e3f6f46044abab29016d18f'
'b70cc9640505205446ec47b7d4779f38'
'1f8b104a2365d9f93404b143f499059b'
'087a7d102e1c96bf1179f38db2b0b237'
'9ee196bd03ea44af5a752fb0cc6ca96a'
source=("http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2"
"wpc8769l-build-fix.patch"
lirc.logrotate
irexec.service
lirc.tmpfiles)
md5sums=('3b78c3cc872d5e2fa78b796c2efd46db'
'9ec33169b3407f74264062d7679dd269'
'3deb02604b37811d41816e9b4385fcc3'
'a9ab637e7207472e61e55a2fa75dc555'
'1847b9997685bc3ad2cf11bea4590a92'
'07131d117fcfe9dcd50c453c3a5e9531'
'32df3b9bc859565d6acf5f0e5b747083'
'febf25c154a7d36f01159e84f26c2d9a')
prepare() {
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"
# use fixed instead of Courier w/xmode2, should be more prevalent on linux boxen
sed -i -e 's|char.*font1_name.*Courier.*$|char font1_name[]="-misc-fixed-*-r-*-*-12-*-*-*-*-*-iso8859-1";|g' tools/xmode2.c
# use /dev/lirc0 by default instead of /dev/lirc
sed -i -e 's|#define DEV_LIRC "lirc"|#define DEV_LIRC "lirc0"|' config.h.in
patch -Np1 -i "${srcdir}/wpc8769l-build-fix.patch"
sed -i '/AC_PATH_XTRA/d' configure.ac
sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADER/' 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
}
build() {
cd "${srcdir}/lirc-${pkgver}"
PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \
--with-driver=userspace --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 for stock arch kernel"
pkgdesc="Linux Infrared Remote Control drivers"
depends=('lirc-utils')
replaces=('lirc+pctv')
cd "${srcdir}/lirc-${pkgver}/drivers"
make DESTDIR="${pkgdir}" install
}
@ -84,20 +69,20 @@ package_lirc-utils() {
pkgdesc="Linux Infrared Remote Control utils"
depends=('alsa-lib' 'libx11' 'libftdi-compat' 'libirman')
optdepends=('python2: pronto2lirc utility')
options=('strip' '!libtool')
options=('strip')
backup=('etc/lirc/lirc_options.conf' 'etc/lirc/lircd.conf' 'etc/lirc/lircmd.conf')
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
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"
install -d "${pkgdir}/etc/lirc"
}

View file

@ -1,11 +1,11 @@
[Unit]
Description=IR Exec
After=lirc.service
Wants=lirc.service
Description=LIRC command handler
After=network.target
[Service]
ExecStart=/usr/bin/irexec --daemon
Type=forking
ExecStart=/usr/bin/irexec --daemon
[Install]
WantedBy=multi-user.target
Wants=lircd.service

View file

@ -1,54 +0,0 @@
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(

View file

@ -3,5 +3,11 @@ post_install() {
}
post_upgrade() {
post_install
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
}

View file

@ -1,12 +0,0 @@
[Unit]
Description=Linux Infrared Remote Control
After=network.target
[Service]
Type=forking
PIDFile=/run/lirc/lircd.pid
ExecStart=/usr/sbin/lircd --driver=default --device=/dev/lirc0
[Install]
WantedBy=multi-user.target

View file

@ -1,31 +0,0 @@
From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001
From: Jason Martin <publicmsu@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 <jarod@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

View file

@ -1,88 +0,0 @@
From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skandalfo@gmail.com>
Date: Wed, 30 Mar 2011 16:46:35 -0400
Subject: [PATCH] Make lirc_wpc8769l functional again
Signed-off-by: Jarod Wilson <jarod@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

View file

@ -1,39 +0,0 @@
From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001
From: Jarod Wilson <jarod@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 <jarod@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

View file

@ -1,12 +0,0 @@
[Unit]
Description=LIRC Mouse
Requires=lirc.service
After=network.target lirc.service
[Service]
Type=forking
ExecStart=/usr/sbin/lircmd
[Install]
WantedBy=multi-user.target

View file

@ -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 = {