add support for setting mount options of async, noatime, nodevmtine and softdep.
add noauto if 'mount' was not requested.
add entry for /proc (with noauto)
Display fragment size and block size on the correct line.
Ask for numeric fragment size (not # fragments/block).
Show one unused partition when editing disklabel.
Zap all fields when a partition is made FS_UNSED.
Tweak some menu texts (a space at the end of a line causes a line break!).
Simplify code that displays output from commands - curses is requied to not DTRT
with CR/LF sequences, I need to revert libcurses :-(
to sysinst's main process when a command is run (eg the file list from pax).
Since the pty is in 'packet' mode, the boundaries of the pty reads would
need to be preserved in order to detect control records.
If the pipe became full the main process could treat part of a filename
as a control byte and then save the rest of the name as tty settings.
The effect of 'random' tty settings is unknown, but could be responsible
for core dumps while displaying the full file list from pax.
I suspect that the extra pipe was originally used because select wasn't
supported on the master side of a pty (not checked).
Also cd out of /targetroot if set installation is killed with ^C ^C.
Add menu for all disklabel partition types.
Default 'partition type' and 'sizechoice' menus to current value.
Change 'standard/use existing' to 'set sizes/use existing'.
Remove one or two fixed length strings (use malloc etc instead).
Change a lot of 'if (strlen(x) == 0)' to 'if (x[0] === 0)'.
Let user skip network config if any non-loopback interfaces are UP.
Always free() buffer allocated by collect(), could be a massive leak.
Whitespace changes.
whenever a command was run. Maybe a screen redraw is required if the
command is able to corrupt the screen - but the refresh was happening
much too early to fix that, and it would be better to collect/discard
the commands output anyway.
When asking for bios geometry, ask for sectors per track and heads
then calculate cylinders from volume size.
Write MBR_MAGIC into correct place when writing extened partitions.
Make disk_desc[], disk and numdisks local to get_disks (instead of globals).
Fix a little fallout from the above.
A bit of mbr.c was missing #ifdef BOOTSEL...
Remove the abberant call to endwin() in i386 md_update() that caused
echo to be left on. I've not removed the endwin from the other ports.
Only run MAKEDEV if etc.tgz installed.
Some extra sanity checks on an 'rm -rf %s'.
program/tool from "FOO" to "TOOL_FOO". The new variables are:
TOOL_ASN1_COMPILE TOOL_CAP_MKDB TOOL_CAT TOOL_CKSUM TOOL_COMPILE_ET
TOOL_CONFIG TOOL_CRUNCHGEN TOOL_CTAGS TOOL_DB TOOL_EQN TOOL_FGEN
TOOL_GENCAT TOOL_GROFF TOOL_HEXDUMP TOOL_INDXBIB TOOL_INSTALLBOOT
TOOL_INSTALL_INFO TOOL_M4 TOOL_MAKEFS TOOL_MAKEINFO TOOL_MAKEWHATIS
TOOL_MDSETIMAGE TOOL_MENUC TOOL_MKCSMAPPER TOOL_MKESDB
TOOL_MKLOCALE TOOL_MKMAGIC TOOL_MKTEMP TOOL_MSGC TOOL_MTREE
TOOL_PAX TOOL_PIC TOOL_PREPMKBOOTIMAGE TOOL_PWD_MKDB TOOL_REFER
TOOL_ROFF_ASCII TOOL_ROFF_DVI TOOL_ROFF_HTML TOOL_ROFF_PS
TOOL_ROFF_RAW TOOL_RPCGEN TOOL_SOELIM TOOL_SUNLABEL TOOL_TBL
TOOL_UUDECODE TOOL_VGRIND TOOL_ZIC
For each, provide default in <bsd.sys.mk> of the form:
TOOL_FOO?= foo
and for the ${USETOOLS}=="yes" case in <bsd.own.mk>, provide override:
TOOL_FOO= ${TOOLDIR}/bin/${_TOOL_PREFIX}foo
Document all of these in bsd.README.
This cleans up a chunk of potential (and actual) namespace collision
within our build infrastructure, as well as improves consistency in
the share/mk documentation and provision of appropriate defaults for
each of these variables.
This should stop the i386 code splatting all over the start of the disk
during upgrade.
Upgrade will still use partition 'a' (unless you loop through the install
far enough first!)
Actually this needs changing to use /usr/sbin/etcupdate (or similar),
but the script needs fixing first.
Might be better for sysinst to have its own copy, gets to be fun to run
because you have to pull the commands from the target FS.
Use swapctl() for all swap operations.
Remove md_upgrade_mbrtype() from arc and hpcmips ports.
(I haven't finalised what I'm doing about type 165 partitions, but the
existing code is borked.)
Remove pointless 'len' parameter from read_mbr and write_mbr.
Make read_mbr initialise mbr if it can't be read (delete MD code).
Make i386 always ask at least once about the bootcode.
Move LIB_MOVE and LIB_COUNT from md.h to aout2elf.c
Make same function return useful defaults if it can't find an answer.
Make all ports default to the useful defaults if bios geometry is unknown.
Move some messages to mbr set from mi set.
Fix i386 code that selects which bios disk, simplify interface to menus.
Remove now unnecessary global data from many ports.
4 times system memory). (These numbers need moving to a different menu still.)
Remove size of /usr from default sized / when /usr created.
Shrink swap in order to get partitions into available disk space.
Add twice ram size to / if space available (for system dumps).
Keep all but last partition cylinder aligned when the disk isn't a whole
number of cylinders.
Hack to give free space to a default sized /usr
Add extra space to / and /usr is any of the X sets are included.
Remove last reference to 'layoutkind == 3'.
I've also made the set selection happen first. This lets me test it!
also measn the selected sets could be used in the disk partition code.
Removed the 'with X' disk layout question (now too late to change the sets).
Fix menu size so that user defined partitions can be allocated instead of
standard ones (need > MAXPARTITIONS entries in menu).
Make partition size info static - with a view to including it in a longer loop.
Update lists for ramdisks to include the required files.
NB /usr/sbin/installboot is not used by sysinst and is only in ramdisk-big.
Increase the sizes of the ramdisks, there is plenty of space in all the
boot floppies except rescue-tiny (2k) and boot-tiny (32k).
This does change the default size of /, but I'm going to rewrite
make_bsd_partitions next to make it less user-hostile.
(I'm not sure adding in 2 * ram is actually useful! Especially size it left
/usr with a -ve size on all my test installs with 256MB ram and 1GB disk)
Make bootsel code delete menu names if the partition is unused.
Use raw device for cdrom access (I've a kernel that doesn't report an invalid
label so /dev/cd0a dosn't work).
- make_bsd_partitions() correctly handles PART_BOOT
- use bsddisklabel.c for pc532 and sgimips (this does change the default size
for the root partition, as it no longer includes twice the memory size).
- Change way ports define disk_names[] (in particular this lets me add "vnd"
for testing), also ensures all ports pick up new drivers.
I've make most ports use the default "wd", "sd", "ld".
Abort the search for disk units if we get ENOENT (ie no /dev entry) to
speed up the case where we are looking for a disk type that isn't
supprted by the port.
(it is possible we could just check all possible disks on all ports...)
left consistently.
Make the i386 install let you partition a disk beyond the CHS limit if the
system bios doesn't support LBA reads (the checks aren't ideal yet).
Make the bsddislabel.c code usable onan i386 system - but don't use it yet.
Use strlcpy() instead of strncpy() where appropriate.
Recode timezone menu so that it can stand opt_name being const char *
and to only do the fts_read() once (there were problems if the filestore
changed between passes!).
Remove stupid check for errno != 0 which probably stopped the tomezone
menu being displayed!
those ports which are using the now-modified MI mbr.c file which
was recently modified to use those messages. French translation
courtesy of Manuel Bouyer, Polish copied from the i386 port.
(I hope the edits for the ports I can't build are right!)
i386/amd64 pick up a minor change to the md_read_bootcode which
might preseve the bootselect config.
on a set, instead of hardcoding the number of parts in sysinst (which gets
out of sync easily). The fdlast field of the distinfo struct has been
removed.
This solution is a bit simplistic but... anybody using the floppy
installation method will have to split sets himself (as we don't provide
them), so he will know which is the last one. Also, he will be able to
use whatever chunk size he wants.
Closes PR install/5050. Ok'ed by fvdl.
Use /var/db/obsolete instead of /etc/obsolete
etc/Makefile:
Create separate target "install-obsolete-files" to populate
/var/db/obsolete, instead of using "install-etc-files".
Makefile:
Add do-obsolete target, to run "cd etc && make install-obsolete-files",
and add this to BUILDTARGETS.
This moves the "obsolete files" creation from "distribution" to "build".
Per discussion with Andrew Brown.
- filenames in obsolete sets start with "./" not "/" (i changed that a
while ago, and forgot to update this)
- only call target_prefix() once, not for each filename parsed...
- look for obsolete lists in /etc/obsolete/%s instead of /dist/%s_obsolete
- md_set_no_x() was turning off the "misc" and "text" sets and
not turning off the "xcomp" and "xmisc" sets.
- now that a kernel is installed as "/netbsd" by default, do not
try to symlink (!) from /netbsd-GENERIC (which does not exist)
to /netbsd.
also:
- instead of printing the 3 kernel sets all as "Kernel : ",
now use "Kernel : ", "Kernel(SCSI3): " and "Kernel(SUN4U): "
- add a note to md.c and the menus.md.* files to keep these lists
in sync (so that the first problem above does not occur again.)
missing:
- a way to force that one and only one of the 3 kernel sets are
selected. at least the default install works now.
-e arg to abort after first error.
This means the extract process doesn't spew seemingly-endless
"No space left on device" if the destination partition fills.
Handle the "use existing" option for partitions (but keep d as the
boot partition).
While I'm there use get_real_geom() instead of custom code to get the
existing disklabel.
and prompt the user for a new archive.
(No idea if this solves the infamous "sysinst random coredump" problem,
but it's worth a shot, and makes sense in any case)
There's two variables added to Makefile.crunch:
SMALLPROG If 1, add SMALLPROG=1 to CRUNCHENV. [default: 1]
This can be used by various Makefiles to
determine if a `small' version of the program
is required.
SMALLPROG_INET6 If 1 and SMALLPROG == 1, add SMALLPROG_INET6=1
to CRUNCHENV. [default: 0]
This can be used by various Makefiles to
determine if the `small' version has INET6
support enabled.
Only enable SMALLPROG_INET6 for programs on the ramdisks that have INET6 in
the appropriate kernel, and cleanup INET6 setting.
(Note: this means that sysinst won't get INET6 support if the kernel
it's running on doesn't have it).
This change saves a fair bit of space on various install images
(including i386 ramdisk-{ps2,small,tiny}) that didn't have INET6 in
the kernel but were unconditionally getting INET6 support in their tools.
sparc64 does NOT appear to need a slicemap, so comment out that entire
section.
XXX: this program needs a rewrite. the argument handling is suboptimal.
that's coming next...
the new disk. This requires my previous changes to sgivol to get a non-
interactive mode. While here, change the way sysinst invoked sgivol (it
called system(), now it uses run_prog()) so we don't mess up the logging
and scripting contexts.
mount point was specified, make sure to add only a commented-out entry for
that partition when building fstab. This prevents sysinst from generating
an otherwise invalid fstab. This problem was originally reported by
Frederick Bruckman and fixed by Bob Nestor.
mount point was specified, make sure to add only a commented-out entry for
that partition when building fstab. This prevents sysinst from generating
an otherwise invalid fstab. Bob Nestor found this while working on sysinst
for mac68k, and as such there is no corresponding PR.
partition handling has been completely rewritten to address serious data
loss issues with Mac HFS partitions, and the a.out -> ELF upgrade has
been addressed. From Bob Nestor; part 1 of 2 of a fix for PR 15528.