From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: 386BSD PATCH KIT BETA INDEX.2of2
Reply-To: terry@icarus.weber.edu
Organization: Weber State University  (Ogden, UT)
Date: Sun, 4 Oct 92 11:20:32 GMT


Here is the part two of the file "INDEX.Beta-1" from the patch kit:
------------------------ cut here --------------------------
patch00030

PATCH:		ALLOW MAPPING OF VGA MEMORY
AUTHOR:		? (please claim me) -- X patch set
DESCRIPTION:
	Allow mapping of the VGA memory into the process address space.
Major reason for this is to allow the X server to operate.


patch00031

PATCH:		VGA MAPPING AND SCANCODE GENERATION
AUTHOR:		? (please claim me) -- X patch set
DESCRIPTION:
	This patch creates ioctl commands for putting the console in/
taking the console out of "X mode".  When set into "X mode", the console
will generate scan codes at the keyboard and map the VGA memory into the
setting processes address space.

WARNING:
	This patch takes several liberties.  The first is not defining a
seperately settable "scan code mode".  The second is changing the behaviour
of the keyboard in "normal" mode.  This may result in an inability to use
alt-"-", alt-"=", or F11 or F12 on some machines, in particular, the Toshiba
T1100 and Epson Equity 1 and Equity 1+ laptops.


patch00032

PATCH:		KERNEL NAMELIST DATABASE CREATION/USE
AUTHOR:		Paul Kranenburg, David Greenman
			(pk@cs.few.eur.nl, davidg%implode@percy.rain.com)
DESCRIPTION:
	   There are several bugs in the kernel namelist db creation/use and
bugs in kvm.c which causes ps and several other utils to fail to work
correctly.

The kvm.c patches are based in part on, but supersede, the patches posted
on usenet by Paul Kranenburg [which introduced bugs of its own].
In order for kvm_mkdb to work correctly, vers.o MUST be the first object
linked in the kernel. The Makefile.i386 should read:
SYSTEM_LD= @${LD} -z -T FE000000 -o $@ -X vers.o ${SYSTEM_OBJS}
(or vers.o should be first in SYSTEM_OBJS)

And, of course all things that depend on libutil.a will have to be rebuilt.


patch00033

PATCH:		READ FROM "/dev/drum" CAUSES CRASH
AUTHOR:		Paul Kranenburg (pk@cs.few.eur.nl)
DESCRIPTION:
	Due to an improperly initialized buffer in 'physstrat', an attempt
to read from /dev/drum would generally cause a crash.


patch00034

PATCH:		DISKLABEL PROGRAM REQUIRED ACTIVE PARTITION
AUTHOR:		Gary A. Browning (gab10@griffcd.amdahl.com)
DESCRIPTION:
It turns out that if you have not set an active partition on the SECOND
drive, the disklabel program thinks that the DOS partition table is invalid
and promptly, and without warning, assumes it owns the whole disk.  It then
writes it's label over the DOS partition table.  I am not sure what it even
means to have an active partition on the second drive since DOS will not
boot from there anyway.

A valid DOS parition no longer must have exactly one active partition.  This
is certainly not a required patch.  The workaround is to always remember to
have an active partition on each disk.


patch00035

PATCH:		ALLOW SELECTION OF 3COM 3C503 AUI/BNC FROM IFCONFIG
AUTHOR:		Herb Peyerl (hpeyerl@novatel.cuc.ab.ca
DESCRIPTION:
There have been questions about the configuration of the AUI/BNC
connectors on the 3Com 3c503 card.  The way the selection is made is to
check for IFF_LLC0 being set in the "ifnet" struct.  If set, the driver
uses AUI, else BNC.  The ifconfig program now allows the following syntax:

ifconfig ec0 inet $hostname aui

ifconfig ec0 inet $hostname bnc

Default with no options yields BNC operation.


patch00036

PATCH:		PS FLOATING POINT EXCEPTION
AUTHOR:		Goran Hammarback[?] (goran@astro.uu.se)
DESCRIPTION:
There is a bug in the implicit type conversion from int to double in GCC,
probably dealing with the optimization of function return values.  The
gist of this is that an extern double function that isn't declared has
an implicit type of int.  Assigning a double variable the return value
of this function causes a floating point exception.  Declaring the
function fixes 'ps'.


patch00037

PATCH:		SOURCES NOT CORRECTLY IDENTIFIED IN "crond" MAKEFILE
AUTHOR:		Adrian Hall (adrian@ibmpcug.co.uk)
DESCRIPTION:
	The makefile for the crond had the objects listed in the sources
line.  This caused "make depend" to fail.


patch00038

PATCH:		ERRORS NOT SEEN WHEN READING RAW WD DEVICE
AUTHOR:		Frank Maclachlan (fpm@crash.cts.com)
DESCRIPTION:
	I/O errors are not reported when reading/writing from/to the raw
wd disk device.  I noticed this when using 'dd' to scan a disk w/ known
bad blocks and couldn't find any.

	The wd driver, '/sys/i386/isa/wd.c', sets the B_ERROR bit in
bp->b_flags, but fails to put an error code into bp->b_error.  Physio()
in '/sys/kern/kern__physio.c', which manages the raw I/O in this case,
ignores the B_ERROR bit in b_flags and looks for an error code in b_error.
The user program is fed garbage data and no clue that an error occurred.


patch00039

PATCH:		MAKE SOMETIMES REMOVES DIRECTORIES
AUTHOR:		David Dawes (dawes@physics.su.OZ.AU)
DESCRIPTION:
I was building X386 this morning, and when I interrupted 'make' it
told me it had removed a directory.  I checked and it really had unlinked
it.  (I got it back by booting the fixit disk and running fsck.)

I've patched the make source so that it won't do this anymore.


patch00040

PATCH:		CD-ROM FILES SEEM TO DISAPPAER
AUTHOR:		Scott Burris (scott@pita.cns.ucla.edu)
DESCRIPTION:
	The infamous "off by 1" problem hit two places in the isofs code.
There is a check to see that a directory entry doesn't span more than one
physical block -- if so, that's an error.  Well if the directory entry just
happened to end at the last byte of the block, the kernel throught it
crossed into the next block and bailed out assuming the CD-ROM wasn't following
the standard.  The effect is that not only can't you access the file associated
with this directory entry, you also can't see any files or directories located
after that entry.

This is relatively rare, because a series of directory entries must fit
perfectly into a 2048 byte CD-ROM block for this to trigger.


patch00041

PATCH:		YANK FROM NAMED BUFFER
AUTHOR:		Bob Wilcox (bob@obiwan.uucp) -- bad: news.dell.com!udell!obiwan
DESCRIPTION:
	The inability to use a named buffer was the result of three lines
near the end of the tmpabort() function (in tmp.c) that unconditionally
closed and unlinked the temp file.  These three lines were not present in
the distribution of elvis 1.5 that I had gotten back in April (from
prep.ai.mit.edu, I believe).  Deleting these lines seemed to have fixed
this problem.


patch00042

PATCH:          OCCASIONAL NFS READ REQUEST HANG
AUTHOR:         Martin Renters (martin@innovis.com)
DESCRIPTION:
        The problem is that nfs_readrpc() is sometimes called with the
argument bp->b_rcred.  This is only ever initialized to NOCRED (-1).
The code in nfsm_reqh() doesn't check for NOCRED and simply uses whatever
happens to be in memory at that location.


patch00043

PATCH:		MULTIBOARD ROUTING ON WESTERN DIGITAL BOARDS
AUTHOR:		Michael Galassi (nerd@percival.rain.com)
DESCRIPTION:
	Allow routing between multiple Western Digital ethernet boards
which are installed in the same host.


patch00044

PATCH:		ADD DAYLIGHT SAVINGS TIME HANDLING TO THE KERNEL
AUTHOR:		Arne Henrik Juul <arnej@lise.unit.no>
DESCRIPTION:
	There is actually code in the kernel to allow for DST in the
realtime (bios) clock, but  (a) it has a little bug, and (b) it is
#ifdef'd out. We now have the right timezone in the kernel (-1 dst)
and in the BIOS too, and it actually works.


patch00045

PATCH:		FIXES SILO OVERFLOWS IF A 16550 IS INSTALLED
AUTHOR:		Rodney W. Grimes (rgrimes@agora.rain.com)
DESCRIPTION:

Here is a patch to fix silo overflows if you have 16550 uarts.  The
problem is due to the FIFO trigger level being set to 14 bytes.  This
only leaves 2 bytes after the interupt before it overflows.  This is
not enought time at high speeds.  By changing the trigger level to
4 bytes I have had a 38400 baud line running full speed with out any
silo overflows.


patch00046

PATCH:		FLOATING POINT FIXES (FSCALE, 0x1FD)
AUTHOR:		Ishii Masahiro, R. Kym Horsell
			(ishii@kmc.kyoto-u.ac.jp,kym@bingsuns.cc.binghamton.edu)
DESCRIPTION:
	This is actually two patches in one.  It fixes the Floating Point
Emulation in two places.  The first is for the 0x1fd instruction; the
second is in Fscale.  It is believed to fix the atof() function, among
others, which normally fails on non-FPU machines.


patch00047

PATCH:		ENABLE 16 BIT TRANSFERS FOR WD8013
AUTHOR:		Barry Lustig (barry@ictv.com)
DESCRIPTION:
	Enable 16 bit transfers for the WD8013 "Combo board".  This patch
is kernel configuration optional -- that is, it will not take full effect
(other than generic fixes) unless you modify your kernel configuration
file and rerun "config".

NOTE:	Add "option WD8013" to enable this.  Do NOT do this if you will
	have two or more wd boards, one of which is not a "Combo".


patch00048

PATCH:		FIX CPIO SYMLINK/HARDLINK BUG
AUTHOR:		Guy Harris (guy@auspex.com)
DESCRIPTION:
	The "cpio" program has a bug which tells it to make hard links
to symlinks that results in hard links being made to the target of the
symlink, even if it's a directory, if you have permission to do so.


patch00049

PATCH:		FIX SECONDARY BOOT CHECKING WRONG STATUS
AUTHOR:		Robert D. Thrush (rd@phoenix.aii.com)
DESCRIPTION:
We've found a showstopper in the secondary boot (bootwd) for some
DTK controllers that we tried to use.  It appears to me that this may
solve the problem that many have reported about not being able to boot
from the hard disk after "install".  At least, it has solved it for
us.

The problem occurs in /sys/i386/stand/wd.c. In wdinit() the controller
is reset; however, the wrong register is tested for busy.  On some
controllers, this mis-test seems to cause no harm.  However, it seems to
hang forever on a few here.

To replace the bootwd on your already "installed" hard disk, do
something like the following:

1. Recompile "bootwd" in /usr/src/sys.386bsd/i386/stand.
2. Copy it over /usr/mdec/bootwd on the fixit.fs diskette.
3. Boot from this fixit.fs diskette.
4. Make the floppy writeable, ie. mount -u /dev/fd0a /
5. Obtain the existing hard disk label, ie.
	"disklabel -r wd0 >wd0.label"
6. Replace the primary and secondary boots via
	"disklabel -R -r wd0 wd0.label /usr/mdec/wdboot /usr/mdec/bootwd"

NOTE:	A binary of this bootwd is available by ftp from agate.berkeley.edu.


patch00050

PATCH:		FIX "SHELL GOES AWAY ON 'pwd'" BUG
AUTHOR:		Paul Kranenburg (pk@cs.few.eur.nl)
DESCRIPTION:
	The problem is that the "getpwd()" was incorrectly longjmp'ed
out of if "/bin/pwd" could not be run.


patch00051

PATCH:		FIX THE NEWVM "mempages" CALCULATION
AUTHOR:		David Greenman (davidg%implode@percy.rain.com)
DESCRIPTION:
	The "ps" program incorrectly calculate the number of memory pages;
it got a number NBPG (512?) times larger than it actually wanted.  This
could, of course, upset ps somewhat.


patch00052

PATCH:		CHANGE "vaddr" CALCULATION, MOVE BADLY PLACED "#endif"
AUTHOR:		David Greenman, Paul Kranenburg
			(davidg%implode@percy.rain.com,pk@cs.few.eur.nl)
DESCRIPTION:
	Resident memory size (RSS) and %MEM have been corrected; the
kernel namelist caching will now work (in conjunction with patch 00001).


patch00053

PATCH:		NFS KERNEL PATCH SET
AUTHOR:		Rick "gopher I" (root@snowhite.cis.uoguelph.ca)
DESCRIPTION:
	Unofficial fixes for several nfs related problems:
1 - RFC1094 does not clarify what the semantics of a create rpc should be
    on the server when the file already exists. It appears that some recent
    versions of SunOS expect the file to be truncated to length 0 only if
    the size field of the setattr has been specified. (This semantic has
    not been clarified by anyone within Sun ONC engineering, although I
    have tried mailing them.)

2 - IBM AIX3.2 NFS clients expect a server to reply RPCPROG_MISMATCH to
    an rpc request sent to the nfs port (2049), but not nfs, in order to
    identify an AIX server. (The 386bsd.01 server simply dropped these
    requests on the floor, confusing AIX clients.)

3 - Some servers require that the nfs client use a reserved port number,
    which the 386bsd.01 client did not. (The is a crock, since requiring
    a reserved port number does not enhance nfs security significantly.)


patch00054

PATCH:		FIX "mountd" BUG IF SUBDIR OF LOCAL MOUNT POINT EXPORTED
AUTHOR:		Rick "gopher I" (root@snowhite.cis.uoguelph.ca)
DESCRIPTION:
	/sbin/mountd went into an infinite loop when subdirs of local mount
points were exported.


patch00055

PATCH:		CROCK WORKAROUND FOR HANG AFTER COPYRIGHT BUG
AUTHOR:		Frank MacLachlan (fpm@crash.cts.com)
DESCRIPTION:
	On some systems, the boot process hangs after the copyright notice
is displayed.  This will "fix" the problem by placing two large delays in
the admittedly broken keyboard reset code (the comment for the "pcprobe"
and "pcattach" routines is "these are both bad jokes").

NOTE:
	This is just a workaround, and it isn't a crock because of any
fault on Frank's part... the probe and attach routines need to be rewritten.
One (anecdotal and without posted patches) fix to this problem that has been
suggested with replacing them with the other boot codes keyboard reset code
that performs the "Gate A20 hack".  This is supposed to fix the problem;
without patches or a way to repeat the problem, I'm stuck with it.


patch00056

PATCH:		MAKE *ALL* THE GAMES COMPILE
AUTHOR:		Terry Lambert (terry@icarus.weber.edu)
DESCRIPTION:
	Congradulations!  As a reward for wading this far through the patch
kit, you get this patch.  It will make it so you can compile all the games,
including "fortune", which normally has a bug which will keep it from
working on a machine that doesn't have re_comp() and re_exec(), even if you
edit the makefile correctly.  Enjoy!


patch00057

PATCH:		ADD THE "netstat" SOURCES TO 386BSD
AUTHOR:		Havard Eidnes (Havard.Eidnes@runit.sintef.no)
DESCRIPTION:
	I've ported netstat from NET2 to 386bsd version 0.1. The changes
are mostly involved with inserting #ifdefs for ISO, NS and IMP at the
relevant places ("removing" that code, essentially), not compiling some of
the modules (although the source remains toghether with comments in the
Makefile) plus modifying the "unixpr()" routine in unix.c to traverse the
open file table the new way.  The "netstat -r" output looks a bit odd
(although I guess this is the "new way"?), but gives the right information.

NOTE:
	This is *NOT* a cannonical patch... these files are generated as
initially modified from the NET2 sources to have Havard's fixes in them.  A
cannonical patch would include the original sources.  For this reason, A
patch level 0 has not been established for these files.

After installation, you must type the following before building:

	ln -s /usr/obj/usr.bin/netstat /usr/src/usr.bin/netstat/obj

A binary patch containing the installed executable and manual page is included
after this patch, should you wish to avoid rebuilding it.  Use binaries at
your own risk.


patch00058

PATCH:		*** BINARY PATCH --- WARNING: USE ALL BINARIES AT OWN RISK ***
			"/usr/bin/netstat", "/usr/share/man/cat1/netstat.0"
AUTHOR:		Havard Eidnes (Havard.Eidnes@runit.sintef.no)
DESCRIPTION:
	Binary and manual page for netstat command.


###
### EOF -- This file has not been truncated.
###
------------------------ cut here --------------------------



					Terry Lambert
					terry@icarus.weber.edu
					terry_lambert@novell.com
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------
Newsgroups: comp.unix.bsd