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.
the test as spl0 is actually a macro for splx(0). The code now calls
splx(0)
(note building with the #ifdef fixed, caused the build to fail on a
GENERIC acorn32 kernel.)
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.
Instead malloc() some memory and copy the sockaddr returned there.
Fix a bug where after a blocked lock gets granted, the grant message would
be sent to the wrong machine (or possibly to a completely bogus address).
While there, add a NULL check for the return value of another malloc().
Add the ability to pkg_info(1) and pkg_delete(1) to take a directory
name for the name of the package, so that shell-completion can help
when finding out information or deleting packages.
the pointer to /etc/shells is pointing to the second entry. This change
resets the pointer before looping through the file again. FreeBSD does
this as well. Commit approved by christos and thanks to Geoff Adams for
catching and reporting it.
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)
This may work with one PPPoE session.
If you want to use it, #define PPPOE_SERVER in somewhere,
or add options PPPOE_SERVER in kernel config file.
This is experimental code, and good start point for future development.