On Fri, Feb 12, 2010 at 12:16:16PM +0100, Loïc Minier wrote:
> On Fri, Dec 11, 2009, Lucas Nussbaum wrote:
> > Relevant part:
> 
>  Actually that's not the whole relevant part; there's also:
> checking whether make sets $(MAKE)... yes
> get_processor:3: command not found: ps
> ./ok4zshdb.sh:43: command not found: -if
> checking Checking whether /bin/zsh is compatible with zshdb... Your zsh 
> doesn't have the fc -l patches.
> yes!
> checking for diff... /usr/bin/diff
> adding -w to diff in regression tests
> 
>  This particular problem is due to a missing build-dep on procps which
>  provides ps, used in test/zsh/ok4zshdb.sh:get_processor().
>  (debootstrap --variant=buildd wont pull procps)
> 
> > > /build/user-zshdb_0.03+git20090920-1-amd64-hSCnaM/zshdb-0.03+git20090920/lib/processor.sh:37:
> > >  no such file or directory: 
> 
>  That's the meat of the problem: lib/processor.sh:37 breaks the build
>  because it uses $TTY:
> # For zsh, using this builtin parameter $TTY seems preferred over &0
> # because it will find/fake a terminal when &0 might not be one.
> exec {_Dbg_fdi}<$TTY
> 
> TTY isn't set
> 
>  I managed to reproduce the problem in my build environment with:
>     sudo mv /dev/tty /dev/tty.bak
>     env -i dpkg-buildpackage -b </dev/null >log 2>&1
>  (obviously this might break your system)
> 
>  So I believe the buildd environment has a partial /dev without
>  /dev/tty.
> 
>  I tried replacing $TTY with &0, and a real file, but that didn't work
>  (hit the same test failures), and with a fifo, but that hanged the
>  build waiting for the fifo to fill in.
> 
>  I'm not familiar with zshdb, but I suspect it might need a TTY during
>  debug sessions which might be why the testsuite would use one as well.
>  Someone more familiar with zshdb could perhaps check whether we can use
>  coproc here, or a pair of fifos (adding code to properly close them as
>  well), to replace the use of $TTY.  Perhaps another way would be to
>  pass a script (list of commands to run) to zshdb.
> 
>  As a last resort, I tried running make check under "expect", but oddly
>  that failed in the same way.  While expect correctly sets up stdin,
>  stdout, stderr on a pty,
>  test/integration/check-common.sh:run_test_check() ruins that effort by
>  using redirections:
>         (cd $srcdir && run_debugger $debugged_script 2>&1 >$TEST_FILE 
> </dev/null)
>  so zsh sees that stdin, stdout, and stderr aren't ttys and falls back
>  to /dev/tty (which doesn't exist apparently).
> 
>  So I tried working around that with:
>     expect -c 'spawn zsh -c "ZSH_TTY=\$$TTY $(MAKE) check"; expect'
>  and changing lib/processor.sh to use ZSH_TTY.  I don't know why *that*
>  still fails.
> 
>  So it seems the only way is to rework the testsuite to not rely on
>  using a real tty...

Rocky, any thoughts?  I guess at the worst case we could simply disable
the tests if no tty is available.



--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to