Hi 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... Bye -- Loïc Minier -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org