If, for whatever reason the directory /usr/lib64 exists, cups will place its library objects into this directory, regardless of the actual arch type. Here is the relevant code from cups' configure (line 8381): if test "$libdir" = "\${exec_prefix}/lib"; then if test "$uname" = "IRIX"; then libdir="$exec_prefix/lib32" else if test "$uname" = Linux -a -d /usr/lib64; then libdir="$exec_prefix/lib64" else libdir="$exec_prefix/lib" fi fi fi So on Linux systems, if $exec_prefix/lib64, and $exec_prefix/lib both exist, lib64 will be chosen. As to why I have a /usr/lib64 directory on my x86 system, who knows? But I did have a portage/pym directory in there ,which equery tells me is orphaned. Removing the lib64 directory fixes the problem, but I think the configure script is a bit too basic in its test. Reproducible: Always Steps to Reproduce: 1. mkdir -p /usr/lib64 2. emerge cups 3. ls -l /usr/lib64 Actual Results: libcups & friends are installed in /usr/lib64 Expected Results: libcups & friends are installed in /usr/lib
I'm too lazy to write the patch, but I guess what is needed is: if [ ${ARCH} -eq "x86" -a -d "/usr/lib64" ] then eerror "You are running an x86 system, but /usr/lib64 exists, cups will install all library objects into this directory!" eerror "You should remove /usr/lib64, but before you do, you should check for existing objects, and re-compile all effected packages." eerror "You can use qfile (emerge portage-utils to install qfile) to get a list of the effected ebuilds:" eerror "# qfile -qC /usr/lib64" fi
Thanks I have added this check with the 1.2.11 version bump
Cool. if you took my warning code verbatim, after I re-read it, I think that the right word is affected instead of effected... I can never get those 2 right.
thanks I have fixed this again :)