Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 69333 - name crash between imagemagick and geomview
Summary: name crash between imagemagick and geomview
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High minor (vote)
Assignee: Karol Wojtaszek (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on: 73464
Blocks:
  Show dependency tree
 
Reported: 2004-10-28 17:06 UTC by Bernd Waibel
Modified: 2005-07-27 18:45 UTC (History)
1 user (show)

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 Bernd Waibel 2004-10-28 17:06:18 UTC
There's a name crash between the imagemagick and geomview packages in that both contain an /usr/bin/animate application. I am using imagemagick-6.0.7.1 and geomview-1.8.1-r3 but this should be true for any version.

I haven't tried to produce an error. Instead during emerge of imagemagick I was myself not sure if it isn't already installed. To verify this I called the /usr/bin/animate program which I knew is part of imagemagick, but another application then the one I know popped up. A qpkg -f /usr/bin/animate stated that this application is part of the geomview package.

I then renamed the /usr/bin/animate program to /usr/bin/animate.geomview and after successful installation of imagemagick I renamed its animate tool to /usr/bin/animate.imagemagick. Although this is a hack it works for me atm, but is something that IMO should be considered to be solved.

The steps given below to reproduce this bugs are not validated by me, but they should hopefully work.


Reproducible: Didn't try
Steps to Reproduce:
1. put collision-protect in FEATURES
2. emerge geomview imagemagick
3. alternatively emerge imagemagick geomview

Actual Results:  
not applicable because I didn't solve it this way.

Expected Results:  
not applicable. I will try this in the next few days to verify the steps.

gwenhwyfar root # emerge info
Portage 2.0.51-r2 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1,
2.6.9-gentoo-r1 i686)
=================================================================
System uname: 2.6.9-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz
Gentoo Base System version 1.4.16
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.14.90.0.8-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -O3 -fforce-addr -mfpmath=sse -mmmx -msse -msse2 -Wall"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -O3 -fforce-addr -mfpmath=sse -mmmx -msse -msse2 -Wall"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs buildpkg ccache collision-protect distlocks fixpackages
nostrip sandbox userpriv usersandbox"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
ftp://ftp.tu-clausthal.de/pub/linux/gentoo/
ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/
ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo
ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo
ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo
ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/
ftp://ftp.gentoo.mesh-solutions.com/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/mnt/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X aalib accessibility acl acpi aim alsa apache2 arts audiofile avi bcmath
berkdb bindist bitmap-fonts bonobo bzlib caps cdr cjk crypt cscope ctype cups
curl curlwrappers dbase dbx dedicated dga directfb divx4linux doc dvd dvdr emacs
encode esd ethereal evo exif f77 fam fbcon fdftk fftw flac flash foomaticdb ftp
gb gd gdbm ggi gif ginac gmp gnome gnutls gpm gps gstreamer gtk gtk2 gtkhtml
guile iconv icq imagemagick imlib jabber jack java jikes joystick jpeg junit kde
ladcca lcms libgda libwww mad maildir mcal mhash mikmod mime ming mmap mmx mng
motif mozilla mpeg mpi msn mysql nas ncurses netcdf nls nptl odbc offensive
oggvorbis openal opengl oscar oss pam pcntl pcre pdflib perl pic pie plotutils
png posix ppds python qhull qt quicktime readline samba sdl session shared slang
slp soap sockets speex spell sqlite sse ssl svg svga sysvipc tcltk tcpd tetex
theora threads tiff truetype unicode usb videos wddx wmf wxwindows x86 xine xml2
xmlrpc xmms xosd xpm xprint xsl xv xvid yahoo zlib"
Comment 1 Bernd Waibel 2004-11-02 07:06:50 UTC
There's another collision with the imagemagick package. I am not sure whether
to report this here or file a new bug, but both bugs are collision related, 
and both affect imagemagick, so I decided to report it here.

When updating from imagemagick 6.0.7.1 to v. 6.1.0.1

gwenhwyfar portage # emerge -pv imagemagick

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild     U ] media-gfx/imagemagick-6.1.0.1 [6.0.7.1] +X +cups -debug +graphviz +jbig +jpeg +lcms +mpeg +perl +png +tiff +truetype +wmf +xml2 0 kB 

Total size of downloads: 0 kB




I get the following error:

./usr/include/magick/client.h
./usr/include/magick/utility.h
>>> Done.
>>> extracting info
>>> extracting imagemagick-6.1.0.1
* checking 594 files for package collisions
existing file /usr/lib/libltdl.a is not owned by this package
existing file /usr/lib/libltdl.la is not owned by this package
* spend 0.664039134979 seconds checking for file collisions
* This package is blocked because it wants to overwrite
* files belonging to other packages (see messages above).
* If you have no clue what this is all about report it 
* as a bug for this package on http://bugs.gentoo.org

package media-gfx/imagemagick-6.1.0.1 NOT merged

No package files given... Grabbing a set.



Both of these files belong to libtool according equery:

gwenhwyfar portage # equery belongs /usr/lib/libltdl.a
Searching for file '/usr/lib/libltdl.a' in *...
sys-devel/libtool-1.5.2-r5 (/usr/lib/libltdl.a)
gwenhwyfar portage # equery belongs /usr/lib/libltdl.la
Searching for file '/usr/lib/libltdl.la' in *...
sys-devel/libtool-1.5.2-r5 (/usr/lib/libltdl.la)


The ebuild does not explicitly install them from the src_install function, so
I assume they will be installed by 'make install'.
Comment 2 Karol Wojtaszek (RETIRED) gentoo-dev 2004-11-02 08:13:19 UTC
/usr/lib/libltdl.a collision has been already fixed in 6.1.3.2
Comment 3 Jude M. 2004-11-08 00:58:57 UTC
"/usr/lib/libltdl.a collision has been already fixed in 6.1.3.2"
I apologize if I'm incorrect, but so far as I can tell, it has not been. If I am incorrect, I would appreciate it if you could tell me in what way.

...
>>> Completed installing into /var/tmp/portage/imagemagick-6.1.3.2/image/ 

* checking 582 files for package collisions 
existing file /usr/lib/libltdl.la is not owned by this package 
existing file /usr/lib/libltdl.a is not owned by this package 
* spend 0.30256485939 seconds checking for file collisions 
* This package is blocked because it wants to overwrite 
* files belonging to other packages (see messages above). 
* If you have no clue what this is all about report it 
* as a bug for this package on http://bugs.gentoo.org 

package media-gfx/imagemagick-6.1.3.2 NOT merged 

No package files given... Grabbing a set. 
bash-2.05b# 
	

bash-2.05b# emerge --info 
Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.4.20-gentoo-r6 i686) 
================================================================= 
System uname: 2.4.20-gentoo-r6 i686 AMD Athlon(tm) XP 2500+ 
Gentoo Base System version 1.4.16 
Autoconf: sys-devel/autoconf-2.59-r5 
Automake: sys-devel/automake-1.8.5-r1 
Binutils: sys-devel/binutils-2.14.90.0.8-r1 
Headers:  sys-kernel/linux-headers-2.4.19-r1,sys-kernel/linux-headers-2.4.21-r1 
Libtools: sys-devel/libtool-1.5.2-r5 
ACCEPT_KEYWORDS="x86" 
AUTOCLEAN="yes" 
CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" 
CHOST="i686-pc-linux-gnu" 
COMPILER="" 
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="autoaddcvs ccache collision-protect distlocks sandbox sfperms strict userpriv usersandbox" 
GENTOO_MIRRORS="ftp:///ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://mirror.datapipe.net/gentoo ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://gentoo.ccccom.com http://gentoo.osuosl.org/ http://open-systems.ufl.edu/mirrors/gentoo" 
MAKEOPTS="-j2" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="" 
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" 
USE="3dnow X aalib adns apm arts artswrappersuid avi berkdb bitmap-fonts cdr crypt cups dga directfb doc dvb dvd encode f77 fam fbcon flac flash foomaticdb gd gdbm gif ginac gpm gstreamer gtk gtk2 gtkhtml imagemagick imlib ipv6 java jikes joystick jp2 jpeg jpg2k junit kde ldap libcaca libg++ libwww mad mikmod mmx mng motif mozdomi mozsvg mpeg mpeg4 mysql nas ncurses nocardbus nocd oav offensive oggvorbis opengl operanom2 oscar oss pam pdflib perl pic plotutils png pnp postgres python qhull qt quicktime readline samba sdl silc slang spell sse ssl svg svga svgalib tcltk tcpd tetex tiff truetype type1 usb videos wmf x86 xine xml xml2 xmms xv xvid zlib"
Comment 4 Bernd Waibel 2004-11-10 02:08:46 UTC
The same here. It seems not fixed in release 6.1.3.2.

But I just saw, that the collision of the ltdl libraries is already
handled within bug #69705. So maybe we could restrict this bug
to the collision of the animate program between imagemagick and
geomview.
Comment 5 Bernd Waibel 2004-11-10 03:36:14 UTC
I tried to reproduce this and started with a 'clean' state, i.e. neither
imagemagick nor geomview installed and no animate was in path and /usr/bin/animte did not exist.

Either way, by first installing geomview or by first installing imagemagick
emerge fails to install the second with the message

existing file /usr/bin/animate is not owned by this package
* spend 0.0861721038818 seconds checking for file collisions
* This package is blocked because it wants to overwrite
* files belonging to other packages (see messages above).

I tested it in both ways using binary packages and using imagemagick 6.0.7.1
because of the ltdl bug.
Comment 6 Karol Wojtaszek (RETIRED) gentoo-dev 2004-11-18 12:12:37 UTC
/usr/lib/libltdl.a collision has been already fixed in 6.1.3.2, we needed to rollback changes, but now it's ok. This version should be soon stabilized.

But what do with geomview collison? Maybe block packages eachother, but it's only workaround.
Comment 7 Bernd Waibel 2004-11-18 14:41:45 UTC
Ok thanks, I will try and recompile the 6.1.3.2.

With the geomview problem I agree with you in that a blocking could only be
some kind of workaround. 

Is there a general strategy for such cases within gentoo development teams? 
Although such problems seem to occur rarely, I think it wouldn't harm if 
there's a general way within a distribution to solve it. I do not know how 
other distris solve this. I can remember that redhat sometimes managed it 
somehow to install both, but I don't remember how they did this. It was some 
years ago, think with rh-6.x series. Maybe Knoppix has them both installed. 
I will get a current knoppix image within the next few days and take a look at 
it. Maybe I find something interesting :)

Another possible solution may eventually be the application of something like 
follows:
- If someone calls for emerging a package with known collisions, the user will
  be warned and get a chance to cancel the emerge (for example by waiting for
  5 sec. like 'emerge --unmerge' does).
- If the user doesn't cancel the package will be compiled as usual. When 
  executing src_install, after the usual call to 'emake install' or some    
  similiar target to do actual installation, but before the packaging is
  done, the relevant files will be renamed within the ${D} image tree. Portage
  then installs a wrapper script which for example can use zenity or xdialog
  or something like that, to query the user for the application to start.
- After the installation the user must be notified to reinstall the other
  package(s) involved in the collision. This would be better done by portage
  directly in triggering the re-installation of the relevant packages (if this
  is possible from within portage).
- At the end of the installations the user must be notified of the collision
  and the solution used to solve this collision.

This solution is a hack. It assumes that all possible collisions are known
before installation starts. In fact it was the first that came into my mind. 
But maybe it will give some starting point. I will think about this during the 
next time, hoping to find some better solution.

If Gentoo currently doesn't have a way to solve collisions effectively it may
also be a good idea to start a forum thread and discussion about possible
solutions to such problems. IMO a good package manager should be able to handle
package collision in an effective way for the desired distribution.
Comment 8 Karol Wojtaszek (RETIRED) gentoo-dev 2004-11-18 14:56:18 UTC
There is only one strategy, block them each other if doesn't exist any other possible way to solve problem (file collision) ;)
Comment 9 Bernd Waibel 2004-11-19 05:37:14 UTC
so it seems they need to block each other :(

is there a way, once they block each other, to ship around the blocking, for
example by installing the second of them using ebuild?
Comment 10 Bernd Waibel 2004-11-21 03:17:06 UTC
In response to comment #6: I found that it is still not working for me. I tried to
upgrade imagemagick from Thursday on, when Karol posted his comment, but
until now it fails, still with the libltdl collision. I sync'ed my computer this 
morning for the last time. BTW, I sync my computer once every day.

Is this change still not in portage, or does the solution Karol states does
not work?
Comment 11 Karol Wojtaszek (RETIRED) gentoo-dev 2004-11-21 07:08:55 UTC
Only 6.1.3.4 fixes this problem:

src_install() {                                                                 
        make DESTDIR=${D} install                                               
                                                                                
        #bug 69705                                                              
        rm -f ${D}/usr/lib/libltdl*
....
}

`equery files imagemagick` also doesn't show libtool's libraries in imagemagick.
Comment 12 Bernd Waibel 2004-11-21 23:02:17 UTC
thanks Karol, i'll then use my current release and wait until 6.1.3.4 becomes
stable.
Comment 13 Bernd Waibel 2004-12-09 06:28:24 UTC
Hello again,

rel. 6.1.3.4 installed without problem, the libltdl problem seem to have fixed.

But it seems that there are more issues related to the collision-protect feature, especially when dealing with perl.

For your information (maybe it would be better to post this in the forums).

I made this experience:
During the last days I cleaned up my /etc/portage/package.* files. For this I
backed up the current files to start of with a clean state. I reduced my USE
flags in /etc/make.conf to contain only those flags, which I absolutely need.
I want to put all other USE flags in /etc/portage/package.use on a per package
basis. This caused imagemagick-6.1.3.4 to recompile. But this time it didn't
emerge properly but give me a warning about a colliding file, namely the
/usr/lib/perl5/5.8.5/i686-linux-thread-multi/perllocal.pod. This same file
caused another package, gaim, to fail to due to collision protection.

I simply removed the collision-protect feature for those two packages, to get
them updated. Though I do not know, if this can be of any harm for my system.
I hope it would not harm too much, at least, as I am not familiar with perl.
From what I know, this file seems to me as local index- or contents-file for
the perl help/doc system. So it may be, that now my perl help is not working
properly. Because I do not need this help, I do not care about it not working
properly. 

Additionally the most problems I encounter with collision-protect are problems 
with overriding any perl related files. I do currently not report any of those 
for the reasons that I do not know perl, nor want it to learn. I have perl only 
installed because the system relates on it. So if somethings inside of perl is
not working 100% I do not care about it, as long as my system further works.

Hope this will be of some help.
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2005-07-27 18:45:30 UTC
(In reply to comment #13)
> Hello again,
> 
> rel. 6.1.3.4 installed without problem, the libltdl problem seem to have fixed.

OK, closing. Just FYI, perl is not collision-protect compliant (see Bug 71659)