debian-bugs-dist  

Bug#521212: ndiswrapper-source: fails to build against kernel 2.6.29.

Stefan Lippers-Hollmann
Wed, 25 Mar 2009 13:09:43 -0700

Package: ndiswrapper-source
Version: 1.54-1
Severity: important
Tags: upstream, patch

Trying to build ndiswrapper-source 1.54(-1) against kernel 2.6.29 fails 
with the following error messages:

/usr/bin/make -C 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper
 KBUILD=/usr/src/linux-headers-2.6.29-rc8-sidux-amd64
make[3]: Entering directory 
`/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper'
/usr/bin/make -C /usr/src/linux-headers-2.6.29-rc8-sidux-amd64 
M=/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper
make[4]: Entering directory `/usr/src/linux-headers-2.6.29-rc8-sidux-amd64'
  LD      
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/built-in.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/crt_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/crt.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/hal_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/hal.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/iw_ndis.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/loader.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ndis_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ndis.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_io_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_io.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/pe_linker.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/pnp.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/proc.o
  MKEXPORT 
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/rtl_exports.h
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/rtl.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapmem.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.o
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
 error: unknown field 'poll_controller' specified in initializer
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
 warning: initialization from incompatible pointer type
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
 error: expected '}' before ';' token
make[5]: *** 
[/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.o]
 Error 1
make[4]: *** 
[_module_/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper]
 Error 2
make[4]: Leaving directory `/usr/src/linux-headers-2.6.29-rc8-sidux-amd64'
(yes, this still happens with the final 2.6.29)

The reason for this is actually two-fold, on the one hand the field name is
wrong, .poll_controller should be .ndo_poll_controller, on the other hand a
syntax error sneaked into the netdev_ops conditional (; instead of ,) which
only triggers on kernel >= 2.6.29.



fix C syntax error and field name in conditional netdev ops struct, 
triggering on kernel >= 2.6.29 and CONFIG_NET_POLL_CONTROLLER=y.

Signed-off-by: Stefan Lippers-Hollmann <s....@gmx.de>

--- a/driver/wrapndis.c
+++ b/driver/wrapndis.c
@@ -1744,7 +1744,7 @@ static const struct net_device_ops ndis_
        .ndo_set_mac_address = ndis_set_mac_address,
        .ndo_get_stats = ndis_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
-       .poll_controller = ndis_poll_controller;
+       .ndo_poll_controller = ndis_poll_controller,
 #endif
 };
 #endif


A complete debdiff is attached, build (amd64/ i386) and runtime (i386, SiS 
163u) tested against 2.6.29 (the change is inside an >= 2.6.29 ifdef, so it
has no effect on <=2.6.28).

Regards
        Stefan Lippers-Hollmann

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.29-0.slh.1-sidux-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages ndiswrapper-source depends on:
ii  bzip2                         1.0.5-1    high-quality block-sorting file co
ii  debhelper                     7.2.6      helper programs for debian/rules
ii  module-assistant              0.10.11.0  tool to make module package creati

ndiswrapper-source recommends no packages.

Versions of packages ndiswrapper-source suggests:
ii  kernel-package                11.017     A utility for building Linux kerne

-- no debconf information
diff -u ndiswrapper-1.54/debian/rules ndiswrapper-1.54/debian/rules
--- ndiswrapper-1.54/debian/rules
+++ ndiswrapper-1.54/debian/rules
@@ -1,22 +1,23 @@
 #!/usr/bin/make -f
+include /usr/share/quilt/quilt.make
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
 build: build-indep build-arch
 
 build-indep: build-indep-stamp
-build-indep-stamp:
+build-indep-stamp: $(QUILT_STAMPFN)
 	touch $@
 
 build-arch: build-arch-stamp
-build-arch-stamp:
+build-arch-stamp: $(QUILT_STAMPFN)
 	dh_testdir
 
 	$(MAKE) -C utils
 
 	touch $@
 
-clean:
+clean: unpatch
 	dh_testdir
 	dh_testroot
 
diff -u ndiswrapper-1.54/debian/control ndiswrapper-1.54/debian/control
--- ndiswrapper-1.54/debian/control
+++ ndiswrapper-1.54/debian/control
@@ -4,7 +4,7 @@
 Maintainer: Julian Andres Klode <j...@debian.org>
 Uploaders: Kel Modderman <k...@otaku42.de>
 Standards-Version: 3.8.1
-Build-Depends: debhelper (>= 5), bzip2
+Build-Depends: debhelper (>= 5), bzip2, quilt
 Homepage: http://ndiswrapper.sourceforge.net/
 
 Package: ndiswrapper-common
only in patch2:
unchanged:
--- ndiswrapper-1.54.orig/debian/patches/fix-typo-in-netdev-ops-struct.patch
+++ ndiswrapper-1.54/debian/patches/fix-typo-in-netdev-ops-struct.patch
@@ -0,0 +1,16 @@
+fix C syntax error and field name in conditional netdev ops struct, 
+triggering on kernel >= 2.6.29 and CONFIG_NET_POLL_CONTROLLER=y.
+
+Signed-off-by: Stefan Lippers-Hollmann <s....@gmx.de>
+
+--- a/driver/wrapndis.c
++++ b/driver/wrapndis.c
+@@ -1744,7 +1744,7 @@ static const struct net_device_ops ndis_
+ 	.ndo_set_mac_address = ndis_set_mac_address,
+ 	.ndo_get_stats = ndis_get_stats,
+ #ifdef CONFIG_NET_POLL_CONTROLLER
+-	.poll_controller = ndis_poll_controller;
++	.ndo_poll_controller = ndis_poll_controller,
+ #endif
+ };
+ #endif
only in patch2:
unchanged:
--- ndiswrapper-1.54.orig/debian/patches/series
+++ ndiswrapper-1.54/debian/patches/series
@@ -0,0 +1 @@
+fix-typo-in-netdev-ops-struct.patch

Attachment: signature.asc
Description: This is a digitally signed message part.

  • Bug#521212: ndiswrapper-source: fails to build against kernel 2.6.29. Stefan Lippers-Hollmann