unarchive 522689 reopen 522689 stop
Hello! Unfortunately, the fix you installed for GNU/kFreeBSD now makes the originally reported erroneous behavior (screen not passing signals) appear on GNU/Hurd systems. This is due to changing what was: # if defined(__osf__) || (BSD >= 199103) || defined(ISC) if (separate_sids) setsid(); /* should be already done */ # ifdef TIOCSCTTY ioctl(fd, TIOCSCTTY, (char *)0); # endif # endif ... to... # if defined(__FreeBSD_kernel__) && defined(TIOCSCTTY) ioctl(fd, TIOCSCTTY, (char *)0); # endif ... which causes that the TIOCSCTTY IOCTL will no longer be invoked for us. (By the way, I can confirm that the setsid() indeed doesn't seem to be needed at this place.) Possible solutions: restore the original #if conditions -- what was the reason for changing these in the first place? This information is missing in the bug report, as well as in the screen patch. Doesn't GNU/kFreeBSD #define BSD >= 199103? (I don't have access to (k)(Free)BSD system, so I can't easily check.) Otherwise, you could add ``|| defined(__GNU__)'' to cater for us (TIOCSCTTY is always #defined) (supported by Samuel Thibault in <http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00033.html>). Or, as per Roland McGrath (glibc), you could even unconditionally invoke the TIOCSCTTY IOCTL (if available): <http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00032.html>. If you want to have a look for yourself on a Debian GNU/Hurd system, see here: <http://www.gnu.org/software/hurd/public_hurd_boxen.html>. Regards, Thomas
signature.asc
Description: Digital signature