> Is it really necessary to use a temporary file and specify `stdout=` ?

No, not at all.

The reason I did that was I figured that the present use of `checkout_output` rather than `check_call` was motivated by a desire to capture stdout to avoid spewing the normal build output to the terminal.  (Personally, I don't mind seeing the spewage, but I wanted to avoid changing behavior in my patch.)

As for why the temporary file, it seemed the cleanest portable way to keep from spewing stdout.  Other options I considered included:
- `stdout=open('/dev/null')` — but I don't think this works on non-unix-flavored OSes (e.g. Windows)
- Use `stdout=PIPE` and then `process.communicate` to consume the piped output.  (This is what python 2.7’s  `check_output` does.)  This works, I'm sure, but requires more lines of code (the call to `communicate` then a check of the process exit status.  I doubt that it’s really any more efficient than the tempfile approach — not that that's really an issue here anyway.

In any case, if you'd rather see this done some other way (either by not capturing stdout and letting it spew to the terminal, `PIPE`ing to `communicate`, or whatever else) let me know.  I'd be happy to change it.