
			LINUX NET DISTRIBUTION

			    Version 0.03

	    Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>

		Ross Biro <bir7@leland.stanford.edu>

		  Rick Sladkey <jrs@world.std.com>


The NET distribution for LINUX is a complete set of executables,
setup files, documentation and all the sources needed to rebuild
the package.  It is intended as the `official' NET package for
the LINUX operating system, mostly to get rid of the current
situation of total chaos in NETland...

The first distribution has been done by Ross Biro, who wrote the
TCP/IP stuff in the LINUX kernel to start with.  As usual, the
Berkeley BSD UNIX software was taken as a base for this distri-
bution.  Several `foreign' programs are included as well.

To make porting easy, a library has been built which contains the
modules from BSD UNIX that were missing in the LINUX library. They
are declared in the header files that go with it.  These files
must be copied to the /usr/net/include/bsd directory and a symbolic
link must be created from /usr/include/bsd.

This is a compliation of some net sources, mostly from bsd-net2.  I
have made an effort to get the programs to compile with few or no
changes except for a new Makefile.  This resulted in a bsd include
directory and a bsd library.  Take a look at them to see what types of
things are required to get BSD sources to compile correctly without
changes.  Some of the tricks are pretty ugly.  Please don't laugh...

Everything should compile straight with the libc-4.2 libraries.  Just
type "make" in this directory.  You may have to do some surgery on
libbsd/libbsd.a to get things to compile with libc-4.1.

Notes
=====

bsd: The directory "bsd" contains include files that, for the most
part, just overload include files of the same name from /usr/include.
It provides some BSD things like "union wait" and others.

libbsd: The libbsd.a archive is a small library of some functions that
are not in our libc as well as some emulation support functions
referenced in the bsd header files.  Notably, it includes a
half-decent transparent sgtty emulation package.

inetd: Works.  Only pathname changes.

ftp: Works.  No changes.

ftpd: I find that ls with ftpd doesn't work very often.  It reports
"Transport endpoint already connected" 9 times out of 10.  I think
this is a bug in the kernel which will be fixed in a subsequent
release.  There was a memory allocation bug in the original source,
look for "#ifdef linux".  Also, the shadow password stuff is not
compiled in as I haven't had a chance to mess with that.

telnet: Works but see the man page for info about the .telnetrc file
and other new options.  This is a really nice telnet with rlogin
emulation and lots of other stuff not present in older telnets.  The
original Linux port of telnet/telnetd was done by Pete Chown.

telnetd: Several people have reported that the 0.1 telnetd sometimes
disconnected before getting to the login prompt.  The 0.2 version
omits the vhangup stuff which might have been causing the problem.
Also fixed is the problem with /etc/wtmp not being updated correctly
on logout.  It was trying to use /var/adm/wtmp.

finger: Works.  One minor change for POSIX timezone handling.

fingerd: Works, no changes.

ping: Works, no changes.  Must be suid to root.

named: Works.  A few changes for pathnames and net device
configuration stuff.

nslookup: Works, but it's fussier than older nslookups about named
being setup correctly.  Note the -I option is needed for flex -- that
was a tough one to find.  No changes.

named-xfer: Not tested.

rcp: Works.  Must be suid to root.

rsh: Works.  Must be suid to root.

rshd: Works.

rlogin: Works OK but needs more testing.  This one depends pretty heavily
on the sgtty emulation in libbsd which is not complete yet.  There is
an odd timing bug with select and termio settings.  Look for "sleep(1)"
to see what I mean.  Must be suid to root.

rlogind: Works with the URGENT stuff commented out.  There was a nasty
bug with shared libraries because environ was redefined.

talk: Works.  This is the new byte-order independent talk, not the old
talk that, e.g., native SunOS uses.  The old one wouldn't work with
them anyway.  Not the fault of Linux.  Includes a one line patch for a
bug in our curses and another for a bug in the original source dealing
with select.

ntalkd: Works.  No changes.

tftp: Works.  No changes.

tftpd: Works.  No changes.

Sample Entries for inetd.conf
=============================
telnet	stream	tcp	nowait	root	/usr/etc/inet/telnetd	telnetd
ntalk 	dgram	udp	wait	root	/usr/etc/inet/ntalkd	ntalkd
ftp	stream	tcp	nowait	root	/usr/etc/inet/ftpd	ftpd -l
finger	stream	tcp	nowait	root	/usr/etc/inet/fingerd	finger
shell	stream	tcp	nowait	root	/usr/etc/inet/rshd	rshd
login	stream	tcp	nowait	root	/usr/etc/inet/rlogind	rlogind
tftp	dgram	udp	wait	root	/usr/etc/inet/tftpd	tftpd

Rick Sladkey
jrs@world.std.com
