| Summary: | Missing /usr/bin/ruby18 on AMD64 build of 1.8.2 w/o 32-bit or x86-emul | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | spectrm <spectrum.ver.x> |
| Component: | [OLD] Development | Assignee: | AMD64 Project <amd64> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | AMD64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | ruby multilib fixes | ||
|
Description
spectrm
2005-04-10 01:09:33 UTC
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. |