Optimizations: do not re-invoke make(1) unnecessarily, it takes a
full second to bootstrap it on my on my anemic PC. Also, use
xargs/find instead of awk/system()/shell to classify each package
path as a file or directory.
For consistency, adopt similar variables names as makeflist uses.
Use the set-list routines in sets.subr instead of duplicating code.
a new list:
sets.subr -- The set-listing code that is common to makeplist,
makeflist, and regpkg has moved here.
syspkgdeps -- Compute naive dependencies for system packages based
on directory containment. I.e., if package A contains
path /p/q, and package B contains path /p, then B is
considered a dependency of A. As Jim Wise remarks,
this is not quite right: system-package dependencies
should indicate a functional dependency. Nevertheless,
these naive dependencies protect us from orphaning
files when pkg_delete'ing system packages.
culldeps -- Helper for syspkgdeps. Removes redundant dependencies
from a dependencies table. Essentially does the opposite
of a transitive closure on a dependencies table: if
the table contains A depends-on B, B depends-on C, and
A depends-on C, then A depends-on C is removed because
it can be derived from the prior two dependencies.
deps -- Dependencies computed by syspkgdeps.
category (since they're listed in the misc/mi set list), rather than
a system package under base.
Add a comment and a description for the new system package.
+ use "uname -r" if osrelease.sh isn't available
+ if SYSPKG_DATES is set in the environment, use the date for the
version. For some reason, this is controversial, so the default is
to use NetBSD kernel versions. Re-instate the code to calculate the
date, but only use it if the date cannot be gleaned from the RCS Ids
of the constituent parts.
+ re-work the versions file, since it was committed in an incomplete
state - there were version numbers without package names in there.
Instead, get the version number by exception - i.e. assume it's "0"
unless specified in the versions file. This means less independent
maintenance when a kernel version number is bumped, and less
duplication of work (since any new system packages will now have the
correct version number by default)
+ lose the section which duplicated the calculation of "tiny version"
which was never used (and which didn't work correctly)
Use swapctl() for all swap operations.
Remove md_upgrade_mbrtype() from arc and hpcmips ports.
(I haven't finalised what I'm doing about type 165 partitions, but the
existing code is borked.)
Remove pointless 'len' parameter from read_mbr and write_mbr.
Make read_mbr initialise mbr if it can't be read (delete MD code).
Make i386 always ask at least once about the bootcode.
Move LIB_MOVE and LIB_COUNT from md.h to aout2elf.c
Make same function return useful defaults if it can't find an answer.
Make all ports default to the useful defaults if bios geometry is unknown.
Move some messages to mbr set from mi set.
Fix i386 code that selects which bios disk, simplify interface to menus.
Remove now unnecessary global data from many ports.
4 times system memory). (These numbers need moving to a different menu still.)
Remove size of /usr from default sized / when /usr created.
Shrink swap in order to get partitions into available disk space.
Add twice ram size to / if space available (for system dumps).
Keep all but last partition cylinder aligned when the disk isn't a whole
number of cylinders.
to explicitly version syspkgs. See discussion on source-changes@netbsd.org.
If we want to lose this functionality, we should discuss this on the appropriate
lists...
file entries from the syspkg hierarchy, brought up to date to include some
that had been missed out.
Add the descrs file, which is a single file containing all the DESCR
file entries from the syspkg hierarchy, brought up to date to include some
that had been missed out.
Thanks to Jim Wise for all the work that went into the syspkg sets.
Add the attrs file, which is a single file to which can be added
attributes (like preserve).
Add a regpkg script, which allows a single system package to be
registered, based simply on its setname and syspkg name. All the
information is gleaned from the lists files by means of scripts, no
source tree is needed. The version number for the system package is
calculated automatically, based on the most recent mtime of the files
that constitute a system package.
Add a regpkgset script, to register all the system packages in a set.
The set names recognised are "all", "base", "comp", "etc", "games",
"man", "misc", "text".
and also bring up to date the ELF vs a.out knowledge.
Also, sort the directories into reverse alphabetical order, and add them to
the generated PLIST file after any file entries.
Grab the comments into a single file from the individual syspkg set entries.
Grab the descriptions into a single file from the individual syspkg set entries.
Add an attributes file to which can be added attributes for system packages.
The "preserve" attribute has been implemented.
Add extra comments and descriptions for system packages which were missing.
Hack to give free space to a default sized /usr
Add extra space to / and /usr is any of the X sets are included.
Remove last reference to 'layoutkind == 3'.
I've also made the set selection happen first. This lets me test it!
also measn the selected sets could be used in the disk partition code.
Removed the 'with X' disk layout question (now too late to change the sets).
Fix menu size so that user defined partitions can be allocated instead of
standard ones (need > MAXPARTITIONS entries in menu).
Make partition size info static - with a view to including it in a longer loop.
Update lists for ramdisks to include the required files.
NB /usr/sbin/installboot is not used by sysinst and is only in ramdisk-big.
Increase the sizes of the ramdisks, there is plenty of space in all the
boot floppies except rescue-tiny (2k) and boot-tiny (32k).