On Fri, Jan 03, 2014 at 07:12:51PM +0000, Roger Leigh wrote:
> You aren't guaranteed to have a controlling terminal, particularly when
> run via buildd.  So while stdin/out/err are all connected and
> functional, they are either null (stdin) or pipes (out/err).  If you
> need to output anything, then just use stdout/err as appropriate and it
> will be logged, but /dev/tty may well be unavailable.  I would
> recommend not using `tty` or doing any IO on /dev/tty since in all
> likelihood isatty/ttyname(_r) will most likely return ENOTTY and any
> IO on /dev/tty will simply fail.
> 
> We have looked at using ptys in the past for running the builds in
> order to guarantee a tty, but decided against it.  Too many programs
> make the assumption that they are interactive and freeze the build
> waiting on IO that never happens and then block forever.  There may
> well have been other considerations I don't recall offhand e.g.
> relating to job control.

There are some limited situations (e.g. test suites) where it can come
in handy.  For these, I'd recommend lifting the debian/script.py I wrote
from the python2.7 source package, which gives you a pty in a way that's
known to work well within builds and writes output to a file.

-- 
Colin Watson                                       [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20140103202904.ga29...@riva.ucam.org

Reply via email to