Things we should try and do before 1.3 release.... -- Add wrapper to install() and upgrade(). On abort, unmount any filesystems mounted by sysinst. -- check for overlapping to-be-newfs'ed partitions before newfsing. jump back to disklabel edit if any overlaps found. needs to skip getrawpartition() (and c on i386). -- Allow ^L to redraw the screen to get rid of error messages. -- Also on error messages, do something to allow the user to see any errors from anything run by run_prog(). Ideas are: if (run_prog("foo") != 0) sleep(5); or: endwin(); run_prog("foo"); printf("press return to continue"); getchar(); initscr(); or (modification of above): endwin(); if (run_prog("foo") != 0) { printf("press return to continue"); getchar(); } initscr(); or: Manually fork and exec everything, dup2 fd's 1 and 2 onto sockets in the child, and paginate the output in your curses app :-) Ideas from maximum entropy. -- From "local" distribution set choice, have a separate option for an already mounted filesystem (or a new option all together?). "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). -- Trap SIGINT and restore tty setting on exit. -- 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.) Things to do .... -- 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 -- 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? -- Set rc.configured. Or at least remind users to edit rc.conf? -- 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.