Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 380409

Summary: dev-lang/ruby-enterprise-1.8.7.2010.02-r1[doc] collides with dev-lang/ruby-1.8.7_p334-r2[doc]
Product: Gentoo Linux Reporter: Matthew Schultz <mattsch>
Component: New packagesAssignee: Gentoo Ruby Team <ruby>
Status: RESOLVED FIXED    
Severity: normal CC: kacper, marco1475, phajdan.jr, scott
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Matthew Schultz 2011-08-23 19:58:34 UTC
Since ruby and ruby enterprise are slotted, I don't think one should be colliding with the other since they should be installing in different directories:


 *      /usr/share/ri/1.8/system/Timeout/cdesc-Timeout.yaml
 *      /usr/share/ri/1.8/system/Timeout/timeout-i.yaml
 *      /usr/share/ri/1.8/system/Timeout/ExitException/cdesc-ExitException.yaml
 *      /usr/share/ri/1.8/system/Timeout/Error/cdesc-Error.yaml
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * dev-lang/ruby-1.8.7_p334-r2
 *      /usr/share/ri/1.8/system/AmbiguousArgument/cdesc-AmbiguousArgument.yaml
 *      /usr/share/ri/1.8/system/NilClass/%26-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/%5e-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/%7c-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/cdesc-NilClass.yaml
 *      /usr/share/ri/1.8/system/NilClass/inspect-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/nil%3f-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/to_a-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/to_f-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/to_i-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/to_s-i.yaml
 *      /usr/share/ri/1.8/system/NilClass/to_yaml-i.yaml
 *      /usr/share/ri/1.8/system/RegOr/%3d%7e-i.yaml
 *      /usr/share/ri/1.8/system/RegOr/cdesc-RegOr.yaml
 *      /usr/share/ri/1.8/system/RegOr/new-c.yaml
 *      /usr/share/ri/1.8/system/SystemCallError/%3d%3d%3d-c.yaml
 *      /usr/share/ri/1.8/system/SystemCallError/cdesc-SystemCallError.yaml
 *      /usr/share/ri/1.8/system/SystemCallError/errno-i.yaml
 *      /usr/share/ri/1.8/system/SystemCallError/new-c.yaml
 *      /usr/share/ri/1.8/system/created.rid
 * 
 * Package 'dev-lang/ruby-enterprise-1.8.7.2010.02-r1' NOT merged due to
 * file collisions. If necessary, refer to your elog messages for the
 * whole content of the above message.

Reproducible: Always

Steps to Reproduce:
1. emerge =dev-lang/ruby-1.8.7_p334-r2
2. emerge =dev-lang/ruby-enterprise-1.8.7.2010.02-r1
Actual Results:  
ruby enterprise doesn't install because it collides with ruby

Expected Results:  
ruby enterprise installs in a slot separate from ruby
Comment 1 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2011-09-28 03:51:56 UTC
Just got this.

Portage 2.1.10.11 (default/linux/x86/10.0/developer, gcc-4.5.3, glibc-2.12.2-r0, 2.6.39-gentoo-r3 i686)
=================================================================
System uname: Linux-2.6.39-gentoo-r3-i686-Intel-R-_Core-TM-2_Duo_CPU_P8700_@_2.53GHz-with-gentoo-2.0.3
Timestamp of tree: Tue, 27 Sep 2011 21:30:02 +0000
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.1-r1, 3.1.3-r1
dev-util/cmake:           2.8.4-r1
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.8.3-r1
sys-apps/sandbox:         2.4
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:       2.20.1-r1
sys-devel/gcc:            4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers)
sys-libs/glibc:           2.12.2
Repositories: gentoo x-portage
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
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"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms sign splitdebug strict test test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa berkdb bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus device-mapper dri dts dvd dvdr emacs emboss encode exif fam firefox flac fortran gdbm gdu gif git gnome-keyring gnutls gtk iconv icu jpeg lcms libnotify mad mbox mercurial mng modules mp3 mp4 mpeg mudflap ncurses nls nptl nptlonly nss ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd python qt3support readline sdl secure-delete session snmp spell sqlite ssl startup-notification subversion svg sysfs tcb tcpd threads tiff toolkit-scroll-bars truetype udev unicode usb vorbis x264 x86 xcb xft xinerama xml xorg xulrunner xv xvfb xvid zlib" ALSA_CARDS="ens1371" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard vmmouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vmware vesa vga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Alex Legler (RETIRED) archtester gentoo-dev Security 2011-11-30 13:40:39 UTC
*** Bug 392607 has been marked as a duplicate of this bug. ***
Comment 3 Hans de Graaff gentoo-dev Security 2011-12-04 12:12:41 UTC
I'm not sure what the best way to handle this is. I'm leaning towards putting the ruby-enterprise files in another directory like /usr/share/ri-ree18, but then we probably need to make changes to the various tools within ri-ree18 as well.

We could also just not install these files for ruby-enterprise.

Opinions?
Comment 4 Hack_leberry Finn 2011-12-04 17:10:37 UTC
I have never installed ruby-enterprise. After 'emerge --sync' it was pulled by dependencies. When I placed in /etc/portage/package.mask:

dev-lang/ruby-enterprise
=virtual/ruby-rdoc-3

I doesn't have to install ruby-enterprise now. For me, not installing ruby-enterprise is best solution. I understand that some users use it. Maybe dropping this ebuild from portage to overlay is best solution - 'enterprise works for you, chose overlay, and overwrite ruby files, if no, don't bother yourself'.
Comment 5 Hans de Graaff gentoo-dev Security 2011-12-04 18:01:27 UTC
(In reply to comment #4)
> I have never installed ruby-enterprise. After 'emerge --sync' it was pulled by
> dependencies.

Which dependencies? ruby-enterprise should only be installed if you specifically ask for it (either by emerging directly or by adding ree18 to RUBY_TARGETS.

> I doesn't have to install ruby-enterprise now. For me, not installing
> ruby-enterprise is best solution. I understand that some users use it. Maybe
> dropping this ebuild from portage to overlay is best solution - 'enterprise
> works for you, chose overlay, and overwrite ruby files, if no, don't bother
> yourself'.

We will keep it in the main tree because an overlay will lead to an unmanageable solution. In any case it should be the default to not get ruby-enterprise pulled in.
Comment 6 Hack_leberry Finn 2011-12-05 00:57:04 UTC
> Which dependencies? ruby-enterprise should only be installed if you
> specifically ask for it (either by emerging directly or by adding ree18 to
> RUBY_TARGETS.

:) That's good question. I think something is broken in virtual/ruby-rdoc, 
Look on 'eix ruby-rdoc' output:

[U] virtual/ruby-rdoc
     Available versions:  
	(ruby18)	0
	(ruby19)	[M]~1
	(jruby)	~2
	(ree18)	3
	{elibc_FreeBSD ruby_targets_jruby ruby_targets_ree18 ruby_targets_ruby18 ruby_targets_ruby19}
     Installed versions:  0(ruby18)(10:30:22 20.09.2011)(ruby_targets_ruby18)
     Description:         Virtual ebuild for bundled and unbundled RDoc

ruby-rdoc-3 is unmasked (in portage tree), Thats why 'emerge --update world' pulls it up for install, and dev-lang/ruby-enterprise is pooled as 
a dependence. Look on 'emerge --verbose --update --pretend world' output:

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    #] dev-lang/ruby-enterprise-1.8.7.2011.03  USE="berkdb doc examples gdbm ipv6 libedit ncurses readline ssl threads tk xemacs -debug (-fastthreading) -rubytests -tcmalloc" 7,727 kB [0]
[ebuild  NS    ] virtual/ruby-rdoc-3 [0] RUBY_TARGETS="(ree18)" 0 kB [0]

Total: 6 packages (2 upgrades, 3 new, 1 in new slot), Size of downloads: 7,727 kB
Portage tree and overlays:
 [0] /usr/portage

The following keyword changes are necessary to proceed:
#required by virtual/ruby-rdoc-3, required by @selected, required by @world (argument)
>=dev-lang/ruby-enterprise-1.8.7.2011.03 ~x86

> We will keep it in the main tree because an overlay will lead to an
> unmanageable solution. In any case it should be the default to not get
> ruby-enterprise pulled in.

:) You are official developer, so it's your choice. :) 

As I wrote in comment 4, putting 'dev-lang/ruby-enterprise =virtual/ruby-rdoc-3'
fixed problem for me. I think '=virtual/ruby-rdoc-3' will be enough, and 'dev-lang/ruby-enterprise' is just to be sure. Maybe it should be moved to new bug request.
Comment 7 Hans de Graaff gentoo-dev Security 2011-12-10 13:14:14 UTC
(In reply to comment #6)

> ruby-rdoc-3 is unmasked (in portage tree), Thats why 'emerge --update world'
> pulls it up for install, and dev-lang/ruby-enterprise is pooled as 
> a dependence.

Can you confirm that you have virtual/ruby-rdoc in /var/lib/portage/world ?
Comment 8 Hack_leberry Finn 2011-12-12 13:46:56 UTC
(In reply to comment #7)
> (In reply to comment #6)
> 
> > ruby-rdoc-3 is unmasked (in portage tree), Thats why 'emerge --update world'
> > pulls it up for install, and dev-lang/ruby-enterprise is pooled as 
> > a dependence.
> 
> Can you confirm that you have virtual/ruby-rdoc in /var/lib/portage/world ?

Yes We can :)

grep says:

grep -n "virtual/ruby-rdoc" /var/lib/portage/world 
1221:virtual/ruby-rdoc

eix says:

eix virtual/ruby-rdoc
[I] virtual/ruby-rdoc
     Available versions:  
	(ruby18)	0
	(ruby19)	[M]~1
	(jruby)	~2
	(ree18)	[m]3
	{elibc_FreeBSD ruby_targets_jruby ruby_targets_ree18 ruby_targets_ruby18 ruby_targets_ruby19}
     Installed versions:  0(ruby18)(10:30:22 20.09.2011)(ruby_targets_ruby18)
     Description:         Virtual ebuild for bundled and unbundled RDoc

So You can see that virtual version ree18  is masked by me not by portage and it is not keyworded.
Comment 9 Hans de Graaff gentoo-dev Security 2011-12-14 18:52:23 UTC
(In reply to comment #8)

> grep -n "virtual/ruby-rdoc" /var/lib/portage/world 
> 1221:virtual/ruby-rdoc

Right, so don't do that than. virtual/ruby-rdoc is supposed to be behind-the-scenes glue to make things work out of the box. If you explicitly request it you get the portage behavior you described and we can't do anything about that.

Also see: http://blog.flameeyes.eu/2011/12/10/a-worldly-opponent
Comment 10 Hack_leberry Finn 2011-12-14 19:30:28 UTC
(In reply to comment #9)

> > grep -n "virtual/ruby-rdoc" /var/lib/portage/world 
> > 1221:virtual/ruby-rdoc
> 
> Right, so don't do that than. virtual/ruby-rdoc is supposed to be
> behind-the-scenes glue to make things work out of the box. If you explicitly
> request it you get the portage behavior you described and we can't do anything
> about that.
> 
> Also see: http://blog.flameeyes.eu/2011/12/10/a-worldly-opponent


So it's not a bug it's a feature :))))))

I don't know when virtual/ruby-rdoc was installed in my system, and which dependencies pulled it up and I don't care of it, because as You wrote virtulas should "make things work out of the box. So ebuild of virtual/ruby-rdoc should be changed, or content of profile file. Removing something from world file, doesn't looks like real solution. I think placing something in /etc/portage/package.mask is better fix.
But it's only my opinion so You can disagree. :))
Comment 11 Marek Vojtko 2012-02-10 04:27:50 UTC
The same behavior happens when you have dev-lang/ruby in your /var/lib/portage/world file. In my case it was automatically added because, for some strange reason, dev-texlive/texlive-pictures-2011 depends on it. 

However, removing dev-lang/ruby from the world file or masking dev-lang/ruby-enterprise doesn't seem to help.
Comment 12 Hans de Graaff gentoo-dev Security 2012-02-12 11:10:00 UTC
(In reply to comment #10)
> (In reply to comment #9)

> I don't know when virtual/ruby-rdoc was installed in my system, and which
> dependencies pulled it up and I don't care of it, because as You wrote virtulas
> should "make things work out of the box. So ebuild of virtual/ruby-rdoc should
> be changed, or content of profile file. Removing something from world file,
> doesn't looks like real solution.

Removing it from world is the *only* solution. It really should not be there.
Comment 13 Hans de Graaff gentoo-dev Security 2012-02-12 11:10:58 UTC
(In reply to comment #11)
> The same behavior happens when you have dev-lang/ruby in your
> /var/lib/portage/world file. In my case it was automatically added because, for
> some strange reason, dev-texlive/texlive-pictures-2011 depends on it. 

texlive-pictures-2011 depends on ruby because it contains a few ruby scripts. This should not result in ruby being adding to your world file. And you are right, this does not matter for this bug.
Comment 14 Hans de Graaff gentoo-dev Security 2012-11-06 17:03:16 UTC
We should fix this by removing ruby-enterprise altogether: http://moving-innovations.com/blog/2012/09/26/gentoo-ruby-1-9-and-ruby-enterprise-edition-status-updates
Comment 15 Dion Moult (RETIRED) gentoo-dev 2013-03-24 11:20:58 UTC
Package dev-lang/ruby-enterprise has been removed.