Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 88550 - Missing /usr/bin/ruby18 on AMD64 build of 1.8.2 w/o 32-bit or x86-emul
Summary: Missing /usr/bin/ruby18 on AMD64 build of 1.8.2 w/o 32-bit or x86-emul
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-10 01:09 UTC by spectrm
Modified: 2005-04-18 10:27 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
ruby multilib fixes (ruby-multilib.patch,410 bytes, patch)
2005-04-12 15:57 UTC, Herbie Hopkins (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description spectrm 2005-04-10 01:09:33 UTC
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
Comment 1 Simon Stelling (RETIRED) gentoo-dev 2005-04-10 01:36:31 UTC
give `emerge --info` please
Comment 2 spectrm 2005-04-10 01:48:20 UTC
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
Comment 3 Danny van Dyk (RETIRED) gentoo-dev 2005-04-11 11:49:35 UTC
Beside your problem: PLEASE(!) remove -fPIC from CFLAGS!
Comment 4 Charles Comstock 2005-04-12 02:04:04 UTC
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
Comment 5 Robert Levin 2005-04-12 05:00:49 UTC
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.
Comment 6 Charles Comstock 2005-04-12 15:14:26 UTC
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.
Comment 7 Herbie Hopkins (RETIRED) gentoo-dev 2005-04-12 15:57:21 UTC
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 ;-)
Comment 8 Herbie Hopkins (RETIRED) gentoo-dev 2005-04-18 10:27:09 UTC
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.