#	$NetBSD: TODO,v 1.17.2.1 1999/06/24 22:44:21 cgd Exp $

Things to do ....  in no specific order.

	-- On upgrade, remove /usr/include/machine and the machine-
	   dependent name e.g. /usr/include/i386.  On 1.3, machine
	   is a directory and e.g. i386 is a symlink, whereas in 1.4
	   the reverse is true.  Without this fix, extraction of base
	   and comp will fail.

	-- On error messages, do something to allow the user to
	   see any errors from anything run by run_prog().
	   Ideas suggested  maximum entropy <entropy@zippy.bernstein.com>.
	   are:

	   #1:
		if (run_prog("foo") != 0)
			sleep(5);

	   #2:	   
		endwin();
		run_prog("foo");
		printf("press return to continue");
		getchar();
		initscr();

	   #3: (modification of #2):

		endwin();
		if (run_prog("foo") != 0) {
			printf("press return to continue");
			getchar();
		}
		initscr();

	   #4:

		Manually fork and exec everything, dup2 fd's 1 and 2
		onto sockets in the child, and paginate the output in
		your curses app :-)

	   We currently implement a special-case variant of #1 for untarring
	   release sets, since the GNU tar in 1.3 fails to report many
	   errors in its exit status.

        -- "browse" for a local directory to get the
           distribution set from.  Maybe just allowing the user to shell
           out and look around is good enough (this needs more thought).

	-- check for already-mouned fileystems before install newfs.
	   Abort with message.

	-- check for already-moutend fileystems  before upgrade fsck.
	   (ignore?)

	-- check for already-mounted filesystems before upgrade mount.
	   Continue, if device mount is where we wanted it?

	    (Jonathan ran into the above 3 by upgrading from a live
	    system to a scratch disk.  sysinst copied the live /etc/fstab
	    to the target. The upgrade failed because sysinst wanted
	    to mount the active system's /usr. Could happen when a
	    real upgrade aborts, even running from ramdisk root.)

	-- Handle ccd's and raid's during an upgrade.

        -- Use bootp or dhcp to get network info (hostname, domain name,
           name servers, ...)

	--  Things like having config_network()
           possibly use the information on the fixed disk instead of having
           to ask everything.

        -- Build the disktab as a profile, not a true /etc/disktab so it
           doesn't overwrite the real disktab.

        -- Have both ftp and floppy gets get the file, extract the file,
           and then remove the file before going on to the next set to
           save disk space.

        -- Add setting timezone

        -- Set current time and date.

	-- Configure NTP servers, set NTP in rc.conf

	-- On i386 (and others) allow for storing localtime in the RTC.
	   Need to patch kernel variable with offset from UTC.  Any
	   other kernel variables we might want to patch as well???

        -- A little more clean-up of the run_prog suite so things worke
           nicely for all ports.

        -- Check-in of files for amiga and other ports that will use
           sysinst for 1.3.

	-- fix "disklabel -r -w" vs. "disklabel -w": I still don't grok why
           the  -r, and the manpage says it will lose totally on sparcs.
           Phil, was there some reason to bypass the incore label on i386?
           Can we jst do "disklabel -w" everywhere?

	-- Michael bumped the in-memory disklabel struct up to 16 entries.
 	   Also add  a runtime check in case that grows in future 
	   (e.g., slices).  Maybe bump to 32 entries just in case.

	-- Fix sanity-check message code. It currently gets over-written
	   immediately by the following message.

	-- check for disklabel edits changing active root partition.
	   reject.

	-- remove any possibly-stale ld.so.cache files from the target
           /etc after unpacking sets. Maybe just don't copy ld.so.cache
           from /etc.old?

	-- Full configuration of rc.conf?

	-- Set root's shell and password

	-- If we're doing a fresh install and there's already a label
	   on the disk, maybe use that intsead  of the compiled-in default
	   label?

	-- symlinks for /tmp (/tmp -> /var/tmp or some such)
	   Or configure tmp on   mfs.

	-- Add support for SLIP (for pc532) and/or PPP.

	-- Do non-standard installs from arbitrary tar files (?)

	-- Install ports packages.  (possibly a second program
	   run after installation.)

