Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 348954 - dev-ruby/nokogiri-1.4.4 - require fails when built with USE=ffi
Summary: dev-ruby/nokogiri-1.4.4 - require fails when built with USE=ffi
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-17 15:07 UTC by avx
Modified: 2010-12-18 11:53 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description avx 2010-12-17 15:07:42 UTC
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'

The above works when built with USE="-ffi", but when built with USE="ffi", the require fails with the latest version in portage and ruby & RUBY_TARGETS = ruby18.

Reproducible: Always

Steps to Reproduce:
1. USE=ffi emerge nokogiri
2. try 'require nokogiri'

Actual Results:  
#begin output
/usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- nokogiri/nokogiri (LoadError)
	from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
	from /usr/lib64/ruby/gems/1.8/gems/nokogiri-1.4.4/lib/nokogiri.rb:13
	from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
	from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
	from ./main.rb:4
#end output

Expected Results:  
no output, thus working

don't think that `emerge --info` is required here. please request if I'm wrong.
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-12-17 17:55:19 UTC
(In reply to comment #0)
> don't think that `emerge --info` is required here. please request if I'm wrong.

It won't hurt anything.

Comment 2 avx 2010-12-17 20:36:59 UTC
ok, here you go...

emerge --info
Portage 2.1.9.25 (default/linux/amd64/10.0/desktop, gcc-4.5.1, glibc-2.12.1-r3, 2.6.34-gentoo-r12 x86_64)
=================================================================
System uname: Linux-2.6.34-gentoo-r12-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.1
Timestamp of tree: Fri, 17 Dec 2010 13:45:01 +0000
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.7.1, 3.1.3
dev-util/cmake:      2.8.3
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.6.8
sys-apps/sandbox:    2.4
sys-devel/autoconf:  2.68
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
ABI="amd64"
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
ACCEPT_PROPERTIES="*"
ALSA_CARDS="hda-intel"
ALSA_PCM_PLUGINS="*"
APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
ARCH="amd64"
ASFLAGS_x86="--32"
AUTOCLEAN="yes"
BROWSER="/usr/bin/opera"
CAMERAS="casio_qv"
CBUILD="x86_64-pc-linux-gnu"
CDEFINE_amd64="__x86_64__"
CDEFINE_x86="__i386__"
CFLAGS="-march=native -mtune=native -msse4 -mcx16 -msahf -mpopcnt -O2 -pipe -fomit-frame-pointer"
CFLAGS_x86="-m32"
CHOST="x86_64-pc-linux-gnu"
CHOST_amd64="x86_64-pc-linux-gnu"
CHOST_x86="i686-pc-linux-gnu"
CLEAN_DELAY="2"
CLI_BROWSER="/usr/bin/elinks"
COLLECTD_PLUGINS=""
COLLISION_IGNORE="/lib/modules"
COLORFGBG="default;0"
COLORTERM="rxvt"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CVS_RSH="ssh"
CXXFLAGS="-march=native -mtune=native -msse4 -mcx16 -msahf -mpopcnt -O2 -pipe -fomit-frame-pointer"
DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-H4WbOiC2M4,guid=4ebcc2ddccb7ca889ae3a6d40000011d"
DEFAULT_ABI="amd64"
DESKTOP_STARTUP_ID="awesome/urxvt/6269-37-hikaru_TIME146209900"
DISPLAY=":0"
DISTDIR="/usr/portage/distfiles"
EDITOR="/usr/bin/vim"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="--ask --deep --jobs=4 --keep-going --nospinner --quiet --quiet-build --tree --verbose --with-bdeps=y"
EMERGE_WARNING_DELAY="10"
EPREFIX=""
EROOT="/"
FEATURES="assume-digests binpkg-logs collision-protect distlocks fail-clean fixlafiles fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FETCHCOMMAND="/usr/bin/aria2c --check-certificate=false -q -d "${DISTDIR}" -o "${FILE}" "${URI}""
FETCHCOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""
FETCHCOMMAND_SFTP="bash -c "x=\${2#sftp://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec sftp -P \${port} \"\${host}:/\${x#*/}\" \"\$1\"" sftp "${DISTDIR}/${FILE}" "${URI}""
FETCHCOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://distfiles.gentoo.org"
GPSD_PROTOCOLS=""
GSETTINGS_BACKEND="gconf"
GUI_BROWSER="/usr/bin/opera"
HG="/usr/bin/hg"
HOME="/home/avx"
HUSHLOGIN="FALSE"
INFOPATH="/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.21/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/info"
INPUT_DEVICES="evdev joystick wacom"
JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
JAVA_HOME="/etc/java-config-2/current-system-vm"
JDK_HOME="/etc/java-config-2/current-system-vm"
KERNEL="linux"
LANG="de_DE.utf8"
LCD_DEVICES=""
LC_MESSAGES="en_US.utf8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed -Wl,--sort-common"
LDFLAGS_x86="-m elf_i386"
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LIBDIR_amd64="lib64"
LIBDIR_amd64_fbsd="lib64"
LIBDIR_ppc="lib32"
LIBDIR_ppc64="lib64"
LIBDIR_sparc32="lib32"
LIBDIR_sparc64="lib64"
LIBDIR_x86="lib32"
LIBDIR_x86_fbsd="lib32"
LIBRARY_PATH="/opt/intel/Compiler/11.1/056/lib/intel64"
LINGUAS="de de_DE en en_US"
LOGNAME="avx"
MAIL="/var/mail/avx"
MAKEOPTS="-j9 --quiet"
MANPATH="/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.21/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/man:/opt/intel/Compiler/11.1/056/man/en_US:/etc/java-config/system-vm/man/"
MULTILIB_ABIS="amd64 x86"
MULTILIB_STRICT_DENY="64-bit.*shared object"
MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)"
NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
NGINX_MODULES_HTTP="access auth_basic autoindex browser charset fastcgi gzip gzip_static rewrite"
NLSPATH="/opt/intel/Compiler/11.1/056/lib/locale/en_US/%N"
OLDPWD="/home/avx"
OPENGL_PROFILE="nvidia"
PAGER="/usr/bin/less"
PATH="/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.1:/opt/intel/Compiler/11.1/056/bin/intel64:/usr/games/bin:/opt/vmware/bin"
PHP_TARGETS=""
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc sparc64-freebsd ppc-openbsd x86-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd x86-cygwin amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris mips-irix m68k sh x86-solaris sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="log warn error"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save_summary echo"
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"
PORTAGE_FETCH_RESUME_MIN_SIZE="350K"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
PORTAGE_QUIET="1"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_RSYNC_RETRIES="-1"
PORTAGE_SANDBOX_COMPAT_LEVEL="16"
PORTAGE_SYNC_STALE="30"
PORTAGE_TMPDIR="/var/tmp"
PORTAGE_TMPFS="/dev/shm"
PORTAGE_VERBOSE="1"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/usr/portage/gentoo/"
PORTDIR_OVERLAY="/var/lib/layman/vmware /usr/portage/phorcix"
PRELINK_PATH_MASK="/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so"
PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
PS2="%{%}> ..%{%} "
PWD="/home/avx"
PYTHONDONTWRITEBYTECODE="1"
RESUMECOMMAND="/usr/bin/aria2c --check-certificate=false -c -d "${DISTDIR}" -o "${FILE}" "${URI}""
RESUMECOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""
RESUMECOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""
ROOT="/"
ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.1:/opt/intel/Compiler/11.1/056/bin/intel64:/opt/vmware/bin"
RPMDIR="/usr/portage/rpm"
RPROMPT2="┃"
RUBYOPT="-rauto_gem"
RUBY_TARGETS="ruby18"
SHELL="/bin/zsh"
SHLVL="3"
STAGE1_USE="multilib nptl nptlonly unicode"
SYMLINK_LIB="yes"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
TERM="rxvt-unicode"
TMP="/tmp/.private/avx"
TMPDIR="/tmp/.private/avx"
USE="X acl alsa amd64 attr caps crypt idn mmx multilib nls nptl openmp pam pic sse sse2 sse3 ssl ssse3 unicode xcomposite xinerama xrandr" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="*" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="casio_qv" ELIBC="glibc" INPUT_DEVICES="evdev joystick wacom" KERNEL="linux" LINGUAS="de de_DE en en_US" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset fastcgi gzip gzip_static rewrite" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 
USER="avx"
USERLAND="GNU"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS COLLECTD_PLUGINS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS GPSD_PROTOCOLS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL PHP_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS XFCE_PLUGINS XTABLES_ADDONS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
USE_PYTHON="2.7 3.1"
VIDEO_CARDS="nvidia"
VISUAL="/usr/bin/vim"
VMWARE_USE_SHIPPED_GTK="force"
WINDOWID="20971529"
WINDOWPATH="7"
XAUTHORITY="/home/avx/.Xauthority"
XDG_CACHE_HOME="/home/avx/.cache"
XDG_CONFIG_DIR="/home/avx/.config"
XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="/usr/local/share:/usr/share"
XDG_DATA_HOME="/home/avx/.config/share"
XSESSION="awesome"
XTABLES_ADDONS=""
XZ_OPT="--memory=max"
_="/usr/bin/emerge"
http_proxy="http://127.0.0.1:8118"
https_proxy="http://127.0.0.1:8118"
Comment 3 Hans de Graaff gentoo-dev Security 2010-12-18 08:42:39 UTC
If I understand correctly you will need to set the NOKOGIRI_FFI environment variable for this to work. See lib/nokogiri.rb. It doesn't sound ideal but I think the place to look for improvements here is upstream.
Comment 4 avx 2010-12-18 10:53:16 UTC
> you will need to set the NOKOGIRI_FFI environment variable for this to work.

Ok, now that I know that, it works.

But at least for me that's not been obvious and I also found no hits for 'NOKOGIRI_FFI' on their homepage. So maybe we should have some einfo/ewarn about this in the ebuild? 
Comment 5 Hans de Graaff gentoo-dev Security 2010-12-18 11:53:44 UTC
I think upstream should document it properly.