From c79764c45f6b0173e85c7a2384ac52eeb3dd7cd4 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sat, 6 Jan 2024 06:24:00 +0100 Subject: [PATCH] kernel 3.4 rebuild [release 0.9.0-9mamba;Fri Jan 04 2013] --- README.md | 2 + kernel-2.6.23-lirc_bttv.patch | 84 ++++++++ lirc-0.8.2-macmini.patch | 11 + lirc-0.8.3pre1-disable_portaudio.patch | 23 +++ lirc-0.8.5-parallel_forcesmp.patch | 13 ++ lirc-0.8.6-i2c.patch | 71 +++++++ lirc-0.8.6-kernel-2.6.33.patch | 269 +++++++++++++++++++++++++ lirc-0.9.0-kernel-2.6.39.patch | 54 +++++ lirc.spec | 226 +++++++++++++++++++++ 9 files changed, 753 insertions(+) create mode 100644 kernel-2.6.23-lirc_bttv.patch create mode 100644 lirc-0.8.2-macmini.patch create mode 100644 lirc-0.8.3pre1-disable_portaudio.patch create mode 100644 lirc-0.8.5-parallel_forcesmp.patch create mode 100644 lirc-0.8.6-i2c.patch create mode 100644 lirc-0.8.6-kernel-2.6.33.patch create mode 100644 lirc-0.9.0-kernel-2.6.39.patch create mode 100644 lirc.spec diff --git a/README.md b/README.md index 98959d9..f1a48e3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # lirc +LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. + diff --git a/kernel-2.6.23-lirc_bttv.patch b/kernel-2.6.23-lirc_bttv.patch new file mode 100644 index 0000000..6cafa92 --- /dev/null +++ b/kernel-2.6.23-lirc_bttv.patch @@ -0,0 +1,84 @@ +diff -Nru lirc-0.8.2.orig/drivers/lirc_gpio/bttv_deprecated.c lirc-0.8.2/drivers/lirc_gpio/bttv_deprecated.c +--- lirc-0.8.2.orig/drivers/lirc_gpio/bttv_deprecated.c 1970-01-01 01:00:00.000000000 +0100 ++++ lirc-0.8.2/drivers/lirc_gpio/bttv_deprecated.c 2007-12-22 16:09:37.000000000 +0100 +@@ -0,0 +1,44 @@ ++//Temporarily added until a resolution is reached upstream ++//For kernel 2.6.22 ++ ++#include ++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,22) ++#include "extra_2.6.22/bttv.h" ++#include "extra_2.6.22/bttvp.h" ++#else ++#include "../drivers/media/video/bt8xx/bttv.h" ++#include "../drivers/media/video/bt8xx/bttvp.h" ++#endif ++ ++struct bttv bttvs[BTTV_MAX]; ++unsigned int bttv_debug; ++unsigned int bttv_num; /* number of Bt848s in use */ ++ ++int bttv_get_cardinfo(unsigned int card, int *type, unsigned *cardid) ++{ ++ printk("The bttv_* interface is obsolete and will go away,\n" ++ "please use the new, sysfs based interface instead.\n"); ++ if (card >= bttv_num) { ++ return -1; ++ } ++ *type = bttvs[card].c.type; ++ *cardid = bttvs[card].cardid; ++ return 0; ++} ++ ++wait_queue_head_t* bttv_get_gpio_queue(unsigned int card) ++{ ++ struct bttv *btv; ++ ++ if (card >= bttv_num) { ++ return NULL; ++ } ++ ++ btv = &bttvs[card]; ++ if (bttvs[card].shutdown) { ++ return NULL; ++ } ++ return &btv->gpioq; ++} ++ ++ +diff -Nru lirc-0.8.2.orig/drivers/lirc_gpio/bttv_deprecated.h lirc-0.8.2/drivers/lirc_gpio/bttv_deprecated.h +--- lirc-0.8.2.orig/drivers/lirc_gpio/bttv_deprecated.h 1970-01-01 01:00:00.000000000 +0100 ++++ lirc-0.8.2/drivers/lirc_gpio/bttv_deprecated.h 2007-12-22 16:09:37.000000000 +0100 +@@ -0,0 +1,6 @@ ++//Temporarily re-added for Ubuntu Kernel 2.6.22 until upstream ++//Resolution is reached. ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++ +diff -Nru lirc-0.8.2.orig/drivers/lirc_gpio/lirc_gpio.c lirc-0.8.2/drivers/lirc_gpio/lirc_gpio.c +--- lirc-0.8.2.orig/drivers/lirc_gpio/lirc_gpio.c 2007-02-13 07:45:15.000000000 +0100 ++++ lirc-0.8.2/drivers/lirc_gpio/lirc_gpio.c 2007-12-22 16:10:29.000000000 +0100 +@@ -54,6 +54,7 @@ + #else + #include "../drivers/media/video/bt8xx/bttv.h" + #include "../drivers/media/video/bt8xx/bttvp.h" ++#include "bttv_deprecated.h" + #endif + + #if BTTV_VERSION_CODE < KERNEL_VERSION(0,7,45) +diff -Nru lirc-0.8.2.orig/drivers/lirc_gpio/Makefile.am lirc-0.8.2/drivers/lirc_gpio/Makefile.am +--- lirc-0.8.2.orig/drivers/lirc_gpio/Makefile.am 2004-04-25 18:29:25.000000000 +0200 ++++ lirc-0.8.2/drivers/lirc_gpio/Makefile.am 2007-12-22 16:09:37.000000000 +0100 +@@ -5,9 +5,9 @@ + ## this is so that Automake includes the C compiling definitions, and + ## includes the source files in the distribution. + EXTRA_PROGRAMS = automake_dummy +-automake_dummy_SOURCES = lirc_gpio.c ++automake_dummy_SOURCES = lirc_gpio.c bttv_deprecated.o + + ## there is no *just* object file support in automake. This is close enough +-module_DATA = lirc_gpio.o ++module_DATA = lirc_gpio.o bttv_deprecated.o + + include ../Makefile.common diff --git a/lirc-0.8.2-macmini.patch b/lirc-0.8.2-macmini.patch new file mode 100644 index 0000000..352e4a8 --- /dev/null +++ b/lirc-0.8.2-macmini.patch @@ -0,0 +1,11 @@ +diff -Nru lirc-0.8.2.orig/daemons/hw-types.c lirc-0.8.2/daemons/hw-types.c +--- lirc-0.8.2.orig/daemons/hw-types.c 2007-05-05 14:20:03.000000000 +0200 ++++ lirc-0.8.2/daemons/hw-types.c 2007-07-18 13:28:29.000000000 +0200 +@@ -109,6 +109,7 @@ + &hw_livedrive_midi, + &hw_livedrive_seq, + &hw_logitech, ++ &hw_macmini, + &hw_mp3anywhere, + &hw_mouseremote, + &hw_mouseremote_ps2, diff --git a/lirc-0.8.3pre1-disable_portaudio.patch b/lirc-0.8.3pre1-disable_portaudio.patch new file mode 100644 index 0000000..1b7311d --- /dev/null +++ b/lirc-0.8.3pre1-disable_portaudio.patch @@ -0,0 +1,23 @@ +--- lirc-0.8.3pre1/configure 2008-01-29 13:31:04.000000000 +0100 ++++ lirc-0.8.3pre1.orig/configure 2008-01-29 13:27:13.000000000 +0100 +@@ -24129,7 +24129,7 @@ + fi + { echo "$as_me:$LINENO: result: $ac_cv_lib_portaudio_Pa_Initialize" >&5 + echo "${ECHO_T}$ac_cv_lib_portaudio_Pa_Initialize" >&6; } +-if test $ac_cv_lib_portaudio_Pa_Initialize = yes; then ++if test $ac_cv_lib_portaudio_Pa_Initialize = yesDISABLED; then + + cat >>confdefs.h <<\_ACEOF + #define HAVE_LIBPORTAUDIO 1 +@@ -25063,8 +25063,9 @@ + CFLAGS="$CFLAGS `${LIBUSB_CONFIG} --cflags`" + ;; + audio) +- hw_module="${hw_module} hw_audio.o receive.o" +- portaudio_lib="-lportaudio ${portaudio_lib_other}" ++ # hw_audio.c is incompatible with current PortAudio snapshot ++ #hw_module="${hw_module} hw_audio.o receive.o" ++ #portaudio_lib="-lportaudio ${portaudio_lib_other}" + ;; + audio_alsa) + hw_module="${hw_module} hw_audio_alsa.o receive.o" diff --git a/lirc-0.8.5-parallel_forcesmp.patch b/lirc-0.8.5-parallel_forcesmp.patch new file mode 100644 index 0000000..f3464fa --- /dev/null +++ b/lirc-0.8.5-parallel_forcesmp.patch @@ -0,0 +1,13 @@ +diff -ru lirc-0.8.5.orig/drivers/lirc_parallel/lirc_parallel.c lirc-0.8.5/drivers/lirc_parallel/lirc_parallel.c +--- lirc-0.8.5.orig/drivers/lirc_parallel/lirc_parallel.c 2009-03-08 20:22:28.000000000 +0100 ++++ lirc-0.8.5/drivers/lirc_parallel/lirc_parallel.c 2009-06-20 16:45:02.000000000 +0200 +@@ -35,9 +35,6 @@ + #endif + + #include +-#ifdef CONFIG_SMP +-#error "--- Sorry, this driver is not SMP safe. ---" +-#endif + + #include + #include diff --git a/lirc-0.8.6-i2c.patch b/lirc-0.8.6-i2c.patch new file mode 100644 index 0000000..bf4017e --- /dev/null +++ b/lirc-0.8.6-i2c.patch @@ -0,0 +1,71 @@ +--- drivers/lirc_i2c/lirc_i2c.c 2009/08/30 16:59:53 1.70 ++++ drivers/lirc_i2c/lirc_i2c.c 2009/12/28 15:29:03 1.72 +@@ -399,8 +399,8 @@ + .name = "i2c ir driver", + }, + #endif +- .id = I2C_DRIVERID_EXP3, /* FIXME */ + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) ++ .id = I2C_DRIVERID_EXP3, /* FIXME */ + .attach_adapter = ir_probe, + .detach_client = ir_remove, + #else +@@ -492,20 +492,23 @@ + ir->l.add_to_buf = add_to_buf_pv951; + break; + case 0x71: +-#ifdef I2C_HW_B_CX2341X +- if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) || +- adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) { +-#else +- if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) { ++ ++ ++ ++#ifdef I2C_HW_B_CX2388x ++ /* Leadtek Winfast PVR2000 or Hauppauge HVR-1300 */ ++ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) ++ strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE); ++ else + #endif ++ { + /* + * The PVR150 IR receiver uses the same protocol as + * other Hauppauge cards, but the data flow is + * different, so we need to deal with it by its own. + */ + strlcpy(ir->c.name, "Hauppauge PVR150", I2C_NAME_SIZE); +- } else /* I2C_HW_B_CX2388x */ +- strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE); ++ } + ir->l.code_length = 13; + ir->l.add_to_buf = add_to_buf_haup_pvr150; + break; +@@ -516,19 +519,18 @@ + break; + case 0x18: + case 0x1a: +-#ifdef I2C_HW_B_CX2341X +- if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) || +- adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) { ++#ifdef I2C_HW_B_CX2388x ++ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) { ++ strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE); ++ ir->l.code_length = 8; ++ ir->l.add_to_buf = add_to_buf_pvr2000; ++ } else { + #else +- if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) { ++ { + #endif + strlcpy(ir->c.name, "Hauppauge IR", I2C_NAME_SIZE); + ir->l.code_length = 13; + ir->l.add_to_buf = add_to_buf_haup; +- } else { /* I2C_HW_B_CX2388x */ +- strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE); +- ir->l.code_length = 8; +- ir->l.add_to_buf = add_to_buf_pvr2000; + } + break; + case 0x30: + diff --git a/lirc-0.8.6-kernel-2.6.33.patch b/lirc-0.8.6-kernel-2.6.33.patch new file mode 100644 index 0000000..e933e64 --- /dev/null +++ b/lirc-0.8.6-kernel-2.6.33.patch @@ -0,0 +1,269 @@ +--- drivers/lirc_dev/lirc_dev.h 2009/03/15 09:34:00 1.37 ++++ drivers/lirc_dev/lirc_dev.h 2010/01/23 16:28:07 1.39 +@@ -4,7 +4,7 @@ + * (L) by Artur Lipowski + * This code is licensed under GNU GPL + * +- * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $ ++ * $Id: lirc_dev.h,v 1.39 2010/01/23 16:28:07 lirc Exp $ + * + */ + +@@ -30,14 +30,19 @@ + + struct lirc_buffer { + wait_queue_head_t wait_poll; +- spinlock_t lock; ++ spinlock_t fifo_lock; + unsigned int chunk_size; + unsigned int size; /* in chunks */ + /* Using chunks instead of bytes pretends to simplify boundary checking + * And should allow for some performance fine tunning later */ + #ifdef LIRC_HAVE_KFIFO ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + struct kfifo *fifo; + #else ++ struct kfifo fifo; ++ u8 fifo_initialized; ++#endif ++#else + unsigned int fill; /* in chunks */ + int head, tail; /* in chunks */ + unsigned char *data; +@@ -47,12 +52,12 @@ + static inline void lirc_buffer_lock(struct lirc_buffer *buf, + unsigned long *flags) + { +- spin_lock_irqsave(&buf->lock, *flags); ++ spin_lock_irqsave(&buf->fifo_lock, *flags); + } + static inline void lirc_buffer_unlock(struct lirc_buffer *buf, + unsigned long *flags) + { +- spin_unlock_irqrestore(&buf->lock, *flags); ++ spin_unlock_irqrestore(&buf->fifo_lock, *flags); + } + static inline void _lirc_buffer_clear(struct lirc_buffer *buf) + { +@@ -64,10 +69,21 @@ + static inline void lirc_buffer_clear(struct lirc_buffer *buf) + { + #ifdef LIRC_HAVE_KFIFO ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + if (buf->fifo) + kfifo_reset(buf->fifo); + #else + unsigned long flags; ++ ++ if (buf->fifo_initialized) { ++ spin_lock_irqsave(&buf->fifo_lock, flags); ++ kfifo_reset(&buf->fifo); ++ spin_unlock_irqrestore(&buf->fifo_lock, flags); ++ } ++#endif ++#else ++ unsigned long flags; ++ + lirc_buffer_lock(buf, &flags); + _lirc_buffer_clear(buf); + lirc_buffer_unlock(buf, &flags); +@@ -77,31 +93,47 @@ + unsigned int chunk_size, + unsigned int size) + { ++ int ret = 0; ++ + init_waitqueue_head(&buf->wait_poll); +- spin_lock_init(&buf->lock); ++ spin_lock_init(&buf->fifo_lock); + #ifndef LIRC_HAVE_KFIFO + _lirc_buffer_clear(buf); + #endif + buf->chunk_size = chunk_size; + buf->size = size; + #ifdef LIRC_HAVE_KFIFO +- buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->lock); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) ++ buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->fifo_lock); + if (!buf->fifo) + return -ENOMEM; + #else ++ ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL); ++ if (ret == 0) ++ buf->fifo_initialized = 1; ++#endif ++#else + buf->data = kmalloc(size*chunk_size, GFP_KERNEL); + if (buf->data == NULL) + return -ENOMEM; + memset(buf->data, 0, size*chunk_size); + #endif +- return 0; ++ ++ return ret; + } + static inline void lirc_buffer_free(struct lirc_buffer *buf) + { + #ifdef LIRC_HAVE_KFIFO ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) + if (buf->fifo) + kfifo_free(buf->fifo); + #else ++ if (buf->fifo_initialized) { ++ kfifo_free(&buf->fifo); ++ buf->fifo_initialized = 0; ++ } ++#endif ++#else + kfree(buf->data); + buf->data = NULL; + buf->head = 0; +@@ -111,6 +143,25 @@ + buf->size = 0; + #endif + } ++ ++#ifdef LIRC_HAVE_KFIFO ++static inline int lirc_buffer_len(struct lirc_buffer *buf) ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) ++ return kfifo_len(buf->fifo); ++#else ++ int len; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&buf->fifo_lock, flags); ++ len = kfifo_len(&buf->fifo); ++ spin_unlock_irqrestore(&buf->fifo_lock, flags); ++ ++ return len; ++#endif ++} ++#endif ++ + #ifndef LIRC_HAVE_KFIFO + static inline int _lirc_buffer_full(struct lirc_buffer *buf) + { +@@ -120,7 +171,7 @@ + static inline int lirc_buffer_full(struct lirc_buffer *buf) + { + #ifdef LIRC_HAVE_KFIFO +- return kfifo_len(buf->fifo) == buf->size * buf->chunk_size; ++ return lirc_buffer_len(buf) == buf->size * buf->chunk_size; + #else + unsigned long flags; + int ret; +@@ -139,7 +190,7 @@ + static inline int lirc_buffer_empty(struct lirc_buffer *buf) + { + #ifdef LIRC_HAVE_KFIFO +- return !kfifo_len(buf->fifo); ++ return !lirc_buffer_len(buf); + #else + unsigned long flags; + int ret; +@@ -158,7 +209,7 @@ + static inline int lirc_buffer_available(struct lirc_buffer *buf) + { + #ifdef LIRC_HAVE_KFIFO +- return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size); ++ return buf->size - (lirc_buffer_len(buf) / buf->chunk_size); + #else + unsigned long flags; + int ret; +@@ -177,21 +228,30 @@ + buf->fill -= 1; + } + #endif +-static inline void lirc_buffer_read(struct lirc_buffer *buf, +- unsigned char *dest) ++static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf, ++ unsigned char *dest) + { ++ unsigned int ret = 0; ++ + #ifdef LIRC_HAVE_KFIFO +- if (kfifo_len(buf->fifo) >= buf->chunk_size) +- kfifo_get(buf->fifo, dest, buf->chunk_size); ++ if (lirc_buffer_len(buf) >= buf->chunk_size) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) ++ ret = kfifo_get(buf->fifo, dest, buf->chunk_size); ++#else ++ ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size, ++ &buf->fifo_lock); ++#endif + #else + unsigned long flags; + lirc_buffer_lock(buf, &flags); + _lirc_buffer_read_1(buf, dest); + lirc_buffer_unlock(buf, &flags); + #endif ++ ++ return ret; + } + #ifndef LIRC_HAVE_KFIFO +-static inline void _lirc_buffer_write_1(struct lirc_buffer *buf, ++static inline _lirc_buffer_write_1(struct lirc_buffer *buf, + unsigned char *orig) + { + memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size); +@@ -199,17 +259,26 @@ + buf->fill++; + } + #endif +-static inline void lirc_buffer_write(struct lirc_buffer *buf, +- unsigned char *orig) ++static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf, ++ unsigned char *orig) + { ++ unsigned int ret = 0; ++ + #ifdef LIRC_HAVE_KFIFO +- kfifo_put(buf->fifo, orig, buf->chunk_size); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) ++ ret = kfifo_put(buf->fifo, orig, buf->chunk_size); ++#else ++ ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size, ++ &buf->fifo_lock); ++#endif + #else + unsigned long flags; + lirc_buffer_lock(buf, &flags); + _lirc_buffer_write_1(buf, orig); + lirc_buffer_unlock(buf, &flags); + #endif ++ ++ return ret; + } + #ifndef LIRC_HAVE_KFIFO + static inline void _lirc_buffer_write_n(struct lirc_buffer *buf, +@@ -234,17 +303,26 @@ + buf->fill += count; + } + #endif +-static inline void lirc_buffer_write_n(struct lirc_buffer *buf, +- unsigned char *orig, int count) ++static inline unsigned int lirc_buffer_write_n(struct lirc_buffer *buf, ++ unsigned char *orig, int count) + { ++ unsigned int ret = 0; ++ + #ifdef LIRC_HAVE_KFIFO +- kfifo_put(buf->fifo, orig, count * buf->chunk_size); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) ++ ret = kfifo_put(buf->fifo, orig, count * buf->chunk_size); ++#else ++ ret = kfifo_in_locked(&buf->fifo, orig, count * buf->chunk_size, ++ &buf->fifo_lock); ++#endif + #else + unsigned long flags; + lirc_buffer_lock(buf, &flags); + _lirc_buffer_write_n(buf, orig, count); + lirc_buffer_unlock(buf, &flags); + #endif ++ ++ return ret; + } + + struct lirc_driver { diff --git a/lirc-0.9.0-kernel-2.6.39.patch b/lirc-0.9.0-kernel-2.6.39.patch new file mode 100644 index 0000000..caedd56 --- /dev/null +++ b/lirc-0.9.0-kernel-2.6.39.patch @@ -0,0 +1,54 @@ +diff -ru lirc-0.9.0.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.9.0/drivers/lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0.orig/drivers/lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0/drivers/lirc_atiusb/lirc_atiusb.c 2011-08-19 16:34:57.690724827 +0200 +@@ -48,7 +48,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -ru lirc-0.9.0.orig/drivers/lirc_i2c/lirc_i2c.c lirc-0.9.0/drivers/lirc_i2c/lirc_i2c.c +--- lirc-0.9.0.orig/drivers/lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0/drivers/lirc_i2c/lirc_i2c.c 2011-08-19 16:37:05.944381335 +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.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 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2011-08-19 16:39:25.627918139 +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_zero_bit_le(ldata, + size, next_zero + 1); + + put_pulse_bit( diff --git a/lirc.spec b/lirc.spec new file mode 100644 index 0000000..ddd1031 --- /dev/null +++ b/lirc.spec @@ -0,0 +1,226 @@ +# DISTCC disabled by default for this package +%define USE_DISTCC 0 + +%define kernel_majversion %(echo %KERNEL_VER | cut -d. -f1-2) +%define kernel_version %(echo %KERNEL_VER | cut -d. -f1-3) + +%define BUILD_CC %{_target_platform}-gcc +%define BUILD_CXX %{_target_platform}-g++ + +%if %{USE_DISTCC} + %define DISTCC_CC ccache distcc %{?BUILD_CC} + %define DISTCC_CXX ccache distcc %{?BUILD_CXX} + %define BUILD_OPTS CC="%{DISTCC_CC}" CXX="%{DISTCC_CXX}" -j12 +%else + %define BUILD_OPTS CC="%{BUILD_CC}" CXX="%{BUILD_CXX}" %{_smp_mflags} +%endif + +%if "%{?KERNEL_TARGET}" == "" + # build a mamba kernel by default + %define KERNEL_TARGET mamba +%else + %define KERNEL_TARGET_APPEND -%{KERNEL_TARGET} +%endif + +%if "%{?KERNEL_VER}" == "" + %define KERNEL_VER %(uname -r | sed "s|\\([0-9.]*\\).*|\\1|" ) +%endif + +Name: lirc +Version: 0.9.0 +Epoch: 1 +Release: 9mamba +Summary: A package that allows you to decode and send infra-red signals +Group: System/Hardware +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.lirc.org/ +Source: http://download.sourceforge.net/sourceforge/lirc/lirc-%{version}.tar.bz2 +Patch0: %{name}-0.8.5-parallel_forcesmp.patch +Patch1: %{name}-0.8.2-macmini.patch +Patch2: kernel-2.6.23-lirc_bttv.patch +Patch3: %{name}-0.8.3pre1-disable_portaudio.patch +Patch4: %{name}-0.8.6-kernel-2.6.33.patch +Patch5: %{name}-0.8.6-i2c.patch +Patch6: %{name}-0.9.0-kernel-2.6.39.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libICE-devel +BuildRequires: libpthread-stubs-devel +BuildRequires: libSM-devel +BuildRequires: libuuid-devel +BuildRequires: libX11-devel +BuildRequires: libXau-devel +BuildRequires: libxcb-devel +BuildRequires: libXdmcp-devel +## AUTOBUILDREQ-END +BuildRequires: help2man >= 1.36.3 +#BuildRequires: kernel-%{KERNEL_TARGET}-headers >= %{kernel_version} +#BuildRequires: kernel-%{KERNEL_TARGET}-headers <= %{kernel_version}.255 +#Requires: kernellirc +## FIXME: lirc has portaudio v.18 support but system has 19, patch needed +#BuildConflicts: libportaudio-devel +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. + +%package devel +Summary: Devel package for %{name} +Group: Development/Libraries +Requires: %{name} = %{?epoch:%epoch:}%{version} + +%description devel +LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. +This package contains static libraries and header files need for development. + +%package -n kernel-%{KERNEL_TARGET}-lirc +Summary: Lirc remote control drivers for the %{kernel_ver}%{KERNEL_TARGET} kernel +Group: System/Kernel and Hardware/Drivers +Requires(pre): kernel-%{KERNEL_TARGET} >= %{kernel_version} +Requires(pre): kernel-%{KERNEL_TARGET} <= %{kernel_version}.255 +Requires: module-init-tools +Provides: kernellirc +## KERNELOBSOLETES-BEGIN 3.4 +Obsoletes: kernel-%{KERNEL_TARGET}-lirc = 1:0.9.0-8mamba +## KERNELOBSOLETES-END + +%description -n kernel-%{KERNEL_TARGET}-lirc +Lirc remote control drivers for the %{kernel_ver}%{KERNEL_TARGET} kernel. + +%prep +%setup -q +#%patch0 -p1 +#%patch1 -p1 +#%patch2 -p1 +#%patch3 -p1 +#%patch4 -p0 +#%patch5 -p0 +%patch6 -p1 + +%build +%configure \ + --with-driver=none + +# --with-driver=all +# --with-kerneldir=/usr/src/linux-%{KERNEL_VER}%{KERNEL_TARGET} \ +# --with-moduledir=/lib/modules/%{KERNEL_VER}%{KERNEL_TARGET}/misc + +%make +#make -C drivers %{BUILD_OPTS} -j1 + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +sed -i "s|/bin/mknod|/bin/true|" drivers/Makefile drivers/*/Makefile +sed -i "s|/sbin/depmod|/bin/true|" drivers/Makefile drivers/*/Makefile + +install -d %{buildroot}%{_sysconfdir}/lirc +cp -a remotes/* %{buildroot}%{_sysconfdir}/lirc +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +%files +%defattr(-,root,root) +%dir %{_sysconfdir}/lirc +%{_sysconfdir}/lirc/* +%{_bindir}/* +%{_libdir}/liblirc_client.so.* +%{_sbindir}/lircd +%{_sbindir}/lircmd +%{_mandir}/man1/ircat.1.gz +%{_mandir}/man1/irexec.1.gz +%{_mandir}/man1/irpty.1.gz +%{_mandir}/man1/irrecord.1.gz +%{_mandir}/man1/irsend.1.gz +%{_mandir}/man1/irw.1.gz +%{_mandir}/man1/irxevent.1.gz +%{_mandir}/man1/lircrcd.1.gz +%{_mandir}/man1/mode2.1.gz +%{_mandir}/man1/smode2.1.gz +%{_mandir}/man1/xmode2.1.gz +%{_mandir}/man8/lircd.8.gz +%{_mandir}/man8/lircmd.8.gz +/var/run/lirc/lircd +/var/run/lirc/lircm +%doc AUTHORS COPYING ChangeLog NEWS README TODO + +%files devel +%defattr(-,root,root) +%{_libdir}/liblirc_client.a +%{_libdir}/liblirc_client.la +%{_libdir}/liblirc_client.so +%dir %{_includedir}/lirc +%{_includedir}/lirc/*.h + +#%files -n kernel-%{KERNEL_TARGET}-lirc +#%defattr(-,root,root) +#/lib/modules/%{KERNEL_VER}%{KERNEL_TARGET}/misc/lirc_*.ko + +%changelog +* Fri Jan 04 2013 Silvan Calarco 0.9.0-9mamba +- kernel 3.4 rebuild + +* Sat Oct 27 2012 Silvan Calarco 0.9.0-8mamba +- kernel 3.6 rebuild + +* Sat Jun 30 2012 Silvan Calarco 0.9.0-7mamba +- automatic update by autodist + +* Wed Feb 29 2012 Silvan Calarco 0.9.0-6mamba +- rebuilt without kernel modules package (mostly provided in recent kernels) + +* Sun Feb 12 2012 Silvan Calarco 0.9.0-5mamba +- automatic update by autodist + +* Wed Jan 25 2012 Silvan Calarco 0.9.0-4mamba +- automatic update by autodist + +* Sun Sep 04 2011 Silvan Calarco 0.9.0-3mamba +- automatic update by autodist + +* Fri Aug 19 2011 Silvan Calarco 0.9.0-2mamba +- automatic update by autodist + +* Wed Apr 20 2011 Silvan Calarco 0.9.0-1mamba +- update to 0.9.0 + +* Mon Feb 07 2011 Silvan Calarco 0.8.7-2mamba +- automatic update by autodist + +* Thu Dec 16 2010 Silvan Calarco 0.8.7-1mamba +- update to 0.8.7 + +* Thu Dec 16 2010 Silvan Calarco 0.8.6-4mamba +- automatic rebuild by autodist + +* Wed Jun 30 2010 Silvan Calarco 0.8.6-3mamba +- automatic rebuild by autodist + +* Sat Dec 26 2009 Silvan Calarco 0.8.6-2mamba +- rebuild for kernel 2.6.31 + +* Sat Dec 26 2009 Silvan Calarco 0.8.6-1mamba +- update to 0.8.6 + +* Sun Aug 09 2009 Automatic Build System 0.8.5-1mamba +- automatic update by autodist + +* Fri Oct 24 2008 Silvan Calarco 0.8.4-1mamba +- automatic update by autodist + +* Wed Jul 18 2007 Silvan Calarco 0.8.2-2mamba +- update to 0.8.2 + +* Sat Mar 24 2007 Silvan Calarco 0.8.2-1qilnx +- update to version 0.8.2pre1 by autospec + +* Fri Sep 22 2006 Silvan Calarco 0.8.1pre1-2qilnx +- rebuilt for 2.6.18 kernel + +* Mon May 15 2006 Silvan Calarco 0.8.0.cvs20060516-1qilnx +- package created by autospec