Compiling net-dialup/fritzcapi-2.6.43 for sys-kernel/vanilla-sources-2.6.20_rc5 has two issues: 1. Error: name collision for "driver_init": In file included from .../main.c:45: .../driver.h:101: error: conflicting types for 'driver_init' include/linux/device.h:436: error: previous declaration of 'driver_init' was here 2. Warning: wrong parameter count in "irq_handler": .../driver.c: In function 'install_card': .../driver.c:383: warning: passing argument 2 of 'request_irq' from incompatible pointer type
Created attachment 107853 [details, diff] Changes to fritzcapi-2.6.43.ebuild Those changes address both problems mentioned above. I prepend a prefix to driver_init and, for uniformity, driver_exit as well. The application of the patch (attached below) takes care of the warning.
Created attachment 107855 [details, diff] 2.6.43-linux-2.6.19-irq_handler.patch irq_handler_t has changed type in 2.6.19 due to commit 7d12e780e003f93433d49ce78cfedf4b4c52adc5 by David Howells, for details see git diff at http://tinyurl.com/2xpdy7 As the third argument was never used by the drivers, I simply wrapped every occurrence of it in a condition for kernel version prior to 2.6.19.
The following patches might also be of interest: http://archlinux.org/~james/kernel26beyond-modules/fcpcmcia-beyond/ Applying 'kernel-2.6.19.patch' and especially 'pcmcia-2.6.17.patch' to fcpcmcia-3.11-07 fixes compilation on >= kernel 2.6.17. Unfortunatelly, I don't exactly understand what you are doing with the RPMs in this ebuild, so I can't help you any more than that. I'm just happy to be successfully using fcpcmcia_cs on 2.6.19-gentoo-r4, and would be more so if this worked with this ebuild.
I'm a bit surprised that jakub changed the subject from 2.6.20-rc5 to >=2.6.19. After bug 153553 was fixed I had this running on ~gentoo-sources-2.6.19 before I ever encountered this bug here. Has there been a report of the issues described here with 2.6.19? (In reply to comment #3) > 'kernel-2.6.19.patch' OK, this seems to be another solution for the config.h issue from bug 153553. Further discussion there, I'd say. > 'pcmcia-2.6.17.patch' This is a rather large patch, and right now I get 6 failed hunks for us. It is at least not trivial to fix them, so this will need some more work.
the 2.6.20 patch here is committed. WIll commit the other one too if you want to give give me an ebuild diff and attach patches for it.
Created attachment 109271 [details, diff] 2.6.43-fcpcmcia.patch
Created attachment 109279 [details, diff] fritzcapi-2.6.43.ebuild.patch Modified ebuild. The ebuild no longer aborts for kernels >= 2.6.17 and applies the above patch instead. I sucessfully tested merging against the following gentoo-kernels: 2.6.16-r13 2.6.17-r8 2.6.18-r6 2.6.19-r5 2.6.20 The test against 2.6.16 was just for making sure that the patch really is NOT being applied. I did not, however, check if the module actually works for any kernel besides 2.6.19-r5 yet.
thank you both. Awesome work! both fixed.
Sorry, I have to add that the merge testing I did holds only for FRITZCAPI_CARDS=fcpcmcia. There are still compile problems for other modules, for example fcusb.
I just checked in another patch for bug 165536 which holds fixed for the usb drivers :)
This bug should be reopened Above patches are correct for x86 architecture, but on amd64 these patches cannot be applyed, because not all of modules are available for amd64. So there is necessity of dividing of the patches into these that should be applied to x86, and to these for amd64.
>>> Emerging (1 of 1) net-dialup/fritzcapi-2.6.43 to / * km_fritzcapi-2.6-43.x86_64.rpm MD5 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm RMD160 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm SHA1 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm SHA256 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking km_fritzcapi-2.6-43.x86_64.rpm ;-) ... [ ok ] * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found sources for kernel version: * 2.6.20-gentoo * * You can control the modules which are built with the variable * FRITZCAPI_CARDS which should contain a blank separated list * of a selection from the following cards: * fcpci fcpcmcia fcusb2 * * I give you the chance of hitting Ctrl-C and make the necessary * adjustments in /etc/make.conf. * Selected cards: fcpci fcusb2 >>> Unpacking source... * Converting ./Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pci/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pci/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pcmcia/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pcmcia/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.usb2/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.usb2/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Applying fcusb2-2.6.19.patch ... [ ok ] * Applying 2.6.43-linux-2.6.19-irq_handler.patch ... * Failed Patch: 2.6.43-linux-2.6.19-irq_handler.patch ! * ( /usr/portage/net-dialup/fritzcapi/files/2.6.43-linux-2.6.19-irq_handler.patch ) * * Include in your bugreport the contents of: * * /var/tmp/portage/net-dialup/fritzcapi-2.6.43/temp/2.6.43-linux-2.6.19-irq_handler.patch-10168.out !!! ERROR: net-dialup/fritzcapi-2.6.43 failed. Call stack: ebuild.sh, line 1614: Called dyn_unpack ebuild.sh, line 751: Called qa_call 'src_unpack' environment, line 4118: Called src_unpack fritzcapi-2.6.43.ebuild, line 114: Called epatch '/usr/portage/net-dialup/fritzcapi/files/2.6.43-linux-2.6.19-irq_handler.patch' eutils.eclass, line 341: Called die !!! Failed Patch: 2.6.43-linux-2.6.19-irq_handler.patch! !!! 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/fritzcapi-2.6.43/temp/build.log'.
Created attachment 110155 [details] Output from patch. >>> Emerging (1 of 1) net-dialup/fritzcapi-2.6.43 to / * km_fritzcapi-2.6-43.x86_64.rpm MD5 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm RMD160 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm SHA1 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm SHA256 ;-) ... [ ok ] * km_fritzcapi-2.6-43.x86_64.rpm size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking km_fritzcapi-2.6-43.x86_64.rpm ;-) ... [ ok ] * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found sources for kernel version: * 2.6.20-gentoo * * You can control the modules which are built with the variable * FRITZCAPI_CARDS which should contain a blank separated list * of a selection from the following cards: * fcpci fcpcmcia fcusb2 * * I give you the chance of hitting Ctrl-C and make the necessary * adjustments in /etc/make.conf. * Selected cards: fcpci fcusb2 >>> Unpacking source... * Converting ./Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pci/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pci/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pcmcia/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.pcmcia/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.usb2/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Converting ./fritz.usb2/src/Makefile to use M= instead of SUBDIRS= ... [ ok ] * Applying fcusb2-2.6.19.patch ... [ ok ] * Applying 2.6.43-linux-2.6.19-irq_handler.patch ... * Failed Patch: 2.6.43-linux-2.6.19-irq_handler.patch ! * ( /usr/portage/net-dialup/fritzcapi/files/2.6.43-linux-2.6.19-irq_handler.patch ) * * Include in your bugreport the contents of: * * /var/tmp/portage/net-dialup/fritzcapi-2.6.43/temp/2.6.43-linux-2.6.19-irq_handler.patch-10168.out !!! ERROR: net-dialup/fritzcapi-2.6.43 failed. Call stack: ebuild.sh, line 1614: Called dyn_unpack ebuild.sh, line 751: Called qa_call 'src_unpack' environment, line 4118: Called src_unpack fritzcapi-2.6.43.ebuild, line 114: Called epatch '/usr/portage/net-dialup/fritzcapi/files/2.6.43-linux-2.6.19-irq_handler.patch' eutils.eclass, line 341: Called die !!! Failed Patch: 2.6.43-linux-2.6.19-irq_handler.patch! !!! 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/fritzcapi-2.6.43/temp/build.log'.
Created attachment 110267 [details] Patched files for amd 64 packed together with ebuild file There is packed patched ebuild file together with all patches for both amd64 and x86 architectures.
Created attachment 110268 [details] Changed ebuild
Created attachment 110270 [details] Patch file for pcmcia changed for amd64
Created attachment 110271 [details] Patch file for irq19 changed for amd64
Created attachment 110273 [details] Patch file 2.6.20 changed for amd64
*** Bug 167986 has been marked as a duplicate of this bug. ***
Reopen.
fyi, "Changed ebuild" ( http://bugs.gentoo.org/attachment.cgi?id=110268 ) works for me on x86
hello, i tried the new files (http://bugs.gentoo.org/attachment.cgi?id=110267) on an amd64 system and the ebuild installed fine.
(In reply to comment #22) the patch also works on 2.6.21-gentoo-r2 for amd64
unconditional patches for amd64 and later 2.6 kernels would be nice. But seems like it is hard to get that :( Better working and hackish then non working. Thank you.
*** Bug 165536 has been marked as a duplicate of this bug. ***