[MacPorts] #37834: Set TMPDIR
MacPorts
noreply at macports.org
Tue Jan 29 13:12:51 PST 2013
#37834: Set TMPDIR
--------------------------+--------------------------------
Reporter: ryandesign@… | Owner: macports-tickets@…
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: base | Version: 2.1.2
Keywords: | Port:
--------------------------+--------------------------------
Clang has a bug (<rdar://problem/12479432>) in which the temporary file
names it creates while compiling are predictable (i.e. based on the name
of the file being compiled).
Normally on OS X TMPDIR is set to a "random" value, so at least the temp
files are unique for each user, so one user cannot DOS another user by
creating temp files. But MacPorts clears the environment when it runs, so
TMPDIR is empty, and thus defaults to /tmp.
So while compiling, predictable file names are being created in /tmp. This
could lead to collisions if multiple compiles are happening simultaneously
(user runs two MacPorts processes in two terminals for example). I don't
know if that has happened to me, but what does happen constantly is that a
compile will fail because a ''directory'' already exists in /tmp with the
name clang wanted to use for a temporary file. For example ccache failed
to build right now with:
{{{
ccache /usr/bin/clang -pipe -O2 -arch x86_64 -arch i386 -Wall -W
-DHAVE_CONFIG_H -I/opt/local/include -I. -I. -c -o manifest.o manifest.c
clang: error: unable to make temporary file: /tmp/manifest: can't make
unique filename: Permission denied
}}}
(The directory /tmp/manifest existed because some 3rd-party installer
package put it there during installation.)
To avoid these issues, I would like to see MacPorts create a temporary
directory inside workpath and set TMPDIR to its location.
--
Ticket URL: <https://trac.macports.org/ticket/37834>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list