From e193a85e5b512da47f706a2cb5642e67795999e1 Mon Sep 17 00:00:00 2001 From: Oliver Eikemeier Date: Wed, 28 Jul 2004 00:09:19 +0000 Subject: [PATCH] back out the localkg changes until things have settled. Discussed with: mtm --- UPDATING | 13 ---- etc/rc.d/localpkg | 155 +++++++--------------------------------------- sys/sys/param.h | 2 +- 3 files changed, 22 insertions(+), 148 deletions(-) diff --git a/UPDATING b/UPDATING index 3847ffffdb42..afb3bbd23a02 100644 --- a/UPDATING +++ b/UPDATING @@ -23,19 +23,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 5.x IS SLOW: modules implementing network interfaces must be recompiled as a result. -20040724: - The rc.d/localpkg script now "does the right thing" with respect - to ports rc.d scripts. The most disruptive change is that scripts - ending in *.sh are sourced in the same shell as rc.d/localpkg (as - opposed to a subshell) and may cause the script to end prematurely - if a script calls exit. Some broken scripts may not recognize the - 'fast' prefix to a command. The first problem can be fixed by simply - renaming the script so that it doesn't have a '.sh' ending. Another - temporary work-arround is to completely remove the 'PROVIDE' line - from the script. If you notice a broken ports rc.d script please - notify the maintainer. Legacy scripts should not be affected. - __FreeBSD_version bumped to 502124. - 20040716: The sound device drivers are renamed. `sound' is always required, while `snd_*' should be configured accordingly to your hardware. diff --git a/etc/rc.d/localpkg b/etc/rc.d/localpkg index 257743e991fe..add28fe00860 100644 --- a/etc/rc.d/localpkg +++ b/etc/rc.d/localpkg @@ -11,120 +11,31 @@ . /etc/rc.subr name="localpkg" -_arg1="$1" - -# script_is_rcd script -# Checks that script is an rc.d style script. -# Returns 0 if it is, otherwise, it returns 1. -# -script_is_rcd() -{ - local _s match - _s="$1" - - [ -z "$_s" ] && return 1 - match=`grep -I -c -m1 '^# PROVIDE:' "$_s" 2> /dev/null` - [ "$match" = "1" ] && return 0 - return 1 -} - -# cooked_scriptlist type -# Uses values from rc.conf(5) to prepare a list of scripts to -# execute. It assumes the global variable script_name_sep and IFS are set -# properly. If type is set to the string "rcd" the list will contain only -# rc.d style scripts and they will be ordered according to thier -# dependencies. If it is set to "rcOG" then it will contain -# only old style ports startup scripts. The list is echoed on stdout. -# -cooked_scriptlist() -{ - local _type slist fpattern skip - - slist="" - _type="$1" - case "$_type" in - rcd) - fpattern="*" - ;; - rcOG) - fpattern="*.sh" - ;; - *) - return - ;; - esac - for dir in ${local_startup}; do - if [ -d "${dir}" ]; then - for script in ${dir}/${fpattern}; do - - # Weed out scripts that don't belong in the - # category that we are preparing. - # - if [ "$_type" = "rcd" ]; then - case "$script" in - *.sample|*-dist) - continue;; - esac - script_is_rcd "$script" || continue - else - script_is_rcd "$script" && continue - fi - - slist="${slist}${script_name_sep}${script}" - done - fi - done - - # If this is an rc.d list put the scripts in the right order. - # - if [ "$_type" = "rcd" ]; then - skip="-s nostart" - [ `/sbin/sysctl -n security.jail.jailed` -eq 1 ] && \ - skip="$skip -s nojail" - - # Some scripts do not define a FreeBSD keyword, so we can't - # specify it in a keep list. - slist=`/sbin/rcorder ${skip} ${slist} 2>/dev/null` - - # Substitute the newlines used by rcorder(8) with the - # script separator. - slist=`echo $slist | /usr/bin/tr "\n" "$script_name_sep"` - fi - - echo -n $slist -} +start_cmd="pkg_start" +stop_cmd="pkg_stop" pkg_start() { - local slist - + # For each dir in $local_startup, search for init scripts matching *.sh + # case ${local_startup} in [Nn][Oo] | '') ;; *) + echo -n 'Local package initialization:' slist="" if [ -z "${script_name_sep}" ]; then script_name_sep=" " fi - - # Do rc.d style scripts. - # - script_save_sep="$IFS" - IFS="${script_name_sep}" - slist=`cooked_scriptlist rcd` - debug "localpkg rc.d scripts: $slist" - for script in ${slist}; do - run_rc_script "$script" "$_arg1" + for dir in ${local_startup}; do + if [ -d "${dir}" ]; then + for script in ${dir}/*.sh; do + slist="${slist}${script_name_sep}${script}" + done + fi done - IFS="${script_save_sep}" - - # Do old-style ports startup scripts. - # - echo -n 'Local package initialization:' script_save_sep="$IFS" IFS="${script_name_sep}" - slist=`cooked_scriptlist rcOG` - debug "localpkg rcOG scripts: $slist" for script in ${slist}; do if [ -x "${script}" ]; then (set -T @@ -142,24 +53,26 @@ pkg_start() pkg_stop() { - local slist + echo -n 'Shutting down daemon processes:' # For each dir in $local_startup, search for init scripts matching *.sh case ${local_startup} in [Nn][Oo] | '') ;; *) + slist="" if [ -z "${script_name_sep}" ]; then script_name_sep=" " fi - - # Do old-style scripts - # + for dir in ${local_startup}; do + if [ -d "${dir}" ]; then + for script in ${dir}/*.sh; do + slist="${slist}${script_name_sep}${script}" + done + fi + done script_save_sep="$IFS" IFS="${script_name_sep}" - slist=`cooked_scriptlist rcOG` - debug "localpkg rcOG scripts: $slist" - echo -n 'Shutting down local packages:' for script in `reverse_list ${slist}`; do if [ -x "${script}" ]; then (set -T @@ -169,35 +82,9 @@ pkg_stop() done IFS="${script_save_sep}" echo '.' - - # Do rc.d style scripts - # - script_save_sep="$IFS" - IFS="${script_name_sep}" - slist=`cooked_scriptlist rcd` - debug "localpkg rc.d scripts: $slist" - for script in `reverse_list ${slist}`; do - run_rc_script "$script" $_arg1 - done ;; esac } load_rc_config $name - -# We can't use the normal rc.subr(8) start/stop plumbing -# because we call run_rc_script(), which unsets all the -# global variables that said plumbing needs. -# -case "$1" in -start|faststart) - pkg_start - ;; -stop|faststop) - pkg_stop - ;; -restart|fastrestart) - pkg_stop - pkg_start - ;; -esac +run_rc_command "$1" diff --git a/sys/sys/param.h b/sys/sys/param.h index 3575f1cada31..2a0a77eb60af 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -55,7 +55,7 @@ * scheme is: <0 if release branch, otherwise 1>xx */ #undef __FreeBSD_version -#define __FreeBSD_version 502124 /* Master, propagated to newvers */ +#define __FreeBSD_version 502123 /* Master, propagated to newvers */ #ifndef LOCORE #include