1#	$NetBSD: TODO,v 1.24 2008/01/10 13:40:39 simonb Exp $
2
3Things to do ....  in no specific order.
4
5	-- On error messages, do something to allow the user to
6	   see any errors from anything run by run_prog().
7	   Ideas suggested  maximum entropy <entropy@zippy.bernstein.com>.
8	   are:
9
10	   #1:
11		if (run_prog("foo") != 0)
12			sleep(5);
13
14	   #2:	   
15		endwin();
16		run_prog("foo");
17		printf("press return to continue");
18		getchar();
19		initscr();
20
21	   #3: (modification of #2):
22
23		endwin();
24		if (run_prog("foo") != 0) {
25			printf("press return to continue");
26			getchar();
27		}
28		initscr();
29
30	   #4:
31
32		Manually fork and exec everything, dup2 fd's 1 and 2
33		onto sockets in the child, and paginate the output in
34		your curses app :-)
35
36	   We currently implement a special-case variant of #1 for untarring
37	   release sets, since the GNU tar in 1.3 fails to report many
38	   errors in its exit status.
39
40        -- "browse" for a local directory to get the
41           distribution set from.  Maybe just allowing the user to shell
42           out and look around is good enough (this needs more thought).
43
44	-- check for already-mounted filesystems before install newfs.
45	   Abort with message.
46
47	-- check for already-mounted filesystems before upgrade fsck.
48	   (ignore?)
49
50	-- check for already-mounted filesystems before upgrade mount.
51	   Continue, if device mount is where we wanted it?
52
53	    (Jonathan ran into the above 3 by upgrading from a live
54	    system to a scratch disk.  sysinst copied the live /etc/fstab
55	    to the target. The upgrade failed because sysinst wanted
56	    to mount the active system's /usr. Could happen when a
57	    real upgrade aborts, even running from ramdisk root.)
58
59	-- Handle ccd's and raid's during an upgrade.
60
61        -- Use bootp or dhcp to get network info (hostname, domain name,
62           name servers, ...)
63
64	-- Things like having config_network()
65           possibly use the information on the fixed disk instead of having
66           to ask everything.
67
68        -- Build the disktab as a profile, not a true /etc/disktab so it
69           doesn't overwrite the real disktab.
70
71        -- Have both ftp and floppy gets get the file, extract the file,
72           and then remove the file before going on to the next set to
73           save disk space.
74
75        -- Set current time and date.
76
77	-- Configure NTP servers, set NTP in rc.conf
78
79	-- On i386 (and others) allow for storing localtime in the RTC.
80	   Need to patch kernel variable with offset from UTC.  Any
81	   other kernel variables we might want to patch as well???
82
83        -- A little more clean-up of the run_prog suite so things work
84           nicely for all ports.
85
86	-- fix "disklabel -r -w" vs. "disklabel -w": I still don't grok why
87           the  -r, and the manpage says it will lose totally on sparcs.
88           Phil, was there some reason to bypass the incore label on i386?
89           Can we just do "disklabel -w" everywhere?
90
91	-- Michael bumped the in-memory disklabel struct up to 16 entries.
92 	   Also add a runtime check in case that grows in future 
93	   (e.g., slices).  Maybe bump to 32 entries just in case.
94
95	-- Fix sanity-check message code. It currently gets over-written
96	   immediately by the following message.
97
98	-- check for disklabel edits changing active root partition.
99	   reject.
100
101	-- remove any possibly-stale ld.so.cache files from the target
102           /etc after unpacking sets. Maybe just don't copy ld.so.cache
103           from /etc.old?
104
105	-- Full configuration of rc.conf?
106
107	-- If we're doing a fresh install and there's already a label
108	   on the disk, maybe use that instead of the compiled-in default
109	   label?
110
111	-- symlinks for /tmp (/tmp -> /var/tmp or some such)
112
113	-- Do non-standard installs from arbitrary tar files (?)
114
115	-- Install binary packages.  (possibly a second program
116	   run after installation.)
117
118	-- Provide the user a menu to select each installation step on
119	   its own. Currently there's no way to repeat steps or leave
120	   them out. (See the Debian installer for a good example.)
121
122	-- Allow the user to install binary snapshots available from releng.
123	   This could be done in the following way:
124		* list the available snapshots in ftp.NetBSD.org
125		  (eg.: ls /pub/NetBSD-daily/*/*/${ARCH} using ftp(1)).
126		* present the user with the possible selections (handle the
127		  case of zero options).
128		* set the variables and install via FTP showing first the
129		  FTP installation screen.
130