openafs-1.4.4 fails to install due to package collisions with app-crypt/heimdal-0.7.2-r3 Reproducible: Always Steps to Reproduce: 1.emerge heimdal 2.emerge openafs 3.package collions during installation of openafs Actual Results: * checking 275 files for package collisions existing file /usr/bin/pagsh is not owned by this package package net-fs/openafs-1.4.4 NOT merged Searching all installed packages for file collisions... Press Ctrl-C to Stop * app-crypt/heimdal-0.7.2-r3: '/usr/bin/pagsh' Expected Results: no collisions # emerge --info Portage 2.1.2.2 (default-linux/x86/2006.1/server, gcc-4.1.2, glibc-2.5-r1, 2.6.20-gentoo-r3 i686) ================================================================= System uname: 2.6.20-gentoo-r3 i686 AMD Athlon(tm) MP 2800+ Gentoo Base System release 1.12.9 Timestamp of tree: Tue, 03 Apr 2007 02:30:08 +0000 dev-java/java-config: 1.3.7, 2.0.31-r5 dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.15-r1 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.20-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -mtune=athlon-xp -O2 -pipe -fomit-frame-pointer -msse -mfpmath=sse" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-march=athlon-xp -mtune=athlon-xp -O2 -pipe -fomit-frame-pointer -msse -mfpmath=sse" DISTDIR="/usr/portage/distfiles" FEATURES="collision-protect distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv usersandbox" GENTOO_MIRRORS="<your_mirror_here> http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" LINGUAS="en" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acpi apache2 bash-completion berkdb bitmap-fonts bzip2 cli cracklib crypt cups dbus directfb dri expat fam fbcon fortran gdbm gif gnutls gpm gtk gtk2 guile hal iconv isdnlog ithreads java kde kerberos lcms libg++ mailwrapper midi mmx mpeg mysql ncurses network nptl nptlonly nsplugin opengl pam pcre perl ppds pppd python qt qt3 readline reflection samba session snmp spl sse ssl svg svga tcltk tcpd theora threads tiff truetype truetype-fonts type1-fonts unicode usb win32codecs x86 xine xml xml2 xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nv nvidia" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I spoke with Jeffrey Hutzelman about this, trying to sort it out because it still occurs. He calls it a packaging bug and says heimdal's version (if installed) should always over-ride the version supplied by openafs since heimdal's provides more funtionality. Here's his reponse pasted: Ah, OK. I'd call that a packaging bug. What pagsh does is give you a shell in a new PAG, so it can have different AFS tokens than the parent. Essentially, pagsh is to AFS tokens what newgrp is to UNIX groups. It's a basic tool so it comes with AFS, and should be part of the same package that contains other AFS client tools. However, if heimdal is installed, you want its version of pagsh, because it has additional functionality. Particularly, the heimdal version also gives the subshell new Kerberos ticket caches, so in addition to having distinct tokens from the parent, it also has distinct tickets. Most packaging systems have a redirect or override feature designed to deal with this kind of situation. Typically, the heimdal package would be changed such that its version of pagsh overrides the openafs one, but only when both packages are installed. -- Jeff
how about changing the pagsh install-path for both openafs and heimdal and introduce yet another eselect module to let the user choose?
(In reply to comment #2) > how about changing the pagsh install-path for both openafs and heimdal and > introduce yet another eselect module to let the user choose? Isn't eselect a bit overkill for this situation? Also, there's nothing much to choose, because you want the heimdal implementation whenever heimdal is installed, otherwise you want the openafs implementation. Choise would only add confusion here.
This version is no longer in portage. Versions in portage do not produce the same package collisions.