mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
added extra/lirc - removed kernel dependencies for more happy times
This commit is contained in:
parent
e59a3609ef
commit
9f60c767ad
11 changed files with 452 additions and 0 deletions
96
extra/lirc/PKGBUILD
Normal file
96
extra/lirc/PKGBUILD
Normal file
|
@ -0,0 +1,96 @@
|
|||
# $Id: PKGBUILD 133620 2011-07-30 06:46:23Z ibiru $
|
||||
# Maintainer: Paul Mattal <paul@archlinux.org>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@plugapps.com>
|
||||
# - removed dependencies to the kernel, thus removed drivers not already in the kernel
|
||||
# - complain if you want this changed back
|
||||
|
||||
plugrel=1
|
||||
|
||||
pkgbase=lirc
|
||||
pkgname=('lirc' 'lirc-utils')
|
||||
pkgver=0.9.0
|
||||
pkgrel=6
|
||||
epoch=1
|
||||
_kernver=3.0-ARCH
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://www.lirc.org/"
|
||||
license=('GPL')
|
||||
makedepends=('help2man' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python')
|
||||
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
|
||||
lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
|
||||
md5sums=('b232aef26f23fe33ea8305d276637086'
|
||||
'1cce37e18e3f6f46044abab29016d18f'
|
||||
'b70cc9640505205446ec47b7d4779f38'
|
||||
'1f8b104a2365d9f93404b143f499059b'
|
||||
'087a7d102e1c96bf1179f38db2b0b237'
|
||||
'8d0e238dc0eda95e340fe570605da492'
|
||||
'85f7fdac55e5256967241864049bf5e9'
|
||||
'3deb02604b37811d41816e9b4385fcc3'
|
||||
'5b1f8c9cd788a39a6283f93302ce5c6e'
|
||||
'f0c0ac930326168035f0c8e24357ae55'
|
||||
'69d099e6deedfa3c1ee2b6e82d9b8bfb')
|
||||
|
||||
build() {
|
||||
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"
|
||||
|
||||
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
|
||||
|
||||
PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \
|
||||
--with-driver=none --with-transmitter
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package_lirc() {
|
||||
pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
|
||||
depends=('lirc-utils')
|
||||
replaces=('lirc+pctv')
|
||||
|
||||
cd "${srcdir}/lirc-${pkgver}/drivers"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
|
||||
package_lirc-utils() {
|
||||
pkgdesc="Linux Infrared Remote Control utils"
|
||||
depends=('alsa-lib' 'libx11' 'libftdi' 'libirman')
|
||||
optdepends=('python2: pronto2lirc utility')
|
||||
options=('strip' '!libtool')
|
||||
backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf')
|
||||
|
||||
cd "${srcdir}/lirc-${pkgver}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
|
||||
cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
|
||||
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 conf.d file
|
||||
install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
|
||||
|
||||
# install conf.d file
|
||||
install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
|
||||
|
||||
install -d "${pkgdir}/etc/lirc"
|
||||
|
||||
# remove built modules
|
||||
rm -r "${pkgdir}/lib/"
|
||||
}
|
5
extra/lirc/irexec.conf
Normal file
5
extra/lirc/irexec.conf
Normal file
|
@ -0,0 +1,5 @@
|
|||
#
|
||||
# Parameters for irexec daemon (path to lircrc)
|
||||
#
|
||||
|
||||
IREXEC_OPTS=""
|
38
extra/lirc/irexecd
Executable file
38
extra/lirc/irexecd
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
. /etc/rc.conf
|
||||
. /etc/rc.d/functions
|
||||
. /etc/conf.d/irexec.conf
|
||||
|
||||
PID=`pidof -o %PPID /usr/bin/irexec`
|
||||
case "$1" in
|
||||
start)
|
||||
stat_busy "Starting IREXEC Daemon"
|
||||
[ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
add_daemon irexecd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
stat_busy "Stopping IREXEC Daemon"
|
||||
[ ! -z "$PID" ] && kill $PID &> /dev/null
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
rm_daemon irexecd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 {start|stop|restart}"
|
||||
esac
|
||||
exit 0
|
||||
|
54
extra/lirc/kernel-2.6.39.patch
Normal file
54
extra/lirc/kernel-2.6.39.patch
Normal file
|
@ -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(
|
5
extra/lirc/lirc.logrotate
Normal file
5
extra/lirc/lirc.logrotate
Normal file
|
@ -0,0 +1,5 @@
|
|||
/var/log/lircd {
|
||||
missingok
|
||||
notifempty
|
||||
delaycompress
|
||||
}
|
31
extra/lirc/lirc_atiusb-kfifo.patch
Normal file
31
extra/lirc/lirc_atiusb-kfifo.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
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
|
||||
|
88
extra/lirc/lirc_wpc8769l.patch
Normal file
88
extra/lirc/lirc_wpc8769l.patch
Normal file
|
@ -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?= <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
|
||||
|
52
extra/lirc/lircd
Executable file
52
extra/lirc/lircd
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
|
||||
. /etc/rc.conf
|
||||
. /etc/rc.d/functions
|
||||
. /etc/conf.d/lircd.conf
|
||||
|
||||
PID=$(pidof -o %PPID /usr/sbin/lircd)
|
||||
LIRCD_SYMLINKFILE=/dev/lircd
|
||||
LIRCD_SOCKET=/var/run/lirc/lircd
|
||||
case "$1" in
|
||||
start)
|
||||
stat_busy "Starting LIRC Daemon"
|
||||
[ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
|
||||
rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
|
||||
if [ $? -ne 0 ]; then
|
||||
stat_fail
|
||||
exit 0
|
||||
fi
|
||||
[ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
|
||||
[ -z "$PID" ] &&
|
||||
if [ -n "$LIRC_DEVICE" ] ; then
|
||||
eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
|
||||
else
|
||||
/usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
|
||||
fi
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
add_daemon lircd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
stat_busy "Stopping LIRC Daemon"
|
||||
rm -f $LIRCD_SYMLINKFILE
|
||||
[ ! -z "$PID" ] && kill $PID &> /dev/null
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
rm_daemon lircd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 start|stop|restart"
|
||||
esac
|
||||
exit 0
|
39
extra/lirc/lircd-handle-large-config.patch
Normal file
39
extra/lirc/lircd-handle-large-config.patch
Normal file
|
@ -0,0 +1,39 @@
|
|||
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
|
||||
|
8
extra/lirc/lircd.conf
Normal file
8
extra/lirc/lircd.conf
Normal file
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# Parameters for lirc daemon
|
||||
#
|
||||
|
||||
LIRC_DEVICE="/dev/lirc0"
|
||||
LIRC_DRIVER=""
|
||||
LIRC_EXTRAOPTS=""
|
||||
LIRC_CONFIGFILE=""
|
36
extra/lirc/lircmd
Executable file
36
extra/lirc/lircmd
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
. /etc/rc.conf
|
||||
. /etc/rc.d/functions
|
||||
|
||||
PID=`pidof -o %PPID /usr/sbin/lircmd`
|
||||
case "$1" in
|
||||
start)
|
||||
stat_busy "Starting lircmd Daemon"
|
||||
[ -z "$PID" ] && /usr/sbin/lircmd
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
add_daemon lircmd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
stat_busy "Stopping lircmd Daemon"
|
||||
[ ! -z "$PID" ] && kill $PID &> /dev/null
|
||||
if [ $? -gt 0 ]; then
|
||||
stat_fail
|
||||
else
|
||||
rm_daemon lircmd
|
||||
stat_done
|
||||
fi
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 {start|stop|restart}"
|
||||
esac
|
||||
exit 0
|
Loading…
Reference in a new issue