ports/sysutils/firstboot-freebsd-update/files/firstboot_freebsd_update.in
Colin Percival 39126a2d97 sysutils/firstboot-freebsd-update: HTTP_TIMEOUT=5
If a system with firstboot_freebsd_update_enable="YES" boots without
access to the FreeBSD Update mirrors (e.g. an EC2 instance which has
an EC2 security group settings which block outbound HTTP) the boot
will hang until it times out.  The default timeout of 120 seconds is
suboptimal.

Run freebsd-update with a timeout of 5 seconds, and bump the package
version to 1.4 to reflect this change.

Reported by:	mgrooms@shrew.net
PR:		276720
Sponsored by:	https://www.patreon.com/cperciva
2024-01-30 13:26:23 -08:00

55 lines
1.4 KiB
Bash

#!/bin/sh
# KEYWORD: firstboot
# PROVIDE: firstboot_freebsd_update
# REQUIRE: syslogd NETWORKING
# BEFORE: LOGIN
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf (in the disk
# image, since this only runs on the first boot) to enable this:
#
# firstboot_freebsd_update_enable="YES"
#
# By default this script will only run on *-BETA*, *-RC*, and *-RELEASE*
# systems, since those are the only ones for which updates are provided by
# the FreeBSD project; to run freebsd-update anyway (e.g., on a custom
# release for which you are providing your own update bits), set:
#
# firstboot_freebsd_update_nonstandard="YES"
. /etc/rc.subr
: ${firstboot_freebsd_update_enable:="NO"}
: ${firstboot_freebsd_update_nonstandard:="NO"}
name="firstboot_freebsd_update"
rcvar=firstboot_freebsd_update_enable
start_cmd="firstboot_freebsd_update_run | logger -s -t 'freebsd-update'"
stop_cmd=":"
firstboot_freebsd_update_run()
{
if ! checkyesno firstboot_freebsd_update_nonstandard; then
case "`uname -r`" in
*-BETA* | *-RC* | *-RELEASE*)
;;
*)
echo "Firstboot freebsd-update disabled on `uname -r`"
return 0
;;
esac
fi
env HTTP_TIMEOUT=5 freebsd-update --not-running-from-cron fetch
if [ -e /var/db/freebsd-update/`echo / | sha256`-install ]; then
freebsd-update install
echo "Requesting reboot after installing updates."
touch ${firstboot_sentinel}-reboot
fi
}
load_rc_config $name
run_rc_command "$1"