It's not possible to compile net-dialup/fritzcapi-2.6.43 against a 2.6.26 gentoo-sources kernel. Reproducible: Always Steps to Reproduce: 1.emerge -av fritzcapi 2. 3. Actual Results: emerge -av fcusb2 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] net-dialup/fcusb2-0.1-r1 0 kB Total: 1 package (1 new), Size of downloads: 0 kB Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) net-dialup/fcusb2-0.1-r1 to / * fcusb2-0.1-0.src.rpm RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking fcusb2-0.1-0.src.rpm ;-) ... [ ok ] * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found kernel object directory: * /lib/modules/2.6.26-gentoo-r3/build * Found sources for kernel version: * 2.6.26-gentoo-r3 >>> Unpacking source... >>> Unpacking fcusb2-suse93-64bit-3.11-07.tar.gz to /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work * Applying fritz-usb.diff ... [ ok ] * Applying fritz_init_work.diff ... [ ok ] * Applying fritz_urb.diff ... [ ok ] * Applying fritz_config64.diff ... [ ok ] * Applying fcusb2_kernel-2.6.24.diff ... [ ok ] * Converting src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Localize symbols in fcusb2-lib.o ... >>> Source unpacked. >>> Compiling source in /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz ... * Preparing fcusb2 module make -C /usr/src/linux M=/var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src modules make[1]: Entering directory `/usr/src/linux-2.6.26-gentoo-r3' CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/main.o CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/driver.o CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/tools.o CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/tables.o CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/queue.o CC [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/lib.o LD [M] /var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src/fcusb2.o Building modules, stage 2. MODPOST 1 modules FATAL: modpost: GPL-incompatible module fcusb2.ko uses GPL-only symbol 'usb_kill_urb' make[2]: *** [__modpost] Error 1 make[1]: *** [modules] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.26-gentoo-r3' make: *** [fcusb2.o] Error 2 * * ERROR: net-dialup/fcusb2-0.1-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3265: Called linux-mod_src_compile * environment, line 2469: Called die * The specific snippet of code: * eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" CROSS_COMPILE=${CHOST}- LDFLAGS=\"$(get_abi_LDFLAGS)\" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}"; * The die message: * Unable to emake HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- LDFLAGS= KDIR=/usr/src/linux LIBDIR=/var/tmp/portage/net-dialup/fcusb2-0.1-r1/work/fritz/src all * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/net-dialup/fcusb2-0.1-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-dialup/fcusb2-0.1-r1/temp/environment'. *
FATAL: modpost: GPL-incompatible module fcusb2.ko uses GPL-only symbol 'usb_kill_urb' Short version: License issues prevent the build here. Ask AVM to opensource their driver or use an older driver, nothing we can do about it ...
But it does compile against an older kernel 2.6.20. Why there and not here?
(In reply to comment #2) > But it does compile against an older kernel 2.6.20. > Why there and not here? > Because the kernel devs have decided that they won't tolerate license violations in the future. It's a very ideologically charged debate, but in the long run the linux kernel will make it more difficult to let closed source things link against it. The change was in 2.6.25 or so, USB driver functions are now only available to GPLed modules. Maybe this motivates users to nag the driver vendors enough so that they finally release working (i.e. open) drivers ;)