summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Briesenick <sbriesen@gentoo.org>2008-07-14 23:04:19 +0000
committerStefan Briesenick <sbriesen@gentoo.org>2008-07-14 23:04:19 +0000
commitee12ff6e0cec15c2cdeb73ed0eb124c443de1fea (patch)
tree61bf87eae8874d80bdf43eb6a38a46af00756e9a /sys-apps/pcfclock
parentwhitespace (diff)
downloadgentoo-2-ee12ff6e0cec15c2cdeb73ed0eb124c443de1fea.tar.gz
gentoo-2-ee12ff6e0cec15c2cdeb73ed0eb124c443de1fea.tar.bz2
gentoo-2-ee12ff6e0cec15c2cdeb73ed0eb124c443de1fea.zip
added kernel 2.6.26 patches, solving bug #231809.
(Portage version: 2.2_rc1/cvs/Linux 2.6.24-gentoo-r5 i686)
Diffstat (limited to 'sys-apps/pcfclock')
-rw-r--r--sys-apps/pcfclock/ChangeLog11
-rw-r--r--sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.26.diff106
-rw-r--r--sys-apps/pcfclock/pcfclock-0.44-r3.ebuild6
-rw-r--r--sys-apps/pcfclock/pcfclock-0.44-r4.ebuild54
4 files changed, 172 insertions, 5 deletions
diff --git a/sys-apps/pcfclock/ChangeLog b/sys-apps/pcfclock/ChangeLog
index 3665face0a93..34382c98da3a 100644
--- a/sys-apps/pcfclock/ChangeLog
+++ b/sys-apps/pcfclock/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-apps/pcfclock
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/ChangeLog,v 1.7 2007/01/08 20:29:10 sbriesen Exp $
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/ChangeLog,v 1.8 2008/07/14 23:04:18 sbriesen Exp $
+
+*pcfclock-0.44-r4 (14 Jul 2008)
+
+ 14 Jul 2008; Stefan Briesenick <sbriesen@gentoo.org>
+ +files/pcfclock-0.44-kernel-2.6.26.diff, pcfclock-0.44-r3.ebuild,
+ +pcfclock-0.44-r4.ebuild:
+ added kernel 2.6.26 patches, solving bug #231809.
*pcfclock-0.44-r3 (08 Jan 2007)
diff --git a/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.26.diff b/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.26.diff
new file mode 100644
index 000000000000..90406a7599ee
--- /dev/null
+++ b/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.26.diff
@@ -0,0 +1,106 @@
+diff -Naur pcfclock-0.44.orig/linux/pcfclock.c pcfclock-0.44/linux/pcfclock.c
+--- pcfclock-0.44.orig/linux/pcfclock.c 2004-05-17 18:26:12.000000000 +0200
++++ pcfclock-0.44/linux/pcfclock.c 2008-07-15 00:56:21.000000000 +0200
+@@ -49,13 +49,18 @@
+ #include <linux/major.h>
+ #include <linux/fs.h>
+ #include <linux/sched.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ #include <linux/devfs_fs_kernel.h>
++#endif
+ #include <linux/string.h>
+ #include <linux/delay.h>
+ #include <linux/parport.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+ #include <linux/device.h>
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
++#include <linux/moduleparam.h>
++#endif
+
+ #include <asm/uaccess.h>
+ #include <asm/semaphore.h>
+@@ -93,6 +98,32 @@
+
+ static struct pcfclock_struct pcfclock_table[PCFCLOCK_NO];
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++# define CLASS_CREATE(owner, name) class_create(owner, name)
++# define CLASS_DESTROY(class) class_destroy(class)
++# define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) device_create(class, device, dev, fmt, rest)
++# define CLASS_DEVICE_DESTROY(class, dev) device_destroy(class, dev)
++static struct class *pcfclock_class;
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
++# define CLASS_CREATE(owner, name) class_create(owner, name)
++# define CLASS_DESTROY(class) class_destroy(class)
++# define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_device_create(class, NULL, dev, device, fmt, rest)
++# define CLASS_DEVICE_DESTROY(class, dev) class_device_destroy(class, dev)
++static struct class *pcfclock_class;
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)
++# define CLASS_CREATE(owner, name) class_create(owner, name)
++# define CLASS_DESTROY(class) class_destroy(class)
++# define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_device_create(class, dev, device, fmt, rest)
++# define CLASS_DEVICE_DESTROY(class, dev) class_device_destroy(class, dev)
++static struct class *pcfclock_class;
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++# define CLASS_CREATE(owner, name) class_simple_create(owner, name)
++# define CLASS_DESTROY(class) class_simple_destroy(class)
++# define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_simple_device_add(class, dev, device, fmt, rest)
++# define CLASS_DEVICE_DESTROY(class, dev) class_simple_device_remove(dev)
++static struct class_simple *pcfclock_class;
++#endif
++
+ /*
+ * The radio clock transmits data only to the PC when requested. While the
+ * time signal is received for the first time no communication between the PC
+@@ -401,7 +432,11 @@
+ static int parport_nr[PCFCLOCK_NO] = {[0 ... PCFCLOCK_NO - 1] = PCFCLOCK_PARPORT_UNSPEC };
+ static char *parport[PCFCLOCK_NO] = { NULL, };
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
++module_param_array(parport, charp, NULL, 0);
++#else
+ MODULE_PARM(parport, "1-" __MODULE_STRING(PCFCLOCK_NO) "s");
++#endif
+
+ #ifndef MODULE
+ static int __init
+@@ -442,7 +477,10 @@
+ return 1;
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++ CLASS_DEVICE_CREATE(pcfclock_class, MKDEV(PCFCLOCK_MAJOR, n), NULL, "pcfclock%d", n);
++# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ devfs_mk_cdev(MKDEV(PCFCLOCK_MAJOR, n), S_IFCHR | S_IRUGO, "pcfclocks/%d", n);
++# endif
+ #else
+ sprintf(name, "%d", n);
+ devfs_register(devfs_handle, name, DEVFS_FL_DEFAULT, PCFCLOCK_MAJOR, n, S_IFCHR | S_IRUGO,
+@@ -509,7 +547,10 @@
+ printk(KERN_ERR "pcfclock: unable to get major %d\n", PCFCLOCK_MAJOR);
+ return -EIO;
+ }
++ pcfclock_class = CLASS_CREATE(THIS_MODULE, "pcfclock");
++# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ devfs_mk_dir("pcfclocks");
++# endif
+ #else
+ if (devfs_register_chrdev(PCFCLOCK_MAJOR, "pcfclock", &pcfclock_fops)) {
+ printk(KERN_ERR "pcfclock: unable to get major %d\n", PCFCLOCK_MAJOR);
+@@ -563,10 +604,16 @@
+ for (n = 0; n < PCFCLOCK_NO; n++) {
+ if (pcfclock_table[n].dev != NULL) {
+ parport_unregister_device(pcfclock_table[n].dev);
++ CLASS_DEVICE_DESTROY(pcfclock_class, MKDEV(PCFCLOCK_MAJOR, n));
++# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ devfs_remove("pcfclocks/%d", n);
++# endif
+ }
+ }
++ CLASS_DESTROY(pcfclock_class);
++# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ devfs_remove("pcfclocks");
++# endif
+ #else
+ devfs_unregister(devfs_handle);
+ devfs_unregister_chrdev(PCFCLOCK_MAJOR, "pcfclock");
diff --git a/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild b/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild
index 23d993971c88..2af37154ed40 100644
--- a/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild
+++ b/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild,v 1.1 2007/01/08 20:29:10 sbriesen Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild,v 1.2 2008/07/14 23:04:18 sbriesen Exp $
inherit eutils linux-mod
@@ -46,7 +46,7 @@ src_install() {
dodoc AUTHORS ChangeLog NEWS README THANKS
# Add configuration for udev
- if [ -e ${ROOT}dev/.udev ]; then
+ if [ -e "${ROOT}dev/.udev" ]; then
dodir /etc/udev/rules.d
echo 'KERNEL=="pcfclock*", NAME="%k", MODE="0444"' \
> "${D}/etc/udev/rules.d/55-${PN}.rules"
diff --git a/sys-apps/pcfclock/pcfclock-0.44-r4.ebuild b/sys-apps/pcfclock/pcfclock-0.44-r4.ebuild
new file mode 100644
index 000000000000..0d740ba0cc3f
--- /dev/null
+++ b/sys-apps/pcfclock/pcfclock-0.44-r4.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/pcfclock-0.44-r4.ebuild,v 1.1 2008/07/14 23:04:18 sbriesen Exp $
+
+inherit eutils linux-mod
+
+DESCRIPTION="driver for the parallel port radio clock sold by Conrad Electronic"
+HOMEPAGE="http://www-stud.ims.uni-stuttgart.de/~voegelas/pcf.html"
+SRC_URI="http://www-stud.ims.uni-stuttgart.de/~voegelas/pcfclock/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~ppc"
+IUSE=""
+
+DEPEND="virtual/linux-sources"
+
+pkg_setup() {
+ CONFIG_CHECK="PARPORT"
+ linux-mod_pkg_setup
+ BUILD_TARGETS="all"
+ ECONF_PARAMS="--with-linux=${KERNEL_DIR}"
+ MODULE_NAMES="pcfclock(::${S}/linux)"
+ MODULESD_PCFCLOCK_ENABLED="yes"
+ MODULESD_PCFCLOCK_EXAMPLES=( "pcfclock parport=0,none,none" )
+ MODULESD_PCFCLOCK_ALIASES=(
+ "char-major-181 pcfclock"
+ "/dev/pcfclock0 char-major-181"
+ "/dev/pcfclock1 char-major-181"
+ "/dev/pcfclock2 char-major-181"
+ )
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}/${P}-kernel-2.6.26.diff"
+ convert_to_m "linux/Makefile.in"
+}
+
+src_install() {
+ linux-mod_src_install
+ dosbin pcfdate/pcfdate
+ doman {linux,pcfdate}/*.[48]
+ dodoc AUTHORS ChangeLog NEWS README THANKS
+
+ # Add configuration for udev
+ if [ -e "${ROOT}dev/.udev" ]; then
+ dodir /etc/udev/rules.d
+ echo 'KERNEL=="pcfclock*", NAME="%k", MODE="0444"' \
+ > "${D}/etc/udev/rules.d/55-${PN}.rules"
+ fi
+}