eisseven > tar xzf IO-Tty-1.08.tar.gz eisseven > cd IO-Tty-1.08 eisseven > perl Makefile.PL Now let's see what we can find out about your system (logfiles of failing tests are available in the conf/ dir)... Looking for _getpty()...... not found. Looking for getpt()........ FOUND. Looking for grantpt()...... FOUND. Looking for openpty()...... FOUND. Looking for posix_openpt(). FOUND. Looking for ptsname()...... FOUND. Looking for ptsname_r().... FOUND. Looking for sigaction().... FOUND. Looking for strlcpy()...... not found. Looking for ttyname()...... FOUND. Looking for unlockpt()..... FOUND. Looking for libutil.h...... not found. Looking for pty.h.......... FOUND. Looking for sys/pty.h...... not found. Looking for sys/ptyio.h.... not found. Looking for sys/stropts.h.. FOUND. Looking for termio.h....... FOUND. Looking for termios.h...... FOUND. Looking for util.h......... not found. Checking which symbols compile OK... (sorry for the tedious check, but some systems have not too clean header files, to say the least; '+' means OK, '-' means not defined and '*' has compile problems...) +B0 +B110 +B115200 +B1200 +B134 +B150 -B153600 +B1800 +B19200 +B200 +B230400 +B2400 +B300 -B307200 +B38400 +B460800 +B4800 +B50 +B57600 +B600 +B75 -B76800 +B9600 +BRKINT +BS0 +BS1 +BSDLY +CBAUD -CBAUDEXT +CBRK -CCTS_OFLOW -CDEL +CDSUSP +CEOF +CEOL -CEOL2 +CEOT +CERASE -CESC +CFLUSH +CIBAUD -CIBAUDEXT +CINTR +CKILL +CLNEXT +CLOCAL -CNSWTCH -CNUL +CQUIT +CR0 +CR1 +CR2 +CR3 +CRDLY +CREAD +CRPRNT +CRTSCTS -CRTSXOFF -CRTS_IFLOW +CS5 +CS6 +CS7 +CS8 +CSIZE +CSTART +CSTOP +CSTOPB +CSUSP -CSWTCH +CWERASE -DEFECHO -DIOC -DIOCGETP -DIOCSETP -DOSMODE +ECHO +ECHOCTL +ECHOE +ECHOK +ECHOKE +ECHONL +ECHOPRT +EXTA +EXTB +FF0 +FF1 +FFDLY -FIORDCHK +FLUSHO +HUPCL +ICANON +ICRNL +IEXTEN +IGNBRK +IGNCR +IGNPAR +IMAXBEL +INLCR +INPCK +ISIG +ISTRIP +IUCLC +IXANY +IXOFF +IXON -KBENABLED -LDCHG -LDCLOSE -LDDMAP -LDEMAP -LDGETT -LDGMAP -LDIOC -LDNMAP -LDOPEN -LDSETT -LDSMAP -LOBLK +NCCS +NL0 +NL1 +NLDLY +NOFLSH +OCRNL +OFDEL +OFILL +OLCUC +ONLCR +ONLRET +ONOCR +OPOST -PAGEOUT +PARENB -PAREXT +PARMRK +PARODD +PENDIN -RCV1EN -RTS_TOG +TAB0 +TAB1 +TAB2 +TAB3 +TABDLY -TCDSET +TCFLSH +TCGETA +TCGETS +TCIFLUSH +TCIOFF +TCIOFLUSH +TCION +TCOFLUSH +TCOOFF +TCOON +TCSADRAIN +TCSAFLUSH +TCSANOW +TCSBRK +TCSETA +TCSETAF +TCSETAW -TCSETCTTY +TCSETS +TCSETSF +TCSETSW +TCXONC -TERM_D40 -TERM_D42 -TERM_H45 -TERM_NONE -TERM_TEC -TERM_TEX -TERM_V10 -TERM_V61 +TIOCCBRK -TIOCCDTR +TIOCCONS +TIOCEXCL -TIOCFLUSH -TIOCGETC +TIOCGETD -TIOCGETP -TIOCGLTC +TIOCGPGRP +TIOCGSID +TIOCGSOFTCAR +TIOCGWINSZ -TIOCHPCL -TIOCKBOF -TIOCKBON -TIOCLBIC -TIOCLBIS -TIOCLGET -TIOCLSET +TIOCMBIC +TIOCMBIS +TIOCMGET +TIOCMSET +TIOCM_CAR +TIOCM_CD +TIOCM_CTS +TIOCM_DSR +TIOCM_DTR +TIOCM_LE +TIOCM_RI +TIOCM_RNG +TIOCM_RTS +TIOCM_SR +TIOCM_ST +TIOCNOTTY +TIOCNXCL +TIOCOUTQ -TIOCREMOTE +TIOCSBRK +TIOCSCTTY -TIOCSDTR -TIOCSETC +TIOCSETD -TIOCSETN -TIOCSETP -TIOCSIGNAL -TIOCSLTC +TIOCSPGRP -TIOCSSID +TIOCSSOFTCAR -TIOCSTART +TIOCSTI -TIOCSTOP +TIOCSWINSZ -TM_ANL -TM_CECHO -TM_CINVIS -TM_LCF -TM_NONE -TM_SET -TM_SNL +TOSTOP -VCEOF -VCEOL +VDISCARD -VDSUSP +VEOF +VEOL +VEOL2 +VERASE +VINTR +VKILL +VLNEXT +VMIN +VQUIT +VREPRINT +VSTART +VSTOP +VSUSP -VSWTCH +VT0 +VT1 +VTDLY +VTIME +VWERASE -WRAP +XCASE -XCLUDE -XMT1EN +XTABS >>> Configuration looks good! <<< Writing IO::Tty::Constant.pm... DEFINE = -DHAVE_DEV_PTMX -DHAVE_GETPT -DHAVE_GRANTPT -DHAVE_OPENPTY -DHAVE_POSIX_OPENPT -DHAVE_PTSNAME -DHAVE_PTSNAME_R -DHAVE_PTY_H -DHAVE_SIGACTION -DHAVE_SYS_STROPTS_H -DHAVE_TERMIOS_H -DHAVE_TERMIO_H -DHAVE_TTYNAME -DHAVE_UNLOCKPT Checking if your kit is complete... Looks good Writing Makefile for IO::Tty eisseven > make cp Tty.pm blib/lib/IO/Tty.pm cp Tty/Constant.pm blib/lib/IO/Tty/Constant.pm cp Pty.pm blib/lib/IO/Pty.pm /usr/bin/perl /usr/lib/perl5/5.12.0/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.12.0/ExtUtils/typemap Tty.xs > Tty.xsc && mv Tty.xsc Tty.c cc -c -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -O2 -DVERSION=\"1.08\" -DXS_VERSION=\"1.08\" -fPIC "-I/usr/lib/perl5/5.12.0/i686-linux-thread-multi/CORE" -DHAVE_DEV_PTMX -DHAVE_GETPT -DHAVE_GRANTPT -DHAVE_OPENPTY -DHAVE_POSIX_OPENPT -DHAVE_PTSNAME -DHAVE_PTSNAME_R -DHAVE_PTY_H -DHAVE_SIGACTION -DHAVE_SYS_STROPTS_H -DHAVE_TERMIOS_H -DHAVE_TERMIO_H -DHAVE_TTYNAME -DHAVE_UNLOCKPT Tty.c Running Mkbootstrap for IO::Tty () chmod 644 Tty.bs rm -f blib/arch/auto/IO/Tty/Tty.so cc -shared -O2 Tty.o -o blib/arch/auto/IO/Tty/Tty.so \ -lutil \ chmod 755 blib/arch/auto/IO/Tty/Tty.so cp Tty.bs blib/arch/auto/IO/Tty/Tty.bs chmod 644 blib/arch/auto/IO/Tty/Tty.bs eisseven > make test PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl 1..4 Configuration: -DHAVE_DEV_PTMX -DHAVE_GETPT -DHAVE_GRANTPT -DHAVE_OPENPTY -DHAVE_POSIX_OPENPT -DHAVE_PTSNAME -DHAVE_PTSNAME_R -DHAVE_PTY_H -DHAVE_SIGACTION -DHAVE_SYS_STROPTS_H -DHAVE_TERMIOS_H -DHAVE_TERMIO_H -DHAVE_TTYNAME -DHAVE_UNLOCKPT Checking for appropriate ioctls: TIOCNOTTY TIOCSCTTY Checking that returned fd's don't clash with stdin/out/err... trying posix_openpt()... trying grantpt()... trying unlockpt()... trying ptsname_r()... trying to open /dev/pts/3... trying to I_PUSH ptem... trying to I_PUSH ldterm... trying to I_PUSH ttcompat... ok 1 Checking if child gets pty as controlling terminal... trying posix_openpt()... trying grantpt()... trying unlockpt()... trying ptsname_r()... trying to open /dev/pts/3... trying to I_PUSH ptem... trying to I_PUSH ldterm... trying to I_PUSH ttcompat... ok 2 gimme on /dev/tty: seems OK! back on STDOUT: SEEMS OK! ok 3 WARNING: when the client closes the slave pty, the master gets an error (undef return value and $! eq "Input/output error") instead of EOF (0 return value). Please be sure to handle this in your application (Expect already does). Checking basic functionality and how your ptys handle large strings... This test may hang on certain systems, even though it is protected by alarm(). If the counter stops, try Ctrl-C, the test should continue. trying posix_openpt()... trying grantpt()... trying unlockpt()... trying ptsname_r()... trying to open /dev/pts/3... trying to I_PUSH ptem... trying to I_PUSH ldterm... trying to I_PUSH ttcompat... isatty($master): YES isatty($slave): YES Child PID = 15358 Good, your raw ptys can handle at least 512 bytes at once. ok 4 Slave got EOF at line 512, byte 0. Passed 4 of 4 tests.