Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 650342 - net-irc/epic5-1.1.10-r1 fails src_configure: `require': cannot load such file -- rubygems/compatibility (LoadError)
Summary: net-irc/epic5-1.1.10-r1 fails src_configure: `require': cannot load such file...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-13 00:44 UTC by Kent Fredric (IRC: kent\n) (RETIRED)
Modified: 2018-04-07 08:38 UTC (History)
1 user (show)

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


Attachments
config.log (xz) (config.log.xz,9.50 KB, application/x-xz)
2018-03-13 00:45 UTC, Kent Fredric (IRC: kent\n) (RETIRED)
Details
epic5-1.1.10-r1:20180313-002553.log (epic5-1.1.10-r1:20180313-002553.log,11.22 KB, text/plain)
2018-03-13 00:46 UTC, Kent Fredric (IRC: kent\n) (RETIRED)
Details
emerge --info (einfo,4.73 KB, text/plain)
2018-03-13 00:47 UTC, Kent Fredric (IRC: kent\n) (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2018-03-13 00:44:25 UTC
Firstly, this construct is a bit nuts:

REQUIRED_USE="ruby? ( ^^ ( $(ruby_get_use_targets) ) )
        $(for t in $(ruby_get_use_targets); do echo "${t}? ( ruby )"; done)"


That means if any values of RUBY_TARGETS are set ... then USE="ruby" is required.

Which is a bit of a mess when RUBY_TARGETS has default values set globally ....

It makes more sense that without USE="ruby", that RUBY_TARGETS do nothing.

That aside, this looks like a possible issue in rubygems, so I'm CCing ruby@ as well.

Failure: 

checking whether you have posix-like job control... yes
checking whether to include wserv support... yes
checking whether to include Valgrind Memcheck support... no
checking for perl... yes
checking whether to support Perl... yes
checking whether embedded perl works the way I expect... yes
checking whether to support TCL... no
checking whether to support Ruby... yes
/usr/lib64/ruby/2.3.0/rubygems.rb:17:in `require': cannot load such file -- rubygems/compatibility (LoadError)
        from /usr/lib64/ruby/2.3.0/rubygems.rb:17:in `<top (required)>'
        from <internal:gem_prelude>:4:in `require'
        from <internal:gem_prelude>:4:in `<internal:gem_prelude>'
/usr/lib64/ruby/2.3.0/rubygems.rb:17:in `require': cannot load such file -- rubygems/compatibility (LoadError)
        from /usr/lib64/ruby/2.3.0/rubygems.rb:17:in `<top (required)>'
        from <internal:gem_prelude>:4:in `require'
        from <internal:gem_prelude>:4:in `<internal:gem_prelude>'
/usr/lib64/ruby/2.3.0/rubygems.rb:17:in `require': cannot load such file -- rubygems/compatibility (LoadError)
        from /usr/lib64/ruby/2.3.0/rubygems.rb:17:in `<top (required)>'
        from <internal:gem_prelude>:4:in `require'
        from <internal:gem_prelude>:4:in `<internal:gem_prelude>'
/usr/lib64/ruby/2.3.0/rubygems.rb:17:in `require': cannot load such file -- rubygems/compatibility (LoadError)
        from /usr/lib64/ruby/2.3.0/rubygems.rb:17:in `<top (required)>'
        from <internal:gem_prelude>:4:in `require'
        from <internal:gem_prelude>:4:in `<internal:gem_prelude>'
checking whether embedded ruby works the way I expect... no
checking whether ruby requires -pthread to link... configure: error: --with-ruby was specified but I could not locate ruby. Please try specifying --with-ruby=/path/to/ruby or --without-ruby.


Install plan data:

FEATURES=\ -test emerge -t1 --quiet-build=y --quiet-repo-display --nospinner --autounmask=y --autounmask-keep-masks=y --autounmask-unrestricted-atoms=n --autounmask-continue --unordered-display --verbose --backtrack=100 --jobs=1 --with-test-deps=n =net-irc/epic5-1.1.10-r1

These are the packages that would be merged:

Calculating dependencies  ..... done!
[ebuild  N     ] net-irc/epic5-1.1.10-r1  USE="ipv6 perl ruby -archive -socks5 -tcl -valgrind" RUBY_TARGETS="ruby23 -ruby22" 0 KiB
[ebuild  N     ]  dev-lang/ruby-2.3.6:2.3  USE="berkdb gdbm ipv6 ncurses rdoc readline ssl -debug -doc -examples -jemalloc -libressl -rubytests -socks5 -tk -xemacs" 0 KiB
[ebuild  N     ]   dev-ruby/did_you_mean-1.0.2:1  USE="{-test}" RUBY_TARGETS="ruby23" 0 KiB
[ebuild  N     ]    virtual/rubygems-11  RUBY_TARGETS="ruby22 ruby23 (-rbx)" 0 KiB
[ebuild  N     ]     dev-ruby/rubygems-2.6.14  USE="-server {-test}" RUBY_TARGETS="ruby22 ruby23 (-ruby24)" 0 KiB
[ebuild  N     ]      dev-lang/ruby-2.2.9:2.2  USE="berkdb gdbm ipv6 ncurses rdoc readline ssl -debug -doc -examples -jemalloc -libressl -rubytests -socks5 -tk -xemacs" 0 KiB
[ebuild  N     ]       dev-libs/libyaml-0.1.7  USE="-doc -examples -static-libs {-test}" 0 KiB
[ebuild  N     ]       dev-ruby/rdoc-4.3.0  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23" 0 KiB
[ebuild  N     ]        dev-ruby/json-1.8.6-r1  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23 (-ruby24)" 0 KiB
[ebuild  N     ]         dev-ruby/rake-10.5.0  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23" 0 KiB
[ebuild  N     ]         dev-util/ragel-6.10  USE="-vim-syntax" 0 KiB
[ebuild  N     ]        dev-ruby/racc-1.4.14  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23 (-ruby24) (-ruby25)" 0 KiB
[ebuild  N     ]       app-eselect/eselect-ruby-20170723  0 KiB
[ebuild  N     ]       dev-ruby/test-unit-3.1.9:2  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23" 0 KiB
[ebuild  N     ]        dev-ruby/power_assert-0.3.1  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23" 0 KiB
[ebuild  N     ]       dev-ruby/minitest-5.9.1:5  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23" 0 KiB
[ebuild  N     ]   dev-ruby/net-telnet-0.1.1-r1:1  USE="-doc {-test}" RUBY_TARGETS="ruby22 ruby23 (-ruby24) (-ruby25)" 0 KiB

Total: 17 packages (17 new), Size of downloads: 0 KiB

>>> Verifying ebuild manifests
>>> Emerging (1 of 17) dev-libs/libyaml-0.1.7::gentoo
>>> Installing (1 of 17) dev-libs/libyaml-0.1.7::gentoo
>>> Emerging (2 of 17) dev-util/ragel-6.10::gentoo
>>> Installing (2 of 17) dev-util/ragel-6.10::gentoo
>>> Emerging (3 of 17) app-eselect/eselect-ruby-20170723::gentoo
>>> Installing (3 of 17) app-eselect/eselect-ruby-20170723::gentoo
>>> Emerging (4 of 17) dev-lang/ruby-2.3.6::gentoo
>>> Installing (4 of 17) dev-lang/ruby-2.3.6::gentoo
>>> Emerging (5 of 17) net-irc/epic5-1.1.10-r1::gentoo
>>> Failed to emerge net-irc/epic5-1.1.10-r1, Log file:
Comment 1 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2018-03-13 00:45:43 UTC
Created attachment 523682 [details]
config.log (xz)
Comment 2 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2018-03-13 00:46:44 UTC
Created attachment 523684 [details]
epic5-1.1.10-r1:20180313-002553.log
Comment 3 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2018-03-13 00:47:25 UTC
Created attachment 523686 [details]
emerge --info
Comment 4 Hans de Graaff gentoo-dev Security 2018-04-07 08:34:44 UTC
(In reply to Kent Fredric (IRC: kent\n) from comment #0)
> Firstly, this construct is a bit nuts:
> 
> REQUIRED_USE="ruby? ( ^^ ( $(ruby_get_use_targets) ) )
>         $(for t in $(ruby_get_use_targets); do echo "${t}? ( ruby )"; done)"
> 
> 
> That means if any values of RUBY_TARGETS are set ... then USE="ruby" is
> required.

Furtermore, you cannot have more than one provider in RUBY_TARGETS, and that is hardly ever the case by default so this ebuild will block building for almost anyone and this is not easy to fix.


> That aside, this looks like a possible issue in rubygems, so I'm CCing ruby@
> as well.

rubygems is a PDEPEND for dev-lang/ruby, which causes this issue. Most ruby eclasses handle this by adding a dependency, but not ruby-ng (on purpose due to historic reasons).
Comment 5 Larry the Git Cow gentoo-dev 2018-04-07 08:38:43 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4e61d05c9aecb3eee317fc1b12b3397f44d0ca91

commit 4e61d05c9aecb3eee317fc1b12b3397f44d0ca91
Author:     Hans de Graaff <graaff@gentoo.org>
AuthorDate: 2018-04-07 08:38:08 +0000
Commit:     Hans de Graaff <graaff@gentoo.org>
CommitDate: 2018-04-07 08:38:34 +0000

    net-irc/epic5: fix ruby support, bug 650342
    
    Switch to ruby-single.eclass. This fixes bug 650342 but also simplifies
    ruby dependency handling. Remove the REQUIRED_USE since this will always
    be a blocker for most people and simply build against the currently
    selected ruby version provided by ruby-single. This is in effect what
    the ebuild was doing before anyway.
    
    Include correct slot for ncurses.
    
    Use EAPI=6.
    
    Closes: https://bugs.gentoo.org/650342
    Package-Manager: Portage-2.3.24, Repoman-2.3.6

 net-irc/epic5/epic5-1.1.10-r2.ebuild | 77 ++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)