Summary: | mc-4.6.0-r2 ebuild to fails to build successfully | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Chris Lyttle <chris> |
Component: | Current packages | Assignee: | Heinrich Wendel (RETIRED) <lanius> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alor, andrei.ivanov, bcowan, naz, spock |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
ebuild with sed hack
config.h |
Description
Chris Lyttle
2003-08-24 00:19:12 UTC
try revdep-rebuild from gentoolkit and try to remerge samba same problem here. already tried to re-emerge samba after revdep-rebuild. Portage 2.0.49 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.6.0-test4) ================================================================= System uname: 2.6.0-test4 i686 Intel(R) Pentium(R) 4 Mobile CPU 1.80GHz distcc 2.10 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=pentium4 -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs" GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 oss 3dnow apm avi crypt cups encode foomaticdb gif jpeg mad mikmod mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xv zlib directfb alsa gdbm berkdb slang readline tetex aalib tcltk mysql postgres X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt motif opengl mozilla ldap cdr acpi apache2 cscope dga dvd ethereal fbcon gd gtk2 imap innodb ipv6 joystick leim matroska mbox moznocompose moznoirc moznomail mozsvg pic pnp radeon samba sse tiff usb vim-with-x xosd -java -gnome -libg++ -xmms -arts -svga -guile -kde" did you symlink /usr/include/linux to your current kernel? USE="-samba" will work....it has to do with built in samba support in your kernel. If I remember correctly there was some discussion on the mc dev list about samba support, I'll go back and check my email achives and see what I can pull up. Heinrich: No, /usr/include/linux contains linux-headers-2.4.20 ebuild. Anyway I've tried to link it to the 'include/linux' of the kernel (2.6.0-test4) but emerge still fails because can't find other headers. (i.e. from asm/, asm-generic/) Brad: Ok, thanks. *** Bug 27272 has been marked as a duplicate of this bug. *** A quick-and-dirty fix for this problem: add this: sed -i '/#define HAVE_SYS_CAPABILITY_H 1/a#define _I386_STATFS_H' vfs/samba/include/config.h just before "emake || die" in the ebuild. why does it fix it and does it work with ppc,sparc... ? struct statfs is first declared in bits/statfs.h (which is referred from sys/statfs.h which is referred from sys/vfs.h). Then comes: sys/capability.h -> linux/capability.h -> linux/fs.h -> linux/vfs.h (as seen in the compilation error). linux/vfs.h refers to asm/statfs.h, which has yet another declaration of struct statfs in it. All code in asm/statfs.h is between #ifndef _I386_STATFS_H and #endif, so by defining _I386_STATFS_H' in /fs/samba/include/config.h we actually skip all contents asm/statfs.h and thus avoid redeclaration of struct statfs. Since the 'I386' part suggests that this is platform-dependent, we could use _LINUX_VFS_H: sed -i '/#define HAVE_SYS_CAPABILITY_H 1/a#define _LINUX_VFS_H vfs/samba/include/config.h By doing this we skip linux/vfs.h (which only has #include <asm/statfs.h> in it). I think it should work on PPC, SPARC, ... but I have no way of checking it. Perhaps Chris could help us here? *** Bug 27713 has been marked as a duplicate of this bug. *** Created attachment 16934 [details]
ebuild with sed hack
Ok I tested the attached ebuild with the changes suggested by Michal on PPC. Seemed to work fine and I got the smb menu. and why does this problem not occur on every pc? please post your vfs/samba/include/config.h (without your patch) Created attachment 16940 [details]
config.h
I've no idea what you mean about every pc, it happens on both ppc and my x86 box here (athlon). I've not enough knowledge of how this is supposed to work to say why it may work ok on some platforms. i have two gentoo pc's here and both built mc fine with all use vars the difference is that on my systems i have /* #undef HAVE_SYS_CAPABILITY_H */ but you have #define HAVE_SYS_CAPABILITY_H 1 why does this happen? Do you have /usr/include/sys/capability.h in your system? If you do, check <mc_source_dir>/vfs/samba/config.log for information why sys/capability.h detection failed (perhaps you could post your config.log here so that other people could compare it with whatever results they get). hm, i have linux/capability.h but not sys/capability.h, provided by * sys-kernel/linux-headers Latest version available: 2.4.19-r1 Latest version installed: 2.4.19-r1 Size of downloaded files: 25,432 kB Homepage: http://www.kernel.org/ http://www.gentoo.org/ Description: Full sources for the Gentoo Linux kernel where does your sys/capability.h come from? here is mine: epm -qf /usr/include/sys/capability.h libcap-1.10-r2 epm -qf /usr/include/linux/capability.h linux-headers-2.4.19-r1 and i've the same problem. mc does not compile. it compiles only with USE="-samba" bye The same here. I had sys-libs/libcap-1.10 at first but now I have upgraded to libcap-1.10-r2 and I still get the same error. ok so the problem is libcap, so what about just replacing #define HAVE_SYS_CAPABILITY_H 1 with /* #undef HAVE_SYS_CAPABILITY_H */ this should work This will work but this will also remove any useable features provided by sys/capability.h (if there are any). #define _LINUX_VFS_H makes it possible to skip only the part that causes problems and use all the rest. ok, i now understand the problem ;) will apply your fix later today ok, fixed and marked stable :) |