Home | History | Annotate | only in /src/distrib/miniroot
History log of /src/distrib/miniroot
RevisionDateAuthorComments
 1.69 29-Dec-2019  christos 1. Remove all the special handling of variables (-d -p -P -s -S) that
were dealing with DBG (-d) LDSTATIC/NOPIE (-p), and the rest with
disabling/enabling sanitizers.
2. Use emalloc/estrdup for all the allocators instead of only some cases.
3. Add -V varspec which passes variables on the command line (as DBG
and LDSTATIC used to be passed before) instead of appending them
to the on-the-fly Makefile using -v varspec.
4. Change the distrib and rescue Makefiles to use -V instead of the removed
flags.

The motivation of this is to make variable handling consistent, less magical,
and remove the need for changing crunchgen each time we want to add disabling
an option by default.

(as proposed in tech-toolchain)
 1.68 20-Sep-2009  abs branches: 1.68.48;
${NETBSDSRCDIR}/distrib/common/protocols => ${DISTRIBDIR}/common/protocols
${NETBSDSRCDIR}/distrib/common/services => ${DISTRIBDIR}/common/services
 1.67 25-Jan-2009  abs Use the cutdown distrib/common/services and distrib/common/protocols
rather than the full fat etc versions
 1.66 19-Sep-2008  tsutsui Add ${IMAGE}.gz to dependency list of release:: target as well as the one
in src/distrib/common/Makefile.image so that ${MAKESUMS} will be invoked
after the target image is installed into the releasedir, not before,
even if make -jN is specified.

XXX some ports do ${MAKESUMS} for installation/miniroot files
XXX in etc/etc.${MACHINE}/Makefile.inc later again.
 1.65 23-Jun-2008  matt Change remaining instances of ${RELEASEDIR}/${MACHINES} to
${RELEASEDIR}/${RELEASEMACHINEDIR}
 1.64 10-May-2007  dogcow branches: 1.64.12; 1.64.16;
Since /etc/services has gotten rather large, use a minimal one for install
kernels. (mount_nfs is notably the only binary that doesn't gracefully deal
with the lack of an /etc/services file, it appears.)
 1.63 03-Jan-2003  lukem branches: 1.63.16; 1.63.20;
Install release files under "${RELEASEDIR}/${MACHINE}/..." instead of
"${RELEASEDIR}/...".

${RELEASEDIR} is never cleaned , and ${RELEASEDIR}/${MACHINE} is only
cleaned if UPDATE is not defined.
 1.62 07-May-2002  lukem enable (default) libhack for all miniroots.
for atari, also add gethost.o (as before)
 1.61 07-May-2002  lukem Use release:: instead of release: when multiple release targets may exist
 1.60 02-May-2002  lukem yet another distrib overhaul:
- move guts of distrib/Makefile.inc to distrib/common/Makefile.distrib
(fixes problem caused by implicit include of ../Makefile.inc in certain
submake conditions triggered by makefiles not yet in tree)
- removed mkdir of ${RELEASEDIR}/*; rely upon "snap_pre" target of
etc/Makefile to create all the release directories
- renamed RELINSTALL to RELEASE_INSTALL
- renamed FLOPPYINSTDIR to FLOPPY_RELEASEDIR
- renamed MDSETDIR to MDSET_RELEASEDIR
- removed ITARGET
- move release target from top level to appropriate subdirectory
- ensure release target has correct depends
- replace miniroot's IMAGE_MD_POST with common/Makefile.image IMAGEPOSTBUILD
- Makefile.image: add realall: ${IMAGE}
 1.59 26-Apr-2002  lukem replace _SRC_TOP_ with NETBSDSRCDIR, since the latter is the "public" version
 1.58 23-Apr-2002  tv Make sure DBG setting is passed to crunch Makefile to get proper
compile-time options.
 1.57 12-Apr-2002  lukem - replace image_md_post: target with IMAGE_MD_POST variable, and use
that after building ${IMAGE}
- use ${IMAGEBUILT} to ensure that IMAGE_MD_POST is only run if IMAGE changes
 1.56 12-Apr-2002  lukem remove MAKESUMS (provided by ../Makefile.inc). minor tweaks
 1.55 10-Apr-2002  lukem tweak how distrib/Makefile.inc is pulled in. use realall: instead of all:
 1.54 08-Apr-2002  bjh21 Set CKSUM in makesums' environment.
 1.53 18-Mar-2002  lukem add empty image_md_post rule so ports that don't provide one won't barf
 1.52 17-Mar-2002  lukem If we're going to use DISTRIB(REV|VER) in generated files, have those files
depend upon osrelease.sh. Issue raised by Havard Eidnes.
 1.51 16-Mar-2002  lukem need to pass DISTRIBREV and DISTRIBVER to parselist as well
 1.50 14-Mar-2002  lukem parselist.awk
- improve comments
- provide a general purpose variable replacement; replace contents of ${FOO}
with ENVIRON["FOO"].
- deprecate @MACHINE@ and @MACHINE_ARCH@ in favour of using ${MACHINE}
and ${MACHINE_ARCH} instead
- add errx() function; like err(), but doesn't print the line number
- invoke this script with various variables defined via PARSELISTENV

*/Makefile*
- use PARSELISTENV instead of POPULATEENV, and add variables like DESTDIR
- other minor tweaks

*/list*
- replace @MACHINE@ with ${MACHINE}
 1.49 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.48 12-Feb-2002  is Use the building machine's raw partition instead of fixed "c" to allow
cross-building.
 1.47 12-Feb-2002  lukem remove REV in favour of DISTRIBREV (from ../Makefile.inc)
 1.46 09-Feb-2002  lukem don't set the owner or group when installing into $RELEASEDIR
 1.45 15-Jan-2002  pk Test DESTDIR and RELEASEDIR for non-emptyness as well as existence, sigh..
 1.44 15-Jan-2002  pk Remove instbin.cache from dependency lists, since crunchgen is now run
unconditionally.
Avoid running the crunchgen command multiple times for each dependent
target by marking only one target (instbin.mk) for unconditional re-make.
 1.43 07-Jan-2002  shin use 'vnd0' instead of 'vnd0c', when unconfigure device.
 1.42 27-Nov-2001  jmc Just use vnd0 when vnconfig'ing and then use the char/raw device when newfs'ing
and mounting
 1.41 08-Nov-2001  tron Use the block device when invoking "vndconfig" because the character
device isn't accepted any longer.
 1.40 07-Nov-2001  shin use raw device name for vnconfig.
 1.39 13-Oct-2001  jmc Add MTREE?= to add Makefiles and use when running mtree
 1.38 10-Oct-2001  enami Use symbol MTREECONF instead of MTREE to refer configuration file
to avoid conflicts. Pointed out by chs@netbsd.org.
 1.37 25-Feb-2001  jmc Make sure crunchgen remakes the makefile everytime and it doesn't use it's
cache since other Makefiles could change source files too easily.
 1.36 01-Nov-2000  garbled Change all ocurrences of "crunchgen" to ${CRUNCHGEN}
 1.35 30-Aug-2000  jhawk Use
${MAKE}
instead of
make
 1.34 29-Aug-2000  leo Backout previous commit. It shouldn;t have happend.
 1.33 29-Aug-2000  leo Pull up revision 1.16 (requested by leo, approved by thorpej).
Log:
Use x_ed and x_route to save space on the miniroot.
 1.32 18-May-2000  matt branches: 1.32.4;
Updagte the VAX bits so they actually work. Use the common method of building
miniroots. Fix the ramdisk bits. Use the INSTALL kernel. This stuff has
really suffered from bitrot.
 1.31 05-May-2000  sjg Added missing .gz to makesums arg
 1.30 02-May-2000  sjg use bsd.kernobj.mk to tell us KERNOBJDIR for compiled kernels.
 1.29 02-May-2000  sjg Use top-level Makefile.inc to set BSDSRCDIR
use bsd.kernobj.mk to set KERNOBJDIR and pass this to runlist.sh
 1.28 16-Apr-2000  pk Fix path to `makesums'
 1.27 16-Apr-2000  matt Use relative path to osrelease.sh
 1.26 07-Mar-2000  pk Bump image size by 1MB.
 1.25 06-Mar-2000  is Make sure the miniroot distribution directory exists.
Compute the checksums.
 1.24 10-Jan-2000  pk Remove version number from boot image files.
 1.23 18-Oct-1999  pk Add `release:' targets.
 1.22 18-Jul-1999  abs branches: 1.22.2;
s/makeing/making/
 1.21 11-May-1999  veego Sync with the recent crunchgen changes.
- Remove *.cro files and not the obsoleted *.lo files.

From Bill Studenmund commit message:
> 3) Generate .cro files rather than .lo files. .lo now is used for "local
> objects" - obj's for the host machine not the target machine.
 1.20 18-Apr-1999  is use an async mount for building the miniroot filesystem
 1.19 16-Nov-1998  jonathan branches: 1.19.2;
Add hook for running extraneous commands before newfs.
 1.18 05-Sep-1998  lukem distclean is a synonym for cleandir
 1.17 26-Jan-1998  bad We don't need to manually flush the buffer cache after ``vnconfig -u''
anymore.
 1.16 22-Sep-1997  scottr Add a VND_GEOM variable for optionally specifying a geometry
to vnconfig(8).
 1.15 09-Sep-1997  is More changes, while working on Amiga generic miniroot stuff:
- added method BOOTINSTALL, for an architecture to optionally install a
bootblock in the miniroot (this works for Amiga)
- added Amiga keymap directories
- removed the subdir selection from mount_local_disk() and mount_nfs(), and
the remains from mount_cdrom(), as all are handled now by the subdir
navigator in mount_from_installed_fs()
 1.14 15-Jul-1997  pk Make DISKTYPE optional; default to vnd's builtin geometry.
Make `vnd0c' the default vnd device (instead of `vnd0a').
 1.13 23-Jun-1997  thorpej Update for changes to vnconfig(8).
 1.12 10-May-1997  lukem Don't hardcode in the current release information; generate it
automatically on the fly, by using
`sh ${BSDSRCDIR}/sys/conf/osrelease.sh -s`
 1.11 16-Mar-1997  veego Bump the REV to 12D to get in sync with param.h and newvers.sh.
This REALLY needs to be in ONE file and not in 11 files.
 1.10 08-Jan-1997  thorpej Include <bsd.own.mk> for <bsd.obj.mk>. Bump rev to 12B (HI PERRY! :-)
 1.9 10-Oct-1996  gwr Merge the netbsd-1-2 branch back into the mainline.
 1.8 04-Jul-1996  leo Check for $DESTDIR being set. This prevents you from accidently ending up
with a miniroot that contains your local passwd files.
 1.7 25-Jun-1996  thorpej We're 1.2A, I promise.
 1.6 30-May-1996  leo * Edit VERSION into install.sub while copying instead of using a
VERSION file.
* Set the EDITOR variable in install.sub, so it will be set in both
upgrade & install.
* Make the checks on the presence of installation sets on the local
disks on upgrade more precise.
* Remove more&less from the list of standard binaries (I need more space!)
* When building an fstab from the users' fstab, drop lines starting with
a '#' and lines with an fstype that is not supported on the miniroot.
 1.5 27-May-1996  leo Remove leftover from atari (floppybt -> miniroot)
 1.4 27-May-1996  leo Sync atari miniroot & mi-miniroot
 1.3 24-May-1996  pk Include machine-specific makefile so the default values of various
things can be overridden.
 1.2 06-Jan-1996  pk branches: 1.2.4;
update clean target
 1.1 18-Dec-1995  pk Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.2.4.4 13-Mar-1997  mycroft 1.2 -> 1.2.1, foo12 -> foo121
 1.2.4.3 04-Jul-1996  leo Pull up from trunk.
 1.2.4.2 25-Jun-1996  thorpej Just like the trunk's 1.2A, we're 1.2.
 1.2.4.1 20-Jun-1996  pk Sync with trunk.
 1.19.2.2 04-Nov-2000  he Apply patch (requested by matt):
Add an 'unconfig' target.
 1.19.2.1 01-Mar-2000  he Apply patch (requested by toddpw):
Support the ``release'' target (used at least by sparc).
 1.22.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.32.4.1 25-Mar-2002  he Apply patch (requested by he):
Introduce dependency between ramdisk/miniroot construction and
osrelease.sh, to better support UPDATE builds of releases.
 1.63.20.1 22-Sep-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1204):
distrib/hpcarm/Makefile 1.4 - 1.6
distrib/hpcarm/instkernel/Makefile 1.1
distrib/hpcarm/stand/Makefile 1.1 - 1.2
distrib/hpcmips/Makefile 1.29 - 1.33
distrib/hpcmips/instkernel/Makefile 1.1
distrib/hpcmips/stand/Makefile 1.1 - 1.2
distrib/hpcsh/Makefile 1.7 - 1.9
distrib/hpcsh/instkernel/Makefile 1.1
distrib/hpcsh/stand/Makefile 1.1 - 1.2
distrib/miniroot/Makefile 1.65 - 1.66
etc/etc.hpcarm/Makefile.inc 1.6 - 1.8
etc/etc.hpcmips/Makefile.inc 1.9 - 1.10
etc/etc.hpcsh/Makefile.inc 1.4 - 1.5
Build install kernels and standalone bootloaders in their own directories
so that parallel build works properly.
Change remaining instances of ${RELEASEDIR}/${MACHINES} to
${RELEASEDIR}/${RELEASEMACHINEDIR}
Add ${IMAGE}.gz to dependency list of release:: target as well as the one
in src/distrib/common/Makefile.image so that ${MAKESUMS} will be invoked
after the target image is installed into the releasedir, not before,
even if make -jN is specified.
XXX some ports do ${MAKESUMS} for installation/miniroot files
XXX in etc/etc.${MACHINE}/Makefile.inc later again.
- add INSTALLATION_DIRS+=installation/miniroot so that miniroot.fs.gz
image is installed properly
- INSTALL_IPAQ should be in BUILD_KERNELS rather than KERNEL_SETS
since it requires ramdisk image by mdsetimage(8) in src/distrib
Invoke ${MAKESUMS} for ${RELEASEDIR}/${RELEASEMACHINEDIR}/installation files
as snap_md_post target in etc/etc.${MACHINE}/Makefile.inc rather than
as release target in distrib/${MACHINE}/Makefile so that builds for
release in distrib/${MACHINE}/Makefile don't have to be serialized.
 1.63.16.1 22-Sep-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1204):
distrib/hpcarm/Makefile 1.4 - 1.6
distrib/hpcarm/instkernel/Makefile 1.1
distrib/hpcarm/stand/Makefile 1.1 - 1.2
distrib/hpcmips/Makefile 1.29 - 1.33
distrib/hpcmips/instkernel/Makefile 1.1
distrib/hpcmips/stand/Makefile 1.1 - 1.2
distrib/hpcsh/Makefile 1.7 - 1.9
distrib/hpcsh/instkernel/Makefile 1.1
distrib/hpcsh/stand/Makefile 1.1 - 1.2
distrib/miniroot/Makefile 1.65 - 1.66
etc/etc.hpcarm/Makefile.inc 1.6 - 1.8
etc/etc.hpcmips/Makefile.inc 1.9 - 1.10
etc/etc.hpcsh/Makefile.inc 1.4 - 1.5
Build install kernels and standalone bootloaders in their own directories
so that parallel build works properly.
Change remaining instances of ${RELEASEDIR}/${MACHINES} to
${RELEASEDIR}/${RELEASEMACHINEDIR}
Add ${IMAGE}.gz to dependency list of release:: target as well as the one
in src/distrib/common/Makefile.image so that ${MAKESUMS} will be invoked
after the target image is installed into the releasedir, not before,
even if make -jN is specified.
XXX some ports do ${MAKESUMS} for installation/miniroot files
XXX in etc/etc.${MACHINE}/Makefile.inc later again.
- add INSTALLATION_DIRS+=installation/miniroot so that miniroot.fs.gz
image is installed properly
- INSTALL_IPAQ should be in BUILD_KERNELS rather than KERNEL_SETS
since it requires ramdisk image by mdsetimage(8) in src/distrib
Invoke ${MAKESUMS} for ${RELEASEDIR}/${RELEASEMACHINEDIR}/installation files
as snap_md_post target in etc/etc.${MACHINE}/Makefile.inc rather than
as release target in distrib/${MACHINE}/Makefile so that builds for
release in distrib/${MACHINE}/Makefile don't have to be serialized.
 1.64.16.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.64.12.3 05-Oct-2008  mjf Sync with HEAD.
 1.64.12.2 28-Sep-2008  mjf Sync with HEAD.
 1.64.12.1 29-Jun-2008  mjf Sync with HEAD.
 1.68.48.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.29 30-Aug-2025  thorpej Place a ptyfs instance into the newly-written /etc/fstab, so that
e.g. sshd works out of the box after installation on sun3.
 1.28 03-May-2022  andvar branches: 1.28.2; 1.28.6;
fix various typos, mainly s/trasfering/transferring/ and s/theese/these/.
 1.27 04-Apr-2019  christos eXorcize and `` -> $()
 1.26 16-Sep-2018  kre Remove uses of test ... -a ... and test ... -o ...
 1.25 20-Sep-2009  abs branches: 1.25.40; 1.25.46; 1.25.48;
remove references to disktab.{preinstall,shadow}
 1.24 30-Apr-2008  martin Convert TNF licenses to new 2 clause variant
 1.23 18-Jan-2006  is branches: 1.23.20; 1.23.22;
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.22 11-Apr-2000  pk branches: 1.22.12; 1.22.16;
Make FQDN optional (PR#9823).
 1.21 07-Oct-1999  sjg make sure . install.sub etc work regardless of PATH
 1.20 12-Apr-1999  is branches: 1.20.2;
Actually use MDSETS, so that ports can install the x sets if useful
 1.19 07-Feb-1999  is branches: 1.19.2;
Make it clearer what to answer to the "Device name: " prompt.
 1.18 25-Nov-1997  pk * Fix a typo.

* Present option to configure a swap device (a bit rude.. we only offer
partition `b', like we only consider `a' for root)
 1.17 09-Oct-1997  jtc branches: 1.17.2;
Fix tipo inherited from old version of TNF copyright template.
 1.16 08-Sep-1997  pk Don't leave /etc/rc.conf "unconfigured".
 1.15 01-May-1997  pk * ftp setup: don't echo password
* network interface configuration:
- use new ifconfig(8) capabilities
- adapt to changed ifconfig(8) output
- use new config files (ifconfig.xxn)
 1.14 10-Oct-1996  gwr Merge the netbsd-1-2 branch back into the mainline.
 1.13 26-Aug-1996  thorpej Pull md_install_sets() changes down from release branch.
 1.12 25-Aug-1996  pk sync with 1.2 branch
 1.11 22-Aug-1996  mrg do md_install_sets.
 1.10 27-Jun-1996  pk Deal with install sets in `install_from_mounted_fs()' differently.
The sets are passed around in a global variable.
Remember installed sets across loads from different media.
 1.9 25-Jun-1996  thorpej Move all disklabel handling into install.md. Even the error messages
can be machine-dependent.
 1.8 18-Jun-1996  pk Insert filesystem type in munge_fstab.
Don't `ifconfig down' an active network interface (bad for diskless setup);
but use it to cull default IP address and netmask.
 1.7 30-May-1996  leo * Edit VERSION into install.sub while copying instead of using a
VERSION file.
* Set the EDITOR variable in install.sub, so it will be set in both
upgrade & install.
* Make the checks on the presence of installation sets on the local
disks on upgrade more precise.
* Remove more&less from the list of standard binaries (I need more space!)
* When building an fstab from the users' fstab, drop lines starting with
a '#' and lines with an fstype that is not supported on the miniroot.
 1.6 27-May-1996  leo Sync atari miniroot & mi-miniroot
 1.5 21-May-1996  pk branches: 1.5.2;
Add a `install_disk' option (copied from Atari miniroot).
Make editor configurable (variable EDITOR, also usable by disklabel(8)).
Move disklabel(8) calls into `md_prep_label()'.
Eliminate two uses of `sed'.
Eliminate `awk' in upgrade.sh.
 1.4 21-May-1996  pk kill some more awks
 1.3 20-May-1996  pk There's life after awk. Replace awk scripts with shell function equivalents
(inspired by Leo's atari scripts).
 1.2 28-Feb-1996  thorpej Copyright assigned to The NetBSD Foundation.
 1.1 06-Jan-1996  pk MI install and upgrade scripts.
 1.5.2.8 27-Aug-1996  gwr Initialize THESETS just after dotting in install.sub
 1.5.2.7 26-Aug-1996  gwr Replace do_mfs_mount with md_makerootwritable
(On some ports it is easier to remount root.)
 1.5.2.6 26-Aug-1996  thorpej Nuke md_install_sets() ... just set the MDSETS variable at the top of
install.md
 1.5.2.5 25-Aug-1996  pk redo rev. 1.5.2.3 which seemed to got lost.
 1.5.2.4 22-Aug-1996  mrg pull up md_install_sets.
 1.5.2.3 27-Jun-1996  pk Pull down from trunk:
> Deal with install sets in `install_from_mounted_fs()' differently.
 1.5.2.2 25-Jun-1996  thorpej Update from trunk:

Move all disklabel handling into install.md. Even the error messages
can be machine-dependent.
 1.5.2.1 20-Jun-1996  pk Sync with trunk.
 1.17.2.1 25-Nov-1997  pk Pullup rev 1.18 from trunk.
 1.19.2.1 13-Apr-1999  is Pullup from -current:
actually use the $MDSETS variable, so that individual ports can choose to
(e.g.) install the x sets if they want to.
 1.20.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.22.16.1 27-Jan-2006  tron Pull up following revision(s) (requested by is in ticket #1130):
distrib/miniroot/install.sh: revision 1.23
distrib/miniroot/upgrade.sh: revision 1.21
distrib/amiga/miniroot/install.md: revision 1.25
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.22.12.1 27-Jan-2006  tron Pull up following revision(s) (requested by is in ticket #1130):
distrib/miniroot/install.sh: revision 1.23
distrib/miniroot/upgrade.sh: revision 1.21
distrib/amiga/miniroot/install.md: revision 1.25
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.23.22.1 18-May-2008  yamt sync with head.
 1.23.20.2 05-Oct-2008  mjf Sync with HEAD.
 1.23.20.1 02-Jun-2008  mjf Sync with HEAD.
 1.25.48.1 10-Jun-2019  christos Sync with HEAD
 1.25.46.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.25.40.1 19-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1639):

distrib/miniroot/install.sub: revision 1.54 (patch)
distrib/miniroot/install.sub: revision 1.56 (patch)
distrib/miniroot/install.sub: revision 1.57 (patch)
distrib/miniroot/install.sub: revision 1.58 (patch)
distrib/miniroot/install.sub: revision 1.59 (patch)
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/miniroot/install.sub: revision 1.47 (patch)
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/miniroot/upgrade.sh: revision 1.23
distrib/miniroot/install.sh: revision 1.26
distrib/miniroot/upgrade.sh: revision 1.24
distrib/miniroot/install.sh: revision 1.27
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.50 (patch)
distrib/miniroot/install.sub: revision 1.51 (patch)
distrib/miniroot/install.sub: revision 1.52 (patch)
distrib/miniroot/install.sub: revision 1.53 (patch)

Remove uses of test ... -a ... and test ... -o ...
eXorcize and `` -> $()
Fix miniroot installation failure on network configuration. PR/54833
No particular comment in the PR.
Should be pulled up to netbsd-9.
Fix "[: SMALL test, no fallback usage" error on miniroot installation.
Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16
as suggested by kre@ in PR/54835.
Should be pulled up to netbsd-9.
The idiom
set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#
fails when $# turns out to be 10 (or any multiple), it would need
to be instead
while [ $# -ge 10 ]; do shift 9; done
but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).
We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.
NFCI.
The kernel and X sets should be specified in MD miniroot scripts.
Otherwise they are not listed at least on ftp installation.
The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html
Should be pulled up to netbsd-9 and netbsd-8.
Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.
Add missing md_get_partition_range() that causes installation failure.
Also reported by Martin Trusler on testing hp300 miniroot.
Should be pulled up to netbsd-9 and netbsd-8.
Explicitly sort set names fetched via ftp nlist.
Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.
Worth to pullup to netbsd-9 and netbsd-8.
Use proper release version strings ("9.1" rather than "91") in banners.
Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).
I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.
Worth to pullup to netbsd-9.
Inform the default installation directory in the official ftp server.
Fetch files via ftp using auto-fetching with URL per each binary set.
On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.
Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.
No particular comments on tech-install@ and port-hp300@.
Maybe should be pulled up to netbsd-9.
 1.28.6.1 02-Sep-2025  martin Pull up following revision(s) (requested by thorpej in ticket #23):

distrib/miniroot/install.sh: revision 1.29

Place a ptyfs instance into the newly-written /etc/fstab, so that
e.g. sshd works out of the box after installation on sun3.
 1.28.2.1 02-Sep-2025  martin Pull up following revision(s) (requested by thorpej in ticket #1155):

distrib/miniroot/install.sh: revision 1.29

Place a ptyfs instance into the newly-written /etc/fstab, so that
e.g. sshd works out of the box after installation on sun3.
 1.66 11-May-2024  andvar s/timestemps/timestamps/ in comments.
 1.65 29-Jul-2023  tsutsui No need to ask whether to use the TCP option on NFS mount.

TCP mount has been default since NetBSD 9.0.
 1.64 30-Dec-2022  andvar s/succes/success/ in comments.
 1.63 13-Mar-2022  andvar fix few typos in comments and output message.
 1.62 19-Jun-2021  tsutsui The modules and rescue sets are also required on upgrade.

Should be pulled up to netbsd-9 and netbsd-8.
 1.61 19-Jun-2021  tsutsui Remove netstat(1) calls to print resolver info on upgrade using miniroot.

netstat(1) was removed from miniroot 25 years ago.
http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/miniroot/list#rev1.5
 1.60 29-May-2021  tsutsui Handle recent ifconfig(8) outputs in the miniroot installation script.

- Remove netmask slash notation for IP addresses,
which has been changed between NetBSD 7.x and 8.0:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/ifconfig/af_inet.c#rev1.24
- Ignore inet6 entries, which miniroot scripts don't support

Should be pulled up to netbsd-9 and netbsd-8.
 1.59 12-Dec-2020  tsutsui branches: 1.59.2;
Fetch files via ftp using auto-fetching with URL per each binary set.

On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.

Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.
No particular comments on tech-install@ and port-hp300@.

Maybe should be pulled up to netbsd-9.
 1.58 05-Dec-2020  tsutsui Inform the default installation directory in the official ftp server.
 1.57 05-Dec-2020  tsutsui Use proper release version strings ("9.1" rather than "91") in banners.

Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).

I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.

Worth to pullup to netbsd-9.
 1.56 05-Dec-2020  tsutsui Explicitly sort set names fetched via ftp nlist.

Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.

Worth to pullup to netbsd-9 and netbsd-8.
 1.55 05-Dec-2020  tsutsui Appease awk warnings on suppressing dmesg timestamps.

> awk: warning: escape sequence `\[' treated as plain `['
> source line number 1
> context is
> { h=$0; >>> gsub("^[ <<<
> awk: warning: escape sequence `\]' treated as plain `]'
> source line number 1

Should be pulled up to netbsd-9.
 1.54 05-Dec-2020  tsutsui Add modules set for default sets on miniroot installation.

Should be pulled up to netbsd-9 and netbsd-8.
 1.53 19-Jan-2020  kre test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.

NFCI.
 1.52 19-Jan-2020  kre The idiom

set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#

fails when $# turns out to be 10 (or any multiple), it would need
to be instead

while [ $# -ge 10 ]; do shift 9; done

but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).

We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
 1.51 12-Jan-2020  tsutsui Fix "[: SMALL test, no fallback usage" error on miniroot installation.

Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16
as suggested by kre@ in PR/54835.

Should be pulled up to netbsd-9.
 1.50 12-Jan-2020  tsutsui Fix miniroot installation failure on network configuration. PR/54833

No particular comment in the PR.
Should be pulled up to netbsd-9.
 1.49 02-Oct-2019  maya Split out /rescue to its own set and adapt installers/images to add it.

This is meant to make updates safer: if something goes wrong with updating
base, we still have the old, standalone /rescue to recover from.
 1.48 10-Apr-2019  christos branches: 1.48.2;
adjust miniroot scripts to deal with the time prefix in dmesg
 1.47 04-Apr-2019  christos eXorcize and `` -> $()
 1.46 15-Aug-2017  mlelstv branches: 1.46.4;
Support installing from a CD9660 formatted disk partition.
 1.45 30-Apr-2008  martin branches: 1.45.56;
Convert TNF licenses to new 2 clause variant
 1.44 24-Apr-2006  snj branches: 1.44.20; 1.44.22;
It's "its."
 1.43 12-Jun-2002  bouyer If it exists, source /mnt/etc/defaults/rc.conf before /mnt/etc/rc.conf,
so that upgrade.sh gets all the parameters in its initialisation phase.
 1.42 23-May-2002  nathanw Tell the user consistently that time zone files are in
/usr/share/zoneinfo, rather than that in one place and
/usr/share/timezone in another.
 1.41 18-Apr-2002  fredette branches: 1.41.2;
Fixed a spelling mistake.
 1.40 17-Dec-2001  fredette Added support for uncompressed sets.
When doing a UDP NFS mount, ask if "small transfers" (i.e.,
-r 1024 -w 1024) should be used; this is necessary when
the client and/or server has a feeble network card.
 1.39 22-Nov-2000  abs Handle hostname being set in /mnt/etc/rc.conf
 1.38 14-Nov-2000  is Finish the old job of makeing this work with media-less interfaces, e.g.
bah or amiga if_es.
 1.37 30-Oct-2000  is Fix typo, pointed out privately by Petri Koistinen.
 1.36 03-Sep-2000  pk Use `nlist' to get the set list from ftp.
 1.35 13-May-2000  lukem branches: 1.35.4;
remove netstart
 1.34 11-Apr-2000  pk Make FQDN optional (PR#9823).
 1.33 20-Feb-2000  mrg add an option to disable the -v flag to pax, that a SPARC framebuffer console user might very much like.
 1.32 04-Feb-2000  pk get_localdir: fix variable use in error message (PR#8913)
+ clarify expected input.
 1.31 07-Oct-1999  sjg install_sets(): If Default_sets_dir is set to a directory that contains
THESETS then set local_sets_dir to it so that install_from_mounted_fs()
gets called straight away.
install_from_mounted_fs(): if the passed dirname contains THESETS
don't bother/confuse the user by asking him where they are.
 1.30 28-Jun-1999  mrg branches: 1.30.2;
allow installing sets from already-mounted directory. fixes PR#6313
 1.29 27-Jun-1999  mrg miniroot changes:
install.sub:
- fix interface grovelling, ifmedia support, allow ifmedia and link
to have a "none" (-> "") answer (which lets you give nothing when
a default answer is given)
- allow installing more than one set at a time, including "all" as
a synonym for all remaining sets
- mount -o async when extracting sets
makeconf.awk:
- put default "libs" section at the end rather than the start, so
you can put other "libs" in before this list
- minor cleanup

mtree.conf:
- create /kern

sparc install.md:
- MDSETS are now "kern xbase xcomp xcontrib xfont xserver"
- use /kern & kernfs (replaces dmesg)
- replace grep & cut pipe lines with sed
- replace grep hackery with sed hackery
- grep and cut are no longer required! yay!
- deal with no /usr/bin/vi -- call disklabel -i
- in md_copy_kern() link the netbsd.GENERIC we got from the kern set,
rather than the miniroot kernel
sparc miniroot list:
- no more dmesg, cut or grep

sparc ramdisk changes:
Makefile:
- `ramdiskbin.conf' is now generated by makeconf.awk
- don't use libhack's opendir, it breaks
dot.profile:
- don't assume terminal is `sun'
- set EDITOR=ed
-
list:
- instbin -> ramdiskbin to make `makeconf.awk' work
- CRUNCHSPECIAL those special dirs
- add our LIBS as necessary

libhack changes:
- if NOLIBHACKOPENDIR is set, don't build opendir.o
 1.28 16-May-1999  is - make empty media options with non-empty other interface options work.
- use media options for the install program as well as for the future
installation.
 1.27 02-May-1999  is Fix an old typo (or rather, an old failure to fully adapt copied code's
prompt text to the new location): for ftp, we build a list and extract all
at once afterwards.
 1.26 26-Apr-1999  is Disable line editing for the ftp-scripts. Apparently, this is what makes
ftp installs work again.
 1.25 25-Jan-1999  garbled branches: 1.25.2;
1) Remove all vestiges of tar from src/distrib. Use pax and appropriate
commandlines for all tar operations. (work supplied by Matt Green)
2) Update arch/*/md.c to deal with new sysinst/run.c. Special case
anything that needs to do a redirect or a pipe.
3) #if 0 some unused code in target.c. This code will need to be updated,
or special cased with do_system.

Big thank you to Matt for all his work on this.
 1.24 12-Nov-1997  pk Previous sync with `etc/netstart' was not complete.
 1.23 10-Nov-1997  pk Check `auto_ifconfig' rc.conf variable, per Michael Hitch.
 1.22 09-Oct-1997  jtc branches: 1.22.2;
Fix tipo inherited from old version of TNF copyright template.
 1.21 25-Sep-1997  leo Refurbish the ftp_install function:
- it now tries to find out if there are files that look like install
sets in the remote directory.
- it is possible to change to another directory when there are no
things like install-sets around.
- you can even get a directory listing while trying to find the
correct directory (wow ;-)
- when the correct directory is found, you can tag the sets you want to
extract (like in all(?) other cases). The only difference is that the
get-install sequence is batched.

There is still plenty of room for improvement, but it's getting workable.
 1.20 09-Sep-1997  is More changes, while working on Amiga generic miniroot stuff:
- added method BOOTINSTALL, for an architecture to optionally install a
bootblock in the miniroot (this works for Amiga)
- added Amiga keymap directories
- removed the subdir selection from mount_local_disk() and mount_nfs(), and
the remains from mount_cdrom(), as all are handled now by the subdir
navigator in mount_from_installed_fs()
 1.19 08-Sep-1997  pk Do not present media type `manual' as a default choice.
 1.18 07-Sep-1997  is - add support for split sets (like: base12G.aa ... base12G.bq)
- add a subdirectory navigator for moving around in mounted CD-ROMs and
disk or network partitions.
Still a bit rough: should have explicit ".." support.
 1.17 01-Sep-1997  is Fix type (_fstype vs. _filesystem); and use partition "a" on CD as default.
 1.16 01-May-1997  pk * ftp setup: don't echo password
* network interface configuration:
- use new ifconfig(8) capabilities
- adapt to changed ifconfig(8) output
- use new config files (ifconfig.xxn)
 1.15 10-Oct-1996  gwr Merge the netbsd-1-2 branch back into the mainline.
 1.14 04-Jul-1996  leo Re-arrange install_disk() a bit. The code to mount a disk is pulled out
so it can also be used from other functions.
 1.13 27-Jun-1996  pk Deal with install sets in `install_from_mounted_fs()' differently.
The sets are passed around in a global variable.
Remember installed sets across loads from different media.
 1.12 26-Jun-1996  pk Do not present previously skipped sets as default again.
 1.11 26-Jun-1996  pk Pull up changes from release branch (rename `install_common_cdrom_nfs').
 1.10 25-Jun-1996  thorpej Fix a couple of typos.
 1.9 19-Jun-1996  pk Typos I thought I killed before.
 1.8 18-Jun-1996  pk Insert filesystem type in munge_fstab.
Don't `ifconfig down' an active network interface (bad for diskless setup);
but use it to cull default IP address and netmask.
 1.7 30-May-1996  leo * Edit VERSION into install.sub while copying instead of using a
VERSION file.
* Set the EDITOR variable in install.sub, so it will be set in both
upgrade & install.
* Make the checks on the presence of installation sets on the local
disks on upgrade more precise.
* Remove more&less from the list of standard binaries (I need more space!)
* When building an fstab from the users' fstab, drop lines starting with
a '#' and lines with an fstype that is not supported on the miniroot.
 1.6 27-May-1996  leo Sync atari miniroot & mi-miniroot
 1.5 21-May-1996  pk branches: 1.5.2;
Add a `install_disk' option (copied from Atari miniroot).
Make editor configurable (variable EDITOR, also usable by disklabel(8)).
Move disklabel(8) calls into `md_prep_label()'.
Eliminate two uses of `sed'.
Eliminate `awk' in upgrade.sh.
 1.4 21-May-1996  pk kill some more awks
 1.3 20-May-1996  pk There's life after awk. Replace awk scripts with shell function equivalents
(inspired by Leo's atari scripts).
 1.2 28-Feb-1996  thorpej Copyright assigned to The NetBSD Foundation.
 1.1 06-Jan-1996  pk MI install and upgrade scripts.
 1.5.2.8 02-Sep-1996  pk Allow additional link-layer directives to be entered in `configure_ifs()'.
 1.5.2.7 26-Aug-1996  gwr Replace do_mfs_mount with md_makerootwritable
(On some ports it is easier to remount root.)
 1.5.2.6 04-Jul-1996  leo Pull up from trunk.
 1.5.2.5 27-Jun-1996  pk Pull down from trunk:
> Deal with install sets in `install_from_mounted_fs()' differently.
 1.5.2.4 26-Jun-1996  pk Pull down from trunk:
> rev 1.12: do not present previously skipped sets as default again.
 1.5.2.3 25-Jun-1996  thorpej Update from trunk:

Fix a couple of typos.
 1.5.2.2 20-Jun-1996  pk Rename `install_common_cd_nfs' to `install_from_mounted_fs'
 1.5.2.1 20-Jun-1996  pk Sync with trunk.
 1.22.2.1 12-Nov-1997  pk Sync with trunk.
 1.25.2.5 04-Feb-2000  he Pull up revision 1.32 (requested by pk):
Display meaningful error message in get_localdir() and clarify
the expected input.
 1.25.2.4 02-Jul-1999  perry pullup 1.29->1.30 (mrg)
 1.25.2.3 01-Jul-1999  perry pullup 1.28->1.29 (mrg)
 1.25.2.2 18-Jun-1999  perry pullup 1.27->1.28 (is): media options on sh-miniroot install
 1.25.2.1 26-Apr-1999  perry pullup 1.25->1.26 (is): make ftp installs work again
 1.30.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.35.4.3 15-Nov-2000  tv Pullup 1.38 [is]:
Finish the old job of makeing this work with media-less interfaces, e.g.
bah or amiga if_es.
 1.35.4.2 30-Oct-2000  tv Pullup 1.37 [is]:
Fix typo, pointed out privately by Petri Koistinen.
 1.35.4.1 11-Sep-2000  is pullup from trunk, requested by is, granted by thorpej:
install.sub 1.36: make ftp install work with the changed ftp
 1.41.2.1 13-Jun-2002  lukem Pull up revision 1.43 (requested by bouyer in ticket #255):
If it exists, source /mnt/etc/defaults/rc.conf before /mnt/etc/rc.conf,
so that upgrade.sh gets all the parameters in its initialisation phase.
 1.44.22.1 18-May-2008  yamt sync with head.
 1.44.20.2 05-Oct-2008  mjf Sync with HEAD.
 1.44.20.1 02-Jun-2008  mjf Sync with HEAD.
 1.45.56.4 25-Jun-2021  martin Pull up following revision(s) (requested by tsutsui in ticket #1686):

distrib/sun3/miniroot/Makefile: revision 1.50
distrib/miniroot/install.sub: revision 1.61
distrib/miniroot/install.sub: revision 1.62 (patch)
distrib/sun2/miniroot/Makefile: revision 1.40

Replace RELEASE and VERSION strings proplery.
sun2 and sun3 don't use MI src/distrib/miniroot/list so this should
have been sync'ed with it.

http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/miniroot/list#rev1.36
> Use proper release version strings ("9.1" rather than "91") in banners.
>
> Also define and use "MACHINE" variable to describe port names
> (no uname(1) or sysctl(8) in miniroot binary list by default).

Should be pulled up to netbsd-9.

Remove netstat(1) calls to print resolver info on upgrade using miniroot.
netstat(1) was removed from miniroot 25 years ago.
http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/miniroot/list#rev1.5

The modules and rescue sets are also required on upgrade.
Should be pulled up to netbsd-9 and netbsd-8.
 1.45.56.3 05-Jun-2021  martin Pull up following revision(s) (requested by tsutsui in ticket #1681):

distrib/miniroot/install.sub: revision 1.60

Handle recent ifconfig(8) outputs in the miniroot installation script.

- Remove netmask slash notation for IP addresses,
which has been changed between NetBSD 7.x and 8.0:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/ifconfig/af_inet.c#rev1.24

- Ignore inet6 entries, which miniroot scripts don't support

Should be pulled up to netbsd-9 and netbsd-8.
 1.45.56.2 19-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1639):

distrib/miniroot/install.sub: revision 1.54 (patch)
distrib/miniroot/install.sub: revision 1.56 (patch)
distrib/miniroot/install.sub: revision 1.57 (patch)
distrib/miniroot/install.sub: revision 1.58 (patch)
distrib/miniroot/install.sub: revision 1.59 (patch)
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/miniroot/install.sub: revision 1.47 (patch)
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/miniroot/upgrade.sh: revision 1.23
distrib/miniroot/install.sh: revision 1.26
distrib/miniroot/upgrade.sh: revision 1.24
distrib/miniroot/install.sh: revision 1.27
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.50 (patch)
distrib/miniroot/install.sub: revision 1.51 (patch)
distrib/miniroot/install.sub: revision 1.52 (patch)
distrib/miniroot/install.sub: revision 1.53 (patch)

Remove uses of test ... -a ... and test ... -o ...
eXorcize and `` -> $()
Fix miniroot installation failure on network configuration. PR/54833
No particular comment in the PR.
Should be pulled up to netbsd-9.
Fix "[: SMALL test, no fallback usage" error on miniroot installation.
Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16
as suggested by kre@ in PR/54835.
Should be pulled up to netbsd-9.
The idiom
set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#
fails when $# turns out to be 10 (or any multiple), it would need
to be instead
while [ $# -ge 10 ]; do shift 9; done
but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).
We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.
NFCI.
The kernel and X sets should be specified in MD miniroot scripts.
Otherwise they are not listed at least on ftp installation.
The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html
Should be pulled up to netbsd-9 and netbsd-8.
Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.
Add missing md_get_partition_range() that causes installation failure.
Also reported by Martin Trusler on testing hp300 miniroot.
Should be pulled up to netbsd-9 and netbsd-8.
Explicitly sort set names fetched via ftp nlist.
Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.
Worth to pullup to netbsd-9 and netbsd-8.
Use proper release version strings ("9.1" rather than "91") in banners.
Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).
I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.
Worth to pullup to netbsd-9.
Inform the default installation directory in the official ftp server.
Fetch files via ftp using auto-fetching with URL per each binary set.
On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.
Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.
No particular comments on tech-install@ and port-hp300@.
Maybe should be pulled up to netbsd-9.
 1.45.56.1 23-Sep-2017  snj Pull up following revision(s) (requested by mlelstv in ticket #275):
distrib/amiga/miniroot/install.md: revision 1.28
distrib/miniroot/install.sub: revision 1.46
distrib/notes/amiga/install: revision 1.36
sys/arch/amiga/amiga/disksubr.c: revision 1.68
Support installing from a CD9660 formatted disk partition.
--
Fix check of AmigaDOS environment vector for nonstandard disklabel values.
Don't set a default fsize for CD9660 partitions, the CD9660 filesystem
interprets it as a session offset.
--
Ask for the boot command. It's necessary for some hardware
configurations and also to enable a serial console in the installed
system.
--
Mention the installer question for the boot command.
 1.46.4.3 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.46.4.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.46.4.1 10-Jun-2019  christos Sync with HEAD
 1.48.2.6 25-Jun-2021  martin Pull up following revision(s) (requested by tsutsui in ticket #1310):

distrib/sun3/miniroot/Makefile: revision 1.50
distrib/miniroot/install.sub: revision 1.61
distrib/miniroot/install.sub: revision 1.62
distrib/sun2/miniroot/Makefile: revision 1.40

Replace RELEASE and VERSION strings proplery.
sun2 and sun3 don't use MI src/distrib/miniroot/list so this should
have been sync'ed with it.

http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/miniroot/list#rev1.36
> Use proper release version strings ("9.1" rather than "91") in banners.
>
> Also define and use "MACHINE" variable to describe port names
> (no uname(1) or sysctl(8) in miniroot binary list by default).

Should be pulled up to netbsd-9.

Remove netstat(1) calls to print resolver info on upgrade using miniroot.
netstat(1) was removed from miniroot 25 years ago.
http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/miniroot/list#rev1.5

The modules and rescue sets are also required on upgrade.
Should be pulled up to netbsd-9 and netbsd-8.
 1.48.2.5 05-Jun-2021  martin Pull up following revision(s) (requested by tsutsui in ticket #1281):

distrib/miniroot/install.sub: revision 1.60

Handle recent ifconfig(8) outputs in the miniroot installation script.

- Remove netmask slash notation for IP addresses,
which has been changed between NetBSD 7.x and 8.0:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/ifconfig/af_inet.c#rev1.24

- Ignore inet6 entries, which miniroot scripts don't support

Should be pulled up to netbsd-9 and netbsd-8.
 1.48.2.4 14-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1151):

distrib/miniroot/install.sub: revision 1.54
distrib/miniroot/install.sub: revision 1.55
distrib/miniroot/install.sub: revision 1.56
distrib/miniroot/install.sub: revision 1.57
distrib/miniroot/install.sub: revision 1.58
distrib/miniroot/install.sub: revision 1.59
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.53

test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.

NFCI.

-

Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.

-

The kernel and X sets should be specified in MD miniroot scripts.

Otherwise they are not listed at least on ftp installation.

The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html

Should be pulled up to netbsd-9 and netbsd-8.

-

Appease awk warnings on suppressing dmesg timestamps.
awk: warning: escape sequence `\[' treated as plain `['
source line number 1
context is
{ h=$0; >>> gsub("^[ <<<
awk: warning: escape sequence `\]' treated as plain `]'
source line number 1

Should be pulled up to netbsd-9.

-

Explicitly sort set names fetched via ftp nlist.

Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.

Worth to pullup to netbsd-9 and netbsd-8.

-

Use proper release version strings ("9.1" rather than "91") in banners.

Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).

I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.

Worth to pullup to netbsd-9.

-

Inform the default installation directory in the official ftp server.

-

Fetch files via ftp using auto-fetching with URL per each binary set.

On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.

Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.

No particular comments on tech-install@ and port-hp300@.

Maybe should be pulled up to netbsd-9.

-

Add missing md_get_partition_range() that causes installation failure.

Also reported by Martin Trusler on testing hp300 miniroot.

Should be pulled up to netbsd-9 and netbsd-8.
 1.48.2.3 21-Jan-2020  martin Pull up following revision(s) (requested by kre in ticket #632):

distrib/miniroot/install.sub: revision 1.52

The idiom

set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#

fails when $# turns out to be 10 (or any multiple), it would need
to be instead

while [ $# -ge 10 ]; do shift 9; done

but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).

We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
 1.48.2.2 21-Jan-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #622):

distrib/miniroot/install.sub: revision 1.50
distrib/miniroot/install.sub: revision 1.51

Fix miniroot installation failure on network configuration. PR/54833

No particular comment in the PR.
Should be pulled up to netbsd-9.

Fix "[: SMALL test, no fallback usage" error on miniroot installation.

Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16

as suggested by kre@ in PR/54835.

Should be pulled up to netbsd-9.
 1.48.2.1 17-Nov-2019  martin Pull up following revision(s) (requested by maya in ticket #435):

distrib/sets/maketars: revision 1.90
usr.sbin/sysinst/arch/playstation2/md.h: revision 1.2
usr.sbin/sysinst/arch/sandpoint/md.h: revision 1.3
usr.sbin/sysinst/arch/evbppc/md.h: revision 1.3
usr.sbin/sysinst/arch/hpcarm/md.h: revision 1.3
usr.sbin/sysinst/arch/mvme68k/md.h: revision 1.3
distrib/sun3/MakeInstTape: revision 1.3
usr.sbin/sysinst/util.c: revision 1.33
distrib/sets/lists/rescue/mi: revision 1.1
distrib/sets/lists/base/rescue.sun2: file removal
usr.sbin/sysinst/arch/zaurus/md.h: revision 1.3
distrib/sets/lists/base/rescue.ad.m68k.shl: file removal
distrib/sets/regpkgset: revision 1.13
usr.sbin/sysinst/arch/i386/md.h: revision 1.7
distrib/sets/lists/base/rescue.sparc: file removal
distrib/notes/mvme68k/xfer: revision 1.19
distrib/sets/sets.subr: revision 1.187
distrib/common/bootimage/Makefile.bootimage: revision 1.22
usr.sbin/sysinst/msg.mi.de: revision 1.16
usr.sbin/sysinst/arch/atari/md.h: revision 1.3
rescue/Makefile: revision 1.38
distrib/sets/lists/base/rescue.macppc: file removal
usr.sbin/sysinst/arch/arc/md.h: revision 1.4
distrib/miniroot/install.sub: revision 1.49
usr.sbin/sysinst/arch/acorn32/md.h: revision 1.3
usr.sbin/sysinst/arch/x68k/md.h: revision 1.3
usr.sbin/sysinst/arch/hpcmips/md.h: revision 1.3
usr.sbin/sysinst/arch/bebox/md.h: revision 1.3
usr.sbin/sysinst/arch/hpcsh/md.h: revision 1.2
distrib/sets/lists/base/rescue.shark: file removal
usr.sbin/sysinst/arch/emips/md.h: revision 1.5
distrib/utils/embedded/mkimage: revision 1.70
usr.sbin/sysinst/arch/shark/md.h: revision 1.3
usr.sbin/sysinst/arch/pmax/md.h: revision 1.4
usr.sbin/sysinst/arch/amiga/md.h: revision 1.4
usr.sbin/sysinst/arch/hp300/md.h: revision 1.5
rescue/list.ldconfig: file removal
distrib/sets/lists/base/rescue.ad.m68k: file removal
usr.sbin/sysinst/arch/prep/md.h: revision 1.4
usr.sbin/sysinst/arch/cats/md.h: revision 1.4
usr.sbin/sysinst/arch/amd64/md.h: revision 1.7
usr.sbin/sysinst/msg.mi.es: revision 1.17
usr.sbin/sysinst/msg.mi.fr: revision 1.20
usr.sbin/sysinst/msg.mi.pl: revision 1.23
distrib/sets/lists/base/rescue.i386: file removal
usr.sbin/sysinst/arch/evbarm/md.h: revision 1.3
distrib/sets/lists/base/rescue.vax: file removal
distrib/amd64/uefi-installimage/Makefile.bootimage: revision 1.12
usr.sbin/sysinst/arch/evbmips/md.h: revision 1.3
distrib/sets/lists/base/rescue.mi: file removal
distrib/sets/README: revision 1.14
usr.sbin/sysinst/arch/sgimips/md.h: revision 1.4
distrib/sets/lists/base/rescue.sparc64: file removal
distrib/sets/lists/base/rescue.mi: revision 1.45
distrib/sets/lists/base/rescue.mi: revision 1.46
usr.sbin/sysinst/arch/ofppc/md.h: revision 1.4
usr.sbin/sysinst/arch/cobalt/md.h: revision 1.4
distrib/sets/lists/base/rescue.ad.arm: file removal
distrib/sets/lists/base/rescue.mac68k: file removal
usr.sbin/sysinst/defs.h: revision 1.45
usr.sbin/sysinst/arch/landisk/md.h: revision 1.2
distrib/notes/atari/xfer: revision 1.17
etc/Makefile: revision 1.441
usr.sbin/sysinst/msg.mi.en: revision 1.22
distrib/sun2/MakeInstTape: revision 1.2

Remove ldconfig from /rescue, and mark it MI obsolete.
- ldconfig in netbsd refers to a.out binaries only. We've been ELF-only
since NetBSD 2.0 or so, and having it in /rescue served little purpose
even before that, as /rescue is standalone.
- Using MI obsolete to avoid the need for MD set lists where ldconfig
is the sole entry

Mark /rescue/edlabel as MI-obsolete, so we can remove all remaining MD
rescue set list files.

Split out /rescue to its own set and adapt installers/images to add it.

This is meant to make updates safer: if something goes wrong with updating
base, we still have the old, standalone /rescue to recover from.
 1.59.2.1 31-May-2021  cjep sync with head
 1.36 05-Dec-2020  tsutsui Use proper release version strings ("9.1" rather than "91") in banners.

Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).

I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.

Worth to pullup to netbsd-9.
 1.35 19-Jun-2011  tsutsui branches: 1.35.36; 1.35.46;
Fix indent.
 1.34 19-Jun-2011  tsutsui Remove unnecessary gnu/usr.bin path from SRCDIRS.
 1.33 19-Jun-2011  tsutsui Use src/distrib/utils/x_gzip in all install ramdisks/miniroots for now
since installation file systems might be flooded by -llzma.
 1.32 14-Jan-2011  tsutsui branches: 1.32.4;
Adjust file lists for recent move:
usr/sbin/chown -> sbin/chown
usr/bin/chgrp -> bin/chgrp
 1.31 05-Feb-2010  roy Use the rescue terminfo.db in our images instead of termcap.
 1.30 02-Jan-2010  tsutsui Remove -ledit and -lmagic from LIBS.

No program requires -ledit in crunched SMALLPROG case, and
miniroot doesn't have /usr/bin/file which requires -lmagic.
(sparc had it but it was removed in distrib/sparc/miniroot/list rev 1.29)
 1.29 20-Sep-2009  abs ${NETBSDSRCDIR}/distrib/common/protocols => ${DISTRIBDIR}/common/protocols
${NETBSDSRCDIR}/distrib/common/services => ${DISTRIBDIR}/common/services
 1.28 18-Sep-2009  abs Of the arious list files 28 said
PROG usr/bin/gzip usr/bin/gzcat usr/bin/gunzip
while 14 picked
PROG usr/bin/gzip usr/bin/gunzip usr/bin/gzcat

Make them all choose the former. No functional change.
 1.27 29-Apr-2009  tsutsui Fix indent on common/protocols changes.
 1.26 25-Jan-2009  abs branches: 1.26.2;
Use the cutdown distrib/common/services and distrib/common/protocols
rather than the full fat etc versions
 1.25 06-May-2008  dyoung Add -lprop to the LIBS line so that ifconfig will link.
 1.24 10-May-2007  dogcow branches: 1.24.12; 1.24.14;
Since /etc/services has gotten rather large, use a minimal one for install
kernels. (mount_nfs is notably the only binary that doesn't gracefully deal
with the lack of an /etc/services file, it appears.)
 1.23 27-Dec-2003  martin More crunchgen lists needing -lz now for new gzip.
Noticed by Markus W Kilbinger.
 1.22 31-Mar-2003  tron Link crunched binary with "-lmagic" required for file(1).
 1.21 29-May-2002  lukem - fix permissions on generated install.sub
- COPY install & upgrade with 555 (not 755) perms
- sort some entries
 1.20 07-May-2002  lukem branches: 1.20.2;
enable (default) libhack for all miniroots.
for atari, also add gethost.o (as before)
 1.19 26-Apr-2002  lukem replace _SRC_TOP_ with NETBSDSRCDIR, since the latter is the "public" version
 1.18 13-Apr-2002  lukem consistency cleanup
 1.17 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.16 28-Aug-2000  leo Oops, link x_route to route...
 1.15 27-Aug-2000  leo Use x_ed and x_route to save space on the miniroot.
 1.14 07-Jun-2000  thorpej branches: 1.14.2;
Need /etc/netconfig.
 1.13 23-Nov-1999  simonb Remove update from the miniroot lists.
 1.12 18-Oct-1999  pk Use utils/x_ping (so we don't have to include libipsec in the miniroot).
 1.11 25-Mar-1999  leo branches: 1.11.4;
- Move the pwd.db & spwd.db files into the list-files of the ports who need
them.
- Use x_dd & x_ifconfig.
 1.10 25-Mar-1999  pk Add `gnu/usr.bin/grep' as a source directory.
 1.9 31-Jan-1999  mrg use pax for tar.
 1.8 13-Nov-1997  leo Save +/- 70Kb on miniroot.....
- Use init_s
- Link etc/pwd.db etc/spwd.db
 1.7 30-May-1996  leo branches: 1.7.2;
* Edit VERSION into install.sub while copying instead of using a
VERSION file.
* Set the EDITOR variable in install.sub, so it will be set in both
upgrade & install.
* Make the checks on the presence of installation sets on the local
disks on upgrade more precise.
* Remove more&less from the list of standard binaries (I need more space!)
* When building an fstab from the users' fstab, drop lines starting with
a '#' and lines with an fstype that is not supported on the miniroot.
 1.6 27-May-1996  leo Forgotten in previous commit.
 1.5 27-May-1996  leo Sync atari miniroot & mi-miniroot
 1.4 04-May-1996  pk branches: 1.4.4;
Change format of `LINK' and `SYMLINK' lines to accept multiple program
names. As before the first program name (field 3) is the one "with source".
The remaining entries specify just filesystem links.

Additional keywords processed by makeconf.awk:
ARGVLINK: used to specify additional link directives for crunchgen(1); no
filesystem links appear for these.
SRCDIRS: crunchgen `srcdirs' directive
CRUNCHSPECIAL: crunchgen `special' directive
 1.3 06-Jan-1996  pk MI install and upgrade scripts.
 1.2 19-Dec-1995  pk Add separate list of `argv[0]' aliases.
Add some more links.
 1.1 18-Dec-1995  pk Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.4.4.1 20-Jun-1996  pk Sync with trunk.
 1.7.2.1 18-Nov-1997  mellon Pull rev 1.8 up from trunk (leo)
 1.11.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.14.2.1 29-Aug-2000  leo Pull up revision 1.16 (requested by leo, approved by thorpej).
Log:
Use x_ed and x_route to save space on the miniroot.
 1.20.2.1 29-May-2002  lukem Pull up revision 1.21 (requested by lukem):
- fix permissions on generated install.sub
- COPY install & upgrade with 555 (not 755) perms
- sort some entries
 1.24.14.1 18-May-2008  yamt sync with head.
 1.24.12.2 05-Oct-2008  mjf Sync with HEAD.
 1.24.12.1 02-Jun-2008  mjf Sync with HEAD.
 1.26.2.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.32.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.35.46.1 14-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1151):

distrib/miniroot/install.sub: revision 1.54
distrib/miniroot/install.sub: revision 1.55
distrib/miniroot/install.sub: revision 1.56
distrib/miniroot/install.sub: revision 1.57
distrib/miniroot/install.sub: revision 1.58
distrib/miniroot/install.sub: revision 1.59
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.53

test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.

NFCI.

-

Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.

-

The kernel and X sets should be specified in MD miniroot scripts.

Otherwise they are not listed at least on ftp installation.

The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html

Should be pulled up to netbsd-9 and netbsd-8.

-

Appease awk warnings on suppressing dmesg timestamps.
awk: warning: escape sequence `\[' treated as plain `['
source line number 1
context is
{ h=$0; >>> gsub("^[ <<<
awk: warning: escape sequence `\]' treated as plain `]'
source line number 1

Should be pulled up to netbsd-9.

-

Explicitly sort set names fetched via ftp nlist.

Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.

Worth to pullup to netbsd-9 and netbsd-8.

-

Use proper release version strings ("9.1" rather than "91") in banners.

Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).

I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.

Worth to pullup to netbsd-9.

-

Inform the default installation directory in the official ftp server.

-

Fetch files via ftp using auto-fetching with URL per each binary set.

On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.

Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.

No particular comments on tech-install@ and port-hp300@.

Maybe should be pulled up to netbsd-9.

-

Add missing md_get_partition_range() that causes installation failure.

Also reported by Martin Trusler on testing hp300 miniroot.

Should be pulled up to netbsd-9 and netbsd-8.
 1.35.36.1 19-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1639):

distrib/miniroot/install.sub: revision 1.54 (patch)
distrib/miniroot/install.sub: revision 1.56 (patch)
distrib/miniroot/install.sub: revision 1.57 (patch)
distrib/miniroot/install.sub: revision 1.58 (patch)
distrib/miniroot/install.sub: revision 1.59 (patch)
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/miniroot/install.sub: revision 1.47 (patch)
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/miniroot/upgrade.sh: revision 1.23
distrib/miniroot/install.sh: revision 1.26
distrib/miniroot/upgrade.sh: revision 1.24
distrib/miniroot/install.sh: revision 1.27
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.50 (patch)
distrib/miniroot/install.sub: revision 1.51 (patch)
distrib/miniroot/install.sub: revision 1.52 (patch)
distrib/miniroot/install.sub: revision 1.53 (patch)

Remove uses of test ... -a ... and test ... -o ...
eXorcize and `` -> $()
Fix miniroot installation failure on network configuration. PR/54833
No particular comment in the PR.
Should be pulled up to netbsd-9.
Fix "[: SMALL test, no fallback usage" error on miniroot installation.
Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16
as suggested by kre@ in PR/54835.
Should be pulled up to netbsd-9.
The idiom
set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#
fails when $# turns out to be 10 (or any multiple), it would need
to be instead
while [ $# -ge 10 ]; do shift 9; done
but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).
We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.
NFCI.
The kernel and X sets should be specified in MD miniroot scripts.
Otherwise they are not listed at least on ftp installation.
The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html
Should be pulled up to netbsd-9 and netbsd-8.
Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.
Add missing md_get_partition_range() that causes installation failure.
Also reported by Martin Trusler on testing hp300 miniroot.
Should be pulled up to netbsd-9 and netbsd-8.
Explicitly sort set names fetched via ftp nlist.
Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.
Worth to pullup to netbsd-9 and netbsd-8.
Use proper release version strings ("9.1" rather than "91") in banners.
Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).
I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.
Worth to pullup to netbsd-9.
Inform the default installation directory in the official ftp server.
Fetch files via ftp using auto-fetching with URL per each binary set.
On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.
Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.
No particular comments on tech-install@ and port-hp300@.
Maybe should be pulled up to netbsd-9.
 1.4 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.3 23-Mar-1999  leo Allow for a 'LIBS' directive in the 'list'-files.
 1.2 04-May-1996  pk Change format of `LINK' and `SYMLINK' lines to accept multiple program
names. As before the first program name (field 3) is the one "with source".
The remaining entries specify just filesystem links.

Additional keywords processed by makeconf.awk:
ARGVLINK: used to specify additional link directives for crunchgen(1); no
filesystem links appear for these.
SRCDIRS: crunchgen `srcdirs' directive
CRUNCHSPECIAL: crunchgen `special' directive
 1.1 18-Dec-1995  pk Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.9 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.8 24-Nov-2000  scw Add -lintl
 1.7 18-Oct-1999  pk Add `libbz2'.
 1.6 27-Jun-1999  mrg branches: 1.6.2;
miniroot changes:
install.sub:
- fix interface grovelling, ifmedia support, allow ifmedia and link
to have a "none" (-> "") answer (which lets you give nothing when
a default answer is given)
- allow installing more than one set at a time, including "all" as
a synonym for all remaining sets
- mount -o async when extracting sets
makeconf.awk:
- put default "libs" section at the end rather than the start, so
you can put other "libs" in before this list
- minor cleanup

mtree.conf:
- create /kern

sparc install.md:
- MDSETS are now "kern xbase xcomp xcontrib xfont xserver"
- use /kern & kernfs (replaces dmesg)
- replace grep & cut pipe lines with sed
- replace grep hackery with sed hackery
- grep and cut are no longer required! yay!
- deal with no /usr/bin/vi -- call disklabel -i
- in md_copy_kern() link the netbsd.GENERIC we got from the kern set,
rather than the miniroot kernel
sparc miniroot list:
- no more dmesg, cut or grep

sparc ramdisk changes:
Makefile:
- `ramdiskbin.conf' is now generated by makeconf.awk
- don't use libhack's opendir, it breaks
dot.profile:
- don't assume terminal is `sun'
- set EDITOR=ed
-
list:
- instbin -> ramdiskbin to make `makeconf.awk' work
- CRUNCHSPECIAL those special dirs
- add our LIBS as necessary

libhack changes:
- if NOLIBHACKOPENDIR is set, don't build opendir.o
 1.5 23-Mar-1999  leo branches: 1.5.2;
Allow for a 'LIBS' directive in the 'list'-files.
 1.4 01-Dec-1996  pk Add librmt.
 1.3 04-May-1996  pk Change format of `LINK' and `SYMLINK' lines to accept multiple program
names. As before the first program name (field 3) is the one "with source".
The remaining entries specify just filesystem links.

Additional keywords processed by makeconf.awk:
ARGVLINK: used to specify additional link directives for crunchgen(1); no
filesystem links appear for these.
SRCDIRS: crunchgen `srcdirs' directive
CRUNCHSPECIAL: crunchgen `special' directive
 1.2 19-Dec-1995  pk Add separate list of `argv[0]' aliases.
Add some more links.
 1.1 18-Dec-1995  pk Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.5.2.1 01-Jul-1999  perry pullup 1.5->1.6 (mrg)
 1.6.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.8 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.7 20-Oct-2000  pk Add `/dist', which is used by sysinst.
 1.6 04-Jul-1999  mrg branches: 1.6.8;
- back out previous for amiga/miniroot/list because:
- sparc now creates /kern in the 'list' file like the amiga, atari,
mvme68k and pmax ports, and:
- remove /kern from miniroot/mtree.conf
 1.5 27-Jun-1999  mrg miniroot changes:
install.sub:
- fix interface grovelling, ifmedia support, allow ifmedia and link
to have a "none" (-> "") answer (which lets you give nothing when
a default answer is given)
- allow installing more than one set at a time, including "all" as
a synonym for all remaining sets
- mount -o async when extracting sets
makeconf.awk:
- put default "libs" section at the end rather than the start, so
you can put other "libs" in before this list
- minor cleanup

mtree.conf:
- create /kern

sparc install.md:
- MDSETS are now "kern xbase xcomp xcontrib xfont xserver"
- use /kern & kernfs (replaces dmesg)
- replace grep & cut pipe lines with sed
- replace grep hackery with sed hackery
- grep and cut are no longer required! yay!
- deal with no /usr/bin/vi -- call disklabel -i
- in md_copy_kern() link the netbsd.GENERIC we got from the kern set,
rather than the miniroot kernel
sparc miniroot list:
- no more dmesg, cut or grep

sparc ramdisk changes:
Makefile:
- `ramdiskbin.conf' is now generated by makeconf.awk
- don't use libhack's opendir, it breaks
dot.profile:
- don't assume terminal is `sun'
- set EDITOR=ed
-
list:
- instbin -> ramdiskbin to make `makeconf.awk' work
- CRUNCHSPECIAL those special dirs
- add our LIBS as necessary

libhack changes:
- if NOLIBHACKOPENDIR is set, don't build opendir.o
 1.4 09-Sep-1997  is branches: 1.4.4;
More changes, while working on Amiga generic miniroot stuff:
- added method BOOTINSTALL, for an architecture to optionally install a
bootblock in the miniroot (this works for Amiga)
- added Amiga keymap directories
- removed the subdir selection from mount_local_disk() and mount_nfs(), and
the remains from mount_cdrom(), as all are handled now by the subdir
navigator in mount_from_installed_fs()
 1.3 15-Jul-1996  leo keymap -> keymaps
 1.2 23-Jun-1996  leo Add /usr/share/keymap/atari
 1.1 18-Dec-1995  pk branches: 1.1.4;
Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.1.4.2 15-Jul-1996  leo Pull up from trunk; keymap -> keymaps
 1.1.4.1 23-Jun-1996  leo Pull up the addition of the /usr/share/keymap/atari directory.
 1.4.4.2 06-Jul-1999  perry pullup 1.5->1.6 (mrg)
 1.4.4.1 01-Jul-1999  perry pullup 1.4->1.5 (mrg)
 1.6.8.1 21-Oct-2000  tv Pullup 1.7 [pk]:
Add `/dist', which is used by sysinst.
 1.1 06-Mar-2002  lukem branches: 1.1.34;
Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.1.34.1 05-Oct-2008  mjf Sync with HEAD.
 1.2 06-Mar-2002  lukem Commit work-in-progess rototill of distrib/miniroot and associated machine
dependent files:

- Use infrastructure from distrib/common to build file system images with
crunchgen-ed programs from a list file.

- Non root ("UNPRIVED") builds from a read-only source tree are possible,
as makefs(8) replaces vnconfig(8)/vnd use, devices are generated using
common/makedev2spec.awk, etc.

- Cross builds should be possible, except that some ports need cross-compile
host tool versions of installboot and any appropriate host disk labelling
tools.
XXX: pmax, sparc and vax need fixing for this!

- This code has NOT YET BEEN TESTED on most of the ports.
It should work, but it is extremely likely that the file system
parameters may need tweaking to get things to fit.
See MAKEFS_FLAGS in sparc/miniroot/Makefile.inc for an example.
If assistance is required, please ask!
 1.1 18-Dec-1995  pk Attempt at a MI miniroot build environment, converted from hp300 version.
Note:
- `list' was more-or-less arbitrarily split into MD & MI parts.
- the `crunch' configuration file is generated from `list's
with the `makeconf' awk-script.
- Makefile assumes there's a `../<arch>/miniroot' directory with
MI configuration files.
 1.24 04-Apr-2019  christos eXorcize and `` -> $()
 1.23 16-Sep-2018  kre Remove uses of test ... -a ... and test ... -o ...
 1.22 30-Apr-2008  martin branches: 1.22.56; 1.22.62; 1.22.64;
Convert TNF licenses to new 2 clause variant
 1.21 18-Jan-2006  is branches: 1.21.20; 1.21.22;
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.20 17-Nov-2000  pk branches: 1.20.8; 1.20.12;
Allow for an optional MD upgrade preparation routine.
 1.19 02-Nov-1999  sjg branches: 1.19.6;
make sure . install.sub etc work regardless of PATH
 1.18 13-Apr-1999  pk branches: 1.18.2;
Identify binaries that were moved or removed between 1.3 and 1.4
 1.17 12-Apr-1999  is Actually use MDSETS, so that ports can install the x sets if useful
 1.16 24-Jan-1998  veego branches: 1.16.2;
Back out the ipnat static change.
 1.15 23-Jan-1998  veego Add new RELOCATED_FILES_14 because ipnat moved from /usr/sbin to /sbin.
 1.14 12-Nov-1997  pk Fix typo.
 1.13 03-Nov-1997  pk Add `nfsd' and `nfsiod' to the list of relocated files.
 1.12 09-Oct-1997  jtc branches: 1.12.2;
Fix tipo inherited from old version of TNF copyright template.
 1.11 05-Aug-1997  pk Add mountd to thelist of moving files.
 1.10 22-Jun-1997  pk Don't bother with initializing `RELOCATED_FILES_13' to the empty string.
 1.9 20-Jun-1997  pk Add a list of files (tagged with release number) that have shifted
locations since the last release. These files are removed if the
upgrade sets installed them in the new locations.
 1.8 09-Oct-1996  jtc merge in 1.2 branch
 1.7 25-Aug-1996  pk Pull up fstab changes from 1.2 branch.
 1.6 27-Jun-1996  pk Deal with install sets in `install_from_mounted_fs()' differently.
The sets are passed around in a global variable.
Remember installed sets across loads from different media.
 1.5 30-May-1996  leo * Edit VERSION into install.sub while copying instead of using a
VERSION file.
* Set the EDITOR variable in install.sub, so it will be set in both
upgrade & install.
* Make the checks on the presence of installation sets on the local
disks on upgrade more precise.
* Remove more&less from the list of standard binaries (I need more space!)
* When building an fstab from the users' fstab, drop lines starting with
a '#' and lines with an fstype that is not supported on the miniroot.
 1.4 27-May-1996  pk Two small optimizations: no need for sed to convert fstab.
 1.3 27-May-1996  leo Sync atari miniroot & mi-miniroot
 1.2 28-Feb-1996  thorpej branches: 1.2.4;
Copyright assigned to The NetBSD Foundation.
 1.1 06-Jan-1996  pk MI install and upgrade scripts.
 1.2.4.5 27-Aug-1996  gwr Initialize THESETS just after dotting in install.sub
 1.2.4.4 26-Aug-1996  gwr Replace do_mfs_mount with md_makerootwritable
(On some ports it is easier to remount root.)
 1.2.4.3 25-Aug-1996  pk Clear up some fstab confusion.
 1.2.4.2 27-Jun-1996  pk Pull down from trunk:
> Deal with install sets in `install_from_mounted_fs()' differently.
 1.2.4.1 20-Jun-1996  pk Sync with trunk.
 1.12.2.2 12-Nov-1997  pk Sync with trunc.
 1.12.2.1 12-Nov-1997  pk Sync with trunk.
 1.16.2.2 13-Apr-1999  pk Pullup rev 1.18 from trunk.
 1.16.2.1 13-Apr-1999  is Pullup from -current:
actually use the $MDSETS variable, so that individual ports can choose to
(e.g.) install the x sets if they want to.
 1.18.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.19.6.1 28-Nov-2000  tv Pullup 1.20 [pk]:
Allow for an optional MD upgrade preparation routine.
[releng: does not affect any already built miniroots; dependent on new MD
supplied option]
 1.20.12.1 27-Jan-2006  tron Pull up following revision(s) (requested by is in ticket #1130):
distrib/miniroot/install.sh: revision 1.23
distrib/miniroot/upgrade.sh: revision 1.21
distrib/amiga/miniroot/install.md: revision 1.25
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.20.8.1 27-Jan-2006  tron Pull up following revision(s) (requested by is in ticket #1130):
distrib/miniroot/install.sh: revision 1.23
distrib/miniroot/upgrade.sh: revision 1.21
distrib/amiga/miniroot/install.md: revision 1.25
Instead of abusing the function md_prep_label(), create a new (optional)
md_view_labels() and a variable to mark its availability, so checking of
the available disklabels can be done before the root device is chosen.
Suggested by Martin Bertelsmann.
 1.21.22.1 18-May-2008  yamt sync with head.
 1.21.20.2 05-Oct-2008  mjf Sync with HEAD.
 1.21.20.1 02-Jun-2008  mjf Sync with HEAD.
 1.22.64.1 10-Jun-2019  christos Sync with HEAD
 1.22.62.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.22.56.1 19-Dec-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1639):

distrib/miniroot/install.sub: revision 1.54 (patch)
distrib/miniroot/install.sub: revision 1.56 (patch)
distrib/miniroot/install.sub: revision 1.57 (patch)
distrib/miniroot/install.sub: revision 1.58 (patch)
distrib/miniroot/install.sub: revision 1.59 (patch)
distrib/hp300/miniroot/install.md: revision 1.20
distrib/miniroot/list: revision 1.36
distrib/mvme68k/miniroot/install.md: revision 1.9
distrib/mvme68k/miniroot/install.md: revision 1.10
distrib/sun3/miniroot/install.md: revision 1.6
distrib/miniroot/install.sub: revision 1.47 (patch)
distrib/sun3/miniroot/install.md: revision 1.7
distrib/sun2/miniroot/install.md: revision 1.6
distrib/sun2/miniroot/install.md: revision 1.7
distrib/amiga/miniroot/install.md: revision 1.31
distrib/mac68k/miniroot/install.md: revision 1.6
distrib/mac68k/miniroot/install.md: revision 1.7
distrib/mac68k/miniroot/install.md: revision 1.8
distrib/miniroot/upgrade.sh: revision 1.23
distrib/miniroot/install.sh: revision 1.26
distrib/miniroot/upgrade.sh: revision 1.24
distrib/miniroot/install.sh: revision 1.27
distrib/hp300/miniroot/install.md: revision 1.18
distrib/hp300/miniroot/install.md: revision 1.19
distrib/miniroot/install.sub: revision 1.50 (patch)
distrib/miniroot/install.sub: revision 1.51 (patch)
distrib/miniroot/install.sub: revision 1.52 (patch)
distrib/miniroot/install.sub: revision 1.53 (patch)

Remove uses of test ... -a ... and test ... -o ...
eXorcize and `` -> $()
Fix miniroot installation failure on network configuration. PR/54833
No particular comment in the PR.
Should be pulled up to netbsd-9.
Fix "[: SMALL test, no fallback usage" error on miniroot installation.
Avoid and replace use of '-a', '(' and ')' operatos marked obsolescent
by modern POSIX.1-2017:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16
as suggested by kre@ in PR/54835.
Should be pulled up to netbsd-9.
The idiom
set $whatever
while [ $# - gt 10 ]; do shift 10; done
eval echo \$$#
fails when $# turns out to be 10 (or any multiple), it would need
to be instead
while [ $# -ge 10 ]; do shift 9; done
but there hasn't been a shell that cannot handle ${10} (etc) correctly
in a very long time, so let's just use that instead (properly quoted,
in case IFS happens to contain a digit for some bizarre reason).
We should also "set -f" / "set +f" (or better, restore the prev setting of -f)
around the "set $whatever" part, but if that was ever going to cause a problem
here, it would have already, so leave that for now.
test ! -n "$foo" is just a quaint way of saying test -z "$foo"
and test ! -z "$foo" is really just test -n "$foo" so let's just
use the simple (and more obvious) forms.
NFCI.
The kernel and X sets should be specified in MD miniroot scripts.
Otherwise they are not listed at least on ftp installation.
The problem was reported by Martin Trusler on port-hp300@:
https://mail-index.netbsd.org/port-hp300/2020/11/21/msg000174.html
Should be pulled up to netbsd-9 and netbsd-8.
Add modules set for default sets on miniroot installation.
Should be pulled up to netbsd-9 and netbsd-8.
Add missing md_get_partition_range() that causes installation failure.
Also reported by Martin Trusler on testing hp300 miniroot.
Should be pulled up to netbsd-9 and netbsd-8.
Explicitly sort set names fetched via ftp nlist.
Several binary sets are stored as symbolic links on releases and
it seems some ftpd doesn't sort nlist outputs by name in such case.
Worth to pullup to netbsd-9 and netbsd-8.
Use proper release version strings ("9.1" rather than "91") in banners.
Also define and use "MACHINE" variable to describe port names
(no uname(1) or sysctl(8) in miniroot binary list by default).
I guess the short format like "91" by ${DISTRIBREV} was used only
for split sets for floppies in 1990's releases.
Worth to pullup to netbsd-9.
Inform the default installation directory in the official ftp server.
Fetch files via ftp using auto-fetching with URL per each binary set.
On slower machines, it takes more than five minutes to get a large
set binary and it could cause timeout of ftp control session, so
getting multiple binary sets in a single ftp session always fails.
Briefly tested on HP 9000/425e with 9.1 tree and ftp.netbsd.org binaries.
No particular comments on tech-install@ and port-hp300@.
Maybe should be pulled up to netbsd-9.

RSS XML Feed