Subject: Re: pkg/25317
To: None <kim@netbsd.org, pkgsrc-bugs@netbsd.org, gnats-admin@netbsd.org,>
From: None <kim@netbsd.org>
List: pkgsrc-bugs
Date: 03/29/2005 06:46:41
Synopsis: spurious "No more PTYs" from screen

State-Changed-From-To: open->feedback
State-Changed-By: kim@netbsd.org
State-Changed-When: Tue, 29 Mar 2005 06:46:40 +0000
State-Changed-Why:

Hi Alan!

It is a bit difficult to understand the patch to a patch, i.e. I'm
having trouble figuring out which method you want to use.  Looking
at pty.c the only branch for "#ifndef PTY_DONE" is the last one that
defaults to BSD style PTY's.  It doesn't use openpty(3), so I don't
understand why you'd change that to require HAVE_OPENPTY defined.

The NetBSD block was added above so that the default case would not
be used on NetBSD, as it doesn't understand PTY naming on NetBSD.

I have a feeling that the "other" openpty(3) block got added in a
later version of screen(1), so most likely the NetBSD block is no
longer used.  However, I can't test this without an old enough
system, e.g. NetBSD 1.6.2.

About a month after you filed this PR, SVR4 style PTY's were added
to NetBSD.  That's what I am using, and I have not had any issues
with screen running even several months with 13-25 screens active.

If you still have an old enough system available, I'd like to have
you test which branch is selected in pty.c on it.  My approach would
be the following:

cd /usr/pkgsrc/misc/screen
make patch
vi work/screen-4.0.2/pty.c

Edit the file to insert #error statements with an identifying string
in each case, to verify which one is selected.  Then run "make" to
see where it stops in pty.c.

If it is using the first openpty(3) case, as I suspect it would, we
could analyze the problem more, by compering the two openpty(3) blocks.

If you have already upgraded to a more recent version of -current,
then I'd like to close this ticket (unless you still have the problem).

Regards,
+ Kim