install -c -p -m 0644 ../.././ext/tk/lib/tkextlib/SUPPORT_STATUS /var/tmp/portage/ruby-1.8.2/image//usr/lib64/ruby/1.8/tkextlib make[1]: Leaving directory `/var/tmp/portage/ruby-1.8.2/work/ruby-1.8.2/ext/tk' installing win32ole make[1]: Entering directory `/var/tmp/portage/ruby-1.8.2/work/ruby-1.8.2/ext/win32ole' make[1]: Nothing to be done for `install'. make[1]: Leaving directory `/var/tmp/portage/ruby-1.8.2/work/ruby-1.8.2/ext/win32ole' installing zlib make[1]: Entering directory `/var/tmp/portage/ruby-1.8.2/work/ruby-1.8.2/ext/zlib' install -c -p -m 0755 zlib.so /var/tmp/portage/ruby-1.8.2/image//usr/lib64/ruby/1.8/x86_64-linux make[1]: Leaving directory `/var/tmp/portage/ruby-1.8.2/work/ruby-1.8.2/ext/zlib' Generating RDoc documentation /var/tmp/portage/ruby-1.8.2/image//usr/bin/ruby18 ./bin/rdoc --all --ri-system . `find lib -name \*.rb` /var/tmp/portage/ruby-1.8.2/image//usr/bin/ruby18: error while loading shared libraries: libruby18.so.1.8: cannot open shared object file: No such file or directory make: *** [install-doc] Error 127 ruby-config -c says: * Your ruby doesn't seem to support SLOT. ruby-config -l says: * Supported profiles are: * ruby[0-9][0-9] * You can specify one of the profiles listed above. * e.g.) ruby-config ruby16 is it just a misnamed cp command in the makefile? If I wasn't so busy, I'd root around on it myself. anyone who gets a fix, lemme know. Thanks. Reproducible: Always Steps to Reproduce: 1.Run pure 64-bit AMD64 Gentoo 2.USE="pam tcpd threads socks5 doc apache2" emerge ruby 3. Actual Results: emerge error in a missing shared object file Expected Results: installed the language libraries !!! ERROR: dev-lang/ruby-1.8.2 failed. !!! Function src_install, Line 92, Exitcode 2 !!! make install failed !!! If you need support, post the topmost build error, NOT this status message
give `emerge --info` please
Portage 2.0.51.19 (default-linux/amd64/2005.0, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.9-ck-r3 x86_64) ================================================================= System uname: 2.6.9-ck-r3 x86_64 AMD Athlon(tm) 64 Processor 3000+ Gentoo Base System version 1.6.10 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 7 2005, 10:06:52)] dev-lang/python: 2.3.4-r1 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.5, 1.8.5-r3, 1.9.4, 1.6.3, 1.7.9-r1, 1.4_p6 sys-devel/binutils: 2.15.92.0.2-r7 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r4 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CFLAGS="-march=k8 -O3 -pipe -fomit-frame-pointer -fPIC" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=k8 -O3 -pipe -fomit-frame-pointer -fPIC" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 alsa cdr crypt dvd dvdr python readline ssl truetype unicode zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Beside your problem: PLEASE(!) remove -fPIC from CFLAGS!
I think this patch fixes it for the ruby-1.8.2-r1 build, backported it should also fix the ruby-1.8.2 build for amd64. Not quite sure what would so recently break the build though. I'm also not sure if there is a better conditional to test then use amd64, wouldn't this have the same issue on ia64? +++ ruby-1.8.2-r2.ebuild 2005-04-12 03:54:05.604736080 -0500 --- ruby-1.8.2-r1.ebuild 2005-04-11 23:16:06.000000000 -0500 @@ -84,13 +84,8 @@ } src_install() { + if use amd64; then + LD_LIBRARY_PATH=${D}/usr/lib64 + RUBYLIB="${S}:${D}/usr/lib64/ruby/${SLOT}" + else + LD_LIBRARY_PATH=${D}/usr/lib + RUBYLIB="${S}:${D}/usr/lib/ruby/${SLOT}" + fi - LD_LIBRARY_PATH=${D}/usr/lib:${D}/usr/lib64 - RUBYLIB="${S}:${D}/usr/lib/ruby/${SLOT}" for d in $(find ${S}/ext -type d) ; do RUBYLIB="${RUBYLIB}:$d" done
I do an emerge with very rich use of use flags, and I can tell you that the problem only seems to occur when use'doc' use flag is turned on. A workaround is to emerge with '-doc', then after it's installed, redo the emerge with 'doc'. If you're looking at where the problem is occurring, hopefully that will narrow it down for you.
That's because in order for the docs to be generated you need to run rdoc, unfortuneatly when it's on amd64 both the .so and the ruby libraries are stored in lib64 instead of lib. Which is why if you run it twice it works, the first pass installs a working copy with the correct LD_LIBRARY_PATH and the second pass makes use of the first to actually run rdoc to generate the documentation. Hence why my above patch fixes things, it ensures that the .so and the libraries in RUBYLIB are accessable even if on a 64 bit system.
Created attachment 56130 [details, diff] ruby multilib fixes To clarify, econf sets the libdir correctly during src_compile but /usr/lib is hardcoded in src_install which breaks rdoc installation. Charles: no need to test for amd64 (or ia64), using get_libdir is cleaner ;-)
looks like slarti already fixed this: 17 Apr 2005; Tom Martin <slarti@gentoo.org> ruby-1.8.2-r1.ebuild: Add multilib handling. Resolves bug 76111. All the dev-ruby packages should install on multilibbed systems now.