CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2025/10/27 10:30:24
Modified files:
usr.sbin/syspatch: syspatch.sh
Log message:
Before installing files, the syspatch ksh script checkfs() tries to
check if the partitions have enough space by looking at the original
files. It converts via stat(1) calling stat(2) st_dev to a device
name by calling devname(), and then compares this against the mounted
filesystems, to see how much space is left. This conversion via
devname() went very wrong because dev_mkdb(8) does not maintain a 1:1
relationship between dev_t and name! The addition of rootdisk and
rrootdisk which are aliased to sd0a or wd0a (to ease the future
crossover to 52-partition support) breaks the 1:1 relationship.
This commit rewrites the file checks to use statfs(2) via df(1) so
that the same device-names are compared.
ok bluhm mlarkin beck afresh1 robert
This is part of 7.8 errata 001. On systems where /usr is not a seperate
partition, but is part of /, syspatch will fail to install the errata and
the following manual intervention will be required:
sed -e 's/.checkfs/#checkfs/g' /usr/sbin/syspatch > /root/syspatch
ksh /root/syspatch
syspatch # re-run new syspatch command as instructed
rm /root/syspatch
dev_mkdb
Most people use seperate /usr partition and won't need this because
syspatch(8) will just work.