NetBSD/usr.sbin/sysinst/TODO
dholland 50dbef1a09 Move sysinst sources to usr.sbin.
This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.
2014-07-26 19:30:39 +00:00

130 lines
4.3 KiB
Plaintext

# $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.