Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 139629

Summary: eselect compiler needs to depend on mktemp! nasty loop!
Product: Gentoo Linux Reporter: Robin Johnson <robbat2>
Component: [OLD] Core systemAssignee: Jeremy Huddleston (RETIRED) <eradicator>
Status: RESOLVED FIXED    
Severity: critical CC: bug.hunter, toolchain
Priority: High    
Version: 2006.0   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 143697    
Attachments: Remove use of mktemp from eselect module

Description Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2006-07-07 19:59:37 UTC
Not having mktemp breaks eselect-compiler, and eselect-compiler does NOT depend on mktemp. Additionally, if you install eselect-compiler before mktemp, you can't install mktemp!

# FEATURES=-confcache emerge mktemp
Calculating dependencies... done!

>>> Emerging (1 of 1) sys-apps/mktemp-1.5 to /
>>> Creating Manifest for /usr/gentoo-cvs/gentoo-x86/sys-apps/mktemp
>>> Unpacking source...
>>> Unpacking mktemp-1.5.tar.gz to /var/tmp/portage/mktemp-1.5/work
 * Applying mktemp-1.5-build.patch ...                                                                                                              [ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/mktemp-1.5/work/mktemp-1.5 ...
 * econf: updating mktemp-1.5/config.guess with /usr/share/gnuconfig/config.guess
 * econf: updating mktemp-1.5/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-libc --build=i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for nroff... ./nroff
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output... configure: error: C compiler cannot create executables
See `config.log' for more details.

!!! Please attach the following file when filing a report to bugs.gentoo.org:
!!! /var/tmp/portage/mktemp-1.5/work/mktemp-1.5/config.log

From config.log
configure:1587: checking for i686-pc-linux-gnu-gcc
configure:1603: found /usr/lib/ccache/bin/i686-pc-linux-gnu-gcc
configure:1613: result: i686-pc-linux-gnu-gcc
configure:1895: checking for C compiler version
configure:1898: i686-pc-linux-gnu-gcc --version </dev/null >&5
/usr/share/eselect//modules/compiler.eselect: line 30: mktemp: command not found
/usr/share/eselect//modules/compiler.eselect: line 33: ${tmp}: ambiguous redirect
/usr/share/eselect//modules/compiler.eselect: line 35: source: filename argument required
source: usage: source filename [arguments]
^[[1;31m!!! Error: ^[[00mFailed to get data on installed profiles.
gcc-config error: Could not run/locate "i686-pc-linux-gnu-gcc"
configure:1901: $? = 1
configure:1903: i686-pc-linux-gnu-gcc -v </dev/null >&5
/usr/share/eselect//modules/compiler.eselect: line 30: mktemp: command not found
/usr/share/eselect//modules/compiler.eselect: line 33: ${tmp}: ambiguous redirect
/usr/share/eselect//modules/compiler.eselect: line 35: source: filename argument required
source: usage: source filename [arguments]
^[[1;31m!!! Error: ^[[00mFailed to get data on installed profiles.
gcc-config error: Could not run/locate "i686-pc-linux-gnu-gcc"
configure:1906: $? = 1 
configure:1908: i686-pc-linux-gnu-gcc -V </dev/null >&5
/usr/share/eselect//modules/compiler.eselect: line 30: mktemp: command not found
/usr/share/eselect//modules/compiler.eselect: line 33: ${tmp}: ambiguous redirect
/usr/share/eselect//modules/compiler.eselect: line 35: source: filename argument required
source: usage: source filename [arguments]
^[[1;31m!!! Error: ^[[00mFailed to get data on installed profiles.
gcc-config error: Could not run/locate "i686-pc-linux-gnu-gcc"
configure:1911: $? = 1
configure:1935: checking for C compiler default output
configure:1938: i686-pc-linux-gnu-gcc -march=athlon-xp -mcpu=athlon-xp -O3 -pipe   conftest.c  >&5
/usr/share/eselect//modules/compiler.eselect: line 30: mktemp: command not found
/usr/share/eselect//modules/compiler.eselect: line 33: ${tmp}: ambiguous redirect
/usr/share/eselect//modules/compiler.eselect: line 35: source: filename argument required
source: usage: source filename [arguments]
^[[1;31m!!! Error: ^[[00mFailed to get data on installed profiles.
gcc-config error: Could not run/locate "i686-pc-linux-gnu-gcc"
configure:1941: $? = 1
configure: failed program was:
| #line 1914 "configure"
| /* confdefs.h.  */
|
Comment 1 Jeremy Huddleston (RETIRED) gentoo-dev 2006-08-22 03:56:57 UTC
This must've been missed by vapier when he broke off the mktemp package...
Comment 2 Kevin F. Quinn (RETIRED) gentoo-dev 2006-08-22 06:06:45 UTC
Created attachment 94860 [details, diff]
Remove use of mktemp from eselect module

Jeremy,

attached patch uses a HERE doc to eliminate the use of temporary files.  This means mktemp is no longer required, and it should be a little faster as well since it avoids filesystem access.