The version of rlogind supplied with NeXT Software Release 2.0 and 2.1 was mistakenly compiled with DEBUG defined. This causes it to dissociate itself from its controlling terminal, which drives certain shells bonkers. Here's the relevant section of the source code: t = open(line, O_RDWR); if (t < 0) fatalperror(f, line); setup_term(t); #ifdef DEBUG { int tt = open("/dev/tty", O_RDWR); if (tt > 0) { (void)ioctl(tt, TIOCNOTTY, 0); (void)close(tt); } } #endif pid = fork(); if (pid < 0) fatalperror(f, ""); This package contains a copy of rlogind with TEXT addresses 0x2a14 through 0x2a47 binary patched to eliminate the DEBUG code. How to check if you have the defective version: % what /usr/etc/rlogind /usr/etc/rlogind.orig dbxxx.s 5.2 (Berkeley) 7/12/85 PROGRAM:rlogind PROJECT:cmds-42 DEVELOPER:root BUILT:Sun Nov 11 14:59:49 PST 1990 Copyright (c) 1983, 1988 The Regents of the University of California. rlogind.c 5.22.1.7 (Berkeley) 9/11/89 % sum /usr/etc/rlogind 10433 16 IF YOUR OUTPUT DIFFERS THEN DON'T USE WHAT'S HERE! How to fix it: % mv /usr/etc/rlogind /usr/etc/rlogind.orig Replace /usr/etc/rlogind with this version. Eric P. Scott <eps@cs.sfsu.edu>
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.