Skip to content
Browse files

Initial import

  • Loading branch information...
0 parents commit 5378eafc92ae717ff9e5aaf1e4b55a474047cf7c @kormoc committed Dec 11, 2010
Showing with 5,394 additions and 0 deletions.
  1. +16 −0 app-misc/lirc-mod-mce/Manifest
  2. +43 −0 app-misc/lirc-mod-mce/lirc-mod-mce-0.1.3.ebuild
  3. +43 −0 app-misc/lirc-mod-mce/lirc-mod-mce-0.1.4.ebuild
  4. +27 −0 app-misc/lirc/Manifest
  5. +9 −0 app-misc/lirc/files/irexec-confd
  6. +28 −0 app-misc/lirc/files/irexec-initd
  7. +28 −0 app-misc/lirc/files/irexec-initd-0.8.6-r2
  8. +291 −0 app-misc/lirc/files/lirc-0.8.3-imon-pad2keys.patch
  9. +107 −0 app-misc/lirc/files/lirc-0.8.3-kernel-2.6.26.diff
  10. +38 −0 app-misc/lirc/files/lirc-0.8.3-kernel-2.6.27.diff
  11. +68 −0 app-misc/lirc/files/lirc-0.8.3-pa19.patch
  12. +257 −0 app-misc/lirc/files/lirc-0.8.3_pre1-imon-pad2keys.patch
  13. +110 −0 app-misc/lirc/files/lirc-0.8.3_pre1-kernel-2.6.24.diff
  14. +26 −0 app-misc/lirc/files/lirc-0.8.3_pre1-remotewonderplus.patch
  15. +291 −0 app-misc/lirc/files/lirc-0.8.3_pre3-imon-pad2keys.patch
  16. +18 −0 app-misc/lirc/files/lirc-0.8.4-portaudio_check.patch
  17. +77 −0 app-misc/lirc/files/lirc-0.8.6-i2c.patch
  18. +20 −0 app-misc/lirc/files/lirc-0.8.6-send-evsyn.diff
  19. +16 −0 app-misc/lirc/files/lircd
  20. +23 −0 app-misc/lirc/files/lircd-0.8.3
  21. +41 −0 app-misc/lirc/files/lircd-0.8.6
  22. +10 −0 app-misc/lirc/files/lircd.conf.2
  23. +20 −0 app-misc/lirc/files/lircmd
  24. +22 −0 app-misc/lirc/files/modprobed.lirc
  25. +22 −0 app-misc/lirc/files/modulesd.lirc
  26. +30 −0 app-misc/lirc/files/usb_buffer.patch
  27. +55 −0 app-misc/lirc/files/xbox-lircd.conf
  28. +361 −0 app-misc/lirc/lirc-0.8.7_pre1.ebuild
  29. +361 −0 app-misc/lirc/lirc-0.9.0_pre1.ebuild
  30. +10 −0 dev-db/drizzle/Manifest
  31. +127 −0 dev-db/drizzle/drizzle-2010.02.1304.ebuild
  32. +127 −0 dev-db/drizzle/drizzle-2010.03.1317.ebuild
  33. +129 −0 dev-db/drizzle/drizzle-2010.03.1412.ebuild
  34. +131 −0 dev-db/drizzle/drizzle-2010.05.1561.ebuild
  35. +131 −0 dev-db/drizzle/drizzle-2010.06.1607.ebuild
  36. +4 −0 dev-db/kontrollkit/Manifest
  37. +21 −0 dev-db/kontrollkit/kontrollkit-1.02-r10.ebuild
  38. +21 −0 dev-db/kontrollkit/kontrollkit-1.02-r3.ebuild
  39. +21 −0 dev-db/kontrollkit/kontrollkit-1.02-r34.ebuild
  40. +2 −0 dev-db/maatkit/Manifest
  41. +14 −0 dev-db/maatkit/maatkit-6926.ebuild
  42. +10 −0 dev-db/mysql/Manifest
  43. +48 −0 dev-db/mysql/files/my.cnf
  44. +113 −0 dev-db/mysql/files/my.cnf-4.0
  45. +147 −0 dev-db/mysql/files/my.cnf-4.1
  46. +146 −0 dev-db/mysql/files/my.cnf-5.1
  47. +358 −0 dev-db/mysql/files/mysql.init
  48. +222 −0 dev-db/mysql/mysql-5.1.47.ebuild
  49. +2 −0 dev-php/xdebug-client/Manifest
  50. +34 −0 dev-php/xdebug-client/xdebug-client-2.0.5.ebuild
  51. +2 −0 dev-php5/xdebug/Manifest
  52. +79 −0 dev-php5/xdebug/xdebug-2.0.5.ebuild
  53. +6 −0 dev-python/imdbpy/Manifest
  54. +24 −0 dev-python/imdbpy/imdbpy-3.2.ebuild
  55. +24 −0 dev-python/imdbpy/imdbpy-3.8.ebuild
  56. +24 −0 dev-python/imdbpy/imdbpy-4.1.ebuild
  57. +2 −0 dev-python/tvnamer/Manifest
  58. +24 −0 dev-python/tvnamer/tvnamer-1.0.ebuild
  59. +114 −0 eclass/mythtv-plugins.eclass
  60. +47 −0 eclass/mythtv.eclass
  61. +638 −0 eclass/toolchain-funcs.eclass
  62. +38 −0 eclass/toolchain-funcs.eclass.x86.patch
  63. +2 −0 media-tv/ivtv-utils/Manifest
  64. +36 −0 media-tv/ivtv-utils/ivtv-utils-1.0.2.ebuild
  65. +2 −0 media-tv/miro/Manifest
  66. +55 −0 media-tv/miro/miro-2.5.2.ebuild
  67. +1 −0 profiles/repo_name
16 app-misc/lirc-mod-mce/Manifest
@@ -0,0 +1,16 @@
+DIST lirc_mod_mce-0.1.3.tar.bz2 20242 RMD160 4bbe207886681c3a954dc76b84f3f49b5788a699 SHA1 41e33cd211c5785f9c7c563bc5d5d68aa89cf010 SHA256 6dc744b5ee1bbb909a1220487a9f4293a5ee328e43fcd682578bdb68c916f1b0
+DIST lirc_mod_mce-0.1.4.tar.bz2 20246 RMD160 d4271f6fc542b4ec770363de4d73eca9741bc2f1 SHA1 6c1dfab5730bb65cdeebcb6442e94f79e6db8696 SHA256 b2a096d68ea33bcedade7b29dd71dcf0c95878d96bc5083778592991346321d4
+EBUILD lirc-mod-mce-0.1.3.ebuild 868 RMD160 e2b53ebd3f698c2dce5c10116c7a328e8e1dd288 SHA1 259d66140d1b7104261614d3a8ff3dcb64e36c35 SHA256 2a49e616aa9479208bf588678a5887b60c07d71373d3526ff69b294c74667da3
+MD5 328664015a0b31389191b8c760e4c0ab lirc-mod-mce-0.1.3.ebuild 868
+RMD160 e2b53ebd3f698c2dce5c10116c7a328e8e1dd288 lirc-mod-mce-0.1.3.ebuild 868
+SHA256 2a49e616aa9479208bf588678a5887b60c07d71373d3526ff69b294c74667da3 lirc-mod-mce-0.1.3.ebuild 868
+EBUILD lirc-mod-mce-0.1.4.ebuild 868 RMD160 e2b53ebd3f698c2dce5c10116c7a328e8e1dd288 SHA1 259d66140d1b7104261614d3a8ff3dcb64e36c35 SHA256 2a49e616aa9479208bf588678a5887b60c07d71373d3526ff69b294c74667da3
+MD5 328664015a0b31389191b8c760e4c0ab lirc-mod-mce-0.1.4.ebuild 868
+RMD160 e2b53ebd3f698c2dce5c10116c7a328e8e1dd288 lirc-mod-mce-0.1.4.ebuild 868
+SHA256 2a49e616aa9479208bf588678a5887b60c07d71373d3526ff69b294c74667da3 lirc-mod-mce-0.1.4.ebuild 868
+MD5 6f45fa7b4b4fcbd02bb00f62092de0ed files/digest-lirc-mod-mce-0.1.3 256
+RMD160 6898d7473710ea435611e86f2146384fe9e2fc6e files/digest-lirc-mod-mce-0.1.3 256
+SHA256 487e75b28260e991d1d4b7529d663c50ff5e5593cffd90328fddbe0828127fef files/digest-lirc-mod-mce-0.1.3 256
+MD5 b2d1e767eec7245f43aaa051954834e0 files/digest-lirc-mod-mce-0.1.4 256
+RMD160 46b9d36a2df577c8f251f44c53f2f86861fa03b9 files/digest-lirc-mod-mce-0.1.4 256
+SHA256 9e1ce711e32ba08cfddac7911a8cd47949178eee20743d6f87b2219dfebc60cb files/digest-lirc-mod-mce-0.1.4 256
43 app-misc/lirc-mod-mce/lirc-mod-mce-0.1.3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header$
+
+inherit eutils
+
+DESCRIPTION="Linux input driver for Microsoft MCE 2005 keyboard using USB IR
+receiver."
+HOMEPAGE="http://mod-mce.sourceforge.net/"
+SRC_URI="mirror://sourceforge/mod-mce/lirc_mod_mce-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+DEPEND="
+ >=app-misc/lirc-0.8.2"
+RDEPEND=""
+
+src_unpack() {
+ unpack ${A}
+}
+
+src_compile() {
+ cd ${WORKDIR}/lirc_mod_mce/
+# Make uses $ARCH to figure out the makefile include location, so we need to
+# Override if we're 64 bit
+ if [ $ARCH == "amd64" ]
+ then
+ ARCH="x86_64"
+ fi
+ emake || die "make failed!"
+}
+
+src_install() {
+ mkdir -p ${D}/lib/modules/`uname -r`/misc
+ cp ${WORKDIR}/lirc_mod_mce/lirc_mod_mce.ko ${D}/lib/modules/`uname -r`/misc/
+}
+
+pkg_postinst() {
+ depmod -a
+}
43 app-misc/lirc-mod-mce/lirc-mod-mce-0.1.4.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header$
+
+inherit eutils
+
+DESCRIPTION="Linux input driver for Microsoft MCE 2005 keyboard using USB IR
+receiver."
+HOMEPAGE="http://mod-mce.sourceforge.net/"
+SRC_URI="mirror://sourceforge/mod-mce/lirc_mod_mce-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+DEPEND="
+ >=app-misc/lirc-0.8.2"
+RDEPEND=""
+
+src_unpack() {
+ unpack ${A}
+}
+
+src_compile() {
+ cd ${WORKDIR}/lirc_mod_mce/
+# Make uses $ARCH to figure out the makefile include location, so we need to
+# Override if we're 64 bit
+ if [ $ARCH == "amd64" ]
+ then
+ ARCH="x86_64"
+ fi
+ emake || die "make failed!"
+}
+
+src_install() {
+ mkdir -p ${D}/lib/modules/`uname -r`/misc
+ cp ${WORKDIR}/lirc_mod_mce/lirc_mod_mce.ko ${D}/lib/modules/`uname -r`/misc/
+}
+
+pkg_postinst() {
+ depmod -a
+}
27 app-misc/lirc/Manifest
@@ -0,0 +1,27 @@
+AUX irexec-confd 280 RMD160 f669c7c98b9d7cac2010284ab6068d29d47ec811 SHA1 c6decc19a273d98d451de137a2ffbe16d5df28ae SHA256 c404ad3b624004cab25bd3a89593cdeb0abbc25771d6e52caf2f37cb4f7b2b79
+AUX irexec-initd 808 RMD160 06b02232f892ab032e2bf8b35bb2945a623a2610 SHA1 5c5630e5434c2430b9a74b725fc5350e29adaede SHA256 9325419aa45d80c205bc1cd47fe839b178da74bca5dd928cbe3ae17423b92493
+AUX irexec-initd-0.8.6-r2 816 RMD160 e9969072ccbdcb284781a4224c9fa2afc72fecaf SHA1 ab066d769417e13c194112ba99f309bb1cb0d2e5 SHA256 5e5a31fbd93294a6e210499a880fcab371b23706824c9d60d827b0187d7bade4
+AUX lirc-0.8.3-imon-pad2keys.patch 11556 RMD160 89a050f7099593000a40b15c46de6137f3b10dfa SHA1 019b1aa3d72df9e4b28796c173fb4fa1fc3e457d SHA256 347c6195d971f8d1a3f4c29a1ff4750d04cea297d16679aeda7529ac1720d42e
+AUX lirc-0.8.3-kernel-2.6.26.diff 3233 RMD160 654d6375f8b0a4e45ce2c60d18581cb2dc7c38a3 SHA1 3465689927bd998fcd4e6875ccc004346c93c4cf SHA256 2e70c6806dc24e0c3288f55f5a20ad7484e05752ca8efd5254e3be3ff73cbefd
+AUX lirc-0.8.3-kernel-2.6.27.diff 1253 RMD160 9ece885b51b356ef1001f5f58fb913e1931365a6 SHA1 8da93ede404e425bcc676079129ba70e8f581a4b SHA256 64c0e4d7bca25d07f903352329445f6e95c42edd73b21ac040e190609f34807f
+AUX lirc-0.8.3-pa19.patch 1954 RMD160 bb90abc0c35fd5e9827ca993bca51d3075ccb3b8 SHA1 7cae24797dd132a226293bd1e47d87505be4c37a SHA256 d5c4959c78a4f83bc494788c45da2ec5fe7d5c1362f82136233068cc2e87ca8e
+AUX lirc-0.8.3_pre1-imon-pad2keys.patch 10312 RMD160 6f61031cd3035289b2d52797dd02d027f593873d SHA1 c59aab62c9b59e27b93d5613e050438fcf2c6eed SHA256 2f79f223d5d2e998321284c50edea044ad26ab8607eae1e9e79e7c0ea6a8f2cd
+AUX lirc-0.8.3_pre1-kernel-2.6.24.diff 3140 RMD160 ad09e63973827b180530c63a6c49c4e180629198 SHA1 e66cae5faf48a7f9e8d7e391b3fdf6f8984e2074 SHA256 d992cca976d34d7e78a3709908852b828722a9ef18d7ee2151cd1e9de9b529d3
+AUX lirc-0.8.3_pre1-remotewonderplus.patch 943 RMD160 05a0696d51ff01c7d9644ad3ff4d56fef20be439 SHA1 971ad8b27d57c31439a1f7fb87dac2dc39d6c1e8 SHA256 547efbfa30f282ba9100495044e3b720c8f74c44f9a4e34db934d2ac7976fe29
+AUX lirc-0.8.3_pre3-imon-pad2keys.patch 11556 RMD160 96137f08691e341844d7ebc860337e1b6e4baf25 SHA1 885ac9bbcc73e0f815c9e3eb867b36e335eeb52f SHA256 7ce01a1fe0dd2021b9dcf1d3c764d5a4704aab33cd616d92f1ff401f31d17d3f
+AUX lirc-0.8.4-portaudio_check.patch 769 RMD160 d83b1a167da5b0c4e09ef716a4fc80f7261f7665 SHA1 81537dc12f897756d24fcf2cf4d178dc8169e360 SHA256 01e2034aaa6a7eb039e5c0e6c3b4a6ed38860614d3d0b0005d99a4aac2b3827e
+AUX lirc-0.8.6-i2c.patch 2296 RMD160 a16bd7c5b264788ead8531413e6dcba5fd38ceae SHA1 bac5e7a36457830ad4ed4bf547bb7f54cc94d86d SHA256 af5cb16859a5057e35a1c3bad4c5a9a0c81365b545548f93d0e4872d6bf708bd
+AUX lirc-0.8.6-send-evsyn.diff 563 RMD160 9f0e43f296c103f43445fbd6bbbc61492ab1f346 SHA1 7c704c46eb80eececfbb15a0a23f88773f6225a0 SHA256 26c442281253732b0fda80168893f2bef90c4684edeb902bf52faca680bde0c7
+AUX lircd 450 RMD160 73cf3057f420632e90e80eeb30e79cdbb3390b5d SHA1 e43d500a672bf89b7dc5e6bdedc9ed8e90dac3b3 SHA256 a9d6d2cc0abd0efe3267c1477fac012378e63e26aa021cfce7a0e25b27f196df
+AUX lircd-0.8.3 581 RMD160 162a54bb19df7b97aa982355a6d009ddc82580eb SHA1 c0f7a0a65169d02bdc7003d574d8610694241a5d SHA256 9ba3c5a8c0ca5966729dc5e2c7a5960bbf12b443d91e9e319a0277f153df1b1f
+AUX lircd-0.8.6 973 RMD160 4e8a04b8d052558a91e8278589cc04d70f164a0d SHA1 e333b816a396e4005bdafce2b77501098fbcec5a SHA256 473cf04b2f6addf7c86d23103b1eff68bf3758fda2bf25401ff0631c568c7805
+AUX lircd.conf.2 317 RMD160 dbd600cb97ce10ba06e29e32fe5d3eac6cf19a7d SHA1 054bde131b965e2fea8599accbf69fc489cb66e8 SHA256 694d96ffc0c5b8d258592d89c0221aa9b10d69ce024a69a0cc935d899e0b855e
+AUX lircmd 466 RMD160 32f2b2411afc60522944f5c3dff9f53aac242a9c SHA1 79939de790d20704009643bd810e3186090d0e36 SHA256 d47f22a33a83c14a4a0c333d6a445c40e550c491899fb0c6d323e23fe1eac7b7
+AUX modprobed.lirc 549 RMD160 89edfd587932959df9e521d146cef7c67cf97b18 SHA1 f59d8f031859eb6b6dccd1faf15d7ed2251288b1 SHA256 b4951252321ea326d3ec401e5ff1112716c5aaf5b2ca94d9f5e187e22ad35c44
+AUX modulesd.lirc 482 RMD160 0c7ec9881b337529acaf15eb4bf7a66a8623fc6c SHA1 8415e466cad31278496bafa817ccabbb72c56ce4 SHA256 3906b61951e1245cb3c9b16e81255a735f7bcdbbfcbedcdf44cd53236e2a3f28
+AUX usb_buffer.patch 1156 RMD160 16e1fce51ad4a2238f0b6660cb90766da2f808fe SHA1 edef0c178b73c0b6a0974d6107cf0162f4f019ee SHA256 cb545c7e9b95b9b9a54e5854acb6435a8389162791c532a0689fd5c3de81216b
+AUX xbox-lircd.conf 784 RMD160 844b08d504f5afb996f900d3d225cc855fbf4884 SHA1 65c3b9c295bc8ab8f80077dd3a40b599d1a60ce3 SHA256 03979bd658ed4a5705c358a1278b1565dd10463ab6eb14fa8d25b3d98e645008
+DIST lirc-0.8.7pre1.tar.bz2 792651 RMD160 67c27459634fc07e5e6a3c31b4e7f412ea9cc512 SHA1 424bcfcc50378bb34876667e71bd2d8513d228d7 SHA256 5fd79d83e1de6d64dea809a5877738609c124ee68a639f3165bdd246b3ffb4be
+DIST lirc-0.9.0-pre1.tar.bz2 837920 RMD160 02366e018c76914aae3672d1bfd3723a831a0d73 SHA1 fac03b06a1b3476e24d2bbc70b96059ccda5d7e3 SHA256 6724514d76077cc087bd4e12d880744442223e7e4ecfd0aa515c1610bc13b5f1
+EBUILD lirc-0.8.7_pre1.ebuild 10144 RMD160 45b17e68e0a5e33eec2506b93f61b764355d6379 SHA1 3c99647163821ba20d737663c4a62beffbc7ec37 SHA256 4fa56dd0e32645f6d8137959ce357e3d77d55d141cc1bb5127a9ae965c04a207
+EBUILD lirc-0.9.0_pre1.ebuild 10146 RMD160 4089c706664d820285cbec1cc7d0c6d913785b70 SHA1 dbcc8e7c037b15061d5c8f18339c8d4096933b8d SHA256 b97fe0c8b917ffe22d998d60b6053d4e6c773b2860b69aaa64acff2b2c6dcda6
9 app-misc/lirc/files/irexec-confd
@@ -0,0 +1,9 @@
+# Options to pass to the irexec process
+IREXEC_OPTS="/etc/lircrc"
+
+# User to execute irexec as.
+# Warning: Running irexec as root can open security holes
+#IREXEC_USER="root"
+
+# Use this to disable the warning printed when starting irexec as root
+# IREXEC_DISABLE_ROOT_WARNING=yes
28 app-misc/lirc/files/irexec-initd
@@ -0,0 +1,28 @@
+#!/sbin/runscript
+# Copyright 2003 Martin Hierling <mad@cc.fh-lippe.de>
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/irexec-initd,v 1.3 2007/05/24 20:12:16 zzam Exp $
+
+: ${IREXEC_USER:=root}
+
+depend() {
+ need lircd
+}
+
+start() {
+ if [ "x${IREXEC_USER}" = "xroot" -a "x${IREXEC_DISABLE_ROOT_WARNING}" != "xyes" ]; then
+ ewarn "Warning: Running irexec as root can open security holes"
+ fi
+
+ ebegin "Starting irexec"
+ start-stop-daemon --start --chuid ${IREXEC_USER} --user ${IREXEC_USER} --chdir / \
+ --exec /usr/bin/irexec -- --daemon ${IREXEC_OPTS}
+ eend $? "Failed to start irexec."
+}
+
+stop() {
+ ebegin "Stopping irexec"
+ start-stop-daemon --stop --exec /usr/bin/irexec --user ${IREXEC_USER}
+ eend $? "Failed to stop irexec."
+}
+
28 app-misc/lirc/files/irexec-initd-0.8.6-r2
@@ -0,0 +1,28 @@
+#!/sbin/runscript
+# Copyright 2003 Martin Hierling <mad@cc.fh-lippe.de>
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/irexec-initd-0.8.6-r2,v 1.1 2009/11/15 10:04:21 zzam Exp $
+
+: ${IREXEC_USER:=root}
+
+depend() {
+ need lirc
+}
+
+start() {
+ if [ "x${IREXEC_USER}" = "xroot" -a "x${IREXEC_DISABLE_ROOT_WARNING}" != "xyes" ]; then
+ ewarn "Warning: Running irexec as root can open security holes"
+ fi
+
+ ebegin "Starting irexec"
+ start-stop-daemon --start --chuid ${IREXEC_USER} --user ${IREXEC_USER} --chdir / \
+ --exec /usr/bin/irexec -- --daemon ${IREXEC_OPTS}
+ eend $? "Failed to start irexec."
+}
+
+stop() {
+ ebegin "Stopping irexec"
+ start-stop-daemon --stop --exec /usr/bin/irexec --user ${IREXEC_USER}
+ eend $? "Failed to stop irexec."
+}
+
291 app-misc/lirc/files/lirc-0.8.3-imon-pad2keys.patch
@@ -0,0 +1,291 @@
+diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c
+--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c 2008-04-28 22:15:54.281654857 +0200
++++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c 2008-04-28 22:16:51.381649620 +0200
+@@ -73,9 +73,9 @@
+
+
+ #define MOD_AUTHOR "Venky Raju <dev@venky.ws>"
+-#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD"
++#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD w/imon pad2keys patch"
+ #define MOD_NAME "lirc_imon"
+-#define MOD_VERSION "0.3"
++#define MOD_VERSION "0.3p2k"
+
+ #define VFD_MINOR_BASE 144 /* Same as LCD */
+ #define DEVFS_MODE (S_IFCHR | S_IRUSR | S_IWUSR | \
+@@ -91,6 +91,7 @@
+ #define TRUE 1
+ #define FALSE 0
+
++#define CURSOR_LIMIT 16
+
+ /* ------------------------------------------------------------
+ * P R O T O T Y P E S
+@@ -177,6 +178,10 @@
+ atomic_t busy; /* write in progress */
+ int status; /* status of tx completion */
+ } tx;
++
++ int key_x;
++ int key_y;
++ int last_count; /* number of times pressed */
+ };
+
+ #define LOCK_CONTEXT down(&context->sem)
+@@ -248,6 +253,9 @@
+ static int is_lcd; /* If LIRC_IMON_LCD not defined, default to non-LCD */
+ #endif
+
++/* pad2keys module parameter. pad2keys patch active? */
++static int pad2keys_active = 0;
++
+ #if !defined(KERNEL_2_5)
+
+ #define MAX_DEVICES 4 /* In case there's more than one iMON device */
+@@ -271,6 +279,7 @@
+
+ MODULE_AUTHOR(MOD_AUTHOR);
+ MODULE_DESCRIPTION(MOD_DESC);
++MODULE_VERSION(MOD_VERSION); /* MBr: was missing */
+ MODULE_LICENSE("GPL");
+ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+
+@@ -287,6 +296,9 @@
+ "1=yes (default:no)");
+ #endif
+
++module_param (pad2keys_active, int, 0);
++MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
++
+ static inline void delete_context(struct imon_context *context)
+ {
+ if (context->vfd_supported)
+@@ -766,6 +778,11 @@
+ context->rx.initial_space = 1;
+ context->rx.prev_bit = 0;
+
++ /* init pad context for pad2keys */
++ context ->key_x = 0;
++ context ->key_y = 0;
++ context ->last_count = 0;
++
+ usb_fill_int_urb(context->rx_urb, context->dev,
+ usb_rcvintpipe(context->dev,
+ context->rx_endpoint->bEndpointAddress),
+@@ -915,6 +932,94 @@
+
+ if (context->ir_onboard_decode) {
+ /* The signals have been decoded onboard the iMON controller */
++
++ if (pad2keys_active)
++ {
++ /* imon pad2keys patch
++ *
++ * make PAD and mouse buttons available for use with VDR,
++ * based on pad-mouse-emu patch from venky's forum
++ *
++ * last change: M.Brakemeier 2007-10-14
++ *
++ * generated PAD key codes:
++ * Mouse_N 0x690281B7
++ * Mouse_S 0x688291B7
++ * Mouse_W 0x6A8281B7
++ * Mouse_E 0x688A81B7
++ *
++ * mouse buttons (non-synthetic):
++ * MouseRightClick 0x688481B7
++ * MouseLeftClick 0x688301B7
++ */
++ if((buf[0] & 0x40) &&
++ !(buf[1] & 0x01 || buf[1] >> 2 & 0x01))
++ {
++ int rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 | (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
++ int rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 | (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
++
++ if(buf[0] & 0x02)
++ rel_x |= ~0x10+1;
++ if(buf[0] & 0x01)
++ rel_y |= ~0x10+1;
++
++ /* keyboard direction key emulation */
++ if( context->last_count > 32 )
++ { /* Hopefully eliminate drift*/
++ context->last_count=0;
++ context->key_y=0;
++ context->key_x=0;
++ }
++ context->last_count++;
++
++ /* limit decoded events */
++ if(abs(context->key_x) > CURSOR_LIMIT || abs(context->key_y) > CURSOR_LIMIT )
++ {
++ if(abs(context->key_y ) > abs(context->key_x))
++ { /* mouse s/n */
++ if(context->key_y > 0 && rel_y > 0)
++ { /* mouse s */
++ buf[0] = 0x68;
++ buf[1] = 0x82;
++ buf[2] = 0x91;
++ }
++ else if(context->key_y < 0 && rel_y < 0)
++ { /* mouse n */
++ buf[0] = 0x69;
++ buf[1] = 0x02;
++ buf[2] = 0x81;
++ }
++ }
++ else
++ { /* mouse e/w*/
++ if(context->key_x > 0 && rel_x > 0 )
++ { /* mouse e */
++ buf[0] = 0x68;
++ buf[1] = 0x8A;
++ buf[2] = 0x81;
++ }
++ else if(context->key_x < 0 && rel_x < 0 )
++ { /* mouse w */
++ buf[0] = 0x6A;
++ buf[1] = 0x82;
++ buf[2] = 0x81;
++ }
++ }
++ }
++ else
++ {
++ context->key_x += rel_x;
++ context->key_y += rel_y;
++
++ return; /* discard those key codes */
++ }
++ }
++ /* a key was pressed, reset count */
++ context->key_x = 0;
++ context->key_y = 0;
++ context->last_count = 0;
++ }
++
+ lirc_buffer_write_1(context->plugin->rbuf, buf);
+ wake_up(&context->plugin->rbuf->wait_poll);
+ return;
+diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej
+--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej 1970-01-01 01:00:00.000000000 +0100
++++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej 2008-04-28 22:16:02.941653915 +0200
+@@ -0,0 +1,26 @@
++***************
++*** 271,280 ****
++
++ MODULE_AUTHOR(MOD_AUTHOR);
++ MODULE_DESCRIPTION(MOD_DESC);
++ MODULE_LICENSE("GPL");
++ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
++ module_param(debug, int, 0);
++ MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
++
++ static inline void delete_context(struct imon_context *context)
++ {
++--- 279,291 ----
++
++ MODULE_AUTHOR(MOD_AUTHOR);
++ MODULE_DESCRIPTION(MOD_DESC);
+++ MODULE_VERSION(MOD_VERSION); /* MBr: was missing */
++ MODULE_LICENSE("GPL");
++ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
++ module_param(debug, int, 0);
++ MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
+++ module_param (pad2keys_active, int, 0);
+++ MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
++
++ static inline void delete_context(struct imon_context *context)
++ {
+diff -ruN lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys
+--- lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys 1970-01-01 01:00:00.000000000 +0100
++++ lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys 2008-04-28 22:16:02.941653915 +0200
+@@ -0,0 +1,88 @@
++# Please make this file available to others
++# by sending it to <lirc@bartelmus.de>
++#
++# this config file was generated
++# using lirc-0.8.3pre1 (imon w/pad2keys patch)
++#
++# contributed by M.Brakemeier
++#
++# brand: SoundGraph
++# model no. of remote control: iMON-PAD
++# devices being controlled by this remote:
++#
++
++begin remote
++
++ name iMON-PAD
++ bits 32
++ eps 30
++ aeps 100
++
++ one 0 0
++ zero 0 0
++ gap 235965
++ min_repeat 1
++ toggle_bit 0
++
++ begin codes
++ AppExit 0x288195B7
++ Power 0x289115B7
++ Record 0x298115B7
++ Play 0x2A8115B7
++ Open 0x29B1D5B7
++ Rewind 0x2A8195B7
++ Pause 0x2A9115B7
++ FastForward 0x2B8115B7
++ PrevChapter 0x2B9115B7
++ Stop 0x2B9715B7
++ NextChapter 0x298195B7
++ Esc 0x2BB715B7
++ Eject 0x299395B7
++ AppLauncher 0x29B715B7
++ MultiMon 0x2AB195B7
++ TaskSwitcher 0x2A9395B7
++ Mute 0x2B9595B7
++ Vol+ 0x28A395B7
++ Vol- 0x28A595B7
++ Ch+ 0x289395B7
++ Ch- 0x288795B7
++ Timer 0x2B8395B7
++ 1 0x28B595B7
++ 2 0x2BB195B7
++ 3 0x28B195B7
++ 4 0x2A8595B7
++ 5 0x299595B7
++ 6 0x2AA595B7
++ 7 0x2B9395B7
++ 8 0x2A8515B7
++ 9 0x2AA115B7
++ 0 0x2BA595B7
++ ShiftTab 0x28B515B7
++ Tab 0x29A115B7
++ Red 0x2B8515B7 # MyMovie
++ Green 0x299195B7 # MyMusic
++ Blue 0x2BA115B7 # MyPhoto
++ Yellow 0x28A515B7 # MyTV
++ Bookmark 0x288515B7
++ Thumbnail 0x2AB715B7
++ AspectRatio 0x29A595B7
++ FullScreen 0x2AA395B7
++ Purple 0x29A395B7 # MyDVD
++ Menu 0x2BA395B7
++ Caption 0x298595B7
++ Language 0x2B8595B7
++ MouseKeyboard 0x299115B7
++ SelectSpace 0x2A9315B7
++ MouseMenu 0x28B715B7
++ MouseRightClick 0x688481B7
++ Enter 0x28A195B7
++ MouseLeftClick 0x688301B7
++ WindowsKey 0x2B8195B7
++ Backspace 0x28A115B7
++ Mouse_N 0x690281B7
++ Mouse_S 0x688291B7
++ Mouse_W 0x6A8281B7
++ Mouse_E 0x688A81B7
++ end codes
++
++end remote
107 app-misc/lirc/files/lirc-0.8.3-kernel-2.6.26.diff
@@ -0,0 +1,107 @@
+--- a/drivers/kcompat.h 2008-01-13 11:26:28.000000000 +0100
++++ b/drivers/kcompat.h 2008-05-14 18:37:49.000000000 +0200
+@@ -36,10 +36,10 @@
+ class_simple_destroy(cls);
+ }
+
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+- class_simple_device_add(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++ class_simple_device_add(cs, dev, parent, fmt, ## args)
+
+-static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
++static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
+ {
+ class_simple_device_remove(devt);
+ }
+@@ -48,20 +48,40 @@
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+
+-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
+- class_device_create(cs, dev, device, fmt, ## args)
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++ class_device_create(cs, dev, parent, fmt, ## args)
+
+ #else /* >= 2.6.15 */
+
+-#define lirc_class_device_create class_device_create
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_create(cs, parent, dev, fmt, args...) \
++ class_device_create(cs, NULL, dev, parent, fmt, ## args)
++
++#else /* >= 2.6.26 */
++
++#define lirc_device_create device_create
++
++#endif /* >= 2.6.26 */
++
+ #define LIRC_DEVFS_PREFIX
+
+-#endif
++#endif /* >= 2.6.15 */
+
+ typedef struct class lirc_class_t;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
++
++#define lirc_device_destroy class_device_destroy
++
++#else
++
++#define lirc_device_destroy device_destroy
++
+ #endif
+
++#endif /* >= 2.6.13 */
++
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ #define LIRC_HAVE_DEVFS
+ #define LIRC_HAVE_DEVFS_24
+@@ -133,8 +153,8 @@
+ #ifndef LIRC_HAVE_SYSFS
+ #define class_destroy(x) do { } while (0)
+ #define class_create(x, y) NULL
+-#define class_device_destroy(x, y) do { } while (0)
+-#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
++#define lirc_class_destroy(x, y) do { } while (0)
++#define lirc_class_create(x, y, z, xx, yy, zz) 0
+ #define IS_ERR(x) 0
+ typedef struct class_simple
+ {
+--- a/drivers/lirc_dev/lirc_dev.c 2008-01-13 11:45:02.000000000 +0100
++++ b/drivers/lirc_dev/lirc_dev.c 2008-05-14 18:37:49.000000000 +0200
+@@ -145,7 +145,8 @@
+ #ifdef LIRC_HAVE_DEVFS_26
+ devfs_remove(DEV_LIRC "/%u", ir->p.minor);
+ #endif
+- class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++ lirc_device_destroy(lirc_class,
++ MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+
+ if (ir->buf != ir->p.rbuf) {
+ lirc_buffer_free(ir->buf);
+@@ -400,9 +401,9 @@
+ S_IFCHR|S_IRUSR|S_IWUSR,
+ DEV_LIRC "/%u", ir->p.minor);
+ #endif
+- (void) lirc_class_device_create(lirc_class, NULL,
+- MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
+- ir->p.dev, "lirc%u", ir->p.minor);
++ (void) lirc_device_create(lirc_class, ir->p.dev,
++ MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
++ "lirc%u", ir->p.minor);
+
+ if (p->sample_rate || p->get_queue) {
+ /* try to fire up polling thread */
+@@ -441,7 +442,8 @@
+ return minor;
+
+ out_sysfs:
+- class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
++ lirc_device_destroy(lirc_class,
++ MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+ #ifdef LIRC_HAVE_DEVFS_24
+ devfs_unregister(ir->devfs_handle);
+ #endif
38 app-misc/lirc/files/lirc-0.8.3-kernel-2.6.27.diff
@@ -0,0 +1,38 @@
+Index: drivers/lirc_dev/lirc_dev.c
+===================================================================
+RCS file: /cvsroot/lirc/lirc/drivers/lirc_dev/lirc_dev.c,v
+retrieving revision 1.58
+diff -u -p -u -p -r1.58 lirc_dev.c
+--- drivers/lirc_dev/lirc_dev.c 14 May 2008 16:37:49 -0000 1.58
++++ drivers/lirc_dev/lirc_dev.c 4 Aug 2008 14:54:04 -0000
+@@ -49,7 +49,11 @@
+ #include <linux/uaccess.h>
+ #include <linux/errno.h>
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+ #include <asm/semaphore.h>
++#else
++#include <linux/semaphore.h>
++#endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+ #include <linux/wrapper.h>
+ #endif
+Index: drivers/lirc_i2c/lirc_i2c.c
+===================================================================
+RCS file: /cvsroot/lirc/lirc/drivers/lirc_i2c/lirc_i2c.c,v
+retrieving revision 1.46
+diff -u -p -u -p -r1.46 lirc_i2c.c
+--- drivers/lirc_i2c/lirc_i2c.c 4 May 2008 13:49:53 -0000 1.46
++++ drivers/lirc_i2c/lirc_i2c.c 4 Aug 2008 14:54:04 -0000
+@@ -54,7 +54,11 @@
+ #include <linux/i2c.h>
+ #include <linux/i2c-algo-bit.h>
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+ #include <asm/semaphore.h>
++#else
++#include <linux/semaphore.h>
++#endif
+
+ #include "drivers/kcompat.h"
+ #include "drivers/lirc_dev/lirc_dev.h"
68 app-misc/lirc/files/lirc-0.8.3-pa19.patch
@@ -0,0 +1,68 @@
+--- daemons/hw_audio.c.orig 2008-06-13 22:24:40.000000000 +0200
++++ daemons/hw_audio.c 2008-06-13 22:17:31.000000000 +0200
+@@ -66,7 +66,7 @@
+ }
+ paTestData;
+
+-PortAudioStream *stream;
++PaStream *stream;
+
+
+ extern struct ir_remote *repeat_remote;
+@@ -90,7 +90,9 @@
+
+ static int recordCallback( void *inputBuffer, void *outputBuffer,
+ unsigned long framesPerBuffer,
+- PaTimestamp outTime, void *userData )
++ PaStreamCallbackTimeInfo outTime,
++ PaStreamCallbackFlags status,
++ void *userData )
+ {
+ paTestData *data = (paTestData*)userData;
+ SAMPLE *rptr = (SAMPLE*)inputBuffer;
+@@ -215,6 +217,7 @@
+ int audio_init()
+ {
+
++ PaStreamParameters inputParameters;
+ PaError err;
+ int flags;
+ struct termios t;
+@@ -237,22 +240,27 @@
+ err = Pa_Initialize();
+ if( err != paNoError ) goto error;
+
++ inputParameters.device = Pa_GetDefaultInputDevice(); /* default input device */
++ if (inputParameters.device == paNoDevice) {
++ logprintf(LOG_ERR, "No default input device");
++ goto error;
++ }
++ inputParameters.channelCount = NUM_CHANNELS; /* stereo input */
++ inputParameters.sampleFormat = PA_SAMPLE_TYPE;
++ inputParameters.suggestedLatency =
++ Pa_GetDeviceInfo( inputParameters.device )->defaultLowInputLatency;
++ inputParameters.hostApiSpecificStreamInfo = NULL;
++
++
+ // Record some audio. --------------------------------------------
+ err = Pa_OpenStream
+ (
+ &stream,
+- Pa_GetDefaultInputDeviceID(),
+- NUM_CHANNELS, // stereo input
+- PA_SAMPLE_TYPE,
+- NULL,
+- paNoDevice,
+- 0,
+- PA_SAMPLE_TYPE,
+- NULL,
++ &inputParameters,
++ NULL, // output parameters
+ SAMPLE_RATE,
+ 512, // frames per buffer
+- 0, // number of buffers, if zero then use default minimum
+- 0, // flags
++ 0, // flags
+ recordCallback,
+ &data );
+
257 app-misc/lirc/files/lirc-0.8.3_pre1-imon-pad2keys.patch
@@ -0,0 +1,257 @@
+diff -NuBbwr lirc-0.8.3pre1-orig/drivers/lirc_imon/lirc_imon.c lirc-0.8.3pre1/drivers/lirc_imon/lirc_imon.c
+--- lirc-0.8.3pre1-orig/drivers/lirc_imon/lirc_imon.c 2007-09-30 11:58:45.000000000 +0200
++++ lirc-0.8.3pre1/drivers/lirc_imon/lirc_imon.c 2007-10-14 14:20:07.000000000 +0200
+@@ -69,9 +69,9 @@
+
+
+ #define MOD_AUTHOR "Venky Raju <dev@venky.ws>"
+-#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD"
++#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD w/imon pad2keys patch"
+ #define MOD_NAME "lirc_imon"
+-#define MOD_VERSION "0.3"
++#define MOD_VERSION "0.3p2k"
+
+ #define VFD_MINOR_BASE 144 /* Same as LCD */
+ #define DEVFS_MODE (S_IFCHR | S_IRUSR | S_IWUSR | \
+@@ -87,6 +87,7 @@
+ #define TRUE 1
+ #define FALSE 0
+
++#define CURSOR_LIMIT 16
+
+ /* ------------------------------------------------------------
+ * P R O T O T Y P E S
+@@ -169,6 +170,10 @@
+ atomic_t busy; /* write in progress */
+ int status; /* status of tx completion */
+ } tx;
++
++ int key_x;
++ int key_y;
++ int last_count; /* number of times pressed */
+ };
+
+ #define LOCK_CONTEXT down(&context->sem)
+@@ -235,6 +240,9 @@
+
+ static int debug;
+
++/* pad2keys module parameter. pad2keys patch active? */
++static int pad2keys_active = 0;
++
+ #if !defined(KERNEL_2_5)
+
+ #define MAX_DEVICES 4 /* In case there's more than one iMON device */
+@@ -258,10 +266,13 @@
+
+ MODULE_AUTHOR(MOD_AUTHOR);
+ MODULE_DESCRIPTION(MOD_DESC);
++MODULE_VERSION(MOD_VERSION); /* MBr: was missing */
+ MODULE_LICENSE("GPL");
+ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+ module_param(debug, int, 0);
+ MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
++module_param (pad2keys_active, int, 0);
++MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
+
+ static inline void delete_context(struct imon_context *context)
+ {
+@@ -684,6 +695,11 @@
+ context->rx.initial_space = 1;
+ context->rx.prev_bit = 0;
+
++ /* init pad context for pad2keys */
++ context ->key_x = 0;
++ context ->key_y = 0;
++ context ->last_count = 0;
++
+ usb_fill_int_urb(context->rx_urb, context->dev,
+ usb_rcvintpipe(context->dev,
+ context->rx_endpoint->bEndpointAddress),
+@@ -834,6 +850,94 @@
+
+ if (context->ir_onboard_decode) {
+ /* The signals have been decoded onboard the iMON controller */
++
++ if (pad2keys_active)
++ {
++ /* imon pad2keys patch
++ *
++ * make PAD and mouse buttons available for use with VDR,
++ * based on pad-mouse-emu patch from venky's forum
++ *
++ * last change: M.Brakemeier 2007-10-14
++ *
++ * generated PAD key codes:
++ * Mouse_N 0x690281B7
++ * Mouse_S 0x688291B7
++ * Mouse_W 0x6A8281B7
++ * Mouse_E 0x688A81B7
++ *
++ * mouse buttons (non-synthetic):
++ * MouseRightClick 0x688481B7
++ * MouseLeftClick 0x688301B7
++ */
++ if((buf[0] & 0x40) &&
++ !(buf[1] & 0x01 || buf[1] >> 2 & 0x01))
++ {
++ int rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 | (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
++ int rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 | (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
++
++ if(buf[0] & 0x02)
++ rel_x |= ~0x10+1;
++ if(buf[0] & 0x01)
++ rel_y |= ~0x10+1;
++
++ /* keyboard direction key emulation */
++ if( context->last_count > 32 )
++ { /* Hopefully eliminate drift*/
++ context->last_count=0;
++ context->key_y=0;
++ context->key_x=0;
++ }
++ context->last_count++;
++
++ /* limit decoded events */
++ if(abs(context->key_x) > CURSOR_LIMIT || abs(context->key_y) > CURSOR_LIMIT )
++ {
++ if(abs(context->key_y ) > abs(context->key_x))
++ { /* mouse s/n */
++ if(context->key_y > 0 && rel_y > 0)
++ { /* mouse s */
++ buf[0] = 0x68;
++ buf[1] = 0x82;
++ buf[2] = 0x91;
++ }
++ else if(context->key_y < 0 && rel_y < 0)
++ { /* mouse n */
++ buf[0] = 0x69;
++ buf[1] = 0x02;
++ buf[2] = 0x81;
++ }
++ }
++ else
++ { /* mouse e/w*/
++ if(context->key_x > 0 && rel_x > 0 )
++ { /* mouse e */
++ buf[0] = 0x68;
++ buf[1] = 0x8A;
++ buf[2] = 0x81;
++ }
++ else if(context->key_x < 0 && rel_x < 0 )
++ { /* mouse w */
++ buf[0] = 0x6A;
++ buf[1] = 0x82;
++ buf[2] = 0x81;
++ }
++ }
++ }
++ else
++ {
++ context->key_x += rel_x;
++ context->key_y += rel_y;
++
++ return; /* discard those key codes */
++ }
++ }
++ /* a key was pressed, reset count */
++ context->key_x = 0;
++ context->key_y = 0;
++ context->last_count = 0;
++ }
++
+ lirc_buffer_write_1(context->plugin->rbuf, buf);
+ wake_up(&context->plugin->rbuf->wait_poll);
+ return;
+diff -NuBbwr lirc-0.8.3pre1-orig/remotes/imon/lircd.conf.imon-pad2keys lirc-0.8.3pre1/remotes/imon/lircd.conf.imon-pad2keys
+--- lirc-0.8.3pre1-orig/remotes/imon/lircd.conf.imon-pad2keys 1970-01-01 01:00:00.000000000 +0100
++++ lirc-0.8.3pre1/remotes/imon/lircd.conf.imon-pad2keys 2007-10-14 14:13:01.000000000 +0200
+@@ -0,0 +1,88 @@
++# Please make this file available to others
++# by sending it to <lirc@bartelmus.de>
++#
++# this config file was generated
++# using lirc-0.8.3pre1 (imon w/pad2keys patch)
++#
++# contributed by M.Brakemeier
++#
++# brand: SoundGraph
++# model no. of remote control: iMON-PAD
++# devices being controlled by this remote:
++#
++
++begin remote
++
++ name iMON-PAD
++ bits 32
++ eps 30
++ aeps 100
++
++ one 0 0
++ zero 0 0
++ gap 235965
++ min_repeat 1
++ toggle_bit 0
++
++ begin codes
++ AppExit 0x288195B7
++ Power 0x289115B7
++ Record 0x298115B7
++ Play 0x2A8115B7
++ Open 0x29B1D5B7
++ Rewind 0x2A8195B7
++ Pause 0x2A9115B7
++ FastForward 0x2B8115B7
++ PrevChapter 0x2B9115B7
++ Stop 0x2B9715B7
++ NextChapter 0x298195B7
++ Esc 0x2BB715B7
++ Eject 0x299395B7
++ AppLauncher 0x29B715B7
++ MultiMon 0x2AB195B7
++ TaskSwitcher 0x2A9395B7
++ Mute 0x2B9595B7
++ Vol+ 0x28A395B7
++ Vol- 0x28A595B7
++ Ch+ 0x289395B7
++ Ch- 0x288795B7
++ Timer 0x2B8395B7
++ 1 0x28B595B7
++ 2 0x2BB195B7
++ 3 0x28B195B7
++ 4 0x2A8595B7
++ 5 0x299595B7
++ 6 0x2AA595B7
++ 7 0x2B9395B7
++ 8 0x2A8515B7
++ 9 0x2AA115B7
++ 0 0x2BA595B7
++ ShiftTab 0x28B515B7
++ Tab 0x29A115B7
++ Red 0x2B8515B7 # MyMovie
++ Green 0x299195B7 # MyMusic
++ Blue 0x2BA115B7 # MyPhoto
++ Yellow 0x28A515B7 # MyTV
++ Bookmark 0x288515B7
++ Thumbnail 0x2AB715B7
++ AspectRatio 0x29A595B7
++ FullScreen 0x2AA395B7
++ Purple 0x29A295B7 # MyDVD
++ Menu 0x2BA385B7
++ Caption 0x298595B7
++ Language 0x2B8595B7
++ MouseKeyboard 0x299115B7
++ SelectSpace 0x2A9315B7
++ MouseMenu 0x28B715B7
++ MouseRightClick 0x688481B7
++ Enter 0x28A195B7
++ MouseLeftClick 0x688301B7
++ WindowsKey 0x2B8195B7
++ Backspace 0x28A115B7
++ Mouse_N 0x690281B7
++ Mouse_S 0x688291B7
++ Mouse_W 0x6A8281B7
++ Mouse_E 0x688A81B7
++ end codes
++
++end remote
110 app-misc/lirc/files/lirc-0.8.3_pre1-kernel-2.6.24.diff
@@ -0,0 +1,110 @@
+#bug 200508
+
+--- a/lirc-0.8.3pre1/drivers/lirc_dev/lirc_dev.c 2007-09-27 15:47:20.000000000 -0400
++++ b/lirc-0.8.3pre1/drivers/lirc_dev/lirc_dev.c 2007-11-27 11:06:41.000000000 -0500
+@@ -41,6 +41,7 @@
+ #include <linux/fs.h>
+ #include <linux/poll.h>
+ #include <linux/smp_lock.h>
++#include <linux/completion.h>
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+ #include <linux/uaccess.h>
+ #include <linux/errno.h>
+@@ -86,8 +87,8 @@
+ struct lirc_buffer *buf;
+
+ int tpid;
+- struct semaphore *t_notify;
+- struct semaphore *t_notify2;
++ struct completion *t_notify;
++ struct completion *t_notify2;
+ int shutdown;
+ long jiffies_to_wait;
+
+@@ -193,7 +194,7 @@
+ daemonize("lirc_dev");
+
+ if (ir->t_notify != NULL)
+- up(ir->t_notify);
++ complete(ir->t_notify);
+
+ dprintk(LOGHEAD "poll thread started\n", ir->p.name, ir->p.minor);
+
+@@ -218,11 +219,11 @@
+ } while (!ir->shutdown);
+
+ if (ir->t_notify2 != NULL)
+- down(ir->t_notify2);
++ wait_for_completion(ir->t_notify2);
+
+ ir->tpid = -1;
+ if (ir->t_notify != NULL)
+- up(ir->t_notify);
++ complete(ir->t_notify);
+
+ dprintk(LOGHEAD "poll thread ended\n", ir->p.name, ir->p.minor);
+
+@@ -238,7 +239,7 @@
+ #ifdef LIRC_HAVE_DEVFS_24
+ char name[16];
+ #endif
+- DECLARE_MUTEX_LOCKED(tn);
++ DECLARE_COMPLETION(tn);
+
+ if (!p) {
+ printk(KERN_ERR "lirc_dev: lirc_register_plugin: "
+@@ -389,7 +390,7 @@
+ err = -ECHILD;
+ goto out_sysfs;
+ }
+- down(&tn);
++ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+ }
+ ir->attached = 1;
+@@ -425,8 +426,8 @@
+ int lirc_unregister_plugin(int minor)
+ {
+ struct irctl *ir;
+- DECLARE_MUTEX_LOCKED(tn);
+- DECLARE_MUTEX_LOCKED(tn2);
++ DECLARE_COMPLETION(tn);
++ DECLARE_COMPLETION(tn2);
+
+ if (minor < 0 || minor >= MAX_IRCTL_DEVICES) {
+ printk(KERN_ERR "lirc_dev: lirc_unregister_plugin: "
+@@ -462,8 +463,8 @@
+ /* 2.2.x does not export wake_up_process() */
+ wake_up_interruptible(ir->p.get_queue(ir->p.data));
+ #endif
+- up(&tn2);
+- down(&tn);
++ complete(&tn2);
++ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+ ir->t_notify2 = NULL;
+ }
+diff -Naur lirc-0.8.3pre1.orig/drivers/lirc_serial/lirc_serial.c lirc-0.8.3pre1/drivers/lirc_serial/lirc_serial.c
+--- lirc-0.8.3pre1.orig/drivers/lirc_serial/lirc_serial.c 2007-12-27 01:27:36.143803257 +0100
++++ lirc-0.8.3pre1/drivers/lirc_serial/lirc_serial.c 2007-12-27 01:29:38.149303268 +0100
+@@ -961,7 +961,7 @@
+ do_gettimeofday(&lasttv);
+
+ result = request_irq(irq, irq_handler,
+- SA_INTERRUPT | (share_irq ? SA_SHIRQ:0),
++ IRQF_DISABLED | (share_irq ? IRQF_SHARED:0),
+ LIRC_DRIVER_NAME, (void *)&hardware);
+
+ switch (result) {
+diff -Naur lirc-0.8.3pre1.orig/drivers/lirc_sir/lirc_sir.c lirc-0.8.3pre1/drivers/lirc_sir/lirc_sir.c
+--- lirc-0.8.3pre1.orig/drivers/lirc_sir/lirc_sir.c 2007-12-28 15:11:48.142285437 +0100
++++ lirc-0.8.3pre1/drivers/lirc_sir/lirc_sir.c 2007-12-28 15:13:05.561290741 +0100
+@@ -1025,7 +1025,7 @@
+ return -EBUSY;
+ }
+ #endif
+- retval = request_irq(irq, sir_interrupt, SA_INTERRUPT,
++ retval = request_irq(irq, sir_interrupt, IRQF_DISABLED,
+ LIRC_DRIVER_NAME, NULL);
+ if (retval < 0) {
+ # ifndef LIRC_ON_SA1100
26 app-misc/lirc/files/lirc-0.8.3_pre1-remotewonderplus.patch
@@ -0,0 +1,26 @@
+--- lirc-0.8.0/drivers/lirc_atiusb/lirc_atiusb.c.orig 2005-10-29 08:18:53.000000000 -0600
++++ lirc-0.8.0/drivers/lirc_atiusb/lirc_atiusb.c 2006-04-01 14:31:05.000000000 -0700
+@@ -147,8 +147,9 @@
+ /* init strings */
+ #define USB_OUTLEN 7
+
+-static char init1[] = {0x01, 0x00, 0x20, 0x14};
+-static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
++static char init1[] = {0x80, 0x05, 0x1b, 0x15, 0x14, 0x20, 0x24, 0x15};
++static char init2[] = {0x83, 0x03};
++static char init3[] = {0x84, 0xd7, 0x020};
+
+ struct in_endpt {
+ /* inner link in list of endpoints for the remote specified by ir */
+@@ -1034,8 +1034,9 @@
+ usb_sndintpipe(ir->usbdev, oep->ep->bEndpointAddress), oep->buf,
+ USB_OUTLEN, usb_remote_send, oep, oep->ep->bInterval);
+
+- send_packet(oep, 0x8004, init1);
+- send_packet(oep, 0x8007, init2);
++ send_packet(oep, 0x8007, init1);
++ send_packet(oep, 0x8002, init2);
++ send_packet(oep, 0x8003, init3);
+ }
+ }
+
291 app-misc/lirc/files/lirc-0.8.3_pre3-imon-pad2keys.patch
@@ -0,0 +1,291 @@
+diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c
+--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c 2008-04-28 22:15:54.281654857 +0200
++++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c 2008-04-28 22:16:51.381649620 +0200
+@@ -73,9 +73,9 @@
+
+
+ #define MOD_AUTHOR "Venky Raju <dev@venky.ws>"
+-#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD"
++#define MOD_DESC "Driver for Soundgraph iMON MultiMedia IR/VFD w/imon pad2keys patch"
+ #define MOD_NAME "lirc_imon"
+-#define MOD_VERSION "0.3"
++#define MOD_VERSION "0.3p2k"
+
+ #define VFD_MINOR_BASE 144 /* Same as LCD */
+ #define DEVFS_MODE (S_IFCHR | S_IRUSR | S_IWUSR | \
+@@ -91,6 +91,7 @@
+ #define TRUE 1
+ #define FALSE 0
+
++#define CURSOR_LIMIT 16
+
+ /* ------------------------------------------------------------
+ * P R O T O T Y P E S
+@@ -177,6 +178,10 @@
+ atomic_t busy; /* write in progress */
+ int status; /* status of tx completion */
+ } tx;
++
++ int key_x;
++ int key_y;
++ int last_count; /* number of times pressed */
+ };
+
+ #define LOCK_CONTEXT down(&context->sem)
+@@ -248,6 +253,9 @@
+ static int is_lcd; /* If LIRC_IMON_LCD not defined, default to non-LCD */
+ #endif
+
++/* pad2keys module parameter. pad2keys patch active? */
++static int pad2keys_active = 0;
++
+ #if !defined(KERNEL_2_5)
+
+ #define MAX_DEVICES 4 /* In case there's more than one iMON device */
+@@ -271,6 +279,7 @@
+
+ MODULE_AUTHOR(MOD_AUTHOR);
+ MODULE_DESCRIPTION(MOD_DESC);
++MODULE_VERSION(MOD_VERSION); /* MBr: was missing */
+ MODULE_LICENSE("GPL");
+ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+
+@@ -287,6 +296,9 @@
+ "1=yes (default:no)");
+ #endif
+
++module_param (pad2keys_active, int, 0);
++MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
++
+ static inline void delete_context(struct imon_context *context)
+ {
+ if (context->vfd_supported)
+@@ -766,6 +778,11 @@
+ context->rx.initial_space = 1;
+ context->rx.prev_bit = 0;
+
++ /* init pad context for pad2keys */
++ context ->key_x = 0;
++ context ->key_y = 0;
++ context ->last_count = 0;
++
+ usb_fill_int_urb(context->rx_urb, context->dev,
+ usb_rcvintpipe(context->dev,
+ context->rx_endpoint->bEndpointAddress),
+@@ -915,6 +932,94 @@
+
+ if (context->ir_onboard_decode) {
+ /* The signals have been decoded onboard the iMON controller */
++
++ if (pad2keys_active)
++ {
++ /* imon pad2keys patch
++ *
++ * make PAD and mouse buttons available for use with VDR,
++ * based on pad-mouse-emu patch from venky's forum
++ *
++ * last change: M.Brakemeier 2007-10-14
++ *
++ * generated PAD key codes:
++ * Mouse_N 0x690281B7
++ * Mouse_S 0x688291B7
++ * Mouse_W 0x6A8281B7
++ * Mouse_E 0x688A81B7
++ *
++ * mouse buttons (non-synthetic):
++ * MouseRightClick 0x688481B7
++ * MouseLeftClick 0x688301B7
++ */
++ if((buf[0] & 0x40) &&
++ !(buf[1] & 0x01 || buf[1] >> 2 & 0x01))
++ {
++ int rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 | (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
++ int rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 | (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
++
++ if(buf[0] & 0x02)
++ rel_x |= ~0x10+1;
++ if(buf[0] & 0x01)
++ rel_y |= ~0x10+1;
++
++ /* keyboard direction key emulation */
++ if( context->last_count > 32 )
++ { /* Hopefully eliminate drift*/
++ context->last_count=0;
++ context->key_y=0;
++ context->key_x=0;
++ }
++ context->last_count++;
++
++ /* limit decoded events */
++ if(abs(context->key_x) > CURSOR_LIMIT || abs(context->key_y) > CURSOR_LIMIT )
++ {
++ if(abs(context->key_y ) > abs(context->key_x))
++ { /* mouse s/n */
++ if(context->key_y > 0 && rel_y > 0)
++ { /* mouse s */
++ buf[0] = 0x68;
++ buf[1] = 0x82;
++ buf[2] = 0x91;
++ }
++ else if(context->key_y < 0 && rel_y < 0)
++ { /* mouse n */
++ buf[0] = 0x69;
++ buf[1] = 0x02;
++ buf[2] = 0x81;
++ }
++ }
++ else
++ { /* mouse e/w*/
++ if(context->key_x > 0 && rel_x > 0 )
++ { /* mouse e */
++ buf[0] = 0x68;
++ buf[1] = 0x8A;
++ buf[2] = 0x81;
++ }
++ else if(context->key_x < 0 && rel_x < 0 )
++ { /* mouse w */
++ buf[0] = 0x6A;
++ buf[1] = 0x82;
++ buf[2] = 0x81;
++ }
++ }
++ }
++ else
++ {
++ context->key_x += rel_x;
++ context->key_y += rel_y;
++
++ return; /* discard those key codes */
++ }
++ }
++ /* a key was pressed, reset count */
++ context->key_x = 0;
++ context->key_y = 0;
++ context->last_count = 0;
++ }
++
+ lirc_buffer_write_1(context->plugin->rbuf, buf);
+ wake_up(&context->plugin->rbuf->wait_poll);
+ return;
+diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej
+--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej 1970-01-01 01:00:00.000000000 +0100
++++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej 2008-04-28 22:16:02.941653915 +0200
+@@ -0,0 +1,26 @@
++***************
++*** 271,280 ****
++
++ MODULE_AUTHOR(MOD_AUTHOR);
++ MODULE_DESCRIPTION(MOD_DESC);
++ MODULE_LICENSE("GPL");
++ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
++ module_param(debug, int, 0);
++ MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
++
++ static inline void delete_context(struct imon_context *context)
++ {
++--- 279,291 ----
++
++ MODULE_AUTHOR(MOD_AUTHOR);
++ MODULE_DESCRIPTION(MOD_DESC);
+++ MODULE_VERSION(MOD_VERSION); /* MBr: was missing */
++ MODULE_LICENSE("GPL");
++ MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
++ module_param(debug, int, 0);
++ MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
+++ module_param (pad2keys_active, int, 0);
+++ MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
++
++ static inline void delete_context(struct imon_context *context)
++ {
+diff -ruN lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys
+--- lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys 1970-01-01 01:00:00.000000000 +0100
++++ lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys 2008-04-28 22:16:02.941653915 +0200
+@@ -0,0 +1,88 @@
++# Please make this file available to others
++# by sending it to <lirc@bartelmus.de>
++#
++# this config file was generated
++# using lirc-0.8.3pre1 (imon w/pad2keys patch)
++#
++# contributed by M.Brakemeier
++#
++# brand: SoundGraph
++# model no. of remote control: iMON-PAD
++# devices being controlled by this remote:
++#
++
++begin remote
++
++ name iMON-PAD
++ bits 32
++ eps 30
++ aeps 100
++
++ one 0 0
++ zero 0 0
++ gap 235965
++ min_repeat 1
++ toggle_bit 0
++
++ begin codes
++ AppExit 0x288195B7
++ Power 0x289115B7
++ Record 0x298115B7
++ Play 0x2A8115B7
++ Open 0x29B1D5B7
++ Rewind 0x2A8195B7
++ Pause 0x2A9115B7
++ FastForward 0x2B8115B7
++ PrevChapter 0x2B9115B7
++ Stop 0x2B9715B7
++ NextChapter 0x298195B7
++ Esc 0x2BB715B7
++ Eject 0x299395B7
++ AppLauncher 0x29B715B7
++ MultiMon 0x2AB195B7
++ TaskSwitcher 0x2A9395B7
++ Mute 0x2B9595B7
++ Vol+ 0x28A395B7
++ Vol- 0x28A595B7
++ Ch+ 0x289395B7
++ Ch- 0x288795B7
++ Timer 0x2B8395B7
++ 1 0x28B595B7
++ 2 0x2BB195B7
++ 3 0x28B195B7
++ 4 0x2A8595B7
++ 5 0x299595B7
++ 6 0x2AA595B7
++ 7 0x2B9395B7
++ 8 0x2A8515B7
++ 9 0x2AA115B7
++ 0 0x2BA595B7
++ ShiftTab 0x28B515B7
++ Tab 0x29A115B7
++ Red 0x2B8515B7 # MyMovie
++ Green 0x299195B7 # MyMusic
++ Blue 0x2BA115B7 # MyPhoto
++ Yellow 0x28A515B7 # MyTV
++ Bookmark 0x288515B7
++ Thumbnail 0x2AB715B7
++ AspectRatio 0x29A595B7
++ FullScreen 0x2AA395B7
++ Purple 0x29A295B7 # MyDVD
++ Menu 0x2BA385B7
++ Caption 0x298595B7
++ Language 0x2B8595B7
++ MouseKeyboard 0x299115B7
++ SelectSpace 0x2A9315B7
++ MouseMenu 0x28B715B7
++ MouseRightClick 0x688481B7
++ Enter 0x28A195B7
++ MouseLeftClick 0x688301B7
++ WindowsKey 0x2B8195B7
++ Backspace 0x28A115B7
++ Mouse_N 0x690281B7
++ Mouse_S 0x688291B7
++ Mouse_W 0x6A8281B7
++ Mouse_E 0x688A81B7
++ end codes
++
++end remote
18 app-misc/lirc/files/lirc-0.8.4-portaudio_check.patch
@@ -0,0 +1,18 @@
+Portaudio is only needed for LIRC_DEVICES=audio, so not checking for Portaudio when the device is disabled will prevent automagic dependencies.
+--- configure.ac.orig 2009-03-13 10:02:50.000000000 +0100
++++ configure.ac 2009-03-13 10:04:00.000000000 +0100
+@@ -336,14 +336,6 @@
+ AC_DEFINE(HAVE_LIBIRMAN_SW)
+ possible_drivers="${possible_drivers} (irman_sw)"
+ )
+-dnl audio driver requires PortAudio library installed and some linker flags
+-AC_CHECK_HEADERS(portaudio.h,[
+- AC_CHECK_LIB(portaudio, Pa_Initialize,[
+- AC_DEFINE(HAVE_LIBPORTAUDIO)
+- possible_drivers="${possible_drivers} (audio)"
+- ],,${portaudio_lib_other}
+- )]
+-)
+ dnl audio_alsa driver requires ALSA library installed and some linker flags
+ have_alsa=no
+ AC_CHECK_HEADERS(alsa/asoundlib.h,[
77 app-misc/lirc/files/lirc-0.8.6-i2c.patch
@@ -0,0 +1,77 @@
+--- 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
+@@ -1,4 +1,4 @@
+-/* $Id: lirc-0.8.6-i2c.patch,v 1.1 2010/05/21 02:32:36 beandog Exp $ */
++/* $Id: lirc-0.8.6-i2c.patch,v 1.1 2010/05/21 02:32:36 beandog Exp $ */
+
+ /*
+ * lirc_i2c.c
+@@ -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:
+
20 app-misc/lirc/files/lirc-0.8.6-send-evsyn.diff
@@ -0,0 +1,20 @@
+--- daemons/lircd.c.old 2009-12-30 14:37:13.000000000 -0600
++++ daemons/lircd.c 2009-12-30 14:39:42.000000000 -0600
+@@ -1909,6 +1909,17 @@
+ logprintf(LOG_ERR, "writing to uinput failed");
+ logperror(LOG_ERR, NULL);
+ }
++
++ /* Need to write sync event */
++ memset(&event, 0, sizeof(event));
++ event.type = EV_SYN;
++ event.code = SYN_REPORT;
++ event.value = 0;
++ if(write(uinputfd, &event, sizeof(event)) != sizeof(event))
++ {
++ logprintf(LOG_ERR, "writing EV_SYN to uinput failed");
++ logperror(LOG_ERR, NULL);
++ }
+ }
+ }
+ #endif
16 app-misc/lirc/files/lircd
@@ -0,0 +1,16 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/lircd,v 1.6 2004/09/26 21:27:07 lanius Exp $
+
+start() {
+ ebegin "Starting lircd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- ${LIRCD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping lircd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
+ eend $?
+}
23 app-misc/lirc/files/lircd-0.8.3
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/lircd-0.8.3,v 1.1 2008/05/05 09:53:19 zzam Exp $
+
+PIDFILE=/var/run/${SVCNAME}.pid
+
+depend() {
+ provide lirc
+}
+
+start() {
+ ebegin "Starting lircd"
+ start-stop-daemon --start --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd -- \
+ -P "${PIDFILE}" ${LIRCD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping lircd"
+ start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd
+ eend $?
+}
41 app-misc/lirc/files/lircd-0.8.6
@@ -0,0 +1,41 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/lircd-0.8.6,v 1.2 2010/05/21 02:32:36 beandog Exp $
+
+PIDFILE=/var/run/lirc/${SVCNAME}.pid
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
+
+depend() {
+ need localmount
+ use modules
+ provide lirc
+}
+
+start() {
+ local retval
+ ebegin "Starting lircd"
+ rm -f ${LIRCD_SOCKET} && ln -s ${LIRCD_SOCKET} ${LIRCD_SYMLINKFILE}
+ if [ $? -ne 0 ]; then
+ eend $? "Unable to create symbolic link ${LIRCD_SYMLINKFILE}"
+ return 1
+ fi
+
+ start-stop-daemon --start --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd -- \
+ -P "${PIDFILE}" ${LIRCD_OPTS}
+ retval=$?
+
+ if [ ${retval} -ne 0 ]; then
+ rm -f ${LIRCD_SOCKET}
+ fi
+
+ eend ${retval}
+}
+
+stop() {
+ ebegin "Stopping lircd"
+ rm -f ${LIRCD_SYMLINKFILE}
+ start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd
+ eend $?
+}
10 app-misc/lirc/files/lircd.conf.2
@@ -0,0 +1,10 @@
+# Options to pass to the lircd process
+
+# for devices with lirc-kernel-module
+#LIRCD_OPTS="-d /dev/lirc0"
+#LIRCD_OPTS="-d /dev/lirc"
+
+# for devices using the input-layer
+#LIRCD_OPTS="-H devinput -d /dev/input/by-path/pci-0000:00:0a.0--event-ir"
+# This should work, Bug #235107
+#LIRCD_OPTS="-H devinput -d name=*DVB*"
20 app-misc/lirc/files/lircmd
@@ -0,0 +1,20 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/lircmd,v 1.2 2004/09/28 00:22:15 swegener Exp $
+
+depend() {
+ need lircd
+}
+
+start() {
+ ebegin "Starting lircmd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/lircmd
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping lircmd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd
+ eend $?
+}
22 app-misc/lirc/files/modprobed.lirc
@@ -0,0 +1,22 @@
+#
+# For first serial receivers:
+#
+#options lirc_serial irq=4 io=0x3f8
+#options lirc_sir irq=4 io=0x3f8
+
+#
+# Detach first serial port from serial-driver.
+# Use this when you have your serial-port-driver statically
+# compiled into your kernel, or as a module but loaded before
+# the lirc-module.
+#
+#install lirc_serial setserial /dev/ttyS0 uart none; modprobe --ignore-install lirc_serial
+#
+#install lirc_sir setserial /dev/ttyS0 uart none; modprobe --ignore-install lirc_sir
+
+
+#
+# For parallel receivers:
+#
+#options lirc_parallel irq=7 io=0x3bc
+
22 app-misc/lirc/files/modulesd.lirc
@@ -0,0 +1,22 @@
+#
+# For first serial receivers:
+#
+#options lirc_serial irq=4 io=0x3f8
+#options lirc_sir irq=4 io=0x3f8
+
+#
+# Detach first serial port from serial-driver.
+# Use this when you have your serial-port-driver statically
+# compiled into your kernel, or as a module but loaded before
+# the lirc-module.
+#
+#pre-install lirc_serial setserial /dev/ttyS0 uart none
+#
+#pre-install lirc_sir setserial /dev/ttyS0 uart none
+
+
+#
+# For parallel receivers:
+#
+#options lirc_parallel irq=7 io=0x3bc
+
30 app-misc/lirc/files/usb_buffer.patch
@@ -0,0 +1,30 @@
+diff -r --unified lirc-0.8.7pre1/drivers/lirc_mceusb/lirc_mceusb.c lirc-0.8.7pre1-patch/drivers/lirc_mceusb/lirc_mceusb.c
+--- lirc-0.8.7pre1/drivers/lirc_mceusb/lirc_mceusb.c 2010-05-07 05:53:43.000000000 -0700
++++ lirc-0.8.7pre1-patch/drivers/lirc_mceusb/lirc_mceusb.c 2010-07-19 15:57:56.000000000 -0700
+@@ -1165,7 +1165,7 @@
+ if (lirc_buffer_init(rbuf, sizeof(lirc_t), LIRCBUF_SIZE))
+ goto mem_alloc_fail;
+
+- ir->buf_in = usb_buffer_alloc(dev, maxp, GFP_ATOMIC, &ir->dma_in);
++ ir->buf_in = usb_alloc_coherent(dev, maxp, GFP_ATOMIC, &ir->dma_in);
+ if (!ir->buf_in)
+ goto buf_in_alloc_fail;
+
+@@ -1315,7 +1315,7 @@
+ lirc_register_fail:
+ usb_free_urb(ir->urb_in);
+ urb_in_alloc_fail:
+- usb_buffer_free(dev, maxp, ir->buf_in, ir->dma_in);
++ usb_free_coherent(dev, maxp, ir->buf_in, ir->dma_in);
+ buf_in_alloc_fail:
+ lirc_buffer_free(rbuf);
+ mem_alloc_fail:
+@@ -1344,7 +1344,7 @@
+ mutex_lock(&ir->dev_lock);
+ usb_kill_urb(ir->urb_in);
+ usb_free_urb(ir->urb_in);
+- usb_buffer_free(dev, ir->len_in, ir->buf_in, ir->dma_in);
++ usb_free_coherent(dev, ir->len_in, ir->buf_in, ir->dma_in);
+ mutex_unlock(&ir->dev_lock);
+
+ unregister_from_lirc(ir);
55 app-misc/lirc/files/xbox-lircd.conf
@@ -0,0 +1,55 @@
+#
+# LIRCD configuration file for Xbox DVD Kit
+#
+# Marko Friedemann <mfr@bmx-chemnitz.de>
+#
+#
+# brand: Microsoft
+# model: Xbox DVD Remote
+# supported devices: Xbox DVD Remote via xpad-ir driver
+#
+# comment: EXPERIMENTAL
+#
+
+begin remote
+
+ name XboxDVDDongle
+ bits 8
+
+ begin codes
+
+ SELECT 0x0b
+ UP 0xa6
+ DOWN 0xa7
+ RIGHT 0xa8
+ LEFT 0xa9
+ INFO 0xc3
+
+ 9 0xc6
+ 8 0xc7
+ 7 0xc8
+ 6 0xc9
+ 5 0xca
+ 4 0xcb
+ 3 0xcc
+ 2 0xcd
+ 1 0xce
+ 0 0xcf
+
+ DISPLAY 0xd5
+ BACK 0xd8
+ SKIP+ 0xdd
+ SKIP- 0xdf
+ STOP 0xe0
+ REVERSE 0xe2
+ FORWARD 0xe3
+ TITLE 0xe5
+ PAUSE 0xe6
+ PLAY 0xea
+ MENU 0xf7
+
+ end codes
+
+end remote
+
+
361 app-misc/lirc/lirc-0.8.7_pre1.ebuild
@@ -0,0 +1,361 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/lirc-0.8.7_pre1.ebuild,v 1.1 2010/05/21 02:47:00 beandog Exp $
+
+inherit eutils linux-mod flag-o-matic autotools
+
+DESCRIPTION="decode and send infra-red signals of many commonly used remote controls"
+HOMEPAGE="http://www.lirc.org/"
+
+MY_P=${PN}-${PV/_/}
+
+if [[ "${PV/_pre/}" = "${PV}" ]]; then
+ SRC_URI="mirror://sourceforge/lirc/${MY_P}.tar.bz2"
+else
+ SRC_URI="http://www.lirc.org/software/snapshots/${MY_P}.tar.bz2"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="debug doc X hardware-carrier transmitter"
+
+S="${WORKDIR}/${MY_P}"
+
+RDEPEND="
+ X? (
+ x11-libs/libX11
+ x11-libs/libSM
+ x11-libs/libICE
+ )
+ lirc_devices_alsa_usb? ( media-libs/alsa-lib )
+ lirc_devices_audio? ( >media-libs/portaudio-18 )
+ lirc_devices_irman? ( media-libs/libirman )"
+
+# This are drivers with names matching the
+# parameter --with-driver=NAME
+IUSE_LIRC_DEVICES_DIRECT="
+ all userspace accent act200l act220l
+ adaptec alsa_usb animax asusdh atilibusb
+ atiusb audio audio_alsa avermedia avermedia_vdomate
+ avermedia98 awlibusb bestbuy bestbuy2 breakoutbox
+ bte bw6130 caraca chronos commandir
+ cph06x creative creative_infracd
+ devinput digimatrix dsp dvico ea65 ene0100
+ exaudio flyvideo ftdi gvbctv5pci hauppauge
+ hauppauge_dvb hercules_smarttv_stereo i2cuser
+ igorplugusb iguanaIR imon imon_24g imon_knob
+ imon_lcd imon_pad imon_rsc irdeo irdeo_remote
+ irlink irman irreal it87 ite8709
+ knc_one kworld leadtek_0007 leadtek_0010
+ leadtek_pvr2000 livedrive_midi
+ livedrive_seq logitech macmini mceusb
+ mediafocusI mouseremote
+ mouseremote_ps2 mp3anywhere mplay nslu2
+ packard_bell parallel pcmak pcmak_usb
+ pctv pixelview_bt878 pixelview_pak
+ pixelview_pro provideo realmagic
+ remotemaster sa1100 samsung sasem sb0540 serial
+ silitek sir slinke streamzap tekram
+ tekram_bt829 tira ttusbir tuxbox tvbox udp uirt2
+ uirt2_raw usb_uirt_raw usbx wpc8769l"
+
+# drivers that need special handling and
+# must have another name specified for
+# parameter --with-driver=NAME
+IUSE_LIRC_DEVICES_SPECIAL="
+ serial_igor_cesko
+ remote_wonder_plus xboxusb usbirboy inputlirc"
+
+IUSE_LIRC_DEVICES="${IUSE_LIRC_DEVICES_DIRECT} ${IUSE_LIRC_DEVICES_SPECIAL}"
+
+#device-driver which use libusb
+LIBUSB_USED_BY_DEV="
+ all atilibusb awlibusb sasem igorplugusb imon imon_lcd imon_pad
+ imon_rsc streamzap mceusb xboxusb irlink commandir"
+
+for dev in ${LIBUSB_USED_BY_DEV}; do
+ DEPEND="${DEPEND} lirc_devices_${dev}? ( dev-libs/libusb )"
+done
+
+# adding only compile-time depends
+DEPEND="${RDEPEND} ${DEPEND}
+ virtual/linux-sources
+ lirc_devices_ftdi? ( dev-embedded/libftdi )
+ lirc_devices_all? ( dev-embedded/libftdi )"
+
+# adding only run-time depends
+RDEPEND="${RDEPEND}
+ lirc_devices_usbirboy? ( app-misc/usbirboy )
+ lirc_devices_inputlirc? ( app-misc/inputlircd )
+ lirc_devices_iguanaIR? ( app-misc/iguanaIR )"
+
+# add all devices to IUSE
+for dev in ${IUSE_LIRC_DEVICES}; do
+ IUSE="${IUSE} lirc_devices_${dev}"
+done
+
+add_device() {
+ : ${lirc_device_count:=0}
+ ((lirc_device_count++))
+
+ if [[ ${lirc_device_count} -eq 2 ]]; then
+ ewarn
+ ewarn "When selecting multiple devices for lirc to be supported,"
+ ewarn "it can not be guaranteed that the drivers play nice together."
+ ewarn
+ ewarn "If this is not intended, then abort emerge now with Ctrl-C,"
+ ewarn "Set LIRC_DEVICES and restart emerge."
+ ewarn
+ epause
+ fi
+
+ local dev="${1}"
+ local desc="device ${dev}"
+ if [[ -n "${2}" ]]; then
+ desc="${2}"
+ fi
+
+ elog "Compiling support for ${desc}"
+ MY_OPTS="${MY_OPTS} --with-driver=${dev}"
+}
+
+pkg_setup() {
+
+ if use lirc_devices_mceusb2
+ then
+ ewarn "The mceusb2 driver has been merged into the mceusb."
+ ewarn "Please only use the latter now."
+ fi
+
+ ewarn "If your LIRC device requires modules, you'll need MODULE_UNLOAD"
+ ewarn "support in your kernel."
+
+ linux-mod_pkg_setup
+
+ # set default configure options
+ MY_OPTS=""
+ LIRC_DRIVER_DEVICE="/dev/lirc0"
+
+ if use lirc_devices_all; then
+ # compile in drivers for a lot of devices
+ add_device all "a lot of devices"
+ else
+ # compile in only requested drivers
+ local dev
+ for dev in ${IUSE_LIRC_DEVICES_DIRECT}; do
+ if use lirc_devices_${dev}; then
+ add_device ${dev}
+ fi
+ done
+
+ if use lirc_devices_remote_wonder_plus; then
+ add_device atiusb "device Remote Wonder Plus (atiusb-based)"
+ fi
+
+ if use lirc_devices_serial_igor_cesko; then
+ add_device serial "serial with Igor Cesko design"
+ MY_OPTS="${MY_OPTS} --with-igor"
+ fi
+
+ if use lirc_devices_imon_pad; then
+ ewarn "The imon_pad driver has incorporated the previous pad2keys patch"
+ ewarn "and removed the pad2keys_active option for the lirc_imon module"
+ ewarn "because it is always active."
+ ewarn "If you have an older imon VFD device, you may need to add the module"
+ ewarn "option display_type=1 to override autodetection and force VFD mode."
+ fi
+
+ if use lirc_devices_xboxusb; then
+ add_device atiusb "device xboxusb"
+ fi
+
+ if use lirc_devices_usbirboy; then
+ add_device userspace "device usbirboy"
+ LIRC_DRIVER_DEVICE="/dev/usbirboy"
+ fi
+
+ if [[ "${MY_OPTS}" == "" ]]; then
+ if [[ "${PROFILE_ARCH}" == "xbox" ]]; then
+ # on xbox: use special driver
+ add_device atiusb "device xboxusb"
+ else
+ # no driver requested
+ elog
+ elog "Compiling only the lirc-applications, but no drivers."
+ elog "Enable drivers with LIRC_DEVICES if you need them."
+ MY_OPTS="--with-driver=none"
+ fi
+ fi
+ fi
+
+ use hardware-carrier && MY_OPTS="${MY_OPTS} --without-soft-carrier"
+ use transmitter && MY_OPTS="${MY_OPTS} --with-transmitter"
+
+ if [[ -n "${LIRC_OPTS}" ]] ; then
+ ewarn
+ ewarn "LIRC_OPTS is deprecated from lirc-0.8.0-r1 on."
+ ewarn
+ ewarn "Please use LIRC_DEVICES from now on."
+ ewarn "e.g. LIRC_DEVICES=\"serial sir\""
+ ewarn
+ ewarn "Flags are now set per use-flags."
+ ewarn "e.g. transmitter, hardware-carrier"
+
+ local opt
+ local unsupported_opts=""
+
+ # test for allowed options for LIRC_OPTS
+ for opt in ${LIRC_OPTS}; do
+ case ${opt} in
+ --with-port=*|--with-irq=*|--with-timer=*|--with-tty=*)
+ MY_OPTS="${MY_OPTS} ${opt}"
+ ;;
+ *)
+ unsupported_opts="${unsupported_opts} ${opt}"
+ ;;
+ esac
+ done
+ if [[ -n ${unsupported_opts} ]]; then
+ ewarn "These options are no longer allowed to be set"
+ ewarn "with LIRC_OPTS: ${unsupported_opts}"
+ die "LIRC_OPTS is no longer recommended."
+ fi
+ fi
+
+ # Setup parameter for linux-mod.eclass
+ MODULE_NAMES="lirc(misc:${S})"
+ BUILD_TARGETS="all"
+
+ ECONF_PARAMS=" --localstatedir=/var
+ --with-syslog=LOG_DAEMON
+ --enable-sandboxed
+ --with-kerneldir=${KV_DIR}
+ --with-moduledir=/lib/modules/${KV_FULL}/misc
+ $(use_enable debug)
+ $(use_with X x)
+ ${MY_OPTS}"
+
+ einfo
+ einfo "lirc-configure-opts: ${MY_OPTS}"
+ elog "Setting default lirc-device to ${LIRC_DRIVER_DEVICE}"
+
+ filter-flags -Wl,-O1
+
+ # force non-parallel make, Bug 196134
+ MAKEOPTS="${MAKEOPTS} -j1"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Rip out dos CRLF
+ edos2unix contrib/lirc.rules
+
+ # Apply patches needed for some special device-types
+ use lirc_devices_audio || epatch "${FILESDIR}"/lirc-0.8.4-portaudio_check.patch
+ use lirc_devices_remote_wonder_plus && epatch "${FILESDIR}"/lirc-0.8.3_pre1-remotewonderplus.patch
+
+ epatch "${FILESDIR}"/usb_buffer.patch
+
+ # remove parallel driver on SMP systems
+ if linux_chkconfig_present SMP ; then
+ sed -i -e "s:lirc_parallel\.o::" drivers/lirc_parallel/Makefile.am
+ fi
+
+ # Bug #187418
+ if kernel_is ge 2 6 22 ; then
+ ewarn "Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+"
+ sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am
+ fi
+
+ # respect CFLAGS
+ sed -i -e 's:CFLAGS="-O2:CFLAGS=""\n#CFLAGS="-O2:' configure.ac
+
+ # setting default device-node
+ local f
+ for f in configure.ac acconfig.h; do
+ [[ -f "$f" ]] && sed -i -e '/#define LIRC_DRIVER_DEVICE/d' "$f"
+ done
+ echo "#define LIRC_DRIVER_DEVICE \"${LIRC_DRIVER_DEVICE}\"" >> acconfig.h
+
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ newinitd "${FILESDIR}"/lircd-0.8.6 lircd
+ newinitd "${FILESDIR}"/lircmd lircmd
+ newconfd "${FILESDIR}"/lircd.conf.2 lircd
+
+ insinto /etc/modprobe.d/
+ newins "${FILESDIR}"/modprobed.lirc lirc.conf
+
+ newinitd "${FILESDIR}"/irexec-initd-0.8.6-r2 irexec
+ newconfd "${FILESDIR}"/irexec-confd irexec
+
+ if use doc ; then
+ dohtml doc/html/*.html
+ insinto /usr/share/doc/${PF}/images
+ doins doc/images/*
+ fi
+
+ insinto /usr/share/lirc/remotes
+ doins -r remotes/*
+
+ keepdir /var/run/lirc /etc/lirc
+ if [[ -e "${D}"/etc/lirc/lircd.conf ]]; then
+ newdoc "${D}"/etc/lirc/lircd.conf lircd.conf.example
+ fi
+}
+
+pkg_preinst() {
+ linux-mod_pkg_preinst
+
+ local dir="${ROOT}/etc/modprobe.d"
+ if [[ -a "${dir}"/lirc && ! -a "${dir}"/lirc.conf ]]; then
+ elog "Renaming ${dir}/lirc to lirc.conf"
+ mv -f "${dir}/lirc" "${dir}/lirc.conf"
+ fi
+
+ # copy the first file that can be found
+ if [[ -f "${ROOT}"/etc/lirc/lircd.conf ]]; then
+ cp "${ROOT}"/etc/lirc/lircd.conf "${T}"/lircd.conf
+ elif [[ -f "${ROOT}"/etc/lircd.conf ]]; then
+ cp "${ROOT}"/etc/lircd.conf "${T}"/lircd.conf
+ MOVE_OLD_LIRCD_CONF=1
+ elif [[ -f "${D}"/etc/lirc/lircd.conf ]]; then
+ cp "${D}"/etc/lirc/lircd.conf "${T}"/lircd.conf
+ fi
+
+ # stop portage from touching the config file
+ if [[ -e "${D}"/etc/lirc/lircd.conf ]]; then
+ rm -f "${D}"/etc/lirc/lircd.conf
+ fi
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # copy config file to new location
+ # without portage knowing about it
+ # so it will not delete it on unmerge or ever touch it again
+ if [[ -e "${T}"/lircd.conf ]]; then
+ cp "${T}"/lircd.conf "${ROOT}"/etc/lirc/lircd.conf
+ if [[ "$MOVE_OLD_LIRCD_CONF" = "1" ]]; then
+ elog "Moved /etc/lircd.conf to /etc/lirc/lircd.conf"
+ rm -f "${ROOT}"/etc/lircd.conf
+ fi
+ fi
+
+ ewarn
+ ewarn "The lirc_gpio driver will not work with Kernels 2.6.22+"
+ ewarn "You need to switch over to /dev/input/event? if you need gpio"
+ ewarn "This device can than then be used via lirc's dev/input driver."
+ ewarn
+ ewarn "The new default location for lircd.conf is inside of"
+ ewarn "/etc/lirc/ directory"
+
+}
361 app-misc/lirc/lirc-0.9.0_pre1.ebuild
@@ -0,0 +1,361 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/lirc-0.8.7_pre1.ebuild,v 1.1 2010/05/21 02:47:00 beandog Exp $
+
+inherit eutils linux-mod flag-o-matic autotools
+
+DESCRIPTION="decode and send infra-red signals of many commonly used remote controls"
+HOMEPAGE="http://www.lirc.org/"
+
+MY_P=${PN}-${PV/_/-}
+
+if [[ "${PV/_pre/}" = "${PV}" ]]; then
+ SRC_URI="mirror://sourceforge/lirc/${MY_P}.tar.bz2"
+else
+ SRC_URI="http://www.lirc.org/software/snapshots/${MY_P}.tar.bz2"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="debug doc X hardware-carrier transmitter"
+
+S="${WORKDIR}/${MY_P}"
+
+RDEPEND="
+ X? (
+ x11-libs/libX11
+ x11-libs/libSM
+ x11-libs/libICE
+ )
+ lirc_devices_alsa_usb? ( media-libs/alsa-lib )
+ lirc_devices_audio? ( >media-libs/portaudio-18 )
+ lirc_devices_irman? ( media-libs/libirman )"
+
+# This are drivers with names matching the
+# parameter --with-driver=NAME
+IUSE_LIRC_DEVICES_DIRECT="
+ all userspace accent act200l act220l
+ adaptec alsa_usb animax asusdh atilibusb
+ atiusb audio audio_alsa avermedia avermedia_vdomate
+ avermedia98 awlibusb bestbuy bestbuy2 breakoutbox
+ bte bw6130 caraca chronos commandir
+ cph06x creative creative_infracd
+ devinput digimatrix dsp dvico ea65 ene0100
+ exaudio flyvideo ftdi gvbctv5pci hauppauge
+ hauppauge_dvb hercules_smarttv_stereo i2cuser
+ igorplugusb iguanaIR imon imon_24g imon_knob
+ imon_lcd imon_pad imon_rsc irdeo irdeo_remote
+ irlink irman irreal it87 ite8709
+ knc_one kworld leadtek_0007 leadtek_0010
+ leadtek_pvr2000 livedrive_midi
+ livedrive_seq logitech macmini mceusb
+ mediafocusI mouseremote
+ mouseremote_ps2 mp3anywhere mplay nslu2
+ packard_bell parallel pcmak pcmak_usb
+ pctv pixelview_bt878 pixelview_pak
+ pixelview_pro provideo realmagic
+ remotemaster sa1100 samsung sasem sb0540 serial
+ silitek sir slinke streamzap tekram
+ tekram_bt829 tira ttusbir tuxbox tvbox udp uirt2
+ uirt2_raw usb_uirt_raw usbx wpc8769l"
+
+# drivers that need special handling and
+# must have another name specified for
+# parameter --with-driver=NAME
+IUSE_LIRC_DEVICES_SPECIAL="
+ serial_igor_cesko
+ remote_wonder_plus xboxusb usbirboy inputlirc"
+
+IUSE_LIRC_DEVICES="${IUSE_LIRC_DEVICES_DIRECT} ${IUSE_LIRC_DEVICES_SPECIAL}"
+
+#device-driver which use libusb
+LIBUSB_USED_BY_DEV="
+ all atilibusb awlibusb sasem igorplugusb imon imon_lcd imon_pad
+ imon_rsc streamzap mceusb xboxusb irlink commandir"
+
+for dev in ${LIBUSB_USED_BY_DEV}; do
+ DEPEND="${DEPEND} lirc_devices_${dev}? ( dev-libs/libusb )"
+done
+
+# adding only compile-time depends
+DEPEND="${RDEPEND} ${DEPEND}
+ virtual/linux-sources
+ lirc_devices_ftdi? ( dev-embedded/libftdi )
+ lirc_devices_all? ( dev-embedded/libftdi )"
+
+# adding only run-time depends
+RDEPEND="${RDEPEND}
+ lirc_devices_usbirboy? ( app-misc/usbirboy )
+ lirc_devices_inputlirc? ( app-misc/inputlircd )
+ lirc_devices_iguanaIR? ( app-misc/iguanaIR )"
+
+# add all devices to IUSE
+for dev in ${IUSE_LIRC_DEVICES}; do
+ IUSE="${IUSE} lirc_devices_${dev}"
+done
+
+add_device() {
+ : ${lirc_device_count:=0}
+ ((lirc_device_count++))
+
+ if [[ ${lirc_device_count} -eq 2 ]]; then
+ ewarn
+ ewarn "When selecting multiple devices for lirc to be supported,"
+ ewarn "it can not be guaranteed that the drivers play nice together."
+ ewarn
+ ewarn "If this is not intended, then abort emerge now with Ctrl-C,"
+ ewarn "Set LIRC_DEVICES and restart emerge."
+ ewarn
+ epause
+ fi
+
+ local dev="${1}"
+ local desc="device ${dev}"
+ if [[ -n "${2}" ]]; then
+ desc="${2}"
+ fi
+
+ elog "Compiling support for ${desc}"
+ MY_OPTS="${MY_OPTS} --with-driver=${dev}"
+}
+
+pkg_setup() {
+
+ if use lirc_devices_mceusb2
+ then
+ ewarn "The mceusb2 driver has been merged into the mceusb."
+ ewarn "Please only use the latter now."
+ fi
+
+ ewarn "If your LIRC device requires modules, you'll need MODULE_UNLOAD"
+ ewarn "support in your kernel."
+
+ linux-mod_pkg_setup
+
+ # set default configure options
+ MY_OPTS=""
+ LIRC_DRIVER_DEVICE="/dev/lirc0"
+
+ if use lirc_devices_all; then
+ # compile in drivers for a lot of devices
+ add_device all "a lot of devices"
+ else
+ # compile in only requested drivers
+ local dev
+ for dev in ${IUSE_LIRC_DEVICES_DIRECT}; do
+ if use lirc_devices_${dev}; then
+ add_device ${dev}
+ fi
+ done
+
+ if use lirc_devices_remote_wonder_plus; then
+ add_device atiusb "device Remote Wonder Plus (atiusb-based)"
+ fi
+
+ if use lirc_devices_serial_igor_cesko; then
+ add_device serial "serial with Igor Cesko design"
+ MY_OPTS="${MY_OPTS} --with-igor"
+ fi
+
+ if use lirc_devices_imon_pad; then
+ ewarn "The imon_pad driver has incorporated the previous pad2keys patch"
+ ewarn "and removed the pad2keys_active option for the lirc_imon module"
+ ewarn "because it is always active."
+ ewarn "If you have an older imon VFD device, you may need to add the module"
+ ewarn "option display_type=1 to override autodetection and force VFD mode."
+ fi
+
+ if use lirc_devices_xboxusb; then
+ add_device atiusb "device xboxusb"
+ fi
+
+ if use lirc_devices_usbirboy; then
+ add_device userspace "device usbirboy"
+ LIRC_DRIVER_DEVICE="/dev/usbirboy"
+ fi
+
+ if [[ "${MY_OPTS}" == "" ]]; then
+ if [[ "${PROFILE_ARCH}" == "xbox" ]]; then
+ # on xbox: use special driver
+ add_device atiusb "device xboxusb"
+ else
+ # no driver requested
+ elog
+ elog "Compiling only the lirc-applications, but no drivers."
+ elog "Enable drivers with LIRC_DEVICES if you need them."
+ MY_OPTS="--with-driver=none"
+ fi
+ fi
+ fi
+
+ use hardware-carrier && MY_OPTS="${MY_OPTS} --without-soft-carrier"
+ use transmitter && MY_OPTS="${MY_OPTS} --with-transmitter"
+
+ if [[ -n "${LIRC_OPTS}" ]] ; then
+ ewarn
+ ewarn "LIRC_OPTS is deprecated from lirc-0.8.0-r1 on."
+ ewarn
+ ewarn "Please use LIRC_DEVICES from now on."
+ ewarn "e.g. LIRC_DEVICES=\"serial sir\""
+ ewarn
+ ewarn "Flags are now set per use-flags."
+ ewarn "e.g. transmitter, hardware-carrier"
+
+ local opt
+ local unsupported_opts=""
+
+ # test for allowed options for LIRC_OPTS
+ for opt in ${LIRC_OPTS}; do
+ case ${opt} in
+ --with-port=*|--with-irq=*|--with-timer=*|--with-tty=*)
+ MY_OPTS="${MY_OPTS} ${opt}"
+ ;;
+ *)
+ unsupported_opts="${unsupported_opts} ${opt}"
+ ;;
+ esac
+ done
+ if [[ -n ${unsupported_opts} ]]; then
+ ewarn "These options are no longer allowed to be set"
+ ewarn "with LIRC_OPTS: ${unsupported_opts}"
+ die "LIRC_OPTS is no longer recommended."
+ fi
+ fi
+
+ # Setup parameter for linux-mod.eclass
+ MODULE_NAMES="lirc(misc:${S})"
+ BUILD_TARGETS="all"
+
+ ECONF_PARAMS=" --localstatedir=/var
+ --with-syslog=LOG_DAEMON
+ --enable-sandboxed
+ --with-kerneldir=${KV_DIR}
+ --with-moduledir=/lib/modules/${KV_FULL}/misc
+ $(use_enable debug)
+ $(use_with X x)
+ ${MY_OPTS}"
+
+ einfo
+ einfo "lirc-configure-opts: ${MY_OPTS}"
+ elog "Setting default lirc-device to ${LIRC_DRIVER_DEVICE}"
+
+ filter-flags -Wl,-O1
+
+ # force non-parallel make, Bug 196134
+ MAKEOPTS="${MAKEOPTS} -j1"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"