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