# $NetBSD: TODO,v 1.1 2014/07/26 19:30:44 dholland Exp $
Things to do .... in no specific order.
-- 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-mounted filesystems before install newfs.
Abort with message.
-- check for already-mounted filesystems 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.
-- 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 work
nicely for all ports.
-- 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 just 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?
-- If we're doing a fresh install and there's already a label
on the disk, maybe use that instead of the compiled-in default
label?
-- symlinks for /tmp (/tmp -> /var/tmp or some such)
-- Do non-standard installs from arbitrary tar files (?)
-- Install binary packages. (possibly a second program
run after installation.)
-- Provide the user a menu to select each installation step on
its own. Currently there's no way to repeat steps or leave
them out. (See the Debian installer for a good example.)
-- Allow the user to install binary snapshots available from releng.
This could be done in the following way:
* list the available snapshots in ftp.NetBSD.org
(eg.: ls /pub/NetBSD-daily/*/*/${ARCH} using ftp(1)).
* present the user with the possible selections (handle the
case of zero options).
* set the variables and install via FTP showing first the
FTP installation screen.