summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/pcfclock')
-rw-r--r--sys-apps/pcfclock/ChangeLog8
-rw-r--r--sys-apps/pcfclock/Manifest4
-rw-r--r--sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.27.diff119
-rw-r--r--sys-apps/pcfclock/pcfclock-0.44-r5.ebuild54
4 files changed, 183 insertions, 2 deletions
diff --git a/sys-apps/pcfclock/ChangeLog b/sys-apps/pcfclock/ChangeLog
index d01db752bf35..f5e4095d9c51 100644
--- a/sys-apps/pcfclock/ChangeLog
+++ b/sys-apps/pcfclock/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-apps/pcfclock
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/ChangeLog,v 1.9 2008/07/14 23:05:54 sbriesen Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcfclock/ChangeLog,v 1.10 2008/10/26 23:36:23 sbriesen Exp $
+
+*pcfclock-0.44-r5 (26 Oct 2008)
+
+ 26 Oct 2008; Stefan Briesenick <sbriesen@gentoo.org>
+ +files/pcfclock-0.44-kernel-2.6.27.diff, +pcfclock-0.44-r5.ebuild:
+ revbump to support kernel 2.6.27, solving bug #241126.
14 Jul 2008; Stefan Briesenick <sbriesen@gentoo.org>
-files/pcfclock-0.44-udev.patch, -pcfclock-0.44-r2.ebuild:
diff --git a/sys-apps/pcfclock/Manifest b/sys-apps/pcfclock/Manifest
index de1e5df3edbe..2d55a2a9fbb0 100644
--- a/sys-apps/pcfclock/Manifest
+++ b/sys-apps/pcfclock/Manifest
@@ -1,7 +1,9 @@
AUX pcfclock-0.44-kernel-2.6.18.diff 3917 RMD160 0893c91db18386bdb52ebe825a40b732a32a1233 SHA1 c8ea6af864e8e702288169f8acf858edfd3b1f6c SHA256 041fb0653615e525d8595ba903bd5013dadd8f594338aeed430c1ed6e04383b4
AUX pcfclock-0.44-kernel-2.6.26.diff 4357 RMD160 c36bdc55678722deec25bc5c2a0376928ae5f256 SHA1 295ac159345ef970daff921847ea13cd14e77bc0 SHA256 d8a3f7dbe53c3b037cfa4267b1f7c0f55f0162d983fb3c974a93e25140140156
+AUX pcfclock-0.44-kernel-2.6.27.diff 4900 RMD160 e0c6ded915615ca42919dd1477fe10450e72fdf6 SHA1 1f7e138d92fb79da8b74004a582a873b92788542 SHA256 55b1cb066d1ff6f707997ad7cfd0edec10493f8f5464c5cd7798ae9fec52e4c7
DIST pcfclock-0.44.tar.gz 89914 RMD160 e6bf6bafcf985d3742767118abc83c0fbf81252f SHA1 6ec6660429fa5be81cb8b686a0b929b076209061 SHA256 1285c9536ad04c74bbdd92e22fd6a6661feeb3c9175eccb9b1e02c2f06adbda8
EBUILD pcfclock-0.44-r3.ebuild 1447 RMD160 174aace02a2cfd042c0d50d99010bfee22d92fe9 SHA1 69888babb9d6509fd53cfaa0bbc0c94f1d1cbe0d SHA256 cba458668503fc3fb9fde0d43bea77138600e2cf9662c01eb6b5a6ba0c481e29
EBUILD pcfclock-0.44-r4.ebuild 1447 RMD160 4d834e82ce901a906533827ebf2bb7d8772f688f SHA1 67f261258b9c2cb90dbff97f1fa2e530a519f26a SHA256 fd7afb36d3561b5386da3a2efb90344a954771968601e3f035686e140589ab01
-MISC ChangeLog 1824 RMD160 1934d2c3714ab5920efd2f8da801438306ec7f86 SHA1 c2030e3a8318d7da1b16e1d72acb2ac2ddfcfe24 SHA256 a9213a1a0f9f1722df5cf8a51a8364da9333a432ff8573c2750811d8694e9e5d
+EBUILD pcfclock-0.44-r5.ebuild 1447 RMD160 3cf309c4b9fdc12bd2dffbe82c89f517a2f565fe SHA1 11f7796ae1ab1018e1b2d1e876381149aeb9a7b2 SHA256 f2b3ac451d1d65751fd7b5a8c883a395f3e9843f1324b66cd683661c1b1fd07a
+MISC ChangeLog 2040 RMD160 77d2fa43a42d0886484965570d45673fe14b8fae SHA1 fe232c866187a84657916ebf88c0328fe675399a SHA256 c58f894ed0482e9c8cf416ba368feedfadac7b55d9cd1d0e54fc6c7b826f2a7e
MISC metadata.xml 643 RMD160 e390969f9a48f9e31c200e372c52aa5ab5595575 SHA1 b908bc35e779b4cb38025b24e66a1810f27ab72c SHA256 e4dc68c9a436c2229a171d320d03a94b0f4a355e174d3308d0ce0f71657d219b
diff --git a/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.27.diff b/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.27.diff
new file mode 100644
index 000000000000..8bfddd54adaa
--- /dev/null
+++ b/sys-apps/pcfclock/files/pcfclock-0.44-kernel-2.6.27.diff
@@ -0,0 +1,119 @@
+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-10-27 00:16:45.607110512 +0100
+@@ -49,16 +49,25 @@
+ #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>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26)
+ #include <asm/semaphore.h>
++#else
++#include <linux/semaphore.h>
++#endif
+
+ /* Major device number */
+ #define PCFCLOCK_MAJOR 181
+@@ -93,6 +102,38 @@
+
+ static struct pcfclock_struct pcfclock_table[PCFCLOCK_NO];
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++# 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, NULL, 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,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 +442,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 +487,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 +557,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 +614,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-r5.ebuild b/sys-apps/pcfclock/pcfclock-0.44-r5.ebuild
new file mode 100644
index 000000000000..2ae5c344198f
--- /dev/null
+++ b/sys-apps/pcfclock/pcfclock-0.44-r5.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-r5.ebuild,v 1.1 2008/10/26 23:36:23 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.27.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
+}