[Initscripts-ng-commits] r785 - in /branches/insserv-1.11.9/debian: changelog patches/81_empty_stop_start_defaults_no_override.patch run-testsuite

kelmo-guest at users.alioth.debian.org kelmo-guest at users.alioth.debian.org
Fri Jul 18 17:30:48 UTC 2008


Author: kelmo-guest
Date: Fri Jul 18 17:30:47 2008
New Revision: 785

URL: http://svn.debian.org/wsvn/initscripts-ng/?sc=1&rev=785
Log:
  Additionally, warn and override when links exist defaults are empty.
* Add test_removing_start() and test_removing_stop() to run-testsuite,
  showing that insserv will preserve existing links when script header is
  unproperly replaced with empty Default-Start or Default-Stop.
* Make test_adding_start() case a more realistic example.

Modified:
    branches/insserv-1.11.9/debian/changelog
    branches/insserv-1.11.9/debian/patches/81_empty_stop_start_defaults_no_override.patch
    branches/insserv-1.11.9/debian/run-testsuite

Modified: branches/insserv-1.11.9/debian/changelog
URL: http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.9/debian/changelog?rev=785&op=diff
==============================================================================
--- branches/insserv-1.11.9/debian/changelog (original)
+++ branches/insserv-1.11.9/debian/changelog Fri Jul 18 17:30:47 2008
@@ -36,6 +36,7 @@
     thereafter, completely wrecking the test suite.
   * Add 81_empty_stop_start_defaults_no_override.patch to avoid treating
     script with empty Default-{Start,Stop} LSB keywords as non-LSB scripts.
+    Additionally, warn and override when links exist defaults are empty.
   * Refresh 31_debian_conf.patch.
   * Add an extra call to list_rclinks() in test_newbug_keepoldorder()
     function of run-testsuite, after introducing the bug.
@@ -47,8 +48,12 @@
   * Make test_bogus_facility() run-testsuite function non-fatal.
   * Mark tests that are currently failing with a comment in run-
     testsuite.
-
- -- Kel Modderman <kel at otaku42.de>  Tue, 15 Jul 2008 13:14:51 +1000
+  * Add test_removing_start() and test_removing_stop() to run-testsuite,
+    showing that insserv will preserve existing links when script header is
+    unproperly replaced with empty Default-Start or Default-Stop.
+  * Make test_adding_start() case a more realistic example.
+
+ -- Kel Modderman <kel at otaku42.de>  Sat, 19 Jul 2008 03:29:09 +1000
 
 insserv (1.11.0-9) unstable; urgency=low
 

Modified: branches/insserv-1.11.9/debian/patches/81_empty_stop_start_defaults_no_override.patch
URL: http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.9/debian/patches/81_empty_stop_start_defaults_no_override.patch?rev=785&op=diff
==============================================================================
--- branches/insserv-1.11.9/debian/patches/81_empty_stop_start_defaults_no_override.patch (original)
+++ branches/insserv-1.11.9/debian/patches/81_empty_stop_start_defaults_no_override.patch Fri Jul 18 17:30:47 2008
@@ -1,23 +1,67 @@
 When Default-Start or Default-Stop value is empty, do not treat script
 as if it does not have LSB information.
+
+Additionally, if Default-Start or Default-Stop value is empty and links
+exist for service, print a warning and override the defaults.
+
+Need to resend to upstream, this patch was previously sent but has since been
+improved.
 ---
 --- a/insserv.c
 +++ b/insserv.c
-@@ -2789,7 +2789,7 @@
+@@ -2788,7 +2788,7 @@
+ 			     * needed for enabling interactive services at first time.
  			     */
  			    service->start->lvl = deflvls;
- 
--		    } else {
-+		    } else if (script_inf.default_start != empty) {
+-
++#ifdef SUSE
+ 		    } else {
  			/*
  			 * Could be a none LSB script, use info from current link scheme.
- 			 * If not found use default.
-@@ -2834,7 +2834,7 @@
+@@ -2796,9 +2796,17 @@
+ 			 */
+ 			if (service->attr.flags & SERV_ENABLED)
+ 			    script_inf.default_start = lvl2str(service->start->lvl);
+-#ifdef SUSE
+ 			else
+ 			    script_inf.default_start = xstrdup(DEFAULT_START_LVL);
++#else
++		    } else if (script_inf.default_start && script_inf.default_start == empty) {
++			if ((service->attr.flags & SERV_ENABLED) && service->start->lvl) {
++			    if (!defaults && !del && chkfor(d->d_name, argv, argc) && !(argr[curr_argc])) {
++				warn("Warning, current start runlevel(s) (%s) of script `%s' overwrites defaults (%s).\n",
++				     lvl2str(service->start->lvl), d->d_name, "empty");
++				script_inf.default_start = lvl2str(service->start->lvl);
++			    }
++			}
+ #endif
+ 		    }
+ #ifdef SUSE
+@@ -2833,7 +2841,7 @@
+ 			     * needed for enabling interactive services at first time.
  			     */
  			    service->stopp->lvl = deflvlk;
- 
--		    } else {
-+		    } else if (script_inf.default_stop != empty) {
+-
++#ifdef SUSE
+ 		    } else {
  			/*
  			 * Could be a none LSB script, use info from current link scheme.
- 			 * If not found use default.
+@@ -2841,9 +2849,17 @@
+ 			 */
+ 			if (service->attr.flags & SERV_ENABLED)
+ 			    script_inf.default_stop = lvl2str(service->stopp->lvl);
+-#ifdef SUSE
+ 			else
+ 			    script_inf.default_stop = xstrdup(DEFAULT_STOP_LVL);
++#else
++		    } else if (script_inf.default_stop && script_inf.default_stop == empty) {
++			if ((service->attr.flags & SERV_ENABLED) && service->stopp->lvl) {
++			    if (!defaults && !del && chkfor(d->d_name, argv, argc) && !(argr[curr_argc])) {
++				warn("Warning, current stop runlevel(s) (%s) of script `%s' overwrites defaults (%s).\n",
++				     lvl2str(service->stopp->lvl), d->d_name, "empty");
++				script_inf.default_stop = lvl2str(service->stopp->lvl);
++			    }
++			}
+ #endif
+ 		    }
+ 		}

Modified: branches/insserv-1.11.9/debian/run-testsuite
URL: http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.9/debian/run-testsuite?rev=785&op=diff
==============================================================================
--- branches/insserv-1.11.9/debian/run-testsuite (original)
+++ branches/insserv-1.11.9/debian/run-testsuite Fri Jul 18 17:30:47 2008
@@ -978,14 +978,14 @@
 # Required-Start:
 # Required-Stop:
 # Default-Start:
-# Default-Stop:      0
-### END INIT INFO
-EOF
-
-check_script_present 0 addstartscript
+# Default-Stop:      1
+### END INIT INFO
+EOF
+
+check_script_present 1 addstartscript
 
 check_script_not_present S addstartscript
-check_script_not_present 1 addstartscript
+check_script_not_present 0 addstartscript
 check_script_not_present 2 addstartscript
 check_script_not_present 3 addstartscript
 check_script_not_present 4 addstartscript
@@ -999,8 +999,8 @@
 # Provides:          addstartscript
 # Required-Start:
 # Required-Stop:
-# Default-Start:     1
-# Default-Stop:      0
+# Default-Start:     2 3 4 5
+# Default-Stop:      1
 ### END INIT INFO
 EOF
 set -C
@@ -1010,15 +1010,65 @@
 
 list_rclinks
 
-check_script_present 0 addstartscript
+check_script_present 1 addstartscript
 
 check_script_not_present S addstartscript
-check_script_not_present 1 addstartscript
+check_script_not_present 0 addstartscript
 check_script_not_present 2 addstartscript
 check_script_not_present 3 addstartscript
 check_script_not_present 4 addstartscript
 check_script_not_present 5 addstartscript
 check_script_not_present 6 addstartscript
+}
+##########################################################################
+test_removing_start() {
+echo
+echo "info: Make sure that removing start levels do not change an existing installation."
+echo
+
+rm -rf $initddir
+mkdir -p $initddir
+
+insertscript remstartscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides:          remstartscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+### END INIT INFO
+EOF
+
+check_script_present 0 remstartscript
+check_script_present 1 remstartscript
+check_script_present 2 remstartscript
+check_script_present 3 remstartscript
+check_script_present 4 remstartscript
+check_script_present 5 remstartscript
+check_script_present 6 remstartscript
+
+# Then change runlevel in existing script
+set +C
+addscript remstartscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides:          remstartscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop:      0 1 6
+### END INIT INFO
+EOF
+set -C
+
+# Update script after changing the header
+insserv_reg remstartscript || true
+
+list_rclinks
+
+check_script_present 2 remstartscript
+check_script_present 3 remstartscript
+check_script_present 4 remstartscript
+check_script_present 5 remstartscript
 }
 ##########################################################################
 test_adding_stop() {
@@ -1074,6 +1124,56 @@
 check_script_not_present 4 addstopscript
 check_script_not_present 5 addstopscript
 check_script_not_present 6 addstopscript
+}
+##########################################################################
+test_removing_stop() {
+echo
+echo "info: Make sure that removing stop levels do not change an existing installation."
+echo
+
+rm -rf $initddir
+mkdir -p $initddir
+
+insertscript remstopscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides:          remstopscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:     S
+# Default-Stop:      0 6
+### END INIT INFO
+EOF
+
+check_script_present S remstopscript
+check_script_present 0 remstopscript
+check_script_present 6 remstopscript
+
+check_script_not_present 1 remstopscript
+check_script_not_present 2 remstopscript
+check_script_not_present 3 remstopscript
+check_script_not_present 4 remstopscript
+check_script_not_present 5 remstopscript
+
+# Then change runlevel in existing script
+set +C
+addscript remstopscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides:          remstopscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:     S
+# Default-Stop:
+### END INIT INFO
+EOF
+set -C
+
+# Update script after changing the header
+insserv_reg remstopscript || true
+
+list_rclinks
+
+check_script_present 0 remstopscript
+check_script_present 6 remstopscript
 }
 ##########################################################################
 test_duplicate_provides() {
@@ -1337,7 +1437,9 @@
 test_start_before
 test_stop_after
 test_adding_start
+test_removing_start
 test_adding_stop
+test_removing_stop
 test_duplicate_provides
 test_bogus_facility		# 1 non-fatal test failing
 test_insserv_conf_d




More information about the Initscripts-ng-commits mailing list