Emerging ppp on my system ends with the error message: !!! ERROR: net-dialup/ppp-2.4.3-r3 failed. !!! Function dyn_install, Line 1114, Exitcode 0 !!! File /var/tmp/portage/ppp-2.4.3-r3/image///usr/lib/pppd/2.4.3/minconn.so matches a file type that is not allowed in /usr/lib !!! If you need support, post the topmost build error, NOT this status message. Reproducible: Always Steps to Reproduce: Gentoo Base System version 1.6.11 Portage 2.0.51.21-r1 (default-linux/amd64/2005.0, gcc-3.4.3-20050110, glibc-2.3.5-r0, 2.6.11-gentoo-r7 x86_64) ================================================================= System uname: 2.6.11-gentoo-r7 x86_64 AMD Athlon(tm) 64 Processor 3000+ dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.6 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r8 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.11 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-march=k8 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg collision-protect distlocks multilib-strict sandbox strict usersandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" LANG="en_US.ISO8859-1" LINGUAS="en pt_BR fr de" PKGDIR="/usr/local/portage/packages.amd64" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X Xaw3d a52 aac aalib acpi alsa avi berkdb bitmap-fonts cdr crypt cups curl dvd eds emacs encode esd fam fbcon ffmpeg font-server foomaticdb fortran gdbm gif gnome gpm gstreamer gtk gtk2 imagemagick imap imlib ipv6 java jp2 jpeg kde ldap libcaca libwww lirc lzw lzw-tiff mbox motif mozilla mp3 mpeg nas ncurses nls nptl nptlonly nvidia ogg oggvorbis opengl oss pam perl png ppds python qt quicktime readline samba sdl slang spell ssl svg tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts usb userlocales v4l v4l2 vorbis wmf xml xml2 xpm xrandr xv zlib linguas_en linguas_pt_BR linguas_fr linguas_de userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, MAKEOPTS
Stefan, can you see what's happen?
no, since it works here. But perhaps there's a special portage flag to check this (multilib?). I don't know. This error message looks like "hey, you try to install 64-Bit libs outside of /lib64 or /usr/lib64". @Jos
no, since it works here. But perhaps there's a special portage flag to check this (multilib?). I don't know. This error message looks like "hey, you try to install 64-Bit libs outside of /lib64 or /usr/lib64". @José: please try to emerge net-dialup/capi4k-utils. This ebuild installs some plugins for ppp and uses /usr/lib as the location. I want to check if your problem exists there also. The amd64 machine where I have access to is 64-Bit only (no 32-Bit!). And I have no problems at all with latest ppp and capi4k-utils.
@Alin: it seems, that we have to take care for the location of libs on amd64. So you should do something like this: useq amd64 && LIBDIR=/usr/lib64 || LIBDIR=/usr/lib and then use ${LIBDIR} instead of /usr/lib.
Yes, according to the FHS 64bit shared libs should get installed in lib64 on multilib systems. In portage FEATURES=multilib-strict checks for this and results in the error message here. We also have a get_libdir function (multilib.eclass) to determine the correct libdir. Added a fix using this function to ppp-2.4.3-r3.
No, the correct way to do it is, LIBDIR=$(get_libdir) You may need to inherit from mutlilib. This will then return the appropriate lib dir for whatever architecture - amd64 isn't the only arch with different lib directories.
ok, cool. @Alin: I will add this to capi4k-utils also this evening. After testing, I ask genstef to put it into portage. @Marcus/Herbie: does 'econf' set the correct libdir?
@Stefan - Yes, econf appends a --libdir=/usr/$(get_libdir) on multilib systems.
You beat me to it again :) But yes it does...
I hope all 64 bit arches have a symlink /usr/lib -> /usr/lib64. ppp search its plugins in _PATH_PLUGINS, which is /usr/lib/ppp/2.4.3. Of course, user could specify the full path to plugin.
Right now amd64 does have /usr/lib -> /usr/lib64 yes. This will be removed in the future though. _PATH_PLUGINS is defined in pathnames.h which is why I added the sed line to correct this so that nothing will break once the simlink is removed.
@Alin: the symlink exists. The problem is, that portage checks the location. if you try to put 64-Bit libs into /usr/lib, the portage is angry with you. ;) At least if you use 'multilib'. So I will test the ebuild with multilib and then I create a (hopefully) simple patch for capi4k-utils. Problem: capi4k-utils doesn't use 'econf', not even 'configure'. At least not directly. If your ebuild uses 'econf' then you don't have any troubles (as long as you don't copy or move some libs later).
Huh, I still have a question. ;) firmware files go to /lib/firmware. Where should they be located on 64-Bit? in /lib/firmware or in /lib64/firmware?
In the next few hours I will submit a reorganized net-dialup/ppp. ppp-2.4.2-r10 will be fixed too.