The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3693d9140e05aba9942232df13468f51a6cde136

commit 3693d9140e05aba9942232df13468f51a6cde136
Author:     Mina Galić <[email protected]>
AuthorDate: 2023-03-15 02:52:15 +0000
Commit:     Warner Losh <[email protected]>
CommitDate: 2023-03-15 02:52:15 +0000

    rc: ignore .pkgsave files
    
    The local parts of rc already skip .sample files; we add .pkgsave to the
    list, and add logic for base.
    
    Thanks to @RhodiumToad for getting this started.
    
    Differential Revision: https://reviews.freebsd.org/D27962
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/662
---
 libexec/rc/rc      |  9 ++++++---
 libexec/rc/rc.subr | 15 ++++++++++++++-
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/libexec/rc/rc b/libexec/rc/rc
index f021251bbd81..8ae048b67c1b 100644
--- a/libexec/rc/rc
+++ b/libexec/rc/rc
@@ -94,7 +94,9 @@ fi
 # Do a first pass to get everything up to $early_late_divider so that
 # we can do a second pass that includes $local_startup directories
 #
-files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* 2>/dev/null`
+unset system_rc
+find_system_scripts
+files=`rcorder ${skip} ${skip_firstboot} ${system_rc} 2>/dev/null`
 
 _rc_elem_done=' '
 for _rc_elem in ${files}; do
@@ -106,7 +108,7 @@ for _rc_elem in ${files}; do
        esac
 done
 
-unset files local_rc
+unset files local_rc system_rc
 
 # Now that disks are mounted, for each dir in $local_startup
 # search for init scripts that use the new rc.d semantics.
@@ -122,7 +124,8 @@ if [ -e ${firstboot_sentinel} ]; then
        skip_firstboot=""
 fi
 
-files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} 2>/dev/null`
+find_system_scripts
+files=`rcorder ${skip} ${skip_firstboot} ${system_rc} ${local_rc} 2>/dev/null`
 for _rc_elem in ${files}; do
        case "$_rc_elem_done" in
        *" $_rc_elem "*)        continue ;;
diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr
index e21504248749..1c01f1cfd071 100644
--- a/libexec/rc/rc.subr
+++ b/libexec/rc/rc.subr
@@ -2083,7 +2083,7 @@ find_local_scripts_new() {
                if [ -d "${dir}" ]; then
                        for file in `grep -l '^# PROVIDE:' ${dir}/* 
2>/dev/null`; do
                                case "$file" in
-                               *.sample) ;;
+                               *.sample|*.pkgsave) ;;
                                *)      if [ -x "$file" ]; then
                                                local_rc="${local_rc} ${file}"
                                        fi
@@ -2094,6 +2094,19 @@ find_local_scripts_new() {
        done
 }
 
+find_system_scripts() {
+       system_rc=''
+       for file in /etc/rc.d/*; do
+               case "${file##*/}" in
+               *.pkgsave) ;;
+               *)      if [ -x "$file" ]; then
+                               system_rc="${system_rc} ${file}"
+                       fi
+                       ;;
+               esac
+       done
+}
+
 # check_required_{before|after} command
 #      Check for things required by the command before and after its precmd,
 #      respectively.  The two separate functions are needed because some

Reply via email to