diff --git a/sysutils/firstboot-pkgs/Makefile b/sysutils/firstboot-pkgs/Makefile index 1909688efffe..911e7c82cf61 100644 --- a/sysutils/firstboot-pkgs/Makefile +++ b/sysutils/firstboot-pkgs/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= firstboot-pkgs -PORTVERSION= 1.0 +PORTVERSION= 1.1 CATEGORIES= sysutils MASTER_SITES= # none DISTFILES= # none diff --git a/sysutils/firstboot-pkgs/files/firstboot_pkgs.in b/sysutils/firstboot-pkgs/files/firstboot_pkgs.in index ba3b9ffbfcef..e44e8e3e680d 100644 --- a/sysutils/firstboot-pkgs/files/firstboot_pkgs.in +++ b/sysutils/firstboot-pkgs/files/firstboot_pkgs.in @@ -27,6 +27,9 @@ stop_cmd=":" firstboot_pkgs_run() { + # Count rc.d scripts + nscriptso=`ls /usr/local/etc/rc.d | wc -l` + # Bootstrap if necessary if ! pkg -N 2>/dev/null; then env ASSUME_ALWAYS_YES=YES pkg bootstrap @@ -36,6 +39,15 @@ firstboot_pkgs_run() if ! [ -z "$firstboot_pkgs_list" ]; then env ASSUME_ALWAYS_YES=YES pkg install $firstboot_pkgs_list fi + + # Count rc.d scripts again + nscriptsn=`ls /usr/local/etc/rc.d | wc -l` + + # If we have more scripts, request a reboot + if [ $nscriptso -ne $nscriptso ]; then + echo "Requesting reboot after installing packages with rc.d scripts." + touch ${firstboot_sentinel}-reboot + fi } load_rc_config $name diff --git a/sysutils/firstboot-pkgs/pkg-descr b/sysutils/firstboot-pkgs/pkg-descr index 0dfc37e7ddf2..9beeed9d360b 100644 --- a/sysutils/firstboot-pkgs/pkg-descr +++ b/sysutils/firstboot-pkgs/pkg-descr @@ -1,6 +1,7 @@ When the system first boots, install the pkg(8) tools (if not already installed) and packages listed in the $firstboot_pkgs_list rc.conf -variable. +variable. If the installed packages added new rc.d scripts, request +a reboot. Obviously, this port is not useful after a system is already running; it is intended to be included as part of the installation or disk image building