I have problems emerging tk-8.5.7. The system tcl is 8.5.7, but I also have a tcl/tk living in /usr/local (needed for a specific program which is vital to my work and which needs a specific 8.4 version). when emerging tk-8.5.7, it picks up the wrong tcl version How can I exclude /usr/local from anything e-build related? I have tried adding SEARCH_DIRS_MASK="/usr/local" to /etc/make.conf (bug 59803), but this does not help Reproducible: Always Actual Results: make -j1 x86_64-pc-linux-gnu-gcc -c -O2 -march=nocona -O2 -pipe -pipe -Wall -fPIC -I/var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../unix -I/var/tmp/portag e/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic -I/var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../bitmaps -I/usr/lib64/tcl8.5/include/generic -I/ usr/lib64/tcl8.5/include/unix -DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\" -DPACKAGE_STRING=\"tk\ 8.5\" -DPACKAGE_BUGREPORT=\ "\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHR EAD_GETATTR_NP=1 -DGETATTRNP_NOT_DECLARED=1 -DTCL_THREADS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DTCL_SHLIB_EXT=\".so \" -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_INTPTR_T=1 - DHAVE_UINTPTR_T=1 -DHAVE_PW_GECOS=1 -DHAVE_XSS=1 -DTCL_NO_DEPRECATED -DUSE_TCL_STUBS /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic /tk3d.c In file included from /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tkInt.h:21, from /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tk3d.c:16: /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tk.h:23:3: error: #error Tk 8.5 must be compiled with tcl.h from Tcl 8.5 make: *** [tk3d.o] Error 1 Expected Results: I would like the e-build to ignore anything in /usr/local and to use the system version of tcl build log file: * * PLEASE NOTE: You are compiling tk-8.5.7 with * threading enabled. * Threading is not supported by all applications * that compile against tcl. You use threading at * your own discretion. * >>> Unpacking source... >>> Unpacking tk8.5.7-src.tar.gz to /var/tmp/portage/dev-lang/tk-8.5.7/work * Applying tk-8.4.11-multilib.patch ... [ ok ] * Applying tk-8.5_alpha6-tclm4-soname.patch ... [ ok ] * Running eautoreconf in '/var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix' ... * Running autoconf ... [ ok ] >>> Source unpacked in /var/tmp/portage/dev-lang/tk-8.5.7/work >>> Compiling source in /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7 ... ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share -- sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --with-tcl=/usr/lib64 --enable-threads --disable-xft --disable-symbols checking for Tcl configuration... found /usr/lib64/tclConfig.sh checking for existence of /usr/lib64/tclConfig.sh... loading checking for tclsh... /usr/local/bin/tclsh8.4 checking for tclsh in Tcl build directory... /usr/lib64/tclsh checking whether to use symlinks for manpages... no checking whether to compress the manpages... no checking whether to add a package name suffix for the manpages... no checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking for stdlib.h... (cached) yes checking if the compiler understands -pipe... yes checking for pthread_mutex_init in -lpthread... yes checking for pthread_attr_setstacksize... yes checking for pthread_attr_get_np... no checking for pthread_getattr_np... yes checking for pthread_getattr_np declaration... missing checking for building with threads... yes (threaded core) checking how to build libraries... shared checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib checking if 64bit support is requested... no checking if 64bit Sparc VIS support is requested... no checking if compiler supports visibility "hidden"... yes checking if rpath support is requested... yes checking system version... Linux-2.6.27-gentoo-r7 checking for dlopen in -ldl... yes checking for ar... ar checking for build with symbols... no checking for required early compiler flags... _LARGEFILE64_SOURCE checking for 64-bit integer type... using long checking whether byte ordering is bigendian... no checking for fd_set in sys/types... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking whether time.h and sys/time.h may both be included... yes checking for strtod... yes checking for Solaris2.4/Tru64 strtod bugs... ok checking for mode_t... yes checking for pid_t... yes checking for size_t... yes checking for uid_t in sys/types.h... yes checking for intptr_t... yes checking for uintptr_t... yes checking pw_gecos in struct pwd... yes checking for X... libraries , headers checking for X11 header files... checking for main in -lXbsd... no checking for X11/extensions/scrnsaver.h... yes checking for XScreenSaverQueryInfo... no checking for XScreenSaverQueryInfo in -lXext... no checking for XScreenSaverQueryInfo in -lXss... yes checking whether to use xft... no checking whether char is unsigned... no configure: creating ./config.status config.status: creating Makefile config.status: creating tkConfig.sh make -j1 x86_64-pc-linux-gnu-gcc -c -O2 -march=nocona -O2 -pipe -pipe -Wall -fPIC -I/var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../unix -I/var/tmp/portag e/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic -I/var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../bitmaps -I/usr/lib64/tcl8.5/include/generic -I/ usr/lib64/tcl8.5/include/unix -DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\" -DPACKAGE_STRING=\"tk\ 8.5\" -DPACKAGE_BUGREPORT=\ "\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHR EAD_GETATTR_NP=1 -DGETATTRNP_NOT_DECLARED=1 -DTCL_THREADS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DTCL_SHLIB_EXT=\".so \" -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_INTPTR_T=1 - DHAVE_UINTPTR_T=1 -DHAVE_PW_GECOS=1 -DHAVE_XSS=1 -DTCL_NO_DEPRECATED -DUSE_TCL_STUBS /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic /tk3d.c In file included from /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tkInt.h:21, from /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tk3d.c:16: /var/tmp/portage/dev-lang/tk-8.5.7/work/tk8.5.7/unix/../generic/tk.h:23:3: error: #error Tk 8.5 must be compiled with tcl.h from Tcl 8.5 make: *** [tk3d.o] Error 1 * * ERROR: dev-lang/tk-8.5.7 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2774: Called die * The specific snippet of code: * emake || die * The die message: * (no error message) * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/dev-lang/tk-8.5.7/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-lang/tk-8.5.7/temp/environment'. and emerge --info: Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-4.1.2, glibc-2.9_p20081201-r2, 2.6.27-gentoo-r7 x86_64) ================================================================= System uname: Linux-2.6.27-gentoo-r7-x86_64-Intel-R-_Xeon-R-_CPU_E5410_@_2.33GHz-with-gentoo-1.12.11.1 Timestamp of tree: Thu, 01 Oct 2009 14:15:02 +0000 app-shells/bash: 4.0_p28 dev-java/java-config: 1.3.7-r1, 2.1.8-r1 dev-lang/python: 2.4.6, 2.5.4-r3, 2.6.2-r1 dev-python/pycrypto: 2.0.1-r8 dev-util/cmake: 2.6.2-r1 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.7.9-r1, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/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 /etc/udev/rules.d" CXXFLAGS="-march=nocona -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://mirror.netcologne.de/gentoo/ " LDFLAGS="-Wl,-O1" LINGUAS="en" MAKEOPTS="-j1" 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" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X aac acl acpi alsa amd64 automount berkdb bzip2 cairo cli cracklib crypt cups dbus dri emacs fortran gdbm gif gimp gpm hal iconv imagemagick ipv6 isdnlog java jpeg kde kerberos latex ldap mmx modules mp3 mudflap multilib ncurses nls nptl nptlonly nsplugin nvidia opengl openmp pam pcre pdf perl png pppd python qt3support quicktime readline reflection samba session spl sse sse2 ssl svg sysfs tcl tcpd threads tiff tk truetype-fonts type1-fonts unicode usb xinerama xorg zlib" ALSA_CARDS="hda-intel" 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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nv vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
If you have such things like libs installed outside the portage system it is your problem to handle all paths correctly. Therefor we cannot help you. You can use our mailing lists as well as our irc channels to get help with that, but this is no bug which we handle. I would tarball your /usr/local stuff and remove it. upgrade tcl and unpack it again.
(In reply to comment #1) > If you have such things like libs installed outside the portage system it is > your problem to handle all paths correctly. Therefor we cannot help you. > You can use our mailing lists as well as our irc channels to get help with > that, but this is no bug which we handle. > I would tarball your /usr/local stuff and remove it. upgrade tcl and unpack it > again. > Or even better. Never install things without the package manager. You could modify the ebuilds to suit your needs (and when you are at submit them). Older versions can be found at [1] by selecting "Show dead files". Having the same package in /usr /usr/local calls for breakage. For example, doing this with python leads to a totally borked system. If you really don't see another option you could install it in some path that isn't in the default search path, like your home directory. Those you could tell the package that needs this special version where it is and all other packages wouldn't notice. [1] http://sources.gentoo.org/viewcvs.py/gentoo-x86/ >I would like the e-build to ignore anything in /usr/local and to use the system >version of tcl That's mostly out of the control of the package manager. You would need to adjust the default search path for include files. Even this might be not enough since some broken build systems hardcode stuff that might circumvent your changes. By default /usr/local shadows /usr.