Skip to content

IO-Tty-1.18 does not work on FreeBSD 14 #38

@abqcheeks

Description

@abqcheeks

I haven't tested on different FreeBSD versions, but I have tested on two different FreeBSD 14 systems, one with 1.17 (from packages) and one with 1.18 (from ports).

The symptom is it installs but can't open any ptys. This test program demonstrates it:

#!/usr/local/bin/perl
use IO::Pty;
$mpty = IO::Pty->new;

In the broken state, truss indicates it's trying to open lots of pty variations that don't exist:

openat(AT_FDCWD,"/dev/ptyp0151",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/dev/ptyto",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/dev/ptyp152",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/dev/pt/to",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/dev/ptyp0152",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/dev/ptytp",O_RDWR|O_NOCTTY,00) ERR#2 'No such file or directory'

And then pty_allocate() returns nothing.

Comparing build output from 1.17 and 1.18 shows the build process is not finding a lot of needed functions.

Building 1.17 (cd /usr/ports/devel/p5-IO-Tty ; make) the following functions are found:

Looking for _getpty()...... not found.
Looking for getpt()........ not 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()...... FOUND.
Looking for ttyname()...... FOUND.
Looking for unlockpt()..... FOUND.
Looking for libutil.h...... FOUND.
Looking for pty.h.......... not found.
Looking for sys/pty.h...... not found.
Looking for sys/ptyio.h.... not found.
Looking for sys/stropts.h.. not found.
Looking for termio.h....... not found.
Looking for termios.h...... FOUND.
Looking for util.h......... not found.

Doing the same with 1.18:

Looking for getpt()........ not found.
Looking for grantpt()...... not found.
Looking for openpty()...... not found.
Looking for posix_openpt(). not found.
Looking for ptsname()...... not found.
Looking for ptsname_r().... not found.
Looking for sigaction().... not found.
Looking for strlcpy()...... not found.
Looking for ttyname()...... not found.
Looking for unlockpt()..... not found.
Looking for libutil.h...... FOUND.
Looking for pty.h.......... not found.
Looking for sys/pty.h...... not found.
Looking for sys/ptyio.h.... not found.
Looking for sys/stropts.h.. not found.
Looking for termio.h....... not found.
Looking for termios.h...... FOUND.
Looking for util.h......... not found.

I'm happy to test any fixes.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions