Hi. I maintain ruby.eclass and found that arguments to functions are not given to imported functions if they override default functions such as econf and unpack. For example, if the eclass looks like ruby_econf() { ./configure "$@" || die "econf failed" } and the ebuild is inherit ruby src_compile() { econf --with-docdir=/usr/share/doc/${PF} || die } then "--with-docdir=/usr/share/doc/${PF}" will not be passed to ruby_econf (although econf in src_compile is overriden by ruby_econf). If I change the ebuild to src_compile() { ruby_econf --with-docdir=/usr/share/doc/${PF} || die } then --with-docdir is passed to ruby_econf. Arguments to econf should be passed to ruby_econf regardless whether it is called as ruby_econf or econf. I will add a patch to /usr/sbin/ebuild.sh to fix the problem.
Created attachment 19624 [details, diff] ebuid.sh.diff
i assume you had EXPORT_FUNCTIONS econf ?
Yes, I had. This is because I want to call ruby_econf as econf if I inherit ruby. Just as econf in base system detects ./configure script ruby_econf detects extconf.rb and install.rb in addition to ./configure then run configuration scripts (and supports ruby 1.6 and 1.8 SLOT). I'm not sure whether I shouldn't override default functions, but I think it is natural to extend econf in this way.
Ok. Included.