# File Collisions trying to emerge nvidia-settings-358.16

## Featherfoot

I have been trying to get nvidia-settings-358.16 to emerge for several days and I don't understand why I keep getting file collisions and how to eliminate them.

>>> Install nvidia-settings-358.16 into /var/tmp/portage/media-video/nvidia-settings-358.16/image/ category media-video

make -j2 -C src/ DESTDIR=/var/tmp/portage/media-video/nvidia-settings-358.16/image/ PREFIX=/usr NV_USE_BUNDLED_LIBJANSSON=0 GTK3_AVAILABLE=0 install 

make: Entering directory '/var/tmp/portage/media-video/nvidia-settings-358.16/work/nvidia-settings-358.16/src'

make[1]: Entering directory '/var/tmp/portage/media-video/nvidia-settings-358.16/work/nvidia-settings-358.16/src/libXNVCtrl'

make[1]: Nothing to be done for 'default'.

make[1]: Leaving directory '/var/tmp/portage/media-video/nvidia-settings-358.16/work/nvidia-settings-358.16/src/libXNVCtrl'

mkdir -p /var/tmp/portage/media-video/nvidia-settings-358.16/image//usr/lib

install -m 644 _out/Linux_x86_64/libnvidia-gtk2.so \

    /var/tmp/portage/media-video/nvidia-settings-358.16/image//usr/lib/libnvidia-gtk2.so.358.16

mkdir -p /var/tmp/portage/media-video/nvidia-settings-358.16/image//usr/bin

install -m 755 _out/Linux_x86_64/nvidia-settings /var/tmp/portage/media-video/nvidia-settings-358.16/image//usr/bin/nvidia-settings

make: Leaving directory '/var/tmp/portage/media-video/nvidia-settings-358.16/work/nvidia-settings-358.16/src'

>>> Completed installing nvidia-settings-358.16 into /var/tmp/portage/media-video/nvidia-settings-358.16/image/

 * Final size of build directory: 15928 KiB

 * Final size of installed tree: 2608 KiB

making executable: usr/lib/libnvidia-gtk2.so.358.16

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line -R .note.gnu.gold-version

   usr/bin/nvidia-settings

   usr/lib/libnvidia-gtk2.so.358.16

   usr/lib64/libXNVCtrl.a

ecompressdir: bzip2 -9 /usr/share/doc

>>> Installing (2 of 53) media-video/nvidia-settings-358.16::gentoo

 * This package will overwrite one or more files that may belong to other

 * packages (see list below). You can use a command such as `portageq

 * owners / <filename>` to identify the installed package that owns a

 * file. If portageq reports that only one package owns a file then do

 * NOT file a bug report. A bug report is only useful if it identifies at

 * least two or more packages that are known to install the same file(s).

 * If a collision occurs and you can not explain where the file came from

 * then you should simply ignore the collision since there is not enough

 * information to determine if a real problem exists. Please do NOT file

 * a bug report at https://bugs.gentoo.org unless you report exactly which

 * two packages install the same file(s). See

 * http://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how to

 * solve the problem. And once again, please do NOT file a bug report

 * unless you have completely understood the above message.

 * 

 * Detected file collision(s):

 * 

 *      /usr/lib/libnvidia-gtk2.so.358.16

 * 

 * Searching all installed packages for file collisions...

 * 

 * Press Ctrl-C to Stop

 * 

 * x11-drivers/nvidia-drivers-358.16-r1:0::gentoo

 *      /usr/lib64/libnvidia-gtk2.so.358.16

 * 

 * Package 'media-video/nvidia-settings-358.16' NOT merged due to file

 * collisions. If necessary, refer to your elog messages for the whole

 * content of the above message.

>>> Failed to install media-video/nvidia-settings-358.16, Log file:

>>>  '/var/tmp/portage/media-video/nvidia-settings-358.16/temp/build.log'

 * GNU info directory index is up-to-date.

 * After world updates, it is important to remove obsolete packages with

 * emerge --depclean. Refer to `man emerge` for more information.

----------

## DawgG

something is wrong with the file /usr/lib/libnvidia-gtk2.so.358.16 

you can do some research on WHAT is wrong and try to fix that (like the error-msg suggests); if you just want the pkg to install you could go the quick'n'dirty way and just delete the file prior to the emerge or disable collision-protect for this emerge; eg

```
FEATURES="-collision-protect"  emerge -pv nvidia-settings
```

(personally i'd choose one of the latter)

GOOD LUCK!

----------

## krinn

nvidia-drivers provide nvidia-settings now thru the "tools" useflag.

i suppose you have install nvidia-drivers with it, and trying to install nvidia-settings, you'll get a file collision because nvidia-drivers already have it.

don't ask me why we still have the nvidia-settings package.

----------

## Featherfoot

I am actually doing an "emerge --newuse --deep --update --wth-bdeps=y world".  

vtk is pulling in nvidia-settings, so even when I emerge nvidia-drivers with the "tools" USE variable, nvidia-settings is still required/compiled.

I tried the FEATURES="-collision-protect" option. It doesn't work. I still got the collision failure. I poked around and it seems that emerge thinks you are too stupid to know when you need it.

emerge --info vtk returns the following: I don't understand how to stop this behavior.

bopper download # emerge --info vtk

Portage 2.2.28 (python 3.4.3-final-0, default/linux/amd64/13.0/desktop, gcc-4.9.3, glibc-2.22-r4, 4.4.6-gentoo x86_64)

=================================================================

                         System Settings

=================================================================

System uname: Linux-4.4.6-gentoo-x86_64-AMD_Phenom-tm-_II_X4_970_Processor-with-gentoo-2.2

KiB Mem:    16429512 total,   9627920 free

KiB Swap:    1021948 total,   1021948 free

Timestamp of repository gentoo: Mon, 01 Aug 2016 21:00:01 +0000

sh bash 4.3_p42-r1

ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1

app-shells/bash:          4.3_p42-r1::gentoo

dev-java/java-config:     2.2.0-r3::gentoo

dev-lang/perl:            5.20.2::gentoo

dev-lang/python:          2.7.10-r1::gentoo, 3.4.3-r1::gentoo

dev-util/cmake:           3.3.1-r1::gentoo

dev-util/pkgconfig:       0.28-r2::gentoo

sys-apps/baselayout:      2.2::gentoo

sys-apps/openrc:          0.19.1::gentoo

sys-apps/sandbox:         2.10-r1::gentoo

sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo

sys-devel/automake:       1.10.3-r1::gentoo, 1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo

sys-devel/binutils:       2.25.1-r1::gentoo

sys-devel/gcc:            4.9.3::gentoo

sys-devel/gcc-config:     1.7.3::gentoo

sys-devel/libtool:        2.4.6::gentoo

sys-devel/make:           4.1-r1::gentoo

sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers)

sys-libs/glibc:           2.22-r4::gentoo

Repositories:

gentoo

    location: /usr/portage

    sync-type: rsync

    sync-uri: rsync://rsync.gentoo.org/gentoo-portage

    priority: -1000

x-portage

    location: /usr/local/portage

    masters: gentoo

    priority: 0

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/php/cli-php5.6/ext-active/ /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 -pipe"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LANG="en_US.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"

PORTAGE_TMPDIR="/var/tmp"

USE="3dnow X Xaw3d a52 aac aalib acl acpi aim alsa amd64 ao apache2 apm audiofile avahi berkdb bidi blas bluetooth branding bzip2 cairo calendar caps cdda cddb cdinstall cdparanoia cdr cgi clamav cli consolekit cracklib crypt css ctype cups curl cvs cxx dbi dbm dbus dbx dga directfb dri dts dv dvb dvd dvdr emboss encode enscript evo examples exif expat fam fastcgi fbcon firefox flac fontconfig foomaticdb fortran freetype ftp gcj gdbm gif gimp glamor glu gmp gnuplot gnutls gphoto2 gpm graphviz gsl gsm gstreamer guile gzip hal handbook hddtemp httpd iconv icq icu idn ieee1394 imagemagick imlib innodb introspection iodbc ipv6 jabber java java6 javascript jbig jingle jpeg jpeg2k kde kontact lapack lcms ldap libcaca libedit libgda libnotify libwww lm_sensors lua lzma lzo mad maildir matroska mikmod milter mime mmap mmx mmxext mng modules motif mozilla mp3 mp4 mpeg mpi mplayer msn multilib musepac mysql mysqli nas ncurses networkmanager nls nntp nptl nsplugin odbc offensive ofx ogg oggvorbis opengl openmp osc oscar oss pam pango pch pcntl pcre pdf perl php plasma plotutils png policykit portaudio posix postgres ppds pulseaudio python qt3support qt5 quicktime raw rdesktop readline rss ruby samba sasl sdl seccomp semantic-desktop session sharedext sharedmem simplexml smp sndfile snmp soap sockets socks5 speex spell sqlite sqlite3 sse sse2 ssl startup-notification stream subversion suid svg symlink syslog sysvipc szip tcl tcpd theora threads tidy tiff timiditytk tokenizer truetype udev udisks unicode upower usb v4l v4l2 vcd vlm vorbis wayland win32codecs wmf wxwidgets x264 xattr xcb xcomposite xft xine xinerama xinetd xml xnlrpc xosd xv xvid yahoo zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" 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 ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="nvidia" XFCE_PLUGINS="brightness menu trash" 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:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

bopper download # 

----------

## Featherfoot

I was eventually able to resolve the file collisions problem by setting the nvidia-drivers USE flag to -tools, forcing it to use the nvidia-settings package directly. 

Actually, setting the nvidia-drivers USE flag to tools would compile correctly but vtk isn't smart enough to test for the settings program.

----------

