Package: ov511-source
Version: 2.32-3
Severity: normal
Tags: patch

Hi,

Current package does not build against linux kernel 2.6.19.
Please find attached a patch fixing major issues (replacing use of 
linux/config.h by linux/autotconf.h
for kernels >= 2.6.18 and patch from http://lkml.org/lkml/2006/10/14/65).

There are still a lot of warnings when building the module.

Cheers,
Julien

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages ov511-source depends on:
ii  bzip2                         1.0.3-6    high-quality block-sorting file co
ii  debhelper                     5.0.42     helper programs for debian/rules
ii  module-assistant              0.10.9     tool to make module package creati

ov511-source recommends no packages.

-- no debconf information
diff -uN ov511.orig/ov511_core.c ov511/ov511_core.c
--- ov511.orig/ov511_core.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511_core.c	2007-01-13 11:03:10.000000000 +0100
@@ -26,9 +26,14 @@
  * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 /* 2.6 Doesn't support /proc/video, but this is still defined somewhere */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
 #  undef CONFIG_VIDEO_PROC_FS
@@ -5632,17 +5637,48 @@
 } 
 static CLASS_DEVICE_ATTR(exposure, S_IRUGO, show_exposure, NULL);
 
-static void ov_create_sysfs(struct video_device *vdev)
+static int ov_create_sysfs(struct video_device *vdev)
 {
-	video_device_create_file(vdev, &class_device_attr_custom_id);
-	video_device_create_file(vdev, &class_device_attr_model);
-	video_device_create_file(vdev, &class_device_attr_bridge);
-	video_device_create_file(vdev, &class_device_attr_sensor);
-	video_device_create_file(vdev, &class_device_attr_brightness);
-	video_device_create_file(vdev, &class_device_attr_saturation);
-	video_device_create_file(vdev, &class_device_attr_contrast);
-	video_device_create_file(vdev, &class_device_attr_hue);
-	video_device_create_file(vdev, &class_device_attr_exposure);
+	int rc;
+	rc = video_device_create_file(vdev, &class_device_attr_custom_id);
+	if (rc) goto err;
+	rc = video_device_create_file(vdev, &class_device_attr_model);
+	if (rc) goto err_id;
+	rc = video_device_create_file(vdev, &class_device_attr_bridge);
+	if (rc) goto err_model;
+	rc = video_device_create_file(vdev, &class_device_attr_sensor);
+	if (rc) goto err_bridge;
+	rc = video_device_create_file(vdev, &class_device_attr_brightness);
+	if (rc) goto err_sensor;
+	rc = video_device_create_file(vdev, &class_device_attr_saturation);
+	if (rc) goto err_bright;
+	rc = video_device_create_file(vdev, &class_device_attr_contrast);
+	if (rc) goto err_sat;
+	rc = video_device_create_file(vdev, &class_device_attr_hue);
+	if (rc) goto err_contrast;
+	rc = video_device_create_file(vdev, &class_device_attr_exposure);
+	if (rc) goto err_hue;
+
+	return 0;
+
+err_hue:
+	video_device_remove_file(vdev, &class_device_attr_hue);
+err_contrast:
+	video_device_remove_file(vdev, &class_device_attr_contrast);
+err_sat:
+	video_device_remove_file(vdev, &class_device_attr_saturation);
+err_bright:
+	video_device_remove_file(vdev, &class_device_attr_brightness);
+err_sensor:
+	video_device_remove_file(vdev, &class_device_attr_sensor);
+err_bridge:
+	video_device_remove_file(vdev, &class_device_attr_bridge);
+err_model:
+	video_device_remove_file(vdev, &class_device_attr_model);
+err_id:
+	video_device_remove_file(vdev, &class_device_attr_custom_id);
+err:
+	return rc;
 }
 #endif
 
@@ -5863,7 +5899,10 @@
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
 	usb_set_intfdata(intf, ov);
-	ov_create_sysfs(ov->vdev);
+	if (ov_create_sysfs(ov->vdev)) {
+		err("ov_create_sysfs failed");
+		goto error;
+	}
 #endif
 
 	ov->present = 1;
diff -uN ov511.orig/ov511_decomp.c ov511/ov511_decomp.c
--- ov511.orig/ov511_decomp.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511_decomp.c	2007-01-13 10:57:56.000000000 +0100
@@ -13,9 +13,14 @@
 
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include "ov511.h"
 
 /* Variables in ov511.c: */
diff -uN ov511.orig/ov511.h ov511/ov511.h
--- ov511.orig/ov511.h	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511.h	2007-01-13 10:58:10.000000000 +0100
@@ -14,7 +14,11 @@
 #define HAVE_V4L2
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
 #include <linux/config.h>
+#endif
 #include <asm/uaccess.h>
 #include <linux/videodev.h>
 #include <linux/smp_lock.h>
diff -uN ov511.orig/ov518_decomp.c ov511/ov518_decomp.c
--- ov511.orig/ov518_decomp.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov518_decomp.c	2007-01-13 10:58:24.000000000 +0100
@@ -14,9 +14,14 @@
 
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include "ov511.h"
 
 /******************************************************************************
diff -uN ov511.orig/ov6x20.c ov511/ov6x20.c
--- ov511.orig/ov6x20.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov6x20.c	2007-01-13 10:58:37.000000000 +0100
@@ -12,8 +12,14 @@
 /* This file is not a module yet */
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/slab.h>
 #include "ovcamchip_priv.h"
 
diff -uN ov511.orig/ov6x30.c ov511/ov6x30.c
--- ov511.orig/ov6x30.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov6x30.c	2007-01-13 10:58:48.000000000 +0100
@@ -12,8 +12,14 @@
 /* This file is not a module yet */
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/slab.h>
 #include "ovcamchip_priv.h"
 
diff -uN ov511.orig/ov76be.c ov511/ov76be.c
--- ov511.orig/ov76be.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov76be.c	2007-01-13 10:58:59.000000000 +0100
@@ -12,8 +12,14 @@
 /* This file is not a module yet */
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/slab.h>
 #include "ovcamchip_priv.h"
 
diff -uN ov511.orig/ov7x10.c ov511/ov7x10.c
--- ov511.orig/ov7x10.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov7x10.c	2007-01-13 10:59:35.000000000 +0100
@@ -14,8 +14,14 @@
 /* This file is not a module yet */
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/slab.h>
 #include "ovcamchip_priv.h"
 
diff -uN ov511.orig/ov7x20.c ov511/ov7x20.c
--- ov511.orig/ov7x20.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov7x20.c	2007-01-13 10:59:45.000000000 +0100
@@ -14,8 +14,14 @@
 /* This file is not a module yet */
 #define __NO_VERSION__
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/slab.h>
 #include "ovcamchip_priv.h"
 
diff -uN ov511.orig/ovcamchip_core.c ov511/ovcamchip_core.c
--- ov511.orig/ovcamchip_core.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovcamchip_core.c	2007-01-13 11:00:01.000000000 +0100
@@ -9,8 +9,14 @@
  * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/init.h>
 #include <linux/module.h>
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0)
diff -uN ov511.orig/ovfx2.c ov511/ovfx2.c
--- ov511.orig/ovfx2.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovfx2.c	2007-01-13 10:59:11.000000000 +0100
@@ -21,9 +21,14 @@
  * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 /* 2.6 Doesn't support /proc/video, but this is still defined somewhere */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
 #  undef CONFIG_VIDEO_PROC_FS
diff -uN ov511.orig/ovfx2.h ov511/ovfx2.h
--- ov511.orig/ovfx2.h	2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovfx2.h	2007-01-13 10:59:20.000000000 +0100
@@ -14,7 +14,12 @@
 #define HAVE_V4L2
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
 #include <linux/config.h>
+#endif
+
 #include <asm/uaccess.h>
 #include <linux/videodev.h>
 #include <linux/smp_lock.h>
diff -uN ov511.orig/saa7111-new.c ov511/saa7111-new.c
--- ov511.orig/saa7111-new.c	2006-11-01 16:38:26.000000000 +0100
+++ ov511/saa7111-new.c	2007-01-13 11:00:10.000000000 +0100
@@ -22,8 +22,14 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>

Reply via email to