* Create target /kern after creating target /etc/fstab entry for /kern.
* Check for more files in target when done: /etc/{rc,rc.subr,conf}
* Clean up warning exerciser.
ext_dir that is absolute directory name of where files are located to
extract. All setup routines must set that directory name correctly.
Make target.c compile if DEBUG is set.
If installing from a pmax diskimage as both current root and target root,
the diskimage /usr/bin/tar is hidden underneath the target /usr mountpoint
when it's time to untar distribution files. From a comment in the change:
Make sure any binaries in a diskimage /usrbin get copied
into the current root's /usr/bin. (may be same as target /usr/bin.)
The rest of sysinst uses /usr/bin/{tar,ftp,chgrp}.
We cannot ship those in /usr/bin, because if we did
an install with target root == current root, they'd
be be hidden under the target's /usr filesystem.
Requires updated diskimage build script which populates /usrbin with
tar, gzip, gunzip, ftp, and chgrp (all statically linked.)
and current-root-is-target-root (pmax diskimage.
* Add code to check disk names (e.g., "sd0") against the current
kern.root_device sysctl (whic does *not* include a partition).
* Add new function must_mount_root():
check to see if it's the same device as the root. If not,
the current and target root partitions cannot overlap.
If they do, do statfs() on "/", and return 1 iff we get back
"root_device" as the mounted-on filesystem, otherwise zero.
* Call must_mount_root() right after the user specifies a disk as
install/upgrade target, and if it returns 1, print a message asking
them to mount root, and abort.
* Use statfs("/") mounted_from string to check if a disk partition
(e.g., "sd0a") matches the current root.
as last step of upgrade, so /etc/fstab exists after reboot.
* util.c: correct sense of test in sanity-check helper check_for().
Change variable name to `found' for readability.
still needs an option to specify the distribution sets from a filesystem
present in fstab.
Add "ados" to the list file recognized filesystems.
Increase label information table size to 16 to allow for 16 partitions.
* Change find_disks: after mouting target root, check for
/etc/fstab in target, and abort upgrade if not found.
* Change upgrade to check if the target root has /etc.old
before renaming the target /etc -> /etc.old. If found, abort.
(may indicates a failed upgrade.)
* Add save_etc(). saves target /etc as /etc.old, then copies back
config files we might want during upgrade, in case target is current root.
* Fix logic that fscks and mounts disks. Use subroutines to
fsck with a warning message and ok() on continue. Same for doing mounts.
* Fix bug in extract_dist(). Do NOT do target prefixing on the dist_dir,
since we didn't do target prefixing when mounting it.
(At least, NFS does't.)
* Add function to sanity-check target root.
Call after upgrade/install is done.
* Change MSG_realdir to print the strerror() of any errors.
Change target_chdir() to check if chdir() returns -1 and return errno.
* Make sure /dev exists before cd'ing there and running MAKEDEV.
* Use target_fopen() and fprintf() to write network state to disk,
to avoid inadvertent shell escapes.
* Fix silly typo in append_to_target_file. (maybe add shell quotes?)
- Added -r rel flag to change the release tag on the tar files.
- Added Usage
- Fixed a menu bug (missing exit)
- Made target_expand available to all functions to produce correct
file names.
Add more #ifdef DEBUG to target-prefixing.
* Fix niggle in creating a new resolv.conf: ctime()'s result ends in '\n',
so don't include one after the %s for the timestamp.
* Change upgrade: add the same ``disk stuff done'' message used in install,
so the user knows what's going to happen.
(is a more tailored message useful?)
* Correct arg typo in mv_within_target_or_die().
* Add new path-prefixing entrypoints to fopen(), collect(), and do mounts.
* Use the above. MI code is now clean of explicit references to /mnt.
* Lint: add `const' to collect()'s pathname arg.
include <stdio.h> in factor.c, now that defs.h uses FILE*.
* Put newfs-and-mount code into a separate function, in case
we want to support non-ffs filesystems.
* Check for the currently-mounted root, and don't newfs or mount it.
Assumes md code will also avoid changing that partition.
* renames of files from one pathname within the target to another
(e.g., mv_within_target_or_die("/etc", "/etc.old");
* check to see if a partition name like "sd0a" is the current root
* Duplicate a file from the current root into the target root
(for copying /netbsd from RAMdisk into the target).
A no-op if the root is the install target).
Start using these where appropriate.
Change net.c to avoid losing any information when updating network
config files: where possible, do appends to files that might have more
info than we got from the user (e.g., /etc/hosts.)
Where possible, add comment saying file was created/modified by sysinst.
Add target.c to Makefiles.
* Minor fixes:
* Fix buglet in disks.c: make sure the target /etc exists before
touching the target's /etc/fstab. (Could be even cleaner.)
* If the target root is on /, don't copy our temporary /etc/resolv.conf
to the target /etc/resolv.conf. (Could be even cleaner.)
* Don't write the DNS hostname into /etc/defaultdomain.
DNS search paths are often not the same as YP group names.
run_prog_or_die() -- aborts if system() returns an error.
run_prog_or_continue() -- prints a warning that installation may
have failed but lets the user continue. Suitable for running mkdir.
RAW_PART for new labels, instead of just the latter.
Avoids shrinking RAW_PART label with pmax kernel-supplied default
labels or with already-labelled disks.
XXX Get real incore label, instead of default label instead (or as well)?
to 4.3BSD-style (BSD uses whole disk, 8 partitions, c=RAW_PART, d=/usr).
Initialize variables appropriately.
May be a good starting template for sparc, vax, others?
Use symbolic defines to allow changing the partition used for /usr (to
add a /var partition, or for consistency with i386).
* Use md_make_bsd_partitions() code lifted from the i386 version,
modified to set D partition size.
* Add the MD messages used by the above to sysisnt/arch/pmax/msg.md.eng.
* Add X11 sets xbase, xserver, xcomp to arch/pmax/md.h.
parallel development. i386 version about 90% complete. pc532 version
just started, other architectures later in coordination with portmasters.
This is a curses based, menu driven installation program.
Better error checking is needed.