summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Bogatov <KAction@debian.org>2019-09-28 01:02:45 +0100
committerDmitry Bogatov <KAction@debian.org>2019-09-28 01:02:45 +0100
commit9c12011470967bd9cac312edef6cc47b5d8cb08f (patch)
tree931ae3bbb3eb8fb2e3ea1c726827f46f759e5c74
parent4d8459ef873ca4f90ded1a6bab58a53f0ee87e6c (diff)
parenta52fe3acad3f20bfbf9d98c18882cfd3c51b2e38 (diff)
insserv (1.21.0-1) unstable; urgency=medium
* New upstream release [dgit import unpatched insserv 1.21.0-1]
-rw-r--r--debian/.gitlab-ci.yml5
-rw-r--r--debian/README.Debian25
-rw-r--r--debian/bts-lefttoreport8
-rw-r--r--debian/changelog1488
-rwxr-xr-xdebian/check-archive-initd-scripts275
-rwxr-xr-xdebian/check-initd-order425
-rw-r--r--debian/control36
-rw-r--r--debian/copyright20
-rw-r--r--debian/dirs3
-rw-r--r--debian/docs1
-rw-r--r--debian/insserv.bash-completion36
-rw-r--r--debian/install4
-rwxr-xr-xdebian/make-testsuite41
-rw-r--r--debian/patches/0004-Fix-spurious-warnings-about-unknown-virtual-dependen.patch26
-rw-r--r--debian/patches/0005-Fix-spelling-error-in-manpage.patch21
-rw-r--r--debian/patches/110_portmap.patch26
-rw-r--r--debian/patches/11_debian_conf.patch65
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/warn_in_ignore_mode.patch24
-rw-r--r--debian/po/POTFILES.in1
-rw-r--r--debian/po/cs.po55
-rw-r--r--debian/po/da.po57
-rw-r--r--debian/po/de.po62
-rw-r--r--debian/po/es.po85
-rw-r--r--debian/po/fi.po55
-rw-r--r--debian/po/fr.po61
-rw-r--r--debian/po/gl.po56
-rw-r--r--debian/po/it.po56
-rw-r--r--debian/po/ja.po53
-rw-r--r--debian/po/nb.po59
-rw-r--r--debian/po/nl.po59
-rw-r--r--debian/po/pt.po57
-rw-r--r--debian/po/ru.po61
-rw-r--r--debian/po/sk.po58
-rw-r--r--debian/po/sv.po57
-rw-r--r--debian/po/templates.pot45
-rw-r--r--debian/po/vi.po55
-rw-r--r--debian/postinst11
-rw-r--r--debian/postrm10
-rwxr-xr-xdebian/rules13
-rwxr-xr-xdebian/run-testsuite2451
-rwxr-xr-xdebian/seq-changes54
-rw-r--r--debian/source/format1
-rw-r--r--debian/tests/control1
-rwxr-xr-xdebian/tests/upstream14
-rw-r--r--debian/upstream/signing-key.asc30
-rw-r--r--debian/watch6
47 files changed, 6117 insertions, 0 deletions
diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml
new file mode 100644
index 0000000..cfb8c84
--- /dev/null
+++ b/debian/.gitlab-ci.yml
@@ -0,0 +1,5 @@
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+variables:
+ RELEASE: experimental
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..59ab05e
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,25 @@
+Dependency based boot sequencing is the default in Debian. The
+insserv program is used by sysv-rc to order init.d scripts based on
+dependencies declared in the LSB information within the scripts
+themselves.
+
+To monitor the boot sequence, the bootchart2 project is a good choice and
+Debian packages are available.
+
+Background info on alternative boot systems in Debian is available
+from:
+<URL:http://alioth.debian.org/docman/view.php/30730/38/debconf2-initscripts-bkg.pdf>
+and more recently:
+<URL:https://lists.debian.org/debian-devel/2012/03/msg00452.html>
+
+Information on the LSB initscript comment convention is available from
+<URL:http://refspecs.freestandards.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html>,
+<URL:http://wiki.debian.org/LSBInitScripts> and
+<URL:http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot>.
+
+Information on an alternative approach to parallelism during boot is
+available from
+<URL:http://www-128.ibm.com/developerworks/linux/library/l-boot.html>.
+
+A tool to detect cycles is available from Adam Jensen using the git
+repository <URL:http://linuxguy.org/git/initcycle.git>.
diff --git a/debian/bts-lefttoreport b/debian/bts-lefttoreport
new file mode 100644
index 0000000..b9121f6
--- /dev/null
+++ b/debian/bts-lefttoreport
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+basedir=$(dirname $0)
+
+ls $basedir/overrides |sort > bts-total.txt
+(cd $basedir/overrides ; egrep -l 'BTS|Already present' *) |sort> bts-reported.txt
+comm -23 bts-total.txt bts-reported.txt
+rm bts-total.txt bts-reported.txt
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..9b6450e
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1488 @@
+insserv (1.21.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Dmitry Bogatov <KAction@debian.org> Sat, 28 Sep 2019 00:02:45 +0000
+
+insserv (1.21.0~beta-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #633858)
+ * Refresh patches
+ * Fix spelling error in manpage
+
+ -- Dmitry Bogatov <KAction@debian.org> Mon, 26 Aug 2019 22:13:17 +0000
+
+insserv (1.20.0-2) unstable; urgency=medium
+
+ * [233d6578] Fix spurious warnings about unknown virtual dependencies
+ (Closes: #932199)
+
+ -- Dmitry Bogatov <KAction@debian.org> Fri, 19 Jul 2019 14:56:05 +0000
+
+insserv (1.20.0-1) unstable; urgency=medium
+
+ * New upstream release. (Closes: #544229)
+ * Upload to unstable.
+ * [ed123226] Drop 170_undeclared_extension.patch
+ * [a7b8f47b] Update debhelper compat to 12
+ * [d868be3c] Update standards version to 4.4.0 (no changes needed)
+ * [f5bbe191] Include 'pdns-recursor' into $named virtual facility
+ (Closes: #833126)
+ * [d7635e47] Remove /etc/init.d/.depend.* files on purge (Closes: #864279)
+
+ -- Dmitry Bogatov <KAction@debian.org> Sun, 14 Jul 2019 15:16:37 +0000
+
+insserv (1.20.0~beta2-1) experimental; urgency=medium
+
+ * New upstream release
+ (Closes: #573571, #775912, #661314, #547717, #547609, #601054, #538304, #926547, #622878)
+ * Drop patches, applied upstream; refresh rest. Patches applied upstream:
+ + 92_m68k_alignment.patch
+ + 130_crossbuild_fixes.patch
+ + 150_core_string_test.patch
+ + 21_tweak_warnings.patch
+ + 180_MAXSYMLINKS.patch
+ + remove-systemd-integration.patch
+ + 160_manual_page_update.patch
+ + 140_debian_test_suite.patch
+ + 20_manpage_spelling.patch
+ + fix-manpage-formatting.patch
+
+ -- Dmitry Bogatov <KAction@debian.org> Sat, 15 Jun 2019 01:20:11 +0000
+
+insserv (1.18.0-2) unstable; urgency=medium
+
+ * Apply patch to improve formatting and spelling of insserv(8) manual
+ and refresh other patches accordingly (Closes: #919610)
+ + Thanks: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+ * Update standards version to 4.3.0 (no changes needed)
+
+ -- Dmitry Bogatov <KAction@debian.org> Sun, 20 Jan 2019 21:12:05 +0000
+
+insserv (1.18.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Update `debian/watch':
+ + match `xz' upstream archives
+ + bump uscan compat version to 4
+ + use secure protocol
+ * Update and refresh patches
+ + Drop `10_nosuse.patch' -- upstream now have -DSUSE commented-out
+ + Drop `30_interactive_regexp_match_fix.patch' -- applied upstream
+ + Refresh `21_tweak_warnings.patch'
+ + Refresh `92_m68k_alignment.patch'
+ + Drop `100_show.patch' -- upstream accepted `--showall' option
+ + Refresh `130_crossbuild_fixes.patch'
+ + Refresh `140_debian_test_suite.patch'
+ + Refresh `150_core_string_test.patch'
+ + Refresh `160_manual_page_update.patch'
+ + Refresh `180_MAXSYMLINKS.patch'
+ + Refresh `warn_in_ignore_mode.patch'
+ * Add patch to disable systemd integration and remove dbus dependency
+ * Drop failing test, concerning script with no LSB header.
+ * wrap-and-sort -sta
+ * Fix whitespace errors in following files:
+ + debian/changelog
+ + debian/run-testsuite
+ * Update standards version to 4.2.1 (no changes needed)
+ * Update debhelper compat to 11
+ * Build-depend on `debhelper-compat' (obsoletes `debian/compat')
+ * Update Vcs-* fields in `debian/control'
+ * Set mailing list to Maintainer field, add myself to Uploaders list
+ * Do not create obsolete `/etc/bash_completion.d'
+ * Do not use absolute path to commands in maintainer script
+ * Do not set dpkg-architecture variables in `debian/rules'. They
+ are managed as apporiate by debhelper.
+
+ -- Dmitry Bogatov <KAction@debian.org> Wed, 12 Dec 2018 22:32:47 +0000
+
+insserv (1.14.0-5.4) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Add debian/postinst: Run insserv after package installation, to fix up the
+ rc?.d priorities from the dumb update-rc.d fallback (which uses priority
+ 01 for everything). (Closes: #830963)
+
+ -- Martin Pitt <mpitt@debian.org> Wed, 13 Jul 2016 12:40:50 +0200
+
+insserv (1.14.0-5.3) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Do not suppress warnings on force mode
+ (Closes: #811441)
+
+ -- Felipe Sateler <fsateler@debian.org> Mon, 22 Feb 2016 21:22:07 -0300
+
+insserv (1.14.0-5.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS on hurd. (Closes: #812898)
+
+ -- Adam Borowski <kilobyte@angband.pl> Wed, 27 Jan 2016 18:43:02 +0100
+
+insserv (1.14.0-5.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS with gcc-5, using Mohit Bhakkad's version of the patch that
+ handles clang as well. (Closes: #777914)
+ * Remove DM-Upload-Allowed.
+
+ -- Adam Borowski <kilobyte@angband.pl> Tue, 26 Jan 2016 13:52:27 +0100
+
+insserv (1.14.0-5) unstable; urgency=low
+
+ * Add +mountall-bootclean to $local_fs virtual facility definition in
+ insserv.conf. (Closes: #693371)
+ * Add test_bootmisc_order test to suite to verify the mountall-bootclean
+ dependency works as expected.
+
+ -- Kel Modderman <kel@otaku42.de> Sun, 18 Nov 2012 11:55:44 +1000
+
+insserv (1.14.0-4) unstable; urgency=low
+
+ * Provide machine parseable output which may be used by file-rc to calculate
+ dynamic sequence number for each script. (Closes: #573004)
+ * Use "overrides" instead of "overwrites" and define defaults as "LSB
+ defaults" when emitting warnings. (Closes: #668559)
+ * Remove upstart jobs created by test_insserv_upstart at end of test.
+ * Remove config snippets made by test_local_virtual at end of test.
+
+ -- Kel Modderman <kel@otaku42.de> Thu, 05 Jul 2012 21:13:26 +1000
+
+insserv (1.14.0-3) unstable; urgency=low
+
+ * Acknowledge NMUs, thanks Christian & Luk.
+ * Use source format 3.0 (quilt), drop build dependency on quilt.
+ Remove debian/README.source.
+ * Use dh at compat level 8, significantly reduce debian/rules and
+ build depend on debhelper >= 8.
+ * Use dh_bash-completion dh sequence utility to install completion
+ snippet, rename snippet to debian/insserv.bash-completion and build
+ depend on bash-completion.
+ * Use dpkg-buildflags to set default CFLAGS & LDFLAGS and get noopt
+ handling for free. 130_crossbuild_fixes.patch allows upstream
+ Makefile defaults for COPTS, LDFLAGS & CC to be overridden by the
+ environment variables exported by debian/rules. Also decouple `make
+ check' from `make install' to ease cross building. Set & export CC
+ environment variable in debian/rules to (hopefully) allow cross
+ building. (Closes: #629540, #629539, #666212)
+ * Patch upstream Makefile to execute Debian testsuite instead of
+ common suite.
+ * Update to Standards-Version 3.9.3, no changes in policy warranted
+ changes in packaging.
+ * Refresh patch series.
+ * Suggest the actively maintained bootchart2 instead of the doormant
+ bootchart package. (Closes: #599012)
+ * Update insserv package description. (Closes: #549327)
+ * Undocument the CONCURRENCY feature and add a reference to a modern
+ discussion about the status of init systems in Debian. (Closes: #605368)
+ * Add test_invalid_core_string to test conditions described in
+ #611292.
+ * Correctly quote here statements in test_undetected_loop with non-
+ interpolating quotation marks. Make test unconditionally fatal now
+ that test is not incorrectly interpolating $local_fs in script headers.
+ * Add 150_core_string_test.patch from Ben Harris <bjh21@cam.ac.uk> to
+ fix inconsistent filtering of core dumps. (Closes: #611292)
+ * Fix manual page reference to init(8). (Closes: #634150)
+ * Purge update-rc.d-insserv & update-bootsystem-insserv as per
+ Petter's advice in changelog entry for version 1.12.0-11. sysv-rc >>
+ 2.87dsf-2 takes care of all that stuff now.
+ * No longer provide LSB dependency overrides for obsolete (etch or
+ before) packages such as hotplug, modutils, initrd-tools and devfsd.
+ (Closes: #545164, #545165, #545166, #545169)
+ * Mention when insserv should (not) be used and how update-rc.d is
+ almost always the interface you want to use. (Closes: #566352)
+ * Use the package short summary in the manual page too, it mentions
+ the keyword "dependency". (Closes: #609655)
+ * Update debian/watch file for savannah.gnu.org sysvinit project site.
+
+ -- Kel Modderman <kel@otaku42.de> Mon, 09 Apr 2012 23:08:25 +1000
+
+insserv (1.14.0-2.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fix pending l10n issues. Debconf translations:
+ - Danish (Joe Hansen). Closes: #619657
+ - Slovak (Slavko). Closes: #641960
+ - Bokmål, (Bjørn Steensrud). Closes: #654871
+
+ -- Christian Perrier <bubulle@debian.org> Sun, 15 Jan 2012 08:11:26 +0100
+
+insserv (1.14.0-2.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Drop definition of $portmap (Closes: #564501).
+ * Add unbound to definition of $named (Closes: #602901).
+
+ -- Luk Claes <luk@debian.org> Sat, 19 Mar 2011 12:48:34 +0100
+
+insserv (1.14.0-2) unstable; urgency=low
+
+ [ Kel Modderman ]
+ * Add 21_tweak_warnings.patch to make insserv warn about differing on
+ disk state/LSB runlevel info for the script(s) in its argument list.
+ (Closes: #578308)
+ * Add 100_show.patch which allows insserv --showall to dump start/stop
+ bit, sequence number, runlevels and script name in the format:
+ SK:NUM:RUNLEVELS:SCRIPT. It is commented out in quilt series file
+ until confirmation from #573004 that it is actually useful.
+ * Add 30_interactive_regexp_match_fix.patch which fixes failure to
+ properly match the correct group in the regular expression used on
+ the X-Interactive keyword. (Closes: #580564)
+ * Modify 92_m68k_alignment.patch so that the define is grouped in an
+ area of code which other similar defines live.
+
+ [ Petter Reinholdtsen ]
+ * Improve the output from make-testsuite.
+ * Adjust the test_x_interactive behaviour to make sure it fails with
+ a fatal error if X-Interactive: true do not work.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 07 May 2010 09:45:19 +0200
+
+insserv (1.14.0-1) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Fix typo (loop->look) in previous changelog (Closes: #549286).
+ Thanks to Josh Triplett.
+ * New testsuite code test_undetected_loop to report error when the
+ loop detection fail to trigger with a loop involving a virtual
+ facility, as was detected in #554905.
+ * Change homepage link to the Savannah project.
+
+ [ Kel Modderman ]
+ * New upstream release.
+ * Drop patches applied upstream:
+ - 20_install_perms_fixup.patch
+ - 21_tests_suite_new_functions.patch
+ - 30_deterministic_order.patch
+ - 40_badboy_segfault.patch
+ - 50_symlink_in_initddir.patch
+ - 60_all_keyword_start_only.patch
+ - 61_interactive_keyword.patch
+ - 62_upstart_job.patch
+ - 70_req_start_all_depends.patch
+ - 71_complete_makefile.patch
+ - 80_manual_warnings.patch
+ - 81_lessverbose.patch
+ - 82_loop_exit_msg.patch
+ - 90_no_runlevel_spec_for_debian.patch
+ - 91_kfreebsd_nofadvice.patch
+ - 93_hurd_no_path_max.patch
+ - 94_v1_12_2.patch
+ - 95_stop_all.patch
+ - 96_hurd_no_at_funcs.patch
+ * Refresh remaining patch series.
+ * Set debian/source/format to 1.0.
+ * Adjust Standards-Version to 3.8.4, no other chages required.
+ * Add 20_manpage_spelling.patch to fix spelling errors in insserv(8).
+ * Add note next to test_undetected_loop() that it's 2 tests currently
+ fail but are not terminal.
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 03 May 2010 08:13:56 +0200
+
+insserv (1.12.0-14) unstable; urgency=low
+
+ * Remove obsolete rules targets missing-overrides, bin-by-inst.txt,
+ missingpkgs, missing-by-popcon and clean-extra.
+ * New patch 82_loop_exit_msg.patch to make exit message when a loop
+ is detected look more like the exit messages when other problems
+ are detected.
+ * Make check-initd-order report missing provides header as errors
+ instead of printing perl warnings.
+ * New patch 62_upstart_job.patch implementing support for upstart
+ jobs (Closes: #547235). Add testsuite test to ensure that it is
+ working.
+ * Refreshed all patches.
+ * New patch 96_hurd_no_at_funcs.patch to try harder to get the
+ source building on hurd, where for example the readlinkat() symbol
+ exist in libc but always fail.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 01 Oct 2009 19:58:44 +0200
+
+insserv (1.12.0-13) unstable; urgency=low
+
+ * New argument -b to check-initd-order, to be able to replace /etc/
+ with another directory. This allow for easier testing of the script.
+ * Update update-rc.d-insserv to the one in sysv-rc svn.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 20 Sep 2009 21:58:11 +0200
+
+insserv (1.12.0-12) unstable; urgency=low
+
+ * Use dh_lintian during build. Depend on debhelper (>= 6.0.7) for this.
+ * Correct wiki URL in README.Debian (Closes: #545171). Thanks to
+ Josh Triplett for noticing the old URL.
+ * Make sure check-initd-order generated valid dotty files when
+ scripts provide strings with " in them (Closes: #545521). Thanks
+ to Laurent Bonnaud for discovering the problem.
+ * Drop the Loading... messages from the default verbosity level, and
+ only show them when -v is used several times.
+ * Add script check-archive-initd-scripts to check all init.d scripts
+ in the Debian archive for consistency.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 13 Sep 2009 11:27:49 +0200
+
+insserv (1.12.0-11) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Migrate the responsibility for enabling or disabling dependency
+ based boot sequencing from the insserv package to the sysv-rc
+ package. Rewrite package description to reflect this (Closes:
+ #475478, #511753, #538959). Keep a dummy update-bootsystem-insserv
+ script to avoid having to conflict with sysv-rc version 2.87dsf-2.
+ Keep update-rc.d-insserv to make it impossible for the update-rc.d
+ diversion to be a dangling link during upgrades. Make it a copy
+ of update-rc.d from the new sysv-rc version to make sure both
+ behave the same way. update-rc.d-insserv should be removed in
+ Squeeze+1. update-bootsystem-insserv could be removed when
+ sysv-rc 2.87dsf-2 has been gone from unstable for 3 months.
+ * Drop dependencies on sysv-rc, initscripts and sysvinit-utils, and
+ leave it for sysv-rc to pull in the packages needed for dependency
+ based boot sequencing to work properly.
+ * Update README to reflect that dependency based boot sequencing is
+ now the default in Debian. Drop reference to obsolete CONCURRENCY
+ setting (Closes: #540447).
+ * Add new test case test_override_remove trying to reproduce bug #540866.
+ No luck so far.
+ * Add new test case test_insserv_virt_loop to reproduce a bug
+ reported by Raphael Geissert, where an incorrect insserv.conf will
+ make insserv hang forever. Add new patch 94_v1_12_2.patch from
+ upstream to fix it (Closes: #541613).
+ * Correct test test_early_all to fail if $all do not work with stop
+ sequences. Add new patch 95_stop_all.patch from upstream to fix
+ it (Closes: #542043).
+ * Change the definition of $syslog to include rsyslog, sysklogd,
+ dsyslog, inetutils-syslogd and syslog-ng, to include all syslog
+ implmenetations in the archive. Dropped the syslog provide from
+ the list, as it should not be used.
+ * Update to Standards-Version 3.8.3, no changes required.
+ * Add lintian override for the transitient update-bootsystem-insserv
+ binary missing a manual page.
+ * Add new test test_local_virtual to verify that local virtual
+ facilities work properly.
+
+ [ Kel Modderman ]
+ * Add new patch 20_install_perms_fixup.patch to install binary and
+ conffile with correct permissions.
+ * Add new patch 21_tests_suite_new_functions.patch to add a couple
+ of new test suite functions to upstream test suite.
+ * Make sure update-rc.d compares command line parameters for start/stop
+ runlevel configuration with the Default-Start and Default-Stop values in
+ LSB info comment of script and warns if there are differences.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 05 Sep 2009 11:50:22 +0200
+
+insserv (1.12.0-10) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Change check-initd-order to return a exit code when there is a problem
+ with the boot sequence or dependencies.
+ * Change the default to enable dependency based boot sequencing if
+ it is safe to do. This should enable it in the common case,
+ while avoiding conversion on problems.
+ * Move all code from insserv.config to insserv.postist and remove
+ insserv.config to make sure update-bootsystem-insserv is available
+ and working when it is needed to test if it is safe to migrate to
+ dependency based boot sequencing.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 26 Jul 2009 21:06:56 +0200
+
+insserv (1.12.0-9) unstable; urgency=low
+
+ * Adjust patch 71_complete_makefile to make sure the recursion depth
+ calculation is done correctly in expand_faci().
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 23 Jul 2009 20:41:24 +0200
+
+insserv (1.12.0-8) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Refresh 92_m68k_alignment.patch.
+ * Simplify test for bug #534526, while still triggering the bug.
+ * Change definition of $time to make hwclock optional, as it might
+ be dropped from the boot sequence in the future.
+ * New patch 71_complete_makefile from upstream fixing .depend.*
+ content when processing virtual facility definitions refering to
+ other virtual facilities (Closes: #534526).
+
+ [ Kel Modderman ]
+ * Before inserting an initscript with insserv, check that
+ /etc/init.d/<basename> exists in update-rc.d-insserv.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 22 Jul 2009 23:53:05 +0200
+
+insserv (1.12.0-7) unstable; urgency=low
+
+ * Update standards-version from 3.8.1 to 3.8.2. No changes needed.
+ * Fix wrong quote char in insserv(8) manual page.
+ * Add required trailing slash to Vcs-Browser URL.
+ * Improve package description to make it more obvious that insserv
+ is not activated when installed.
+ * Depend on sysvinit-utils (>= 2.86.ds1-62) to get a version of
+ startpar that keep working even when /dev/pts is not yet mounted.
+ * Depend on the initscripts version we want (>= 2.86.ds1-63)
+ (instead of conflicting with the version we do not want which can
+ give upgrade problems), to get one with the X-Interactive flags
+ set in the scripts. Drop hostname, mountkernfs, mountdevsubfs,
+ checkroot and checkfs from the list of interactive scripts.
+ * New patch 91_kfreebsd_nofadvice.patch trying to get the source
+ building on kfreebsd.
+ * New patch 92_m68k_alignment.patch trying to get the source
+ building on m68k (Closes: #493637).
+ * New patch 93_hurd_no_path_max.patch trying to get the source
+ building on hurd. Need a better one.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 01 Jul 2009 00:17:13 +0200
+
+insserv (1.12.0-6) unstable; urgency=low
+
+ * Add keyboard-setup, console-setup, cryptdisks, cryptdisks-early
+ and checkfs-loop as interactive scripts while we wait for scripts
+ to use X-Interactive: true as documented in bug #458224 (Closes:
+ #510517, #534711).
+ * Fix typo in testsuite function initdir_purge(), making sure the
+ rc?.d directories are removed during purge.
+ * Add new patch introducing a new keyword 'X-Interactive: true' in
+ the LSB header (Closes: #458224). Add test suite to verify that
+ it is working.
+ * Add DM-Upload-Allowed: yes header to allow my co-maintainer to
+ upload this package.
+ * Add testcase for incomplete .depend.boot file based on test
+ created by Raphael Geissert for bug #534526. Make this a
+ non-fatal error in production builds while we figure out what is
+ wrong.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 26 Jun 2009 20:18:36 +0200
+
+insserv (1.12.0-5) unstable; urgency=low
+
+ [ Kel Modderman ]
+ * Convert dpatches to quilt series and adjust debian/rules and
+ debian/control.
+ * Refresh debian/patches/10_nosuse.patch to apply without fuzz.
+ * Add debian/patches/70_req_start_all_depends.patch to correct
+ dependency information written to .depend.* files for scripts which
+ declare Required-Start: $all. Thanks to upstream developer Werner
+ Fink for giving us th heads up about this problem and patch.
+ * Add Japanese translation. Thanks Hideki Yamane. (Closes: #512858)
+ * Add Swedish translation. Thanks Martin Bagge. (Closes: #503603)
+ * Add debian/manpages and call dh_installman without specific
+ arguments in debian/rules.
+ * Depend on debhelper >= 6 and use compat level of 6.
+ * Update to Standards-Version 3.8.1 without any required changes.
+ * Add Homepage field to debian/control.
+ * Add debian/patches/80_manual_warnings.patch to correct format,
+ spelling and grammar errors in manual page.
+ * Add debian/patches/90_no_runlevel_spec_for_debian.patch to remove
+ reference to known runlevels on Debian systems. These should be
+ defined in Debian policy. (Closes: #500542)
+ * Add interface to disable|enable service symlinks for all Default-
+ Start runlevels or those specified on the command line. This is
+ analogous to the interface introduced to update-rc.d of 2.86.ds1-62.
+ * Make sure disable|enable action does not call insserv if it did not
+ alter any runlevel symlinks.
+ * Consolidate debian/insserv.dirs into debian/dirs, only one should
+ exist.
+ * Add debian/bash-completion and install it to /etc/bash_completion.d/
+ to enhance usability for bash shell users.
+ * When arguments to start/stop/defaults action are given to update-
+ rc.d wrapper, emit a warning that the LSB information of script
+ overrides the given arguments.
+ * Improve the way in which update-rc.d disable/enable function
+ determines index of S or K bit of runlevel symlink by using rindex
+ instead of a hardcoded index.
+ * Improve update-rc.d enable/disable function for when an unhandled
+ runlevel is given as argument.
+ * Also look in /usr/share/insserv/overrides/ when performing
+ disable/enable function in update-rc.d.
+
+ [ Petter Reinholdtsen ]
+ * Make a note in the usage text that update-rc.d disable and enable
+ API is not yet set in stone.
+
+ -- Petter Reinholdtsen <pere@debian.org> Tue, 23 Jun 2009 08:19:19 +0200
+
+insserv (1.12.0-4) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * New test test_early_all to control that $all only affect start or
+ stop sequences. Trying to reproduce issue reported in #485307.
+
+ [ Kel Modderman ]
+ * Add 60_all_keyword_start_only.dpatch to prevent Required-Stop: $all
+ from modifying start link sort order. (Closes: #499721)
+ * Make test_early_all() test suite function unconditionally fatal,
+ this is an importan bug fixed by 60_all_keyword_start_only.dpatch.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 25 Sep 2008 20:36:10 +0200
+
+insserv (1.12.0-3) unstable; urgency=low
+
+ [ Kel Modderman ]
+ * test_fake_loop() and test_fake_loop_reverse() are now unconditionally fatal
+ tests because they pass with insserv >= 1.12.0.
+ * Modify 10_nosuse.dpatch to define ISSUSE as -DNOTSUSE instead of unsetting
+ it, to avoid fooling the build system.
+ * Purge the rc symlinks in initddir_purge() function of testsuite-common.
+ * Add a remscript() function to testsuite-common for deleting initscripts
+ from test init.d/ directory.
+ * Add test_all_keyword() function to run-testsuite to observe the
+ semantics of using the $all keyword. It is currently a non-fatal
+ test.
+ * Add test_script_in_runlevel() function to expose segfault reported
+ in #493202.
+ * Add 40_badboy_segfault.dpatch to fix segfault when scriptname()
+ function of insserv does not return script name due to script in
+ runlevel directory not being a symlink (or corrupt). (Closes: #493202)
+ * Add 50_symlink_in_initddir.dpatch to defend aginst symlinks
+ installed to /etc/init.d/ that point to other scripts in
+ /etc/init.d/, causing insserv to fail due to duplicate provides.
+ (Closes: #485045)
+ * Extend test_initd_symlink() test suite case to handle cases which
+ 50_symlink_in_initddir.dpatch must handle.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 20 Sep 2008 21:31:55 +0200
+
+insserv (1.12.0-2) unstable; urgency=low
+
+ [ Kel Modderman ]
+ * Make test_duplicate_provides() test case more realistic by placing
+ initscripts in init.d dir before registering with insserv. Make sure first
+ script is registered.
+ * Add test_deterministic_order() test function to make sure that when two or
+ more initscripts provide the same facility, the first script actually can
+ be registered with insserv reliably.
+ * Add 30_deterministic_order.dpatch to defend against the inconsistent
+ directory stream sequence returned by readdir(3) under different
+ circumstances. (Closes: #494514)
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 20 Aug 2008 21:08:13 +0200
+
+insserv (1.12.0-1) unstable; urgency=low
+
+ [ Kel Modderman ]
+ * New upstream version.
+ - preserve empty runlevel configurations, override adding or removoval of
+ existing start/top runlevel configration (Closes: #477415, #492526)
+ * Discard patches applied to or no longer relevant to new upstream:
+ - 11_more_warnings.dpatch
+ - 32_debug_option.dpatch
+ - 33_nosuse_scripts.dpatch
+ - 40_segfault_virtprov.dpatch
+ - 41_cleansystem.dpatch
+ - 42_loopnochangemsg.dpatch
+ - 50_sign_warning.dpatch
+ - 51_overwrite_output.dpatch
+ - 52_shutdown_links.dpatch
+ - 60_disable_cfgfilter_stat.dpatch
+ - 62_warn_on_missing_required_fields.dpatch
+ - 63_warn_on_missing_default_fields.dpatch
+ - 64_missing_default_fields_fallback.dpatch
+ * Discard patches not applied in series:
+ - 32_debug_option.dpatch
+ - 34_debian_fixedscripts.dpatch
+ * Refresh patches that still apply to new upstream:
+ - 10_nosuse.dpatch
+ - 31_debian_conf.dpatch
+ * Add an extra call to list_rclinks() in test_newbug_keepoldorder()
+ function of run-testsuite, after introducing the bug.
+ * Make test_adding_start() and test_adding_stop() run-testsuite
+ functions unconditionally fatal on failure.
+ * Make test_bogus_facility() run-testsuite function non-fatal.
+ * Mark tests that are currently failing with a comment in run-testsuite.
+ * 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.
+ * Make test_incorrect_stopscripts() a fatal test, insserv should not
+ add shutdown links when none are present.
+ * Make test_newbug_keepoldorder() test case non-fatal, the fact that it
+ passed before was not by design but by luck, as per upstream analysis
+ which is included with test code.
+ * Handle CFLAGS in debian/rules more consistently, different options were
+ passed to make in build and install targets, and dpkg now also tampers
+ with the variable.
+ * Remove a bunch of overrides for scripts now with valid LSB information in
+ testing distribution today, or have been removed from archive.
+ * Add common test suite function for purging init directory, runlevel links
+ and dependency makefiles.
+ * Add test_incorrect_startscripts() to replicate bug report described in
+ #492526, and make sure insserv do not regress in this behaviour.
+ * Now we have no overrides to install by default, but we may in future,
+ modify debian/rules to only install overrides from ./debian/overrides/* if
+ they are present, but not fail otherwise.
+ * Add test_initd_symlink() test suite function to test if illegal
+ symlinks in /etc/init.d/ cause problems.
+ * Bump Standards Version to 3.8.0, add debian/README.source to describe patch
+ system to conform. No other changes required.
+ * Add myself to Uploaders.
+ * Rename 31_debian_conf.dpatch to 11_debian_conf.dpatch, to keep
+ Debian port patches in tight sequence.
+
+ [ Petter Reinholdtsen ]
+ * Mention initcycle tool from Adam Jensen in README.Debian.
+ * Adjust test_initd_symlink test to accept the first insertion
+ and reject the second, as both scripts have the same provide.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 30 Jul 2008 18:18:00 +0200
+
+insserv (1.11.0-9) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * New test case to demonstrate the bug reported in #477415.
+ * Include empty directories /etc/insserv.conf.d and
+ /etc/insserv/overrides in the package, to get dpkg to warn about
+ content there when purging insserv (Closes: #471237).
+ * Debconf translations:
+ - Updated German from Erik Schanze (Closes: #479254).
+
+ [ Kel Modderman ]
+ * Add patch 60_disable_cfgfilter_stat to remove stat check from the
+ callback function that filters the scanning of /etc/insserv.conf.d/ dir
+ for confiuration file snippets. Instead do stat check in scan_conf().
+ * New test case to show that two initscripts cannot have the same Provides
+ field.
+ * New test case exposing ability to insert a script into runlevel
+ configuration that depends on virtual facility that is not provided or
+ does not exist.
+ * New test case to check that /etc/insserv.conf.d/ can be used to allow one
+ or more services to define and provide a virtual facility.
+ * Ensure custom insserv.conf.d/* files are cleaned after
+ test_insserv_conf_d() in run-testsuite.
+ * Add test_onlystart() test case to check we can insert scripts with empty
+ stop runlevel configuration.
+ * Add test_broken_header() test case to show it seems possible to insert a
+ script missing Required-{Start,Stop} lsb info fields.
+ * Add test_no_default_start() to show that it seems possible to insert script
+ missing Default-Start field.
+ * Add test_no_default_stop() to show that it seems possible to insert script
+ missing Default-Stop field, and that links are created in stop runlevels.
+ * Add 62_warn_on_missing_required_fields and
+ 63_warn_on_missing_default_fields to enable warnings by default about
+ missing Provides, Required-Start, Required-Stop, Default-Start or
+ Default-Stop LSB comment keywords.
+ * Add a note to new patches to relate them to a case function of the test
+ suite.
+ * Add 64_missing_default_fields_fallback to ensure sane fallback of
+ empty runlevel configuration is used for scripts missing Default-
+ Start or Default-Stop lsb keywords.
+ * Add test_noprovides_header() to show that it is possible to insert script
+ missing Provides keyword, and many warnings are exposed as a result.
+ * Add test_adding_start() to expose that adding start levels uncleanly
+ modifies on disk configuration. Give test_adding_start and
+ test_adding_stop test script unique names.
+
+ [ Petter Reinholdtsen ]
+ * Made test_adding_start and test_adding_stop checks non-fatal for
+ production builds, as this problem is no regression from earlier versions.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 25 May 2008 21:46:04 +0200
+
+insserv (1.11.0-8) unstable; urgency=low
+
+ * Make sure the consistency check in update-bootsystem-insserv
+ report all problems and not only the first one.
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 24 Mar 2008 23:32:22 +0100
+
+insserv (1.11.0-7) unstable; urgency=low
+
+ * Added override files for digitools and ddns3-client.
+ * Make sure the dependency based update-rc.d check the argument list
+ slightly, to avoid bugs like #470062.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 13 Mar 2008 13:54:31 +0100
+
+insserv (1.11.0-6) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Added override files for at, fiaif, gom, ifupdown-scripts-zg2 and tspc.
+ * Correct typo in override file for lvm2.
+ * Changed postinst and update-bootsystem-insserv to remove the
+ generated files /etc/init.d/.depend.* when disabled or removed.
+ * Implemented better support in check-initd-orderfor graphing $all
+ relations.
+ * Restructure update-bootsystem-insserv slightly to make it possible
+ to check if it is safe to convert to dependency based boot
+ sequencing without doing the conversion.
+ * Updated 31_debian_conf to list glibc, hostname and keymap as interactive
+ scripts, as none of them can use a pseudoterminal.
+ * Add two new tests to verify that x-start-before and x-stop-after
+ work as they should.
+ * Debconf translations:
+ - Added Spanish from Steve Lord Flaubert (Closes: #467391).
+ - Added German from Erik Schanze (Closes: #467483).
+ - Added Dutch from Bart Cornelis (Closes: #467418).
+
+ [ Kel Modderman ]
+ * Modify debian/insserv.config debconf script to honour a preseeded debconf
+ value enabling dependency based boot on first installation only.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 2 Mar 2008 18:00:02 +0100
+
+insserv (1.11.0-5) unstable; urgency=low
+
+ * Add test to verify that introducing a loop will not change the boot
+ sequence, but make insserv exit with an error.
+ * Added patch 42_loopnochangemsg to change the message printed when
+ a loop is detected, to let the user know that the boot sequence is
+ untouched.
+ * Added patch 52_shutdown_links to fix incorrecly inserted stop
+ symlinks (Closes: #464017).
+ * Added patch 53_debugoutput to provide more useful debug output
+ used to track down the stop symlink issues. Not enabled by default.
+ * Debconf translations:
+ - Added Russian from Yuri Kozlov (Closes: #467164).
+ - Added Czech from Miroslav Kure (Closes: #467170).
+ - Added Italian from Luca Monducci (Closes: #467295).
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 24 Feb 2008 23:49:12 +0100
+
+insserv (1.11.0-4) unstable; urgency=low
+
+ * Added override file for whitelister.
+ * Reinsert previously removed override file for lvm2 and others
+ while we wait for the packages in testing to be fixed (Closes:
+ #466700). These should be removed when lenny is verified to have
+ headers in place.
+ * Debconf translations:
+ - Added French from Christian Perrier (Closes: #466345).
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 21 Feb 2008 09:27:34 +0100
+
+insserv (1.11.0-3) unstable; urgency=low
+
+ * Rewrote patch debian/patches/40_segfault_virtprov.dpatch with a
+ solution provided by upstream.
+ * Added script debian/seq-changes from Frans Pop installed in
+ /usr/share/insserv/ to extract the sequence changes done by
+ insserv.
+ * New testsuite check to detect incorrectly inserted stop symlinks
+ when scripts with incorrect headers are encountered.
+ * Removed override file for snmptrapfmt, as the package now include
+ the LSB header.
+ * Removed override file save-etc-disk. It is not present in Debian.
+ * Update the package description and debconf question text (Closes: #464109).
+ * New patch 11_more_warnings to activate more warning flags during
+ build. Obsoletes setting the same flags in debian/rules.
+ * New patch 50_sign_warning getting rid of some signed/unsigned
+ compare issues.
+ * Update test suite to the one provided by Werner Fink.
+ * Extended test suite to report status at the end.
+ * New patch 32_debug_option to add new option -D to print debug
+ output.
+ * New patch 33_nosuse_scripts to disable some SUSE specific settings.
+ * New patch 51_overwrite_output to improve output when symlinks on
+ disk do not match the default-* headers.
+ * Added override file for slashem-common.
+ * New patch 41_cleansystem to clean the .system file. Changed rules
+ file to make sure it take effect.
+ * Change test suite to use /bin/bash, as it uses bash-features.
+ * Debconf translations:
+ - Added Galician from Jacobo Tarrio (Closes: #465067).
+ - Added Vietnamese from Clytie Siddall (Closes: #465437).
+ - Added Portugese from Américo Monteiro (Closes: #465519).
+ - Added Finnish from Esko Arajärvi (Closes: #465800).
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 17 Feb 2008 13:54:03 +0100
+
+insserv (1.11.0-2) unstable; urgency=low
+
+ * Changed patch 31_debian_conf to accept rsyslog and syslog-ng as
+ implementations for the $syslog facility.
+ * Added test case to detect insserv crashing when it find scripts
+ providing virtual system facilities.
+ * Changed update-bootsystem-insserv to refuse to enable dependency
+ based boot sequencing when a script provide a virtual system
+ facility.
+ * Changed patch 10_nosuse.dpatch to make sure we build with -g.
+ * Added patch debian/patches/40_segfault_virtprov.dpatch to avoid
+ segfault when finding an enabled script that provide a virtual
+ system facility.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 1 Feb 2008 09:24:10 +0100
+
+insserv (1.11.0-1) unstable; urgency=low
+
+ * New upstream version.
+ - Drop patches 20_path_at_runtime, 21_overrides, 32_debian_nolsb,
+ 33_debian_localok, 38_debuginfo, 40_nosusescript,
+ 41_debiandefault, 42_redundantlvl, 43_shutdown,
+ 44_reportloopmemb, 45_loopsarefatal and 46_complete_removal
+ merged upstream.
+ - Updated insserv(8) manual page for Debian (Closes: #462064).
+ - Correct path to insserv.conf in test suite to keep it working.
+ - A lot faster (Closes: #462211).
+ * New example script make-testsuite useful to generate a test script
+ demonstrating a problem.
+ * Added override files for guidedog and puppet.
+ * Removed override file for atd and lvm2, as the packages now include
+ the LSB header.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 31 Jan 2008 09:05:07 +0100
+
+insserv (1.10.0-6) unstable; urgency=low
+
+ * Implement support for preseeding insserv, to make it possible to
+ enable it at install time. This only work the first time the
+ package is installed and config is executed when
+ /usr/sbin/update-rc.d-insserv does not exist yet.
+ * Changed check-initd-order to load virtual facilities from
+ /etc/insserv.conf (Closes: #459522)
+ * Extended testsuite to more closely match real Debian for the
+ shutdown sequence.
+ * New patch 46_complete_removal.dpatch to make sure all symlinks are
+ removed on removal (Closes: #460034). Based on patch from Kel
+ Modderman. Made failing removal test fatal.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 19 Jan 2008 14:45:27 +0100
+
+insserv (1.10.0-5) unstable; urgency=low
+
+ * Made sure to initialize the badstate variable before it is used in
+ update-bootsystem-insserv.
+ * Removed override files for uptimed and uptimed.sh, as the uptimed
+ package now include the LSB headers.
+ * Make sure to give a proper error message when failing to enable
+ dependency based boot system and insserv return an error code
+ (Closes: #461141).
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 16 Jan 2008 23:29:09 +0100
+
+insserv (1.10.0-4) unstable; urgency=low
+
+ * Made problematic test cases for bug #460034 and #458582 fatal
+ in testing and non-fatal when uploading.
+ * Added override files for bastille-firewall.
+ * Do not warn about obsolete init.d scripts that have been removed
+ (Closes: #461073). Patch from Kel Modderman.
+ * Provide more information when convertion to dependency based boot
+ sequencing can not be done.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 16 Jan 2008 22:00:50 +0100
+
+insserv (1.10.0-3) unstable; urgency=low
+
+ * Added test case for problem with symlink removal, bug #460034.
+ * Added override files for uptimed, uptimed.sh and guarddog.
+ * Removed override file nfs-user-server as the compiled in defaults
+ are better than the proposed overrides.
+ * Add mountoverflowtmp to virtual facility $local_fs, to make sure
+ /tmp/ is always mounted before the scripts needing /tmp/ is
+ started. Conflict with initscripts before 2.86.ds1-48, to avoid a
+ dependency loop with this change.
+ * Make debconf question translatable (Closes: #386703).
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 13 Jan 2008 19:32:34 +0100
+
+insserv (1.10.0-2) unstable; urgency=low
+
+ * Implement new check-initd-order option -c to be used with -g to
+ generate a combined graph for boot and shutdown dependencies.
+ * Split test suite into two files, one generic part
+ (testsuite-common) and one Debian specific part (run-testsuite).
+ * Remove ntpdate and ntp-server as optional dependencies for $time
+ as both are obsolete, and changing them to the current 'ntp' would
+ make a loop.
+ * Removed override file for resolvconf and laptop-netconf, as the
+ unstable packages got the header now.
+ * Removed override file for devmapper, as the unstable packages no
+ longer include a init.d script
+ * Remove reference to lwresd in headers-reported, as the unstable
+ package got the header now.
+ * Added override files for the console-cyrillic and
+ gibraltar-bootsupport package.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 9 Jan 2008 22:42:31 +0100
+
+insserv (1.10.0-1) unstable; urgency=low
+
+ * New upstream version released 2007-10-10.
+ - Updated patches 10_nosuse, 20_path_at_runtime, 21_overrides and
+ 43_shutdown to apply on the new version.
+ - Removed patch 11_revdepend as it is included upstream.
+ * In graphs, name scripts without provides header, and scripts
+ without LSB header, using the name of the file in /etc/init.d/.
+ This make it easier to spot loops involving these scripts.
+ * Added override file for hpoj.
+ * Ask if insserv should be activated at install time, using a medium
+ priority debconf question. The default is no.
+ * Restructure test script to work with new test feature implemented
+ in version 1.10.
+ * Update patch 42_redundantlvl to get rid of two compiler warnings.
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 7 Jan 2008 23:37:53 +0100
+
+insserv (1.09.0-14) unstable; urgency=low
+
+ * Changed patch 21_overrides to only warn once about scripts without
+ LSB header, to reduce the noise.
+ * Changed patch 21_overrides to speed up processing by only reading
+ override default files only when the script is lacking an LSB header.
+ * Moved default dependency values from patch 21_overrides to
+ 41_debiandefault where it belong.
+ * New test to check that scripts introducing a loop (or a fake loop,
+ see bug #458582) will refuse to install.
+ * New patch 45_loopsarefatal to make sure insserv considering all
+ kind of loops fatal, to not mess up the script sequences.
+ * Introduce very simple manual page for update-rc.d-insserv.
+ * Make failing 'make clean' fatal, as it should always work.
+ * Change debconf template text to make it easier to understand.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 6 Jan 2008 09:37:43 +0100
+
+insserv (1.09.0-13) unstable; urgency=low
+
+ * Update patch 21_overrides to fix bug in override handling. Now a
+ header in a script or override file complete replaces previously
+ loaded headers.
+ * Add test to check and verify that override files in
+ /etc/insserv/override replaces headers in the scripts in
+ /etc/init.d/, and made previously failing loop breaking test
+ fatal, as it is working with the fixed override patch.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 4 Jan 2008 12:25:55 +0100
+
+insserv (1.09.0-12) unstable; urgency=low
+
+ * New patch 34_debian_fixedscripts to hardcode a few script sequence
+ numbers, to let the generated boot sequence be more like the
+ original one. Modified 40_nonsusescripts to no longer disable the
+ setlsb() function. This patch is not enabled by default, as it is
+ not obvious that it is a good idea.
+ * Added override files for hostname.dhcp and mountfix.
+ * Adjust override file for lvm2, to provide both lvm2 and lvm, to
+ make it easier until the lvm provide is dropped.
+ * Adjust override file for lvm2 to use reverse depend on checkfs,
+ mountall and umountfs to make it possible to drop lvm relations
+ from initscripts.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 4 Jan 2008 01:38:00 +0100
+
+insserv (1.09.0-11) unstable; urgency=low
+
+ * Added test to demonstrate the fake loop warning issue (bug
+ #458582).
+ * Implemented support for non-fatal tests in the testsuite.
+ * Added override file for dmraid, scsitools-pre.sh and scsitools.sh.
+ * Added patch 44_reportloopmemb to make loop reporting code in
+ insserv more helpful, and make sure to report the extended loop
+ output in update-bootsystem-insserv when refusing to switch to
+ dependency based boot (Closes: #458683).
+ * Move code to divert update-rc.d from postinst to
+ update-bootsystem-insserv, to make sure both ways to activate
+ insserv are equivalent.
+ * Extended check-initd-order to graph services with multiple
+ provides as two nodes that depend on each other, and which ahve
+ the same dependencies.
+ * Changed update-bootsystem-insserv to call 'reset' after looping
+ over packages postinst scripts, in case the terminal is messed up
+ as it is when I test it.
+ * Disabled check for reverse dependencies in check-initd-order. It
+ does not to work properly, and gave false error reports.
+ * Removed flag file /etc/update-rc.d-insserv and use the update-rc.d
+ diversion as the flag to detect if insserv is enabled. Adjustd
+ package removal and update-rc.d-insserv to reflect this.
+ * Added Vcs-Svn and Vcs-Browser info in control file, pointing to
+ the Debian packaging project.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 2 Jan 2008 18:41:31 +0100
+
+insserv (1.09.0-10) unstable; urgency=low
+
+ * Make sure to exit with an error code if it isn't safe to remove
+ the package.
+
+ -- Petter Reinholdtsen <pere@debian.org> Tue, 1 Jan 2008 21:12:24 +0100
+
+insserv (1.09.0-9) unstable; urgency=low
+
+ * Removed override file pptpd as the compiled in defaults are better
+ than the proposed overrides.
+ * Correct override file for laptop-netconf after checking the script
+ and the package.
+ * Added override file for racoon, and corrected override file for
+ setkey, after checking the scripts in the package.
+ * Try to make recovery routine more robust by not trying to run
+ non-existing postinst scripts, and only run postinst scripts for
+ packages with executable scripts in /etc/init.d/.
+ * Extended check-initd-order to check optional start dependencies,
+ and implement check of the shutdown sequence.
+ * Extended to check reverse dependencies too.
+ * Changed enabling code to refuse to convert to dependency based
+ boot sequence when obsolete init.d scripts are found, as these
+ tend to mess up the boot sequence.
+ * Changed enabling code to refuse to convert to dependency based
+ boot sequence if several scripts provide the same service.
+ * Added prerm code to refuse to be removed while enabled, to avoid
+ messing up the boot system completely.
+
+ -- Petter Reinholdtsen <pere@debian.org> Tue, 1 Jan 2008 21:08:14 +0100
+
+insserv (1.09.0-8) unstable; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * Removed override files cpqarrayd, hotkey-setup and spamassassin as
+ they are equivalent with the defaults compiled into insserv.
+ * Removed override files courier-ldap, courier-authdaemon,
+ courier-imap-ssl and courier-imap, irqbalance and nethack-common
+ as the compiled in defaults are better than the proposed
+ overrides.
+ * Extended check-initd-order to graph reverse dependencies
+ (X-Start-Before and X-Stop-AFter). Draw reverse dependencies in
+ yellow.
+ * Added patch 11_revdepend fetched from a review copy of version
+ 1.10. Modified 20_override to cope with the change. Based on
+ changes from Werner Fink.
+ * Renamed patches 20_overrides to 21_overrides and
+ 44_path_at_runtime to 20_path_at_runtime, to prepare for Otavios
+ extensions.
+
+ [ Otavio Salvador ]
+ * Extended patch 21_override to allow override path changing so the
+ unit test can use it.
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 31 Dec 2007 19:26:00 +0100
+
+insserv (1.09.0-7) unstable; urgency=low
+
+ * Try to make it it easier to disabling the dependency based boot
+ sequencing by calling the postinst of all packages with init.d
+ scripts to register the scripts again.
+ * Extend check-initd-order to handle the virtual dependecy $all.
+ * Reword the debconf question to try to make it clearer and
+ easier to understand.
+ * Minor cleanup in irqbalance and atd override file, only depend
+ on $remote_fs, no need to also depend on $local_fs.
+ * Update check-initd-order to use the same default dependencies
+ ($remote_fs $syslog) and the same virtual dependencies as insserv
+ when generating dotty graphs.
+ * Update check-initd-order to draw left-to-right dotty graphs.
+ Based on tip from Frans Pop and Trent Buck.
+ * Update lvm2 override to stop before umountroot.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 30 Dec 2007 18:48:47 +0100
+
+insserv (1.09.0-6) unstable; urgency=low
+
+ * Update patch 20_overrides to let scripts without an LSB header
+ depend on $syslog as well as $remote_fs.
+ * Add test case to check that scripts without LSB header is ordered
+ after syslog
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 30 Dec 2007 12:39:33 +0100
+
+insserv (1.09.0-5) unstable; urgency=low
+
+ * Update patch 44_path_at_runtime to include support for -c to point
+ to a local config file. It is required for a proper test suite.
+ * Fix typo in test suite and extend it to check more scenarios.
+ * Use local config file when running test suite.
+ * Change $syslog virtual facility to depend on either syslog or
+ sysklogd. The sysklogd script provide syslog and not the sysklogd
+ string that was requested in bug #324679.
+ * Update patch 31_debian_conf to list udev mountdevsubfs checkroot
+ checkfs console-screen as interactive scripts that should run
+ alone.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 30 Dec 2007 09:23:22 +0100
+
+insserv (1.09.0-4) unstable; urgency=low
+
+ * Update patch 20_overrides to add useful default values for scripts
+ without LSB header (Closes: #431697).
+ * Update patch 43_shutdown to handle scripts with both start and
+ stop levels. (Closes: #452462).
+ * New patch 44_path_at_runtime to add new option -p to make it
+ possible to replace /etc/init.d with another path for testing.
+ * Add script debian/run-testsuite to test the generated order, and
+ use it during the build.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 29 Dec 2007 16:00:31 +0100
+
+insserv (1.09.0-3) unstable; urgency=low
+
+ * Update patch 40_nosusescript to disable unused function setlsb().
+ * Add sendsigs to the $remote_fs virtual facility, to make sure the
+ services depending on $remote_fs for the shutdown sequence are not
+ killed before their init.d script get a chance to stop them.
+ * New patch 43_shutdown to fix the handling of stop scripts and thus
+ the shutdown sequence (Closes: #452462). Thanks to Otavio
+ Salvador for help with debugging and part of the patch.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 29 Dec 2007 00:20:04 +0100
+
+insserv (1.09.0-2) unstable; urgency=low
+
+ * New patch 10_nosuse to disable SUSE specific build. This make
+ it easier to debug insserv.
+ * Update patch 40_nosusescript to remove SUSE-specific handling
+ of the halt and reboot script.
+ * Remove all override files for init.d scripts with LSB style
+ dependency headers (Closes: #386544).
+ * Update snmptrapfmt override file, making it more accurate.
+ * Updated standards-version from 3.7.2 to 3.7.3. No changes needed.
+
+ -- Petter Reinholdtsen <pere@debian.org> Tue, 25 Dec 2007 14:24:26 +0100
+
+insserv (1.09.0-1) unstable; urgency=low
+
+ * New upstream release. (Closes: #426091)
+ - Support X-Start-Before and X-Stop-After (Closes: #326120)
+ - Building with DEB_BUILD_OPTIONS=nostrip no longer strip the
+ binary. (Closes: #437210)
+ * Let /usr/share/insserv/check-initd-order read override files in
+ /etc/insserv/overrides/ just like insserv does. Patch from Arjan
+ Oosting. (Closes: #429398)
+ * Correct the dependencies for nbd-client and libnss-ldap.
+ * Add override file for spamassassin.
+ * Update watch file with new upstream URL. (Closes: #450044)
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 17 Nov 2007 21:17:20 +0100
+
+insserv (1.08.0-14) unstable; urgency=low
+
+ * Correct the dependencies for hwclock.sh.
+ * Update libdevmapper*, raid2 and mdadm-raid by adding
+ module-init-tools as an alternative to modutils, and move
+ both from required-start to should-start, as either or both
+ might be available. (Closes: #432072)
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 9 Jul 2007 13:40:36 +0200
+
+insserv (1.08.0-13) unstable; urgency=low
+
+ * Add override files for sysfsutils and hplip.
+ * Add cryptdisks-early as should-start to the lvm2 override
+ file (Closes: 429402)
+
+ -- Petter Reinholdtsen <pere@debian.org> Mon, 18 Jun 2007 17:32:50 +0100
+
+insserv (1.08.0-12) unstable; urgency=low
+
+ * Add override files for nbd-server and libdevmapper1.02.1.
+ * Update override files for atd, atftpd, discover, enable-nat,
+ keymap.sh, klogd, mplayer, networking, open-backdoor,
+ openbsd-inetd, report-reboot, rsync and start-wlan
+ based on the headers in the packages themselves.
+ * Add override file for lvm2 (Closes: #426104).
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 26 May 2007 12:42:38 +0200
+
+insserv (1.08.0-11) unstable; urgency=low
+
+ * Add override file for timidity.
+ * Add override file for powernowd.
+ * Add override file for laptop-mode.
+ * Update override file for libnss-ldap.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 2 Nov 2006 13:36:10 +0100
+
+insserv (1.08.0-10) unstable; urgency=low
+
+ * Add override file for cpqarrayd.
+ * Add override file for libpam-devperm.
+ * Add override file for screen-cleanup.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 14 Oct 2006 21:00:31 +0200
+
+insserv (1.08.0-9) unstable; urgency=low
+
+ * Change bind9 override file to avoid dependency loop involving
+ $syslog->sysklogd->$named->bind9. Remove $syslog dependency and
+ insert $remote_fs dependency instead. Make the $network dependency
+ conditional to work when netbase is not installed.
+ * Add override file for resolvconf.
+ * Add override file for installation-report.
+ * Minor cleanup in nviboot override file, only depend on $remote_fs, no need
+ to also depend on $local_fs.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 7 Oct 2006 10:08:04 +0200
+
+insserv (1.08.0-8) unstable; urgency=low
+
+ * Add override files for festival, hotkey-setup and lisa.
+ * New patch 41_debiandefault to set the default runlevels for start (2345)
+ and stop (016) on Debian.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 16 Sep 2006 17:32:24 +0200
+
+insserv (1.08.0-7) unstable; urgency=low
+
+ * Remove override file console-screen.sh. The info is now present in the
+ file itself.
+ * Modify override file for lvm to document that it should stop just
+ before halt and reboot.
+ * Modify override file for exim4 to only conditional depend on $named.
+ * Rewrite check-initd-order to avoid the dependency on perl-modules,
+ to make it easier to run in systems with small disks.
+ * Remove override files for aumix, cfengine2, cryptdisk, hdparm,
+ ifupdown, ifupdown-clean, kdm, nfs-common, nfs-kernel-server,
+ pcmcia, portmap, sudo, udev, udev-mtab, x11-common,
+ xdebconfigurator. It is good enough in the scripts themselves
+ now.
+ * Modify override file for atd to avoid redundant dependencies and
+ drop runlevel 'S' from the stop list. Reported as bug #376780.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 14 Sep 2006 15:15:49 +0200
+
+insserv (1.08.0-6) unstable; urgency=low
+
+ * Minor change to the template text, explaining that the S* symlinks
+ are renamed to K* symlinks in rc0.d/ and rc6.d/.
+ * Correct override file for sysklogd and klogd. These should not
+ start in runlevel S, and should stop in runlevel 1.
+ * Add $syslog to the dependency list for openbsd-inetd, to make sure
+ it can log its start to syslog. Drop $local_fs, as it is a
+ dependency for $remote_fs.
+ * New patch debian/patches/40_nosusescript to avoid inserting the
+ 'single' script showing up in runlevel S, and also avoid fixing
+ the sequence number to the values used by SuSe.
+ * Correct override file for hotplug-net, it should depend on $local_fs.
+ * Correct override file for hotplug, it should stop before $local_fs.
+ * Modify patch 31_debian_conf to also list ifupdown as part of the
+ $network facility, to make $network available in runlevel 0 and 6.
+ * Try to make update-bootsystem-insserv more robust on restores.
+ Move conversion logs and related files to /var/lib/insserv.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 10 Sep 2006 20:17:15 +0200
+
+insserv (1.08.0-5) unstable; urgency=low
+
+ * New flag -k for check-initd-order to look at the stop sequence instead
+ of the start sequence.
+ * Correct override files for acpid, alsa, alsa-utils, apmd,
+ hwclockfirst.sh, ifupdown, modutils, networking, nullmailer,
+ openbsd-inetd, pcmcia, procps.sh, and update-hostname.
+ * Remove override files for bootlogd, bootmisc.sh, checkfs.sh,
+ checkroot.sh, glibc.sh, halt, hostname.sh, module-init-tools,
+ mountall.sh, mountdevsubfs.sh, mountnfs.sh, reboot, rmnologin,
+ sendsigs, single, stop-bootlogd, umountfs umountnfs.sh and urandom
+ as the scripts themselves now have correct dependency information
+ in them.
+ * With the current patches and dependency info, insserv generate
+ correct shutdown order. (Closes: #350188)
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 9 Sep 2006 20:23:28 +0200
+
+insserv (1.08.0-4) unstable; urgency=low
+
+ * Change update-bootsystem-insserv to refuse to convert the boot
+ system if there are dependency loops.
+ * New patch 37_consistent_path to make more consistent log output.
+ * Adjust the the rules file to make sure we build using the compiler options
+ specified there.
+ * New patch 33_debian_localok making .local a valid ending,
+ to accept script names like 'rc.local'.
+ * New patch 38_debuginfo to improve the debug output.
+ * New patch 39_debianlvl.dpatch to handle rcS.d/ a bit better.
+ * Add override for mountdevsubfs.sh, documenting its
+ relation to udev.
+ * Add override for stop-bootlogd, documenting that it should come late,
+ after rmnologin.
+ * Make it easier to enable the dependency based boot system by
+ adding a fairly well hidden debconf question to activate it.
+ * Adjust the override files for dns-clean, hotplug, hotplug-net,
+ hwclock.sh, keymap.sh, libdevmapper1.00, libdevmapper1.01,
+ libdevmapper1.02, modutils, nviboot and procps.sh to make sure
+ they only start in runlevel S.
+ * Adjust override file for acpid, nstxd and nstxcd, to make sure
+ they are not started in runlevel S.
+ * Adjust override file for makedev and rmnologin, there is
+ no reason to add stop links for them.
+ * Remove 'S' from all override files listing it in should-stop. It
+ never make sense to add stop scripts in rcS.d/.
+ * Allow check-initd-order to continue even if one file is unreadable.
+ * Add override files for apt-index-watcher, vbesave, acpi-support
+ and libnss-ldap.
+ * Correct the definition of $remote_fs to include mountnfs,
+ mountnfs-bootclean and umountnfs.
+ * Correct the definition of $local_fs to include mountfs,
+ mountfs-bootclean and umountfs.
+ * Adjust the override file for openbsd-inetd, to make sure it start
+ after /usr/ is mounted.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 8 Sep 2006 19:14:15 +0200
+
+insserv (1.08.0-3) unstable; urgency=low
+
+ * Extend check-initd-order to accept a new argument -o, to not load
+ the override files.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 7 Sep 2006 11:59:17 +0200
+
+insserv (1.08.0-2) unstable; urgency=low
+
+ * New patch 35_fixunused removing incorrect 'unused' flagg from a
+ few functions, to avoid compile warning on s390.
+ * New patch 36_memleak fixing a minor memory leak.
+ * Updated override file for libdevmapper1.00.
+ * Added override file for libdevmapper1.02.
+ * Sync override files with the unstable init.d scripts for
+ alsa,alsa-utils, atd, bootlogd, bootmisc.sh, cfengine2,
+ checkfs.sh, checkroot.sh, console-screen.sh, cryptdisk, exim4,
+ fam, halt, hdparm, kdm, keymap.sh, makedev, module-init-tools,
+ mountall.sh, mountnfs.sh, networking, nfs-common,
+ nfs-kernel-server, pcmcia, portmap, pppd-dns, procps.sh, reboot,
+ rmnologin, single, sudo, udev, udev-mtab, umountfs, umountnfs.sh,
+ urandom and xdebconfigurator. I assume the package maintainer
+ know the scripts best, and use their values.
+ * Added override file for usplash.
+ * Modify update-bootsystem-insserv to report dependency loop
+ problems. (Closes: #386301)
+ * Add recommend on perl-modules. (Closes: #386300)
+ * Update standards-version to 2.7.2. No changes needed.
+ * Do not include 'klogd' in the $syslog facility, to avoid
+ dependency loop.
+ * Change mountvirtfs to mountdevsubfs in all override files, to
+ use the new name instead of the obsolete name.
+ * The keymap override should not depend on $syslog, and neither should
+ keymap.sh itself (bug #386338).
+ * Update 20_overrides.dpatch to new version of the source.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 7 Sep 2006 00:45:18 +0200
+
+insserv (1.08.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Correct name of logfile, moving the stderr redirect to the insserv
+ call. (Closes: #349494)
+ * Add code in update-bootsystem-insserv to convert all S* symlinks
+ in rc1.d and rc6.d to K* symlinks before insserv is executed. to
+ reflect the argument passed on to these scripts in debian.
+ Addresses part of bug #350188.
+
+ -- Petter Reinholdtsen <pere@debian.org> Sun, 1 Apr 2006 17:30:35 +0100
+
+insserv (1.04.0-2) unstable; urgency=low
+
+ * Modify 20_override.dpatch based on input from upstream author
+ Werner Fink, to add more error handling.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 11 Nov 2005 15:35:27 +0100
+
+insserv (1.04.0-1) unstable; urgency=low
+
+ * New upstream release.
+ - Start building without -DSUSE, to enable processing of *-stop headers.
+ * Updated upstream URL in copyright file to match the latest location.
+ * Remove 40_dryrunmore.dpatch, applied upstream.
+ * Remove 41_dryrun_msg.dpatch, applied upstream.
+ * Remove 50_cfgfilter.dpatch, applied upstream.
+ * Merged 20_overrides.dpatch and 25_overrides.dpatch into one patch
+ 20_overrides.dpatch.
+ * New 34_debian.dpatch modifying the paths from rc#.d/, getting
+ non-SUSE case working on Debian.
+ * New patch 30_non_suse.dpatch fixing segfault in the non-SUSE case.
+ * Updated init.d override files for hwclockfirst, ifupdown,
+ ifupdwon-clean, initrd-tools, keymap, networking, procps and
+ udev-mtab.
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 10 Nov 2005 22:50:14 +0100
+
+insserv (1.02.0-3) unstable; urgency=low
+
+ * Added init.d override files for acct, apache2, snmpd and snmptrapfmt.
+ * Updated and corrected override file for alsa, apache, atd, cron,
+ gdm, gpsd, initrd-tools, udev-mtab and xdm.
+ * Wrote graphviz dotty graph generation support for check-init-order (-g).
+ * Updated README.Debian to reflect the current status in Debian, and
+ included some instructions on how to use this package.
+ * Documented in the override files which dependency information I've
+ reported to BTS.
+ * Add 'ntpdate' as a optional dependency for the $time virtual
+ facility, to make sure NTP update is done on machines without
+ their own NFS server
+ * Wrote manual page for update-bootsystem-insserv(8).
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 10 Nov 2005 00:18:49 +0100
+
+insserv (1.02.0-2) unstable; urgency=low
+
+ * Added init.d override files for hibernate, mdadm-raid, start-wlan
+ and x11-common.
+ * Corrected sysklogd override file, to only provide sysklogd.
+ * Document BTS bug numbers in the override file for the init.d
+ dependency headers I've submitted to the package maintainer.
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 5 Oct 2005 17:04:01 +0200
+
+insserv (1.02.0-1) unstable; urgency=low
+
+ * New upstream version.
+ - Rewritten to handle non-SuSe systems better.
+ - Patches 05_verbose_doc, 10_dryrun, and 50_lsb_shold_std removed,
+ as they are included upstream.
+ - Updated patch 40_dryrunmore to match new version, and extend it to
+ also cover SuSe code.
+ * Still building with -DSUSE as the new non-SuSe features are still
+ buggy.
+ * Changed download URL in copyright file to
+ <URL:ftp://ftp.suse.com/pub/projects/init/>.
+ * Removed rc and rcS, as a version of sysvinit
+ with equivalent patches is in sid and etch now.
+ * Added and updated init.d dependency info override files.
+ The provided dependencies is tested to work on my test machines
+ with 2.4 and 2.6 installs. (Closes: #325798)
+ * New script update-bootsystem-insserv to reorder
+ the boot scripts with a backup.
+ * Avoid initscripts with .dpkg* in the name.
+ (51_cfgfilter_dpkg.dpatch) (Closes: #326445)
+ * Add dependency on sysv-rc. (Closes: #329279)
+
+ -- Petter Reinholdtsen <pere@debian.org> Sat, 3 Sep 2005 13:18:51 +0200
+
+insserv (1.00.8-5) unstable; urgency=low
+
+ * Updated dependency info for (module-init-tools, modutils, raid2, mdadm)
+ * Added dependency override files (noflushd, laptop-net, whereami, pcscd)
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 2 Sep 2005 09:21:25 +0200
+
+insserv (1.00.8-4) unstable; urgency=low
+
+ * Added dependecy override files (xdm, irqbalance).
+ * Updated dependency info for a few override files (devfsd,
+ discover, hotplug, hotplug-net, hwclock.sh, keymap.sh, rmnologin,
+ sudo, gdm, lvm, ntpdate, xfs, aumix, freevo, laptop-netconf,
+ report-reboot, open-backdoor).
+ * New patch to avoid warning about missing override files if the
+ init.d file already contain LSB tags. (25_override.dpatch)
+ * Correct header example in the insserv(8) manual page.
+ (50_lsb_should_std.dpatch)
+
+ -- Petter Reinholdtsen <pere@debian.org> Thu, 1 Sep 2005 22:24:51 +0200
+
+insserv (1.00.8-3) unstable; urgency=low
+
+ * Added dependecy override files (nullmailer, binfmt-support).
+ * Add suggests on bootchart, a great tool to debug the boot
+ sequence.
+ * New patch to get dryrun mode working also when /etc/rc.boot is
+ missing. (40_dryrunmore.dpatch)
+ * Added more information about the dangers of reorganizing the boot
+ sequence in README.Debian.
+ * Some package cleanup.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 30 Aug 2005 00:20:16 +0200
+
+insserv (1.00.8-2) unstable; urgency=low
+
+ * Updated and added dependecy override files.
+ * Added script check-initd-order, trying to check the current boot
+ sequence in debian based on the LSB headers present.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 26 Aug 2005 00:20:16 +0200
+
+insserv (1.00.8-1) unstable; urgency=low
+
+ * Initial Release. (Closes: #324926)
+ * Document the -v (--verbose) flag. (05_verbose_doc.dpatch)
+ * Implement new option -n (--dryrun). (10_dryrun.dpatch)
+ * Implement support for reading LSB init.d header info from override
+ files. (20_overrides.dpatch)
+ * Adjust some paths and avoid installing LSB install scripts to
+ match Debian policy. (30_debian.dpatch)
+ * Add README.Debian explaining how to test this.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 26 Aug 2005 00:19:16 +0200
diff --git a/debian/check-archive-initd-scripts b/debian/check-archive-initd-scripts
new file mode 100755
index 0000000..f12b070
--- /dev/null
+++ b/debian/check-archive-initd-scripts
@@ -0,0 +1,275 @@
+#!/usr/bin/perl
+#
+# Check the consistency of all init.d scripts in the archive. Run
+# this on bellini.debian.org.
+
+use warnings;
+use strict;
+use File::Basename;
+
+my $warn = 1;
+
+my $basedir = "/org/lintian.debian.org/laboratory/binary";
+
+my @scripts = @ARGV;
+@scripts = <$basedir/*/init.d/*> unless (@scripts);
+
+my %scriptinfo;
+my %provides;
+
+my @virts = qw($local_fs $remote_fs $syslog $time $named
+ $portmap $network $all
+ $mail-transport-agent $x-font-server
+ $null $x-display-manager
+ );
+my @harddepheaders = qw(required-start required-stop);
+my @softdepheaders = qw(should-start
+ should-stop x-start-before x-stop-after);
+my $lsbheaders = "Provides|Required-Start|Required-Stop|Default-Start|Default-Stop";
+my $optheaders = "x-start-before|x-stop-after|should-start|should-stop";
+
+for my $virt (@virts) {
+ $provides{$virt} = ['insserv/etc/insserv.conf'];
+}
+
+# Ignore obsolete scripts, as these are unlikely to cause problems.
+for my $old (qw(glibc evms raid2 ldm sdm)) {
+ $provides{$old} = ['obsolete'];
+}
+
+# First pass to load the database
+for my $initdscript (@scripts) {
+ next if $initdscript =~ m%/rc|/rcS|/README%;
+ my %lsbinfo = parse_lsb_header($initdscript);
+ $scriptinfo{$initdscript} = \%lsbinfo;
+ next unless ($lsbinfo{'found'});
+
+ my %checked;
+ for my $provide (split(/[ ,\t]+/, $lsbinfo{provides})) {
+ if (exists $provides{$provide}) {
+ push(@{$provides{$provide}}, $initdscript)
+ } else {
+ $provides{$provide} = [$initdscript];
+ }
+ $checked{$provide} = 1;
+ }
+}
+
+for my $provide (sort keys %provides) {
+ if (1 < scalar @{$provides{$provide}}) {
+ my %script;
+ map { $script{basename($_)} = 1; } @{$provides{$provide}};
+ if (1 < scalar keys %script) {
+ error(sprintf("scripts %s provide duplicate '%s'",
+ join(",", short_name(@{$provides{$provide}})),
+ $provide));
+ }
+ }
+}
+
+# Second pass, to see which dependencies are missing
+for my $initdscript (@scripts) {
+ next unless ($scriptinfo{$initdscript}->{'found'});
+ my $short = short_name($initdscript);
+ my %checked;
+ my @hardmissing = ();
+ for my $header (@harddepheaders) {
+ my $list = $scriptinfo{$initdscript}->{$header};
+ next unless defined $list;
+ for my $facility (split(/[ ,\t]+/, $list)) {
+ next if exists $checked{$facility};
+ $checked{$facility} = 1;
+ push(@hardmissing, $facility)
+ unless exists $provides{$facility};
+ }
+ }
+ error("script $short depend on non-existing provides: "
+ . join(" ", @hardmissing)) if (@hardmissing);
+ my @softmissing = ();
+ for my $header (@softdepheaders) {
+ my $list = $scriptinfo{$initdscript}->{$header};
+ next unless defined $list;
+ for my $facility (split(/[ ,\t]+/, $list)) {
+ next if exists $checked{$facility};
+ $checked{$facility} = 1;
+ push(@softmissing, $facility)
+ unless exists $provides{$facility};
+ }
+ }
+ warning("script $short relate to non-existing provides: "
+ . join(" ", @softmissing)) if (@softmissing);
+
+ if (exists $checked{'$syslog'}
+ && $scriptinfo{$initdscript}->{'default-start'} =~ m/s/i) {
+ error("script $short depend on \$syslog and start from rcS.d/");
+ }
+ if (!exists $checked{'$remote_fs'}
+ && !exists $checked{'$syslog'}
+ && $scriptinfo{$initdscript}->{'need_remote_fs'}
+ && $scriptinfo{$initdscript}->{'default-start'} =~ m/s/i) {
+ warning("script $short possibly missing dependency on \$remote_fs");
+ } elsif (!exists $checked{'$local_fs'}
+ && !exists $checked{'$remote_fs'}
+ && !exists $checked{'$syslog'}
+ && $scriptinfo{$initdscript}->{'need_local_fs'}
+ && $scriptinfo{$initdscript}->{'default-start'} =~ m/s/i) {
+ warning("script $short possibly missing dependency on \$local_fs");
+ }
+
+ if (!exists $checked{'$syslog'}
+ && $scriptinfo{$initdscript}->{'need_syslog'}) {
+ warning("script $short possibly missing dependency on \$syslog");
+ }
+
+ my %provided;
+ for my $provide (split(/[ ,\t]+/,
+ $scriptinfo{$initdscript}->{provides})) {
+ $provided{$provide} = 1;
+ if ($provide =~ m/\$/) {
+ error("script $short provide virtual facility $provide");
+ }
+ }
+
+ my $basename = basename($initdscript, ".sh");
+ info("script $short does not provide its own name")
+ unless exists $provided{$basename};
+
+ # Detect common problems with runlevel settings.
+ my @startrl = sort split(/\s+/, lc($scriptinfo{$initdscript}->{'default-start'}));
+ my @stoprl = sort split(/\s+/, lc($scriptinfo{$initdscript}->{'default-stop'}));
+
+ unless ( @startrl || @stoprl) {
+ error("script $short do not start or stop in any runlevels");
+ }
+ # Scripts starting in rcS.d/ normally do not stop or only stop
+ # during hald and shutdown.
+ elsif ((array_equal(['s'], \@startrl) && array_equal([], \@stoprl))
+ || ( array_equal(['s'], \@startrl)
+ && array_equal(['0','6'], \@stoprl))) {
+ # OK
+ } else {
+ # Most scripts either start in rcS.d, or in runlevels 2-5
+ if (!array_equal(['2', '3', '4', '5'], \@startrl) &&
+ !array_equal(['s'], \@startrl) &&
+ (!array_equal([], \@startrl) && @stoprl)) {
+ # Some obvious errors (runlevels 2-5 are equivalent in Debian)
+ if (array_equal(['3', '5'], \@startrl)
+ || array_equal(['3', '4', '5'], \@startrl)) {
+ error("script $short have inconsistent start runlevels: ",
+ join(" ", @startrl));
+ } else {
+ warning("script $short does not start in the usual runlevels: ",
+ join(" ", @startrl));
+ }
+ }
+
+ # And most scripts stop in runlevel (1) runlevels (0, 1, 6),
+ # only starts or only stops in (0) or (6).
+ if (!array_equal(['0', '1', '6'], \@stoprl) &&
+ !array_equal(['1'], \@stoprl) &&
+ !array_equal(['0', '6'], \@stoprl) &&
+ !(array_equal(['0'], \@stoprl) && !@startrl) &&
+ !(array_equal(['6'], \@stoprl) && !@startrl) &&
+ !(array_equal([], \@stoprl) && @startrl)) {
+ warning("script $short does not stop in the usual runlevels: ",
+ join(" ", @stoprl));
+ }
+ }
+}
+
+exit 0;
+
+sub parse_lsb_header {
+ my $initdscript = shift;
+ my $short = short_name($initdscript);
+ my %lsbinfo;
+ unless (open(INIT, "<", $initdscript)) {
+ error("script $short is unreadable");
+ return ();
+ }
+ my $inheader = 0;
+ while (<INIT>) {
+# print;
+ chomp;
+ if (m/^\#\#\# BEGIN INIT INFO\s*$/) {
+ $lsbinfo{'found'} = 1;
+ $inheader = 1;
+ }
+ $inheader = 0 if (m/\#\#\# END INIT INFO$/);
+ if ($inheader
+ && m/^\# ($lsbheaders|$optheaders):\s*(\S?.*)$/i) {
+# print "$1\n";
+ $lsbinfo{lc($1)} = $2;
+ }
+ s/\#.*$//; # Remove comments
+ $lsbinfo{'need_remote_fs'} = 1 if m%/usr/s?bin/%;
+ $lsbinfo{'need_local_fs'} = 1 if m%/var/%;
+
+ # Detect the use of tools resting in /usr/
+ $lsbinfo{'need_remote_fs'} = 1 if m%awk%;
+ $lsbinfo{'need_remote_fs'} = 1 if m%which%;
+ }
+ close(INIT);
+
+ # When running on bellini.debian.org, check if $syslog is needed
+ my $objdumpinfo = dirname($initdscript) . "/../objdump-info";
+ if ( -f $objdumpinfo) {
+ print "Checking for syslog symbol\n";
+ if (open(OBJDUMP, "<", $objdumpinfo)) {
+ while (<OBJDUMP>) {
+ $lsbinfo{'need_syslog'} = 1 if /GLIBC.* syslog/;
+ }
+ close OBJDUMP;
+ }
+ }
+
+ # Check that all the required headers are present
+ if (!$lsbinfo{'found'}) {
+ error("script $short is missing LSB header");
+ } else {
+ for my $key (split(/\|/, lc($lsbheaders))) {
+ if (!exists $lsbinfo{$key}) {
+ error("script $short missing LSB keyword '$key'");
+ }
+ }
+ }
+ return %lsbinfo
+}
+
+sub short_name {
+ my @scripts;
+ for my $script ( @_ ) {
+ my $copy = $script;
+ $copy =~ s%$basedir/%%g;
+ push @scripts, $copy;
+ }
+ if (wantarray) {
+ return @scripts;
+ } else {
+ return $scripts[0];
+ }
+}
+
+sub array_equal {
+ my ($a1, $a2) = @_;
+ return 0 if (scalar @{$a1} != scalar @{$a2});
+
+ my $i = 0;
+ while ($i < scalar @{$a1}) {
+ return 0 if $a1->[$i] ne $a2->[$i];
+ $i++;
+ }
+ return 1;
+}
+
+sub info {
+ print "info: @_\n";
+}
+
+sub warning {
+ print "warning: @_\n" if $warn;
+}
+
+sub error {
+ print "error: @_\n";
+}
diff --git a/debian/check-initd-order b/debian/check-initd-order
new file mode 100755
index 0000000..e7d0ef6
--- /dev/null
+++ b/debian/check-initd-order
@@ -0,0 +1,425 @@
+#!/usr/bin/perl
+#
+# Author: Petter Reinholdtsen
+# Date: 2005-08-21
+#
+# Read LSM init.d headers in SysV init.d scripts, and verify correct
+# start order for all runlevels. It can also provide a graph.
+#
+# To generate a graph, run it like this
+#
+# check-initd-order -g > initorder.dotty && dotty initorder.dotty
+
+use strict;
+use warnings;
+
+my $rcbase = "/etc";
+
+my $overridepath = "/usr/share/insserv/overrides";
+my $hostoverridepath = "/etc/insserv/overrides";
+
+my $debug = 0;
+my $errors = 0;
+
+my %rcmap =
+ (
+ 'B' => 'rc.boot',
+ 'S' => 'rcS.d',
+ '1' => 'rc1.d',
+ '2' => 'rc2.d',
+ '3' => 'rc3.d',
+ '4' => 'rc4.d',
+ '5' => 'rc5.d',
+ '6' => 'rc6.d',
+ );
+
+my %sysmap;
+
+my %provideslist;
+my %scriptorder;
+my %opts;
+
+# Used to draw graphs
+my %gotrevdeps;
+my %allprovides;
+
+while($#ARGV >= 0 && ($_ = $ARGV[0]) =~ /^-/) {
+ shift @ARGV;
+ if (/^-([cdgko])$/) { $opts{$1}++; next }
+ if (/^-b$/) { $rcbase = shift; next }
+ if (/^-h|--help$/) { &usage; }
+ &usage("unknown option");
+}
+
+load_sysmap("$rcbase/insserv.conf");
+
+$debug = $opts{'d'};
+my $useoverrides = $opts{'o'} ? 0 : 1;
+
+if ($opts{'g'}) {
+ graph_generate();
+ exit 0;
+}
+
+check_bootorder();
+exit $errors > 0 ? 1 : 0;
+
+sub usage {
+ print STDERR "check-initd-order: error: @_\n" if ($#_ >= 0);
+ print STDERR <<EOF;
+usage: check-initd-order [-cdgko] [-b basedir]
+ -b basedir (default /etc)
+ -d enable debug output
+ -o do not load override files
+ -k use shutdown (reboot) sequence instead of boot sequence
+ -g generate graph
+ -c use combined boot and shutdown sequence (only for graphs)
+EOF
+ exit 1;
+}
+
+# Simple basename implementatin to avoid dependin on File::Basename
+# from perl-modules
+sub basename {
+ my $path = shift;
+ $path =~ s%^.*/([^/]+)$%$1%;
+ return $path;
+}
+
+sub error {
+ print STDERR "error: ", @_;
+ $errors++;
+}
+
+# Map packages to system metapackages. These dependencies should
+# probably be more complex
+sub load_sysmap {
+ my $filename = shift;
+ unless (open(CONF, "<", "$filename")) {
+ print STDERR "error: unable to load $filename";
+ return;
+ }
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//;
+ next if m/^\s*$/;
+ if (m/^(\$\S+)\s+(\S.*\S*)\S*$/) {
+ my $virt = $1;
+ for my $dep (split(/\s+/, $2)) {
+ $dep =~ s/^\+//g;
+ $sysmap{$dep} = $virt;
+ }
+ }
+ }
+ close(CONF);
+}
+
+sub graph_addnode {
+ my ($isstopseq, $lsbinforef) = @_;
+ my %lsbinfo = %{$lsbinforef};
+
+ unless ($lsbinfo{'provides'}) {
+ error "File ". $lsbinfo{'file'} . " is missing the provides header\n";
+ $lsbinfo{'provides'} = $lsbinfo{'file'};
+ $lsbinfo{'provides'} =~ s/^[SK]\d{2}//;
+ }
+
+ my $key = $opts{'k'} ? 'stop' : 'start';
+ my $revkey = $opts{'k'} ? 'stop-after' : 'start-before';
+ my @provides = split(/\s+/, $lsbinfo{'provides'});
+ for my $name (@provides) {
+ if (exists $sysmap{$name}) {
+ graph_addnode($isstopseq,
+ {'provides' => $sysmap{$name},
+ "required-$key" => $name});
+ }
+ }
+
+ if (1 < @provides) {
+ my @providescopy = @provides;
+ my $lastprovide = shift @providescopy;
+ for my $provide (@providescopy) {
+ graph_addnode($isstopseq,
+ {'provides' => $lastprovide,
+ "required-$key" => $provide});
+ graph_addnode($isstopseq,
+ {'provides' => $provide,
+ "required-$key" => $lastprovide});
+ }
+ }
+
+ for my $provide (@provides) {
+ my $provideesc = $provide; $provideesc =~ s/"/\\"/g;
+ my %deps =
+ (
+ "required-$key" => 'blue',
+ "should-$key" => 'springgreen',
+ "$revkey" => 'yellow'
+ );
+
+ for $key (keys %deps) {
+ if (exists $lsbinfo{$key} && $lsbinfo{$key}) {
+ my @depends = split(/\s+/, $lsbinfo{$key});
+
+ my $dependonall = 0;
+ for my $pkg (@depends) {
+ $dependonall = 1 if ($pkg eq '$all');
+ }
+
+ for my $pkg (@depends) {
+ my $pkgesc = $pkg; $pkgesc =~ s/"/\\"/g;
+ my $color = $deps{$key};
+ if ($revkey eq $key) {
+ print "\"$provideesc\" -> \"$pkgesc\"[color=$color] ;\n";
+ $gotrevdeps{$pkg} = 1 unless $dependonall;
+ } else {
+ print "\"$pkgesc\" -> \"$provideesc\"[color=$color] ;\n";
+ $gotrevdeps{$provide} = 1 unless $dependonall;
+ }
+ }
+ }
+ }
+
+ print "\"$provideesc\" [shape=box];\n" unless $allprovides{$provide};
+ $allprovides{$provide} = 1;
+ }
+}
+
+sub graph_generate_mode {
+ my ($isstopseq) = @_;
+ my @dirs = $isstopseq ? $rcmap{6} : ($rcmap{S}, $rcmap{2});
+ for my $rcdir (@dirs) {
+ chdir "$rcbase/$rcdir/.";
+ my @scripts = $isstopseq ? <K*> : <S*>;
+ for my $script (@scripts) {
+ my $lsbinforef = load_lsb_tags("$rcbase/$rcdir/$script",
+ $useoverrides);
+
+ unless (defined $lsbinforef) {
+ error "LSB header missing in $rcbase/$rcdir/$script\n";
+ $script =~ s/^[SK]\d{2}//;
+ $lsbinforef = {'provides' => $script,
+ 'required-start' => '$remote_fs $syslog',
+ 'required-stop' => '$remote_fs $syslog'};
+ }
+ graph_addnode($isstopseq, $lsbinforef);
+ }
+ }
+ # Mark all packages without any reverse dependencies as depending
+ # on $all
+ for my $provide (keys %allprovides) {
+ next unless (exists $gotrevdeps{$provide});
+ my $lsbinforef = {'provides' => '$all',
+ 'required-start' => "$provide",
+ 'required-stop' => "$provide"};
+ graph_addnode($isstopseq, $lsbinforef);
+ }
+}
+
+sub graph_generate {
+ print "# Generating graph\n";
+ print <<EOF;
+digraph packages {
+rankdir=LR;
+concentrate=true;
+EOF
+ if ($opts{'c'}) {
+ graph_generate_mode();
+ graph_generate_mode(1);
+ } else {
+ graph_generate_mode($opts{'k'});
+ }
+ print <<EOF;
+}
+EOF
+}
+
+sub check_deps {
+ my ($lsbinforef, $tag, $order, $bootorder, $headername, $required) = @_;
+ my %lsbinfo = %{$lsbinforef};
+ my $name = $lsbinfo{'file'};
+ if ($lsbinfo{$headername}) {
+ my @depends = split(/\s+/, $lsbinfo{$headername});
+ for my $dep (@depends) {
+ if (! $required && exists $provideslist{$dep}) {
+ unless (exists $scriptorder{$tag}{$dep}
+ and ("S" eq $tag
+ ? $scriptorder{$tag}{$dep} < $bootorder
+ : $scriptorder{$tag}{$dep} > $bootorder)) {
+ my $deporder;
+ if (exists $scriptorder{$tag}{$dep}) {
+ $deporder = $scriptorder{$tag}{$dep}
+ } else {
+ $deporder = exists $provideslist{$dep} ? $provideslist{$dep} : "?";
+ }
+ error(sprintf("Incorrect order %s@%s %s %s%s\n",
+ $dep, $deporder, 'S' eq $tag ? '>' : '<',
+ $name, $order));
+ }
+ }
+ }
+ }
+}
+
+sub check_bootorder {
+ my $bootorder = 0;
+ my @dirs = $opts{'k'} ? $rcmap{6} : ($rcmap{S}, $rcmap{2});
+ my @scripts;
+ for my $rcdir (@dirs) {
+ push(@scripts, $opts{'k'} ? <$rcbase/$rcdir/K*> : <$rcbase/$rcdir/S*>);
+ }
+
+ if ($opts{'k'}) {
+ $scriptorder{'K'}{'$all'} = 1;
+ } else {
+ # Calculate script order for the script before the scripts
+ # with the last boot sequence number.
+ my $tmpbootorder = 0;
+ my $allorder = 0;
+ my $maxorder = 0;
+ my $maxbootorder = 0;
+ for my $scriptpath (@scripts) {
+ my $script = $scriptpath;
+ $script =~ s%^.*/([^/]+)$%$1%;
+ $tmpbootorder++;
+ my ($tag, $order, $name) = $script =~ m/^(.)(\d{2})(.+)$/;
+ if ($order > $maxorder) {
+ $allorder = $maxbootorder;
+ $maxbootorder = $tmpbootorder;
+ $maxorder = $order;
+ }
+
+ my $lsbinforef = load_lsb_tags($scriptpath,
+ $useoverrides);
+
+ if (exists $lsbinforef->{'provides'}
+ && $lsbinforef->{'provides'}) {
+ for my $provide (split(/\s+/, $lsbinforef->{'provides'})) {
+ $provideslist{$provide} = $order;
+ }
+ } else {
+ $provideslist{$script} = $order;
+ }
+ }
+ $scriptorder{'S'}{'$all'} = $allorder;
+ }
+ for my $scriptpath (@scripts) {
+ my $script = $scriptpath;
+ $script =~ s%^.*/([^/]+)$%$1%;
+ $bootorder++;
+ my ($tag, $order, $name) = $script =~ m/^(.)(\d{2})(.+)$/;
+
+ $scriptorder{$tag}{$name} = $bootorder;
+ $scriptorder{$tag}{$sysmap{$name}} = $bootorder
+ if (exists $sysmap{$name});
+
+# print "$script\n";
+# print "T: $tag O: $order N: $name\n";
+ my $lsbinforef = load_lsb_tags($scriptpath,
+ $useoverrides);
+
+ unless (defined $lsbinforef) {
+ error "LSB header missing in $scriptpath\n";
+ next;
+ }
+ my %lsbinfo = %{$lsbinforef};
+
+ if (exists $lsbinfo{'provides'} && $lsbinfo{'provides'}) {
+ for my $provide (split(/\s+/, $lsbinfo{'provides'})) {
+ $scriptorder{$tag}{$provide} = $bootorder;
+ $scriptorder{$tag}{$sysmap{$provide}} = $bootorder
+ if (exists $sysmap{$provide});
+ }
+ } else {
+ error "no LSB header provides value in script $scriptpath\n";
+ }
+
+ if ('S' eq $tag) {
+ check_deps($lsbinforef, $tag, $order, $bootorder, 'required-start', 1);
+ check_deps($lsbinforef, $tag, $order, $bootorder, 'should-start', 0);
+# check_deps($lsbinforef, 'K', $order, $bootorder, 'start-before', 0);
+ }
+ if ('K' eq $tag) {
+ check_deps($lsbinforef, $tag, $order, $bootorder, 'required-stop', 1);
+ check_deps($lsbinforef, $tag, $order, $bootorder, 'should-stop', 0);
+# check_deps($lsbinforef, 'S', $order, $bootorder, 'stop-after', 0);
+ }
+ }
+}
+
+sub load_lsb_tags {
+ my ($initfile, $useoverrides) = @_;
+ my $lsbinforef = load_lsb_tags_from_file($initfile);
+
+ if ($useoverrides) {
+ # Try override file
+ $initfile = readlink($initfile) if (-l $initfile);
+ my $basename = basename($initfile);
+
+ # Only read shipped override file when initscript does not
+ # contain LSB tags.
+ if (! defined($lsbinforef) && -f "$overridepath/$basename") {
+ print STDERR "Override $overridepath/$basename\n" if $debug;
+ $lsbinforef = load_lsb_tags_from_file("$overridepath/$basename");
+ }
+
+ # Always read the host override in $hostoverridepath.
+ if (-f "$hostoverridepath/$basename") {
+ print STDERR "Override $hostoverridepath/$basename\n" if $debug;
+ $lsbinforef = load_lsb_tags_from_file("$hostoverridepath/$basename");
+ }
+
+ }
+ return $lsbinforef;
+}
+
+sub load_lsb_tags_from_file {
+ my ($file) = @_;
+ print STDERR "Loading $file\n" if $debug;
+ ### BEGIN INIT INFO
+ # Provides: xdebconfigurator
+ # Required-Start: $syslog
+ # Required-Stop: $syslog
+ # Default-Start: 2 3 4 5
+ # Default-Stop: 1 6
+ # Short-Description: Genererate xfree86 configuration at boot time
+ # Description: Preseed X configuration and use dexconf to
+ # genereate a new configuration file.
+ ### END INIT INFO
+ unless (open(FILE, "<$file")) {
+ warn "error: Unable to read $file";
+ return;
+ }
+ my $found = 0;
+ my ($provides, $requiredstart, $requiredstop, $shouldstart, $shouldstop);
+ my ($startbefore, $stopafter);
+ while (<FILE>) {
+ chomp;
+ $found = 1 if (m/\#\#\# BEGIN INIT INFO/);
+ next unless $found;
+ last if (m/\#\#\# END INIT INFO/);
+
+ $provides = $1 if (m/^\# provides:\s+(\S*.*\S+)\s*$/i);
+ $requiredstart = $1 if (m/^\# required-start:\s+(\S*.*\S+)\s*$/i);
+ $requiredstop = $1 if (m/^\# required-stop:\s+(\S*.*\S+)\s*$/i);
+ $shouldstart = $1 if (m/^\# should-start:\s+(\S*.*\S+)\s*$/i);
+ $shouldstop = $1 if (m/^\# should-stop:\s+(\S*.*\S+)\s*$/i);
+ $startbefore = $1 if (m/^\# X-Start-Before:\s+(\S*.*\S+)\s*$/i);
+ $stopafter = $1 if (m/^\# X-Stop-After:\s+(\S*.*\S+)\s*$/i);
+ }
+ close(FILE);
+
+ return undef unless ($found);
+
+# print "Provides: $provides\n" if $provides;
+ return {
+ 'provides' => $provides,
+ 'required-start' => $requiredstart,
+ 'required-stop' => $requiredstop,
+ 'should-start' => $shouldstart,
+ 'should-stop' => $shouldstop,
+ 'start-before' => $startbefore,
+ 'stop-after' => $stopafter,
+ 'file' => $file,
+ };
+}
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..a237e16
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,36 @@
+Source: insserv
+Section: misc
+Priority: optional
+Maintainer: Debian sysvinit maintainers <debian-init-diversity@chiark.greenend.org.uk>
+Uploaders:
+ Kel Modderman <kel@otaku42.de>,
+ Dmitry Bogatov <KAction@debian.org>,
+ Petter Reinholdtsen <pere@debian.org>,
+Build-Depends:
+ bash-completion,
+ debhelper-compat (= 12),
+ po-debconf,
+Standards-Version: 4.4.0
+Homepage: http://savannah.nongnu.org/projects/sysvinit
+Vcs-Browser: https://salsa.debian.org/debian/insserv
+Vcs-Git: https://salsa.debian.org/debian/insserv.git
+
+Package: insserv
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Suggests:
+ bootchart2,
+Breaks:
+ sysv-rc (<< 2.87dsf-3),
+Description: boot sequence organizer using LSB init.d script dependency information
+ The insserv program is used by the standard SysV-based init system. It
+ updates the order of symlinks in /etc/rc?.d/ based on dependencies
+ specified by LSB headers in the init.d scripts themselves.
+ .
+ These declared relations between scripts make it possible to optimize
+ the boot sequence for the currently installed set of packages, while
+ detecting and rejecting dependency loops.
+ .
+ Using insserv incorrectly can result in an unbootable system.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..5d841a2
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,20 @@
+This package was debianized by Petter Reinholdtsen <pere@hungry.com> on
+Sun, 21 Aug 2005 11:20:54 +0200.
+
+It was downloaded from <URL: ftp://ftp.suse.com/pub/projects/init/ >
+
+Copyright Holder: Werner Fink <werner@suse.de> and SuSE LINUX AG.
+
+License:
+
+ Copyright 2000-2004 Werner Fink, 2000 SuSE GmbH Nuernberg, Germany,
+ 2003 SuSE Linux AG, Germany.
+ 2004 SuSE LINUX AG, Germany.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+On Debian systems, a copy of the GNU General Public License version 2
+may be found in the file /usr/share/common-licenses/GPL-2.
diff --git a/debian/dirs b/debian/dirs
new file mode 100644
index 0000000..ecc7351
--- /dev/null
+++ b/debian/dirs
@@ -0,0 +1,3 @@
+etc/insserv.conf.d
+etc/insserv/overrides
+var/lib/update-rc.d
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..e845566
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+README
diff --git a/debian/insserv.bash-completion b/debian/insserv.bash-completion
new file mode 100644
index 0000000..68c0ef3
--- /dev/null
+++ b/debian/insserv.bash-completion
@@ -0,0 +1,36 @@
+# insserv(8) completion
+#
+# Copyright (c) 2009 Kel Modderman <kel@otaku42.de>
+#
+
+have insserv &&
+_insserv()
+{
+ local cur prev sysvdir services options
+
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \
+ || sysvdir=/etc/init.d
+
+ services=( $(echo $sysvdir/!(README*|*.dpkg*|*.rpm@(orig|new|save))) )
+ services=( ${services[@]#$sysvdir/} )
+ options=( -c --config -d -f -n -o --override -p --path -r -v )
+
+ case "$prev" in
+ -c|--config)
+ _filedir
+ ;;
+ -o|--override|-p|--path)
+ _filedir -d
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W '${options[@]} ${services[@]}' -- \
+ $cur ) )
+ ;;
+ esac
+
+ return 0
+} &&
+complete -F _insserv insserv
diff --git a/debian/install b/debian/install
new file mode 100644
index 0000000..c46ba93
--- /dev/null
+++ b/debian/install
@@ -0,0 +1,4 @@
+debian/check-archive-initd-scripts usr/share/insserv
+debian/check-initd-order usr/share/insserv
+debian/make-testsuite usr/share/insserv
+debian/seq-changes usr/share/insserv
diff --git a/debian/make-testsuite b/debian/make-testsuite
new file mode 100755
index 0000000..262b37d
--- /dev/null
+++ b/debian/make-testsuite
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Extract key information from the current to try to generate a test
+# suite script to demonstrate detected bugs.
+
+echo 'set +C'
+echo "cat <<'EOF' > \$insconf"
+grep -v '#' /etc/insserv.conf |grep -v '^$'
+echo "EOF"
+echo 'set -C'
+echo
+
+for f in /etc/init.d/*; do
+ name=$(basename $f)
+ case $name in
+ README|rc|rcS|skeleton)
+ ;;
+ *)
+ echo "addscript $name <<'EOF'"
+ sed -n -r '/^### BEGIN INIT INFO/, /END INIT INFO/p' < $f
+ echo "EOF"
+ echo
+ ;;
+ esac
+done
+
+echo 'cd $tmpdir/etc'
+echo 'mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d'
+cd /etc
+for f in rc?.d/*; do
+ case $f in
+ */README)
+ ;;
+ *)
+ echo ln -s $(readlink $f) $f
+ ;;
+ esac
+done
+
+echo
+echo list_rclinks
diff --git a/debian/patches/0004-Fix-spurious-warnings-about-unknown-virtual-dependen.patch b/debian/patches/0004-Fix-spurious-warnings-about-unknown-virtual-dependen.patch
new file mode 100644
index 0000000..f6138d4
--- /dev/null
+++ b/debian/patches/0004-Fix-spurious-warnings-about-unknown-virtual-dependen.patch
@@ -0,0 +1,26 @@
+From: Dmitry Bogatov <KAction@debian.org>
+Date: Wed, 17 Jul 2019 18:45:45 +0000
+Subject: Fix spurious warnings about unknown virtual dependencies
+
+Do not emit warnings about unknown virtual($foo) facility soft
+dependency. It is perfectly fine to have soft (should) dependency
+on facility, provided by currently not installed package.
+
+Closes: #932199
+---
+ insserv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/insserv.c b/insserv.c
+index d5f6a4f..f949f05 100644
+--- a/insserv.c
++++ b/insserv.c
+@@ -470,7 +470,7 @@ static void rememberreq(service_t * restrict serv, uint bit, const char * restri
+ break;
+ }
+ }
+- if (! can_expand_name)
++ if (! can_expand_name && (bit & REQ_MUST))
+ warn("warning: could not find all dependencies for %s\n", token);
+
+ break;
diff --git a/debian/patches/0005-Fix-spelling-error-in-manpage.patch b/debian/patches/0005-Fix-spelling-error-in-manpage.patch
new file mode 100644
index 0000000..92ea945
--- /dev/null
+++ b/debian/patches/0005-Fix-spelling-error-in-manpage.patch
@@ -0,0 +1,21 @@
+From: Dmitry Bogatov <KAction@debian.org>
+Date: Mon, 26 Aug 2019 22:02:47 +0000
+Subject: Fix spelling error in manpage
+
+---
+ insserv.8.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/insserv.8.in b/insserv.8.in
+index b79385a..9008b5f 100644
+--- a/insserv.8.in
++++ b/insserv.8.in
+@@ -262,7 +262,7 @@ grouped into one starting or stopping order.
+ Currently the following options are recognized by insserv:
+ .TP
+ .BR \-v ,\ \-\-verbose
+-Perform operation with more diagnotic messages printed on stderr.
++Perform operation with more diagnostic messages printed on stderr.
+ .TP
+ .BR \-q ,\ \-\-silent
+ Perform operations silently. This blocks warning messages
diff --git a/debian/patches/110_portmap.patch b/debian/patches/110_portmap.patch
new file mode 100644
index 0000000..ba4bf3b
--- /dev/null
+++ b/debian/patches/110_portmap.patch
@@ -0,0 +1,26 @@
+From: Debian sysvinit maintainers
+ <debian-init-diversity@chiark.greenend.org.uk>
+Date: Fri, 5 Apr 2019 20:32:40 +0000
+Subject: _portmap
+
+Drop central definition of $portmap, it's better served by the individual packages providing $portmap.
+---
+ insserv.conf | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/insserv.conf b/insserv.conf
+index 933ccad..138da94 100644
+--- a/insserv.conf
++++ b/insserv.conf
+@@ -25,11 +25,6 @@ $remote_fs $local_fs +mountnfs +mountnfs-bootclean +umountnfs +sendsigs
+ #
+ $syslog +rsyslog +sysklogd +syslog-ng +dsyslog +inetutils-syslogd
+
+-#
+-# SunRPC portmapper available
+-#
+-$portmap portmap
+-
+ #
+ # The system time has been set correctly
+ #
diff --git a/debian/patches/11_debian_conf.patch b/debian/patches/11_debian_conf.patch
new file mode 100644
index 0000000..f8f6a57
--- /dev/null
+++ b/debian/patches/11_debian_conf.patch
@@ -0,0 +1,65 @@
+From: Debian sysvinit maintainers
+ <debian-init-diversity@chiark.greenend.org.uk>
+Date: Fri, 5 Apr 2019 20:32:39 +0000
+Subject: _debian_conf
+
+Purpose: Adjust the insserv configuration for Debian init.d script names.
+Fixes: None, made as part of Debian porting.
+Status: Debian specific, showed to upstream.
+
+Status: Debian specific, showed to upstream.
+---
+ insserv.conf | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/insserv.conf b/insserv.conf
+index 54145fd..933ccad 100644
+--- a/insserv.conf
++++ b/insserv.conf
+@@ -1,29 +1,29 @@
+ #
+ # All local filesystems are mounted (done during boot phase)
+ #
+-$local_fs boot.localfs +boot.crypto
++$local_fs +mountall +mountall-bootclean +mountoverflowtmp +umountfs
+
+ #
+ # Low level networking (ethernet card)
+ #
+-$network network
++$network +networking +ifupdown
+
+ #
+ # Named is operational
+ #
+-$named +named +dnsmasq +lwresd $network
++$named +named +dnsmasq +lwresd +bind9 +unbound +pdns-recursor $network
+
+ #
+ # All remote filesystems are mounted (note in some cases /usr may
+ # be remote. Most applications that care will probably require
+ # both $local_fs and $remote_fs)
+ #
+-$remote_fs $local_fs +nfs +smbfs
++$remote_fs $local_fs +mountnfs +mountnfs-bootclean +umountnfs +sendsigs
+
+ #
+ # System logger is operational
+ #
+-$syslog syslog
++$syslog +rsyslog +sysklogd +syslog-ng +dsyslog +inetutils-syslogd
+
+ #
+ # SunRPC portmapper available
+@@ -33,9 +33,9 @@ $portmap portmap
+ #
+ # The system time has been set correctly
+ #
+-$time boot.clock +xntpd
++$time +hwclock
+
+ #
+ # Services which need to be interactive
+ #
+-<interactive> apache apache2 boot.clock boot.crypto boot.crypto-early boot.localfs boot.rootfsck kbd kdump ntp
++<interactive> glibc udev console-screen keymap keyboard-setup console-setup cryptdisks cryptdisks-early checkfs-loop
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..e28fa8f
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,5 @@
+11_debian_conf.patch
+110_portmap.patch
+warn_in_ignore_mode.patch
+0004-Fix-spurious-warnings-about-unknown-virtual-dependen.patch
+0005-Fix-spelling-error-in-manpage.patch
diff --git a/debian/patches/warn_in_ignore_mode.patch b/debian/patches/warn_in_ignore_mode.patch
new file mode 100644
index 0000000..37eec6a
--- /dev/null
+++ b/debian/patches/warn_in_ignore_mode.patch
@@ -0,0 +1,24 @@
+From: Felipe Sateler <fsateler@debian.org>
+Date: Fri, 5 Apr 2019 20:32:42 +0000
+Subject: warn about dependencies in ignore mode
+
+Bug-Debian: https://bugs.debian.org/811441
+
+Bug-Debian: https://bugs.debian.org/811441
+---
+ insserv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/insserv.c b/insserv.c
+index 1e43bf0..d5f6a4f 100644
+--- a/insserv.c
++++ b/insserv.c
+@@ -3577,7 +3577,7 @@ int main (int argc, char *argv[])
+ * Use information from symbolic link structure to
+ * check if all services are around for this script.
+ */
+- if (isarg && !ignore) {
++ if (isarg) {
+ boolean ok = true;
+ if (del)
+ ok = chkdependencies(service);
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..3b1150e
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] insserv.templates
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644
index 0000000..4f4cd8f
--- /dev/null
+++ b/debian/po/cs.po
@@ -0,0 +1,55 @@
+# Czech translation of insserv debconf messages.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the insserv package.
+# Miroslav Kure <kurem@debian.cz>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-23 12:52+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "Povolit (nebo nechat povolené) zavádění založené na závislostech?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Povolíte-li zavádění založené na závislostech, budou skripty v /etc/rc*.d/ "
+"přeskládány na základě informací zapsaných v LSB hlavičkách těchto skriptů. "
+"(Pokud LSB informace chybí, použijí se výchozí hodnoty.) Všechny symbolické "
+"odkazy S* v rc0.d/ a rc6.d/ budou přejmenovány na K*, aby byly jejich názvy "
+"konzistentní se způsobem použití (volání s argumentem „stop“). Změna se "
+"provede pouze poté, co se ověří, že je převod bezpečný. Pokud je zavádění "
+"založené na závislostech povoleno, způsobí jeho vypnutí návrat do původního "
+"stavu."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Mějte prosím na paměti, že se jedná o experimentální vlastnost. Není "
+"zaručeno, že se pokus o návrat k původnímu systému zavádění podaří. V "
+"krajním případě bude možná nutné přeinstalovat celý systém."
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644
index 0000000..f27e5f4
--- /dev/null
+++ b/debian/po/da.po
@@ -0,0 +1,57 @@
+# Danish translation insserv.
+# Copyright (C) 2011 insserv og nedenstående oversættere.
+# This file is distributed under the same license as the insserv package.
+# Joe Hansen (joedalton2@yahoo.dk), 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2011-03-25 19:25+0200\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Aktiver (eller bevar aktiveret) den afhængighedsbaserede opstartssekvens?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Hvis du vælger at aktivere den afhængighedsbaserede opstartssekvens, vil "
+"skriptene i /etc/rc*.d/ få ny rækkefølge med brug af afhængighedsinformation "
+"fra LSB-kommentarhoveder (eller standarder hvor disse ikke er til stede). "
+"Alle S*-symbolske henvisninger i rc0.d/ og rc6.d/ vil blive omdannet til K*-"
+"symbolske henvisninger for at sikre, at måden de bliver brugt på (med "
+"argumentet »stop«) svarer til deres navne. Ændringen vil først blive udført "
+"efter, at det er verificeret, at det er sikkert at konvertere. Deaktivering "
+"af denne, når den er aktiveret, vil medføre forsøg på at fortryde ændringen."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Bemærk venligst at denne funktion er på testniveau. Forsøg på at gendanne "
+"fra afhængighedsbaseret opstartssekvenser er ikke garanteret og kan medføre "
+"behov for at geninstallere systemet."
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..b20efd2
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,62 @@
+# translation of insserv_1.11.0-8_de.po to German
+# Copyright (C) 2008, Erik Schanze <eriks@debian.org>
+# This file is distributed under the same license as the insserv package.
+#
+# Erik Schanze <eriks@debian.org>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv_1.11.0-8_de\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-05-04 00:19+0200\n"
+"Last-Translator: Erik Schanze <eriks@debian.org>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Abhängigkeitsgestützte Reihenfolge beim Hochfahren aktivieren (oder "
+"aktiviert lassen)?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Wenn Sie hier zustimmen, werden alle Skripte im Verzeichnis /etc/rc*.d/ "
+"anhand der in jedem Skript enthaltenen Informationen über die Abhängigkeiten "
+"neu sortiert. Wenn diese Information fehlt, wird die Standardinformation "
+"über Abhängigkeiten benutzt. Es werden auch alle symbolischen Links »S*« in "
+"den Verzeichnissen rc0.d/ und rc6.d/ in symbolische Links »K*« umgewandelt, "
+"um sicher zu stellen, dass ihre Aufrufe (mit dem Argument »stop«) zu ihren "
+"Namen passen. Die Änderung wird nur vorgenommen, nachdem überprüft wurde, "
+"dass die Umwandlung sicher ist. Wenn Sie hier ablehnen, nachdem Sie schon "
+"einmal zugestimmt haben, wird versucht, die Änderungen zurückzunehmen."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Bitte beachten Sie, dass es sich um eine experimentelle "
+"Funktionalität handelt. Es gibt keine Garantie, dass man von einer "
+"abhängigkeitsgestützten zu einer nicht abhängigkeitsgestützten "
+"Reihenfolge des Hochfahrens sicher zurückzukehren kann. Eine "
+"Neuinstallation des Systems könnte erforderlich werden."
+
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644
index 0000000..7b3f573
--- /dev/null
+++ b/debian/po/es.po
@@ -0,0 +1,85 @@
+# insserv translation to spanish
+# Copyright (C) 2007 Software in the Public Interest, SPI Inc.
+# This file is distributed under the same license as the insserv package.
+#
+# Changes:
+# - Initial translation
+# Steve Lord Flaubert , 2008
+#
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+# http://www.debian.org/intl/spanish/
+# especialmente las notas y normas de traducción en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Si tiene dudas o consultas sobre esta traducción consulte con el último
+# traductor (campo Last-Translator) y ponga en copia a la lista de
+# traducción de Debian al español (<debian-l10n-spanish@lists.debian.org>)
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.10.0-4\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-18 17:18-0500\n"
+"Last-Translator: Steve Lord Flaubert <stonescenter@gmail.com>\n"
+"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"¿Activar (o mantener activada) la secuencia de arranque basada en "
+"dependencias?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Si escoge activar una secuencia de arranque basada en dependencias, los "
+"scripts en «/etc/rc*.d/» serán reordenados mediante información de "
+"dependencia proporcionadas por los comentarios de cabecera de LSB (o valores "
+"por omisión donde estos no estén presentes). Todos los enlaces simbólicos S* "
+"en «rc0.d/ y rc6.d/» serán convertidos en enlaces simbólicos K*, para "
+"asegurarse que la forma con que se usan (con el argumento «stop») coincidan "
+"con sus nombres. El cambio sólo se hará después de que se compruebe que la "
+"conversión es segura. Si está activo al desactivarlo se intentará revertir "
+"el cambio. "
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Por favor tenga en cuenta que esta característica es experimental. No está "
+"garantizado que se pueda revertir desde una secuencia de arranque basada en "
+"dependencias y puede necesitar la reinstalación del sistema."
diff --git a/debian/po/fi.po b/debian/po/fi.po
new file mode 100644
index 0000000..eb47065
--- /dev/null
+++ b/debian/po/fi.po
@@ -0,0 +1,55 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-15 00:51+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: FINLAND\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Aktivoidaanko (tai pidetäänkö aktivoituna) riippuvuuspohjainen "
+"käynnistyssekvenssi?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Jos riippuvuuspohjainen käynnistyssekvenssi aktivoidaan, hakemistoissa /etc/"
+"rc*.d/ olevien komentosarjojen käynnistysjärjestystä muutetaan LSB-"
+"kommenttiotsakkeissa annettujen riippuvuustietojen mukaan (tai säilytetään "
+"oletusjärjestyksessä, jos otsakkeita ei ole). Kaikki S*-tyypin symboliset "
+"linkit hakemistoissa rc0.d ja rc6.d muutetaan K*-tyypin symbolisiksi "
+"linkeiksi, sen varmistamiseksi, että niiden käyttötapa (argumentin ”stop” "
+"kanssa) täsmää niiden nimiin. Muutos tehdään vasta, kun on varmistettu, että "
+"se on turvallista tehdä. Jos riippuvuuspohjainen käynnistyssekvenssi "
+"poistetaan käytöstä, muutokset yritetään perua."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Tämä ominaisuus on kokeellinen. Riippuvuuspohjaisen käynnistyssekvenssin "
+"purkaminen ei välttämättä ole turvallista ja saattaa johtaa siihen, että "
+"järjestelmä on asennettava uudelleen."
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 0000000..2924fae
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,61 @@
+# Translation of insserv debconf templates to French
+# Copyright (C) 2008 Christian Perrier <bubulle@debian.org>
+# This file is distributed under the same license as the insserv package.
+#
+# Christian Perrier <bubulle@debian.org>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-13 07:22+0100\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Faut-il activer (ou laisser activée) la gestion des dépendances dans la "
+"séquence de démarrage ?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Si vous choisissez d'activer la gestion des dépendances pour la séquence de "
+"démarrage, les scripts placés dans /etc/rc*.d/ seront remis dans un ordre "
+"qui utilise les informations de dépendances fournies par les en-têtes LSB "
+"(ou des valeurs par défaut si ceux-ci ne sont pas présents). Tous les liens "
+"symboliques de démarrage (liens S*) de rc0.d/ et rc6.d/ seront transformés "
+"en lien d'arrêt des services (liens K*) pour garantir que leur mode "
+"d'utilisation (avec le paramètre « stop ») correspond à leurs noms. Cette "
+"modification ne sera effectuée qu'après contrôle qu'elle peut se faire de "
+"façon sûre. Si vous désactivez la gestion des dépendances alors qu'elle est "
+"active, ces modifications seront abandonnées."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Veuillez noter que cette fonctionnalité est expérimentale. Le retour en "
+"arrière depuis une séquence de démarrage avec gestion des dépendances n'est "
+"pas entièrement garanti et un échec peut imposer la réinstallation de "
+"l'ensemble du système."
diff --git a/debian/po/gl.po b/debian/po/gl.po
new file mode 100644
index 0000000..729ef73
--- /dev/null
+++ b/debian/po/gl.po
@@ -0,0 +1,56 @@
+# Galician translation of insserv's debconf templates
+# This file is distributed under the same license as the insserv package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-10 13:40+0000\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"¿Activar (ou manter activada) a secuencia de inicio baseada en dependencias?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Se quere activar a secuencia de inicio baseada en dependencias hanse "
+"reordear os scripts de /etc/rc*.d/ empregando a información de depencencias "
+"fornecida nas cabeceiras LSB dos comentarios (ou empregando valores por "
+"defecto cando estas cabeceiras non estean presentes). Hanse convertir "
+"tódalas ligazóns S* de rc0.d/ e rc6.d/ en ligazóns K*, para asegurarse de "
+"que a maneira en que se empregan (co argumento \"stop\") coincida cos seus "
+"nomes. Só se ha facer o cambio despois de verificar que é seguro realizar a "
+"conversión. Ao desactivala cando estea activada hase tentar desfacer o "
+"cambio."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Teña en conta que esta característica é experimental. Non se pode garantir "
+"que reverter a secuencia de inicio baseada en dependencias sexa unha "
+"operación segura, e pode facer necesario reinstalar o sistema."
diff --git a/debian/po/it.po b/debian/po/it.po
new file mode 100644
index 0000000..3eb4e4f
--- /dev/null
+++ b/debian/po/it.po
@@ -0,0 +1,56 @@
+# Italian translation of the insserv debconf template
+# This file is distributed under the same license as the insserv package
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# Luca Monducci <luca.mo@tiscali.it>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.10.0\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-25 14:23+0100\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "Attivare (o tenere attiva) la sequenza d'avvio basata su dipendenze?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Se si sceglie di attivare la sequenza di avvio basata sulle dipendenze, gli "
+"script in /etc/rc*.d/ verranno riordinati in base alle informazioni sulle "
+"dipendenze presenti nei commenti delle intestazioni LSB (o in base ai valori "
+"predefiniti in caso di mancanza di queste informazioni). Tutti i link "
+"simbolici S* in rc0.d/ e rc6.d/ verranno trasformati in link simbolici K* in "
+"modo che il loro utilizzo (con l'argomento \"stop\") sia coerente con il "
+"loro nome. La modifica verrà effettuata solo dopo aver verificato che la "
+"conversione sia sicura. Una volta attivata, la disattivazione cerca di "
+"ricreare la configurazione preesistente."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Notare che questa funzionalità è sperimentale. Non si garantisce che il "
+"ripristino della configurazione precedente funzioni correttamente e potrebbe "
+"richiedere la reinstallazione del sistema."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644
index 0000000..9f004b6
--- /dev/null
+++ b/debian/po/ja.po
@@ -0,0 +1,53 @@
+# Copyright (C) 2008 Petter Reinholdtsen <pere@debian.org>
+# This file is distributed under the same license as insserv package.
+# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.12.0-4\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-12-28 22:26+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "依存関係ベースでの起動シーケンスを有効に (あるいは有効にしたままに) しますか?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"依存関係ベースでの起動シーケンスを有効にした場合、LSB コメントヘッダ (あるいは"
+"現在まだ無いデフォルト設定) から提供される依存関係情報を使って、/etc/rc*.d/ 内"
+"のスクリプトの順番を再構成します。rc0.d/ と rc6.d/ にある全ての S* シンボリック"
+"リンクは、(引数 'stop' で) 使われているのが名前と一致しているのを確かめるため、"
+"K* シンボリックリンクへ変更されます。変更は変換しても安全なのが確認された後のみ"
+"実行されます。有効にした場合に無効にすると変更を元に戻そうと試みます。"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"この機能は実験的なものであることに注意ください。依存関係ベースでの起動シーケンス"
+"から元に戻すのは、安全が確保されていない上にシステムの再インストールが必要になる"
+"かもしれません。"
+
diff --git a/debian/po/nb.po b/debian/po/nb.po
new file mode 100644
index 0000000..9e2a953
--- /dev/null
+++ b/debian/po/nb.po
@@ -0,0 +1,59 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2012-01-06 13:56+0100\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Skal den avhengighetsbaserte oppstartsrekkefølgen slås på (eller beholdes "
+"slått på)?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Hvis du velger å slå på den avhengighetsbaserte oppstartsrekkefølgen vil "
+"skriptene i /etc/rc*.d bli kjørt i en rekkefølge gitt av "
+"avhengighetsinformasjonen gitt i LSB kommentaroverskrifter (eller standarder "
+"der disse mangler). Alle S*-symlenker i rc0.d og rc6.d vil bli gjort om til "
+"K*-symlenker, for å sikre at måten de brukes på (med argumentet «stop») "
+"stemmer overens med navnene. Endringen blir bare gjort etter at det er "
+"bekreftet at det er trygt å gjøre om, Om dette slås av etter å ha vært slått "
+"på vil endringen bli tilbakeført hvis mulig."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Merk at denne funksjonen er eksperimentell. Det er ikke garantert at det er "
+"trygt å tilbakestille fra avhengighetsbasert oppstartsrekkefølge, og det kan "
+"bli nødvendig å installere systemet på nytt."
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 0000000..9f55f10
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,59 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-18 19:18+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Wilt u de op vereisten gebaseerde opstartvolgorde activeren (of geactiveerd "
+"laten)?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Wanneer u kiest om de op vereisten gebaseerde opstartvolgorde te activeren "
+"worden de scripts in /etc/rc*.d/ geordend op basis van de vereisten die "
+"voorzien zijn in de LSB-commentaar-kopteksten (of standaardwaarden wanneer "
+"deze afwezig zijn). Alle S*-koppelingen in rc0.d/ en rc6.d/ worden omgezet "
+"in K*-symbolische koppelingen; dit zorgt ervoor dat de manier waarop ze "
+"gebruikt worden (met het argument 'stop') gereflecteerd wordt in hun naam. "
+"Deze aanpassing wordt pas uitgevoerd eens nagegaan is dat deze omzetting "
+"veilig is. De-activatie probeert deze aanpassing ongedaan te maken (wanneer "
+"deze keuze actief was)."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Opgelet: deze functionaliteit is experimenteel. De veiligheid van teruggaan "
+"van de op vereisten gebaseerde opstartvolgorde naar de huidige situatie is "
+"niet gegarandeerd en kan de herinstallatie van het systeem vereisen."
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644
index 0000000..c0b0b99
--- /dev/null
+++ b/debian/po/pt.po
@@ -0,0 +1,57 @@
+# translation of insserv debconf to Portuguese
+# Copyright (C) 2008 Américo Monteiro
+# This file is distributed under the same license as the insserv package.
+#
+# Américo Monteiro <a_monteiro@netcabo.pt>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.10.0-4\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-12 00:09+0000\n"
+"Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Activar (ou manter activa) a sequência de arranque baseada em dependências?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Se você escolher activar a sequência de arranque baseada em dependências, os "
+"scripts em /etc/rc*.d/ serão reordenados usando informação disponibilizada "
+"pelos comentários de cabeçalho do LSB (ou pré-definições quando estes não "
+"estiverem presentes). Todos os symlinks S* em rc0.d/ e rc6.0 serão "
+"convertidos em symlinks K*, para garantir que a maneira que são usados (com "
+"o argumento 'stop') coincide com os seus nomes. A alteração só será feita "
+"após ter sido verificado que é seguro fazê-la. Desactivando-a quando activa "
+"irá tentar reverter a alteração."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Por favor note que esta funcionalidade é experimental. A tentativa de "
+"reverter de sequência de arranque baseada em dependências não é "
+"garantidamente segura, e poderá necessitar da re-instalação do sistema."
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644
index 0000000..fdbf7a9
--- /dev/null
+++ b/debian/po/ru.po
@@ -0,0 +1,61 @@
+# translation of ru.po to Russian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.10.0-4\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-18 21:53+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+"Включить (или оставить включённым) порядок загрузки, основанный на "
+"зависимостях?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Если вы выберете включение порядка загрузки, основанного на зависимостях, то "
+"сценарии в /etc/rc*.d/ будут переупорядочены согласно информации о "
+"зависимостях, предоставляемых в LSB закомментированных заголовках (или "
+"согласно значениям по умолчанию, если их нет). Все символические ссылки S* в "
+"rc0.d/ и rc6.d/ будут обращены в символические ссылки K*, чтобы "
+"удостовериться, что то, для чего они используются (с параметром 'stop'), "
+"совпадает с их именами. Изменения выполнятся только после того, как будет "
+"проверено, что преобразование безопасно. При выключение порядка будет "
+"произведена попытка откатить сделанные изменения."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Обратите внимание, что это пока эксперимент. Возвращение назад с порядка "
+"загрузки, основанного на зависимостях не гарантируется и может потребоваться "
+"переустановка системы."
diff --git a/debian/po/sk.po b/debian/po/sk.po
new file mode 100644
index 0000000..32f8fef
--- /dev/null
+++ b/debian/po/sk.po
@@ -0,0 +1,58 @@
+# Slovak translations for insserv package
+# Slovenské preklady pre balík insserv.
+# Copyright (C) 2011 THE insserv'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the insserv package.
+# Slavko <linux@slavino.sk>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.14.0-2.1\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2011-09-18 10:40+0200\n"
+"Last-Translator: Slavko <linux@slavino.sk>\n"
+"Language-Team: Slovak <debian-l10n-slovak@lists.debian.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "Povoliť (alebo nechať povolené) zavádzanie založené na závislostiach?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Ak povolíte zavádzanie založené na závislostiach, bude poradie skriptov v /"
+"etc/rc*.d/ zostavené na základe informácií o závislostiach z ich hlavičiek "
+"LSB (alebo predvolených hodnôt, ak tieto hlavičky nemajú). Všetky symbolické "
+"odkazy S* v rc0.d/ a rc6.d/ budú premenované na symbolické odkazy K*, aby "
+"ich názvy zodpovedali ich použitiu (s argumentom „stop”). Zmena bude "
+"realizovaná len po overení, že konverzia je bezpečná. Zakázanie zavádzania "
+"založeného na závislostiach, ak bolo predtým povolené, bude mať za následok "
+"vrátenie zmien."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Prosím pamätajte, že táto vlastnosť je experimentálna. Nie je zaručené, že "
+"sa pokus o návrat zo zavádzania založeného na závislostiach podarí, a tak "
+"môže vyžadovať reinštaláciu systému."
diff --git a/debian/po/sv.po b/debian/po/sv.po
new file mode 100644
index 0000000..c6aeb80
--- /dev/null
+++ b/debian/po/sv.po
@@ -0,0 +1,57 @@
+# translation of insserv.po to swedish
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Martin Bagge <brother@bsnet.se>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-10-26 23:53+0100\n"
+"Last-Translator: Martin Bagge <brother@bsnet.se>\n"
+"Language-Team: swedish <debian-l10n-swedish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "Aktivera beroendebaserad uppstartssekvens?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Om du aktiverar beroendebaserad uppstartssekvens kommer att innebära "
+"förändringar i ordningen för skripten i /etc/rc*.d/ - denna förändring "
+"baseras på information från LSB-huvuden eller standardvärden om LSB-"
+"information saknas. Alla S*-skript i rc0.d/ och rc6.d/ kommer att ändras "
+"till K* så att namnen blir rätt när de används med argumentet 'stop'. "
+"Förändringar kommer endast att genomföras efter att en kontroll har kommit "
+"fram till att det är en säker förändring. Vid av avaktivering av "
+"beroendebaserad uppstartssekvens kommer förändringarna att bli ogjorda i "
+"möjligaste mån."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Observera att denna funktion ännu är helt experimentiell. Att återställa "
+"från beroendebaserad uppstartssekvens är långt ifrån garanterat riskfri och "
+"kan medföra att systemet måste installeras om."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..a4925cd
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
diff --git a/debian/po/vi.po b/debian/po/vi.po
new file mode 100644
index 0000000..4d07377
--- /dev/null
+++ b/debian/po/vi.po
@@ -0,0 +1,55 @@
+# Vietnamese translation for INS Serv.
+# Copyright © 2008 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: insserv 1.10.0-4\n"
+"Report-Msgid-Bugs-To: pere@debian.org\n"
+"POT-Creation-Date: 2008-02-17 13:56+0100\n"
+"PO-Revision-Date: 2008-02-12 23:06+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.7b3\n"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid "Enable (or keep enabled) the dependency-based boot sequence?"
+msgstr "Bật (hoặc cứ bật) dãy khởi động dựa vào quan hệ phụ thuộc không?"
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"If you choose to enable the dependency-based boot sequence the scripts in /"
+"etc/rc*.d/ will be reordered using dependency information provided by LSB "
+"comment headers (or defaults where these are not present). All S* symlinks "
+"in rc0.d/ and rc6.d/ will be turned into K* symlinks, to make sure the way "
+"they are used (with the argument 'stop') matches their names. The change "
+"will only be done after it is verified that it is safe to convert. Disabling "
+"it when enabled will try to revert the change."
+msgstr ""
+"Bật tùy chọn này thì các văn lệnh trong thư mục « /etc/rc*.d/ » sẽ được sắp "
+"xếp lại tùy theo thông tin về quan hệ phụ thuộc mà được cung cấp bởi phần "
+"đầu chú thích LSB (không có thì dùng các giá trị mặc định). Mọi liên kết mềm "
+"« S* » đều trong hai thư mục « rc0.d/ » và « rc6.d/ » sẽ được chuyển đổi "
+"sang liên kết mềm « K* », để đảm bảo cách dùng chúng tương ứng với tên nó. "
+"Thay đổi này sẽ chỉ xảy ra một khi thẩm tra tiến trình chuyển đổi sẽ chạy an "
+"toàn. Sau khi bật tùy chọn này, tắt nó sẽ hoàn nguyên thay đổi."
+
+#. Type: boolean
+#. Description
+#: ../insserv.templates:2001
+msgid ""
+"Please note that this feature is experimental. Attempting to revert from "
+"dependency-based boot sequencing is not guaranteed to be safe, and may "
+"require the reinstallation of the system."
+msgstr ""
+"Ghi chú rằng tính năng này vẫn còn thực nghiệm. Không thể đảm bảo tính an "
+"toàn khi thử hoàn nguyên khỏi chức năng tạo dãy dựa vào quan hệ phụ thuộc: "
+"nó có thể cần thiết cài đặt lại hệ thống."
diff --git a/debian/postinst b/debian/postinst
new file mode 100644
index 0000000..a170655
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+#DEBHELPER#
+
+# When installing insserv (usually via sysvinit-core) on an existing system,
+# fix up the rc?.d priorities from the dumb update-rc.d fallback (which uses
+# priority 01 for everything).
+if [ "$1" = "configure" ] && [ -z "$2" ]; then
+ insserv || true
+fi
diff --git a/debian/postrm b/debian/postrm
new file mode 100644
index 0000000..5ef46eb
--- /dev/null
+++ b/debian/postrm
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -eu
+
+#DEBHELPER#
+
+if [ "$1" = purge ] ; then
+ rm -f /etc/init.d/.depend.boot
+ rm -f /etc/init.d/.depend.start
+ rm -f /etc/init.d/.depend.stop
+fi
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..9951e20
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,13 @@
+#!/usr/bin/make -f
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+include /usr/share/dpkg/default.mk
+export CFLAGS += $(shell getconf LFS_CFLAGS)
+export LDFLAGS += $(shell getconf LFS_LDFLAGS)
+
+# Upstream build system does not respect $(CPPFLAGS), it has its own
+# conventions.
+export COPTS = $(CFLAGS) $(CPPFLAGS)
+
+%:
+ echo $(CFLAGS)
+ dh $@ --with=bash-completion
diff --git a/debian/run-testsuite b/debian/run-testsuite
new file mode 100755
index 0000000..e5612b2
--- /dev/null
+++ b/debian/run-testsuite
@@ -0,0 +1,2451 @@
+#!/bin/bash
+
+basedir=$(dirname $0)
+. $basedir/../tests/suite
+
+if head -1 debian/changelog | grep -q UNRELEASED ; then
+ # fatal
+ severity=check
+else
+ # non-fatal
+ severity=test
+fi
+
+update_conf() {
+set +C
+cat <<'EOF' > $insconf
+$local_fs +mountall +umountfs
+$network +networking +ifupdown
+$named +named +dnsmasq +lwresd +bind9 $network
+$remote_fs $local_fs +mountnfs +mountnfs-bootclean +umountnfs +sendsigs
+$syslog +syslog +sysklogd
+$portmap portmap
+$time hwclock
+<interactive> udev mountdevsubfs checkroot checkfs console-screen
+EOF
+set -C
+}
+##########################################################################
+test_normal_sequence() {
+echo
+echo "info: test normal boot sequence scripts, and their order"
+echo
+
+insertscript mountkernfs.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountkernfs
+# Required-Start:
+# Required-Stop:
+# Should-Start: glibc
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript mountdevsubfs.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountdevsubfs mountvirtfs
+# Required-Start: mountkernfs
+# Required-Stop:
+# Should-Start: udev
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript checkroot.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: checkroot
+# Required-Start: mountdevsubfs
+# Required-Stop:
+# Should-Start: keymap hwclockfirst
+# Should-stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript ifupdown-clean <<'EOF'
+### BEGIN INIT INFO
+# Provides: ifupdown-clean
+# Required-Start: checkroot
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript ifupdown <<'EOF'
+### BEGIN INIT INFO
+# Provides: ifupdown
+# Required-Start: ifupdown-clean
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript checkfs.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: checkfs
+# Required-Start: checkroot
+# Required-Stop:
+# Should-Start: lvm cryptdisks
+# Should-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript mountall.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountall
+# Required-Start: checkfs
+# Required-Stop:
+# Should-Start: lvm
+# Should-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript mountnfs.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountnfs
+# Required-Start: $local_fs
+# Required-Stop:
+# Should-Start: $network
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript beforenfs <<'EOF'
+### BEGIN INIT INFO
+# Provides: beforenfs
+# Required-Start: $local_fs
+# Required-Stop:
+# X-Start-Before: mountnfs
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript hwclock.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: hwclock
+# Required-Start: mountdevsubfs
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript killprocs <<'EOF'
+### BEGIN INIT INFO
+# Provides: killprocs
+# Required-Start: $local_fs
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript single <<'EOF'
+### BEGIN INIT INFO
+# Provides: single
+# Required-Start: $local_fs killprocs $all
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript needlocalfs <<'EOF'
+### BEGIN INIT INFO
+# Provides: needlocalfs
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insertscript needallfs <<'EOF'
+### BEGIN INIT INFO
+# Provides: needallfs
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insertscript sysklogd <<'EOF'
+### BEGIN INIT INFO
+# Provides: syslog
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insertscript reboot <<'EOF'
+### BEGIN INIT INFO
+# Provides: reboot
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript halt <<'EOF'
+### BEGIN INIT INFO
+# Provides: halt
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+insertscript umountroot <<'EOF'
+### BEGIN INIT INFO
+# Provides: umountroot
+# Required-Start:
+# Required-Stop:
+# Should-Stop: halt reboot
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript umountfs <<'EOF'
+### BEGIN INIT INFO
+# Provides: umountfs
+# Required-Start:
+# Required-Stop: umountroot
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript umountnfs <<'EOF'
+### BEGIN INIT INFO
+# Provides: umountnfs
+# Required-Start:
+# Required-Stop: umountfs
+# Should-Stop: $network $portmap nfs-common
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript needallfs2 <<'EOF'
+### BEGIN INIT INFO
+# Provides: needallfs2
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# X-Start-Before: needallfs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insertscript kexec <<'EOF'
+### BEGIN INIT INFO
+# Provides: kexec
+# Required-Start:
+# Required-Stop: reboot
+# X-Stop-After: umountroot
+# Default-Start:
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript networking <<'EOF'
+### BEGIN INIT INFO
+# Provides: networking
+# Required-Start: mountkernfs ifupdown $local_fs
+# Required-Stop: ifupdown $local_fs
+# Default-Start: S
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order S mountkernfs.sh mountdevsubfs.sh
+check_order S ifupdown-clean ifupdown
+check_order S ifupdown-clean ifupdown
+check_order S mountall.sh mountnfs.sh
+check_order S mountall.sh beforenfs
+check_order S beforenfs mountnfs.sh
+
+check_order 0 needallfs umountnfs
+check_order 0 umountroot halt
+
+check_order 1 killprocs single
+check_order 1 needallfs killprocs
+
+check_order 2 needlocalfs needallfs
+check_order 2 needallfs2 needallfs
+
+check_order 6 needallfs umountnfs
+check_order 6 umountfs umountroot
+check_order 6 umountnfs networking
+check_order 6 networking ifupdown
+check_order 6 umountnfs umountfs
+check_order 6 umountroot reboot
+check_order 6 umountroot kexec
+check_order 6 kexec reboot
+}
+##########################################################################
+test_override_files() {
+echo
+echo "info: test if override files replace headers in the file"
+echo
+
+initdir_purge
+
+# Two scripts with a loop between them
+insertscript base <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: base
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript mover <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: mover
+# Required-Start: base
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+check_order S base mover
+
+mkdir -p $overridedir
+cat <<'EOF' > $overridedir/mover
+### BEGIN INIT INFO
+# Provides: mover
+# Required-Start:
+# Required-Stop:
+# X-Start-Before: base
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg mover
+
+list_rclinks
+
+# Make sure the override file moved mover before base
+check_order S mover base
+rm -rf $overridedir
+}
+##########################################################################
+test_override_loop() {
+echo
+echo "info: testing to insert scripts with a loop, and the effect of an override file"
+echo
+
+initdir_purge
+
+# Two scripts with a loop between them
+if insertscript loop1 <<'EOF' ; then
+### BEGIN INIT INFO
+# Provides: loop1
+# Required-Start: loop2
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+ error "inserting script with missing dependencies did not fail"
+fi
+
+insertscript loop2 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: loop2
+# Required-Start: loop1
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+# Test if override file can be used to break the loop
+mkdir -p $overridedir
+cat <<'EOF' > $overridedir/loop1
+### BEGIN INIT INFO
+# Provides: loop1
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+check_script_not_present S loop1
+check_script_not_present S loop2
+
+insserv_reg loop1 || true
+insserv_reg loop2 || true
+
+check_order S loop1 loop2
+rm -rf $overridedir
+}
+##########################################################################
+
+test_override_remove() {
+echo
+echo "info: Try to reproduce BTS #540866"
+echo
+
+initdir_purge
+
+addscript testscript <<'EOF'
+### BEGIN INIT INFO
+# Provides: testscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+mkdir -p ${overridedir}/.
+cat >${overridedir}/testscript <<'EOF'
+### BEGIN INIT INFO
+# Provides: testscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insserv_reg testscript
+
+list_rclinks
+
+check_script_not_present 3 testscript
+
+echo info: Trying to remove the script
+
+insserv_del testscript
+
+list_rclinks
+
+check_script_not_present 3 testscript
+}
+
+##########################################################################
+test_long_loop() {
+echo
+echo "info: testing to insert scripts with a longer loop, making sure it fail"
+echo
+
+initdir_purge
+
+# Three scripts with a loop between them, make sure introducing the
+# loop fail, as it will make insserv generate a unstable and broken
+# boot and shutdown sequence.
+insertscript loop1 <<'EOF'
+### BEGIN INIT INFO
+# Provides: loop1
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript loop2 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: loop2
+# Required-Start: loop1
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+if insertscript loop3 <<'EOF' ; then
+### BEGIN INIT INFO
+# Provides: loop3
+# Required-Start: loop2
+# Required-Stop:
+# X-Start-Before: loop1
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+ error "inserting script causing a loop did not fail"
+fi
+}
+##########################################################################
+test_combined_loop() {
+# Test real loop in the combined start and stop sequence. There is no
+# loop in the start sequence, and no loop in the stop sequence, but in
+# the combined graph insserv is creating internally, there is a loop.
+# This make sense, as scripts need to be installed in dependency
+# order, and there is no way to install these scripts that make sure
+# both start and stop dependencies are fulfilled.
+echo
+echo "info: test handling of loops in the combination of start and stop sequences"
+echo
+
+initdir_purge
+
+insertscript startfirst <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startfirst
+# Required-Start:
+# Required-Stop: startsecond
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript startsecond <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startsecond
+# Required-Start: startfirst
+# Required-Stop:
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+test_order S startfirst startsecond
+test_order 6 startsecond startfirst
+}
+##########################################################################
+test_fake_loop() {
+# Test another fake loop. This one should work, as it is possible to
+# install the two scripts in sequence because one of the dependencies
+# are optional. It does not with insserv today.
+echo
+echo "info: test handling of 'fake' loops in the combination of start and stop sequences"
+echo
+
+initdir_purge
+
+insertscript startfirst_stopfirst <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startfirst_stopfirst
+# Required-Start:
+# Required-Stop:
+# Should-Stop: startsecond_stoplast
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript startsecond_stoplast <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startsecond_stoplast
+# Required-Start: startfirst_stopfirst
+# Required-Stop:
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order S startfirst_stopfirst startsecond_stoplast
+check_order 6 startfirst_stopfirst startsecond_stoplast
+}
+##########################################################################
+test_fake_loop_reverse() {
+# Test another fake loop using reverse dependencies to document that
+# it can happen based on information provided in one package only.
+# This should work, as it is possible to install the two scripts in
+# sequence because one of the dependencies are optional. It does not
+# with insserv today. Note thought that the generated order is
+# different from the one above.
+
+echo
+echo "info: test handling of 'fake' loops using reverse depends"
+echo
+
+initdir_purge
+
+insertscript startfirst_stopfirst <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startfirst_stopfirst
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript startsecond_stoplast <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startsecond_stoplast
+# Required-Start: startfirst_stopfirst
+# Required-Stop:
+# X-Stop-After: startfirst_stopfirst
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+# #458582
+check_order S startfirst_stopfirst startsecond_stoplast
+check_order 6 startfirst_stopfirst startsecond_stoplast
+}
+##########################################################################
+test_badscript() {
+echo
+echo "info: test if bad script in init.d/ with no symlinks in rc*.d/ make problems"
+echo
+
+initdir_purge
+
+addscript sitelocal <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: duplicate
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript distroglobal <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: dublicate
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present S distroglobal
+}
+##########################################################################
+test_onlystart() {
+echo
+echo "info: check that it work to insert scripts with only start runlevels"
+echo
+
+initdir_purge
+
+insertscript onlystart <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: onlystart
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 2 onlystart
+check_script_present 3 onlystart
+check_script_present 4 onlystart
+check_script_present 5 onlystart
+
+check_script_not_present 0 onlystart
+check_script_not_present 1 onlystart
+check_script_not_present 6 onlystart
+}
+##########################################################################
+test_onlystop() {
+echo
+echo "info: check that it work to insert scripts with only stop runlevels"
+echo
+# This test check that the common way to update the runlevels used by
+# a given script is working. It simulates these calls to update-rc.d:
+# update-rc.d oldscript default
+# update-rc.d -f oldscript remove
+# update-rc.d oldscript start 20 2 3 4 5 . stop 20 1 .
+
+initdir_purge
+
+insertscript onlystop <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: onlystop
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 0 onlystop
+check_script_present 6 onlystop
+
+check_script_not_present 1 onlystop
+check_script_not_present 2 onlystop
+check_script_not_present 3 onlystop
+check_script_not_present 4 onlystop
+check_script_not_present 5 onlystop
+check_script_not_present S onlystop
+}
+##########################################################################
+test_removal() {
+echo
+echo "info: test if script removal removes all symlinks."
+echo
+# This test check that the common way to update the runlevels used by
+# a given script is working. It simulates these calls to update-rc.d:
+# update-rc.d oldscript default
+# update-rc.d -f oldscript remove
+# update-rc.d oldscript start 20 2 3 4 5 . stop 20 1 .
+
+initdir_purge
+
+insertscript oldscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: oldscript
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+# Check that the problematic symlinks are presend, as well as one that
+# is OK.
+check_script_present 0 oldscript
+check_script_present 1 oldscript
+check_script_present 3 oldscript
+check_script_present 6 oldscript
+
+set +C
+addscript oldscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: oldscript
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 4 5
+# Default-Stop: 1
+### END INIT INFO
+EOF
+set -C
+
+# Remove old symlinks
+insserv_del oldscript
+# Insert new ones, this time without runlevel 0 and 6
+insserv_reg oldscript
+
+list_rclinks
+
+check_script_not_present 0 oldscript
+check_script_present 1 oldscript
+check_script_present 2 oldscript
+check_script_not_present 3 oldscript
+check_script_not_present 6 oldscript
+}
+
+##########################################################################
+test_segfault_virtfac() {
+echo
+echo "info: detect segfault caused by script providing virtual facility."
+echo
+
+initdir_purge
+
+insertscript badheaderscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: $syslog
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+# Problem is only triggered if there are start or stop symlinks for
+# the script present.
+mkdir -p $initddir/../rc2.d
+ln -s ../init.d/badheaderscript $initddir/../rc2.d/S02badheaderscript
+
+# This one segfaults
+insertscript okscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: okscript
+# Required-Start: $syslog
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 2 okscript
+}
+##########################################################################
+test_incorrect_startscripts() {
+echo
+echo "info: Check if insserv add start symlinks for scripts that"
+echo "info: currently do not have them. #492526"
+echo
+
+initdir_purge
+
+insertscript disablestartscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: disablestartscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+list_rclinks
+
+check_script_present 2 disablestartscript
+check_script_present 5 disablestartscript
+check_script_not_present S disablestartscript
+check_script_present 1 disablestartscript
+
+rm $initddir/../rc{2,3,4,5}.d/S??disablestartscript
+
+# Update symlinks, see if it add start symlinks
+insserv_reg .
+
+list_rclinks
+
+check_script_not_present 2 disablestartscript
+check_script_not_present 3 disablestartscript
+check_script_not_present 4 disablestartscript
+check_script_not_present 5 disablestartscript
+check_script_not_present S disablestartscript
+check_script_present 0 disablestartscript
+check_script_present 1 disablestartscript
+}
+##########################################################################
+test_incorrect_stopscripts() {
+echo
+echo "info: Check if insserv add stop symlinks for scripts that"
+echo "info: currently do not have them."
+echo
+
+initdir_purge
+
+insertscript disablestopscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: disablestopscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+list_rclinks
+
+check_script_present 2 disablestopscript
+check_script_present 5 disablestopscript
+check_script_not_present S disablestopscript
+check_script_present 1 disablestopscript
+
+rm $initddir/../rc{0,1}.d/K??disablestopscript
+
+# Update symlinks, see if it add stop symlinks
+insserv_reg .
+
+list_rclinks
+
+check_script_present 2 disablestopscript
+check_script_present 5 disablestopscript
+check_script_not_present S disablestopscript
+check_script_not_present 0 disablestopscript
+check_script_not_present 1 disablestopscript
+}
+##########################################################################
+test_newbug_keepoldorder() {
+echo
+echo "info: Verify that introducing a loop in a working system do"
+echo "info: not change the order of the scripts currently on disk."
+echo
+
+initdir_purge
+
+insertscript mountall <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: mountall
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript needlocal <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: needlocal
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript needremote <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: needremote
+# Required-Start: $remote_fs needlocal
+# Required-Stop: $remote_fs needlocal
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+insertscript needboth <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: needboth
+# Required-Start: needlocal needremote
+# Required-Stop: needlocal needremote
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order S mountall needlocal
+check_order S mountall needremote
+check_order S mountall needboth
+check_order S needlocal needremote
+check_order S needlocal needboth
+check_order S needremote needboth
+
+# Then introduce buggy dependencies in an existing script
+set +C
+addscript needboth <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: needboth
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# X-Start-Before: $local_fs
+# Default-Start: S
+# Default-Stop: 6
+### END INIT INFO
+EOF
+set -C
+
+echo "info: calling insserv after introducing a bug in script needboth"
+insserv_reg needboth || true
+
+list_rclinks
+
+# The severity of this test should be fatal, below is explanation about how
+# new (1.11.10) and old (1.11.0) insserv version behaviour changed in this
+# test.
+#
+# Hmm ... with this I've found out that the old insserv will
+# run on a loop and therefore exit. This loop was caused
+# by the system facility $local_fs make the old insserv
+# to do an exit ... now the problem is that the new insserv
+# expands all system facility to their real requirements.
+# This leads to the new behaviour as there is no node during
+# the sorting algorithm which would cause such a loop.
+#
+# In other words: that the old insserv hasn't changed the
+# order was simply a side effect of having a ghost node
+# whereas the new insserv does not use such nodes anymore.
+#
+# If you would remove the `X-Start-Before: $local_fs' the
+# old insserv will also change the boot order.
+
+${severity}_order S mountall needlocal
+${severity}_order S mountall needremote
+${severity}_order S mountall needboth
+${severity}_order S needlocal needremote
+${severity}_order S needlocal needboth
+${severity}_order S needremote needboth
+}
+##########################################################################
+test_start_before() {
+echo
+echo "info: Verify that X-start-before work as it should."
+echo
+
+initdir_purge
+
+insertscript startlast <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startlast
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript startfirst <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: startfirst
+# Required-Start:
+# Required-Stop:
+# X-Start-Before: startlast
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order S startfirst startlast
+}
+##########################################################################
+test_stop_after() {
+echo
+echo "info: Verify that X-stop-after work as it should."
+echo
+
+initdir_purge
+
+insertscript stopfirst <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: stopfirst
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insertscript stopafter <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: stopafter
+# Required-Start:
+# Required-Stop:
+# X-Stop-After: stopfirst
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order 0 stopfirst stopafter
+}
+##########################################################################
+test_adding_start() {
+echo
+echo "info: Make sure that adding start levels do not change an existing installation."
+echo
+
+initdir_purge
+
+insertscript addstartscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: addstartscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 1
+### END INIT INFO
+EOF
+
+check_script_present 1 addstartscript
+
+check_script_not_present S 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
+
+# Then change runlevel in existing script
+set +C
+addscript addstartscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: addstartscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 1
+### END INIT INFO
+EOF
+set -C
+
+# Update script after changing the header
+insserv_reg addstartscript || true
+
+list_rclinks
+
+check_script_present 1 addstartscript
+
+check_script_not_present S 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
+
+initdir_purge
+
+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() {
+echo
+echo "info: Make sure that adding stop levels do not change an existing installation."
+echo
+
+initdir_purge
+
+insertscript addstopscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: addstopscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+check_script_present S addstopscript
+check_script_not_present 0 addstopscript
+check_script_not_present 1 addstopscript
+check_script_not_present 2 addstopscript
+check_script_not_present 3 addstopscript
+check_script_not_present 4 addstopscript
+check_script_not_present 5 addstopscript
+check_script_not_present 6 addstopscript
+
+# Then change runlevel in existing script
+set +C
+addscript addstopscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: addstopscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop: 0
+### END INIT INFO
+EOF
+set -C
+
+# Update script after changing the header
+insserv_reg addstopscript || true
+
+list_rclinks
+
+check_script_present S addstopscript
+check_script_not_present 0 addstopscript
+check_script_not_present 1 addstopscript
+check_script_not_present 2 addstopscript
+check_script_not_present 3 addstopscript
+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
+
+initdir_purge
+
+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() {
+echo
+echo "info: test two initscripts providing same facility."
+echo "info: Not sure if this should fail or not."
+echo
+
+initdir_purge
+
+addscript one <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: samefac
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+addscript two <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: samefac
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg one || true
+insserv_reg two || true
+
+list_rclinks
+
+check_script_present S one
+${severity}_script_not_present S two
+}
+##########################################################################
+test_bogus_facility() {
+echo
+echo "info: test insertion of script requiring a virtual facility that doesn't exist"
+echo
+
+initdir_purge
+
+addscript needbogusvirtual <<'EOF'
+### BEGIN INIT INFO
+# Provides: needbogusvirtual
+# Required-Start: $bogusvirtualfacility
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg needbogusvirtual || true
+
+list_rclinks
+
+test_script_not_present S needbogusvirtual
+}
+##########################################################################
+test_insserv_conf_d() {
+echo
+echo "info: test that /etc/insserv.conf.d/ is used"
+echo
+
+initdir_purge
+rm -rf ${insconf}.d
+mkdir -p ${insconf}.d
+
+# add a base service, to ensure check_order() is accurate
+insertscript dummy <<'EOF'
+### BEGIN INIT INFO
+# Provides: dummy
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+cat <<'EOF' > ${insconf}.d/facone
+$commvirtfac +facone
+EOF
+
+insertscript facone <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: facone
+# Required-Start: dummy
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+cat <<'EOF' > ${insconf}.d/factwo
+$commvirtfac +factwo
+EOF
+
+insertscript factwo <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: factwo
+# Required-Start: dummy
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+addscript service <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: service
+# Required-Start: $commvirtfac
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg service || true
+
+list_rclinks
+
+check_script_present S service
+check_order S facone service
+check_order S factwo service
+
+rm -rf ${insconf}.d
+}
+##########################################################################
+test_broken_header() {
+echo
+echo "info: test insertion of script missing Required-{Start,Stop} fields"
+echo
+
+initdir_purge
+
+addscript badheader <<'EOF'
+### BEGIN INIT INFO
+# Provides: badheader
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insserv_reg badheader || true
+
+list_rclinks
+
+test_script_present 0 badheader
+test_script_present 1 badheader
+test_script_present 2 badheader
+test_script_present 3 badheader
+test_script_present 4 badheader
+test_script_present 5 badheader
+test_script_present 6 badheader
+}
+##########################################################################
+test_noprovides_header() {
+echo
+echo "info: test insertion of script missing Provides fields"
+echo
+
+initdir_purge
+
+addscript badheader <<'EOF'
+### BEGIN INIT INFO
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insserv_reg badheader || true
+
+list_rclinks
+
+test_script_present 0 badheader
+test_script_present 1 badheader
+test_script_present 2 badheader
+test_script_present 3 badheader
+test_script_present 4 badheader
+test_script_present 5 badheader
+test_script_present 6 badheader
+}
+##########################################################################
+test_no_default_start() {
+echo
+echo "info: test insertion of script missing Default-Start field"
+echo
+
+initdir_purge
+
+addscript nodefstart <<'EOF'
+### BEGIN INIT INFO
+# Provides: nodefstart
+# Required-Start:
+# Required-Stop:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+insserv_reg nodefstart || true
+
+list_rclinks
+
+check_script_present 0 nodefstart
+check_script_present 6 nodefstart
+
+check_script_not_present 2 nodefstart
+check_script_not_present 3 nodefstart
+check_script_not_present 4 nodefstart
+check_script_not_present 5 nodefstart
+}
+##########################################################################
+test_no_default_stop() {
+echo
+echo "info: test insertion of script missing Default-Stop field"
+echo
+
+initdir_purge
+
+addscript nodefstop <<'EOF'
+### BEGIN INIT INFO
+# Provides: nodefstop
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+### END INIT INFO
+EOF
+
+insserv_reg nodefstop || true
+
+list_rclinks
+
+check_script_present 2 nodefstop
+check_script_present 3 nodefstop
+check_script_present 4 nodefstop
+check_script_present 5 nodefstop
+
+check_script_not_present 0 nodefstop
+check_script_not_present 1 nodefstop
+check_script_not_present 6 nodefstop
+}
+##########################################################################
+test_initd_symlink() {
+echo
+echo "info: test that a symlink in /etc/init.d/ to another script does not cause problems"
+echo
+
+initdir_purge
+
+addscript symlinked <<'EOF'
+### BEGIN INIT INFO
+# Provides: symlinked
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 1
+### END INIT INFO
+EOF
+
+addscript outsider <<'EOF'
+### BEGIN INIT INFO
+# Provides: outsider
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 1
+### END INIT INFO
+EOF
+
+#addscript halt <<'EOF'
+### BEGIN INIT INFO
+# Provides: halt
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+#EOF
+
+# Now make an illegal symlink to see if it causes problems, #485045
+ln -s symlinked ${initddir}/symlink
+
+insserv_reg symlinked || true
+insserv_reg symlink || true
+
+check_script_present 1 symlinked
+check_script_present 2 symlinked
+check_script_present 3 symlinked
+check_script_present 4 symlinked
+check_script_present 5 symlinked
+check_script_not_present 1 symlink
+check_script_not_present 2 symlink
+check_script_not_present 3 symlink
+check_script_not_present 4 symlink
+check_script_not_present 5 symlink
+
+# Add a /etc/init.d/reboot -> halt symlink, to make sure the SUSE case
+# is not broken with stricter symlink sanity checking
+#ln -s halt ${initddir}/reboot
+
+#insserv_reg reboot || true
+
+#check_script_present 0 reboot
+#check_script_present 6 reboot
+
+# Move outsider to a location other than /etc/init.d/ and create a symlink
+# to it. insserv should register it without problems.
+mv ${initddir}/outsider ${initddir}/../
+ln -s ../outsider ${initddir}/outsidelink
+
+insserv_reg outsidelink || true
+
+list_rclinks
+
+check_script_present 1 outsidelink
+check_script_present 2 outsidelink
+check_script_present 3 outsidelink
+check_script_present 4 outsidelink
+check_script_present 5 outsidelink
+
+rm -f ${initddir}/../outsider
+}
+##########################################################################
+test_deterministic_order() {
+echo
+echo "info: test two or more initscripts providing same facility, making sure"
+echo "info: that the first script can be registered with insserv, but others fail."
+echo
+
+initdir_purge
+
+addscript abc <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: service
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+addscript xyz <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: service
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+addscript hjk <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: service
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg xyz || true
+insserv_reg hjk || true
+insserv_reg abc || true
+
+list_rclinks
+
+# #494514
+check_script_present S xyz
+check_script_not_present S abc
+check_script_not_present S hjk
+}
+##########################################################################
+test_all_keyword() {
+echo
+echo "info: test behaviour of a script depending on another with the \$all keyword"
+echo "info: #491391"
+echo
+
+initdir_purge
+
+# Insert a few scripts to flesh out $initdir
+for script in one two three
+do
+insertscript $script <<EOF || true
+### BEGIN INIT INFO
+# Provides: $script
+# Required-Start: \$remote_fs
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+done
+
+insertscript four <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: four
+# Required-Start: $remote_fs
+# Required-Stop:
+# Should-Start: one two three
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript rmnologin <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: rmnologin
+# Required-Start: $remote_fs $all
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+# This version of bootchart LSB info is not the best, but it does reveal
+# an interesting and unexpected behaviour.
+insertscript bootchart <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: bootchart
+# Required-Start: $remote_fs rmnologin
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 5 rmnologin
+check_script_present 5 bootchart
+test_order 5 rmnologin bootchart
+
+echo
+echo "info: now add \$all keyword to bootchart script and reinsert"
+echo
+
+remscript bootchart
+# This information looks correct, but due to the way all_links() works two or
+# more scripts with keyword $all in Required-Start start at same sequence, but
+# do start after all other scripts
+addscript bootchart <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: bootchart
+# Required-Start: $all rmnologin
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insserv_reg bootchart || true
+
+list_rclinks
+check_script_present 5 bootchart
+test_order 5 rmnologin bootchart
+
+echo
+echo "info: add yet another script depending on \$all"
+echo
+insertscript all <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: all
+# Required-Start: $all
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+check_script_present 5 all
+}
+##########################################################################
+test_early_all() {
+echo
+echo "info: Check that start dependency on \$all only affect the start"
+echo "sequence. BTS #485307"
+
+echo
+
+initdir_purge
+
+# Insert a few scripts to flesh out $initdir
+insertscript early <<EOF || true
+### BEGIN INIT INFO
+# Provides: early
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+insertscript center <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: center
+# Required-Start: early
+# Required-Stop: early
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+insertscript late <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: late
+# Required-Start: center
+# Required-Stop: center
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+# This script should start early and stop before all other scripts
+insertscript zcomplex <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: zcompex
+# Required-Start: early
+# X-Start-Before: center
+# Required-Stop: $all
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 2 early
+check_script_present 2 zcomplex
+check_order 2 early zcomplex
+check_order 2 zcomplex center
+check_order 0 zcomplex late
+check_order 0 zcomplex early
+}
+##########################################################################
+test_script_in_runlevel() {
+echo
+echo "info: add a regular file where only symlinks are expected (#493202)"
+echo
+
+initdir_purge
+
+# Create a regular file in runlevel directory where only symlinks are expected
+mkdir $initddir/../rcS.d
+touch $initddir/../rcS.d/S06badboy
+
+insertscript goodboy <<'EOF'
+### BEGIN INIT INFO
+# Provides: goodboy
+# Required-Start: $remote_fs
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present S goodboy
+
+rm $initddir/../rcS.d/S06badboy
+}
+##########################################################################
+test_x_interactive() {
+echo
+echo "info: Check if X-Interactive header work"
+echo "BTS #458224, #580564"
+echo
+
+initdir_purge
+
+# Insert a few scripts to flesh out $initdir
+insertscript first <<EOF || true
+### BEGIN INIT INFO
+# Provides: first
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+# This test if X-Interactive work with existing scripts when a new
+# script is inserted.
+insertscript alone1 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: alone1
+# Required-Start: first
+# Required-Stop: first
+# Default-Start: 2
+# Default-Stop: 0
+# X-Interactive: true
+### END INIT INFO
+EOF
+
+insertscript after <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: after
+# Required-Start: first
+# Required-Stop: first
+# Default-Start: 2
+# Default-Stop: 0
+### END INIT INFO
+EOF
+
+# This test if X-Interactive work with new scripts too. The code
+# paths in insserv are different for the two cases.
+insertscript alone2 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: alone2
+# Required-Start: first
+# Required-Stop: first
+# Default-Start: 2
+# Default-Stop: 0
+# X-Interactive: true
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_present 2 first
+check_script_present 2 after
+check_script_present 2 alone1
+check_script_present 2 alone2
+check_order 2 first after
+check_order 2 first alone1
+check_order 2 first alone2
+# This ordering is not guaranteed, but currently interactive scripts
+# are put after the others on the same level.
+check_order 2 alone1 after
+check_order 2 alone2 after
+if grep INTERACTIVE ${initddir}/.depend.start | grep -q alone1 &&
+ grep INTERACTIVE ${initddir}/.depend.start | grep -q alone1 ; then
+ counttest
+else
+ error "scripts alone1 and alone2 are not flagged as interactive"
+fi
+}
+##########################################################################
+
+test_insserv_conf_makefile() {
+echo
+echo "info: test how recursive /etc/insserv.conf settings show up"
+echo "info: in .depend.boot. BTS #534526."
+echo
+
+initdir_purge
+
+list_rclinks
+
+# If $local_fs only depend on the mountall script, the test work.
+# Only the last script in $local_fs make it to the dependency file.
+set +C
+cat <<'EOF' > $insconf
+$local_fs +mountall +nonexisting
+$remote_fs $local_fs
+EOF
+set -C
+
+insertscript mountall <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountall
+# Required-Start:
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript dbus <<'EOF'
+### BEGIN INIT INFO
+# Provides: dbus
+# Required-Start:
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript hal <<'EOF'
+### BEGIN INIT INFO
+# Provides: hal
+# Required-Start: $remote_fs dbus
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+if ! grep -q "^hal: mountall dbus" ${initddir}/.depend.start ; then
+ msg="hal should depend on dbus and mountall in .depend.start:"
+ if [ test = "$severity" ] ; then
+ warning "$msg"
+ else
+ error "$msg"
+ fi
+ grep "^hal: " ${initddir}/.depend.start | sed 's/^/ /'
+fi
+
+update_conf
+}
+
+#########################
+
+test_insserv_virt_loop() {
+echo
+echo "info: test insserv handle virtual facilities depending on itself."
+echo
+
+initdir_purge
+
+list_rclinks
+
+# If $local_fs depend on itself, the error is triggered.
+set +C
+cat <<'EOF' > $insconf
+$local_fs +mountall $local_fs
+EOF
+set -C
+
+# This used to hang and use unlimited amount of memory. Now return
+# error instead.
+insertscript testscript <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: testscript
+# Required-Start: $local_fs
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+update_conf
+}
+
+##########################################################################
+test_local_virtual() {
+echo
+echo "info: Test if home made virtual facilities work as they should."
+echo
+
+initdir_purge
+
+mkdir $insconf.d
+
+insertscript test1 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test1
+# Required-Start: $mail-transport-agent
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript test2 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test2
+# Required-Start: $mail-transport-agent
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+set +C
+cat <<'EOF' > $insconf.d/test3
+$mail-transport-agent test3
+EOF
+insertscript test3 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test3
+# Required-Start:
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+cat <<'EOF' > $insconf.d/test4
+$mail-transport-agent +test4
+EOF
+set -C
+insertscript test4 <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test4
+# Required-Start: test3
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order 1 test3 test1
+check_order 1 test3 test2
+check_order 1 test4 test1
+check_order 1 test4 test2
+
+rm -f $insconf.d/test3 $insconf.d/test4
+}
+##########################################################################
+test_insserv_upstart() {
+echo
+echo "info: test if insserv handle upstart jobs properly."
+echo
+
+initdir_purge
+
+list_rclinks
+
+# This used to hang and use unlimited amount of memory. Now return
+# error instead.
+upstartdir=${tmpdir}/etc/init
+
+upstartjob="${tmpdir}/lib/init/upstart-job"
+
+# Add upstart config
+oldconf="$insconf"
+insconf="$insconf -u $upstartjob"
+
+# Dummy entry
+mkdir -p $(dirname $upstartjob)
+cat > $upstartjob <<EOF
+#!/bin/sh
+cat <<END
+### BEGIN INIT INFO
+# Provides: upstart-test
+# Required-Start:
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+END
+EOF
+chmod a+x $upstartjob
+
+insert_upstart_job() {
+ name=$1
+ mkdir -p $upstartdir
+ cat > $upstartdir/$name
+ ln -s $upstartjob $initddir/$name
+ insserv_reg $name
+}
+
+remove_upstart_jobs() {
+ rm -rf $upstartdir
+}
+
+# XXX Someone that understand upstart need to fill in sensible stuff
+# here
+insert_upstart_job upstart-test <<EOF || true
+exec /bin/foo --opt -xyz foo bar
+EOF
+
+insertscript test <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test
+# Required-Start: upstart-test
+# Required-Stop:
+# Default-Start: 1
+# Default-Stop:
+### END INIT INFO
+EOF
+
+
+list_rclinks
+
+# Undo upstart config
+insconf="$oldconf"
+remove_upstart_jobs
+}
+##########################################################################
+
+test_undetected_loop() {
+echo
+echo "info: test if insserv detect loop involving virtual facility,"
+echo "info: x-start-before and should-start. Issue detected in BTS"
+echo "info: report #554905."
+echo
+
+initdir_purge
+
+set +C
+cat <<'EOF' > $insconf
+$local_fs mountall
+EOF
+set -C
+
+insertscript hibernate <<'EOF'
+### BEGIN INIT INFO
+# Provides: hibernate-cleanup
+# Default-Start: S
+# Default-Stop:
+# Required-Start:
+# Required-Stop:
+# Should-Start: udev devfsd raid2 mdadm lvm evms cryptdisks
+# X-Start-Before: mountall
+### END INIT INFO
+EOF
+
+insertscript mountall.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountall
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Mount all filesystems.
+### END INIT INFO
+EOF
+
+# Inserting this script should fail, as it introduces a loop
+insertscript mdadm <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: mdadm
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+# Inserting this script should definitely fail, as it depend on a loop
+insertscript test <<'EOF' || true
+### BEGIN INIT INFO
+# Provides: test
+# Required-Start: $local_fs mdadm
+# Required-Stop: $local_fs mdadm
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_not_present S mdadm
+check_script_not_present S test
+}
+
+##########################################################################
+
+test_invalid_core_string() {
+echo
+echo "info: test if insserv accepts 'corekeeper' but rejects core dumps"
+echo "info: named '*.core' or 'core'"
+echo "info: See bug report #554905."
+echo
+
+initdir_purge
+
+set +C
+cat <<'EOF' > $insconf
+$local_fs mountall
+EOF
+set -C
+
+# should be accepted - valid name
+insertscript corekeeper <<'EOF'
+### BEGIN INIT INFO
+# Provides: corekeeper
+# Default-Start: S
+# Default-Stop:
+# Required-Start:
+# Required-Stop:
+### END INIT INFO
+EOF
+
+# should be rejected - invalid name
+insertscript somescript.core <<'EOF'
+### BEGIN INIT INFO
+# Provides: somescript
+# Default-Start: S
+# Default-Stop:
+# Required-Start:
+# Required-Stop:
+### END INIT INFO
+EOF
+
+# should be rejected - invalid name
+insertscript core <<'EOF'
+### BEGIN INIT INFO
+# Provides: someotherscript
+# Default-Start: S
+# Default-Stop:
+# Required-Start:
+# Required-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_script_not_present S core
+check_script_not_present S somescript
+check_script_present S corekeeper
+}
+##########################################################################
+insserv_show()
+{
+ $insserv $debug -c $insconf -p $initddir -o $overridedir -s
+}
+
+test_show_all() {
+echo
+echo "info: test if -s|--show-all option works as it should"
+echo
+
+initdir_purge
+
+insertscript bootscript <<'EOF'
+### BEGIN INIT INFO
+# Provides: bootscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript localscript <<'EOF'
+### BEGIN INIT INFO
+# Provides: localscript
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+EOF
+
+insertscript shutdownscript <<'EOF'
+### BEGIN INIT INFO
+# Provides: shutdownscript
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop: 0 6
+### END INIT INFO
+EOF
+
+check_script_present S bootscript
+check_script_present 2 localscript
+check_script_present 0 shutdownscript
+
+OLDIFS="$IFS"
+IFS=":"
+insserv_show | sort -t: -k2 -k1 | while read IN_ACTION IN_SEQUENCE IN_LEVELS IN_BASENAME
+do
+ IN_LEVELS="$(echo "$IN_LEVELS" | sed -e 's; ;,;g')"
+ if [ "$IN_ACTION" = "S" ]; then
+ echo "$IN_SEQUENCE - $IN_LEVELS /etc/init.d/$IN_BASENAME"
+ elif [ "$IN_ACTION" = "K" ]; then
+ echo "$IN_SEQUENCE $IN_LEVELS - /etc/init.d/$IN_BASENAME"
+ fi
+done > ${tmpdir}/rc.conf
+IFS="$OLDIFS"
+
+cat ${tmpdir}/rc.conf
+
+if grep -qE '[[:digit:]]{2}[[:space:]]+-[[:space:]]+S[[:space:]]+/etc/init.d/bootscript' ${tmpdir}/rc.conf; then
+ counttest
+else
+ error "bootscript configuration error in rc.conf"
+fi
+
+if grep -qE '[[:digit:]]{2}[[:space:]]+-[[:space:]]+2,3,4,5[[:space:]]+/etc/init.d/localscript' ${tmpdir}/rc.conf && \
+ grep -qE '[[:digit:]]{2}[[:space:]]+0,1,6[[:space:]]+-[[:space:]]+/etc/init.d/localscript' ${tmpdir}/rc.conf; then
+ counttest
+else
+ error "localscript configuration error in rc.conf"
+fi
+
+if grep -qE '[[:digit:]]{2}[[:space:]]+0,6[[:space:]]+-[[:space:]]+/etc/init.d/shutdownscript' ${tmpdir}/rc.conf; then
+ counttest
+else
+ error "shutdownscript configuration error in rc.conf"
+fi
+
+rm -f ${tmpdir}/rc.conf
+}
+##########################################################################
+test_bootmisc_order() {
+# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677097
+echo
+echo "info: mountall-bootclean.sh must start before bootmisc.sh"
+echo
+
+initdir_purge
+
+set +C
+cat <<'EOF' > $insconf
+$local_fs +mountall +mountall-bootclean
+$remote_fs $local_fs
+EOF
+set -C
+
+insertscript mountall.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountall
+# Required-Start:
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript mountall-bootclean.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: mountall-bootclean
+# Required-Start: mountall
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+insertscript bootmisc.sh <<'EOF'
+### BEGIN INIT INFO
+# Provides: bootmisc
+# Required-Start: $remote_fs
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+EOF
+
+list_rclinks
+
+check_order S mountall.sh mountall-bootclean.sh
+check_order S mountall-bootclean.sh bootmisc.sh
+
+update_conf
+}
+##########################################################################
+
+test_normal_sequence
+test_override_files
+test_override_loop
+test_override_remove
+test_long_loop
+test_combined_loop # 1 non-fatal test failing
+test_fake_loop
+test_fake_loop_reverse
+test_badscript
+test_onlystart
+test_onlystop
+test_removal
+test_segfault_virtfac
+test_incorrect_startscripts
+test_incorrect_stopscripts
+test_newbug_keepoldorder # 3 non-fatal tests failing
+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
+test_broken_header
+test_noprovides_header
+test_no_default_start
+test_no_default_stop
+test_initd_symlink
+test_deterministic_order
+test_all_keyword
+test_early_all
+test_script_in_runlevel
+test_x_interactive
+test_insserv_conf_makefile
+test_insserv_virt_loop
+test_local_virtual
+test_insserv_upstart
+test_undetected_loop # 2 non-fatal tests failing
+test_invalid_core_string
+test_show_all
+test_bootmisc_order
diff --git a/debian/seq-changes b/debian/seq-changes
new file mode 100755
index 0000000..4610bec
--- /dev/null
+++ b/debian/seq-changes
@@ -0,0 +1,54 @@
+#! /bin/bash
+# Script from Frans Pop
+
+set -e
+
+if [ -z "$1" ]; then
+ echo "Usage: insserv-seq-changes /var/lib/insserv/<old bootscripts tarball>"
+ exit 1
+fi
+
+oldtar="$(tar tzf $1)"
+for i in S $(seq 0 6); do
+ echo "Runlevel $i"
+ new="$(cd /etc/rc$i.d; ls -1 [KS]* | sort | nl)"
+ old="$(echo "$oldtar" | grep "^rc$i.d/[KS]" | cut -d/ -f2 | sort | nl)"
+ case $i in
+ S|0|6)
+ old="$(echo "$old" | sed -r "s/[KS][0-9]+//")"
+ new="$(echo "$new" | sed -r "s/[KS][0-9]+//")"
+ ;;
+ *)
+ old="$(echo "$old" | sed -r "s/([KS])[0-9]+/\1_/")"
+ new="$(echo "$new" | sed -r "s/([KS])[0-9]+/\1_/")"
+ ;;
+ esac
+ echo "$new" | while read num cmd; do
+ oldnum=$(echo "$old" | grep "[[:space:]]$cmd$" | awk '{print $1}')
+ if [ "$oldnum" ]; then
+ diff=$(($num - $oldnum))
+ else
+ oldnum="---"
+ diff=""
+ fi
+ if [ ${#cmd} -ge 16 ]; then
+ echo -e "$cmd\t$num\t$oldnum\t$diff"
+ elif [ ${#cmd} -ge 8 ]; then
+ echo -e "$cmd\t\t$num\t$oldnum\t$diff"
+ else
+ echo -e "$cmd\t\t\t$num\t$oldnum\t$diff"
+ fi
+ done
+ echo "$old" | while read num cmd; do
+ if ! echo "$new" | grep -q "[[:space:]]$cmd$"; then
+ if [ ${#cmd} -ge 16 ]; then
+ echo -e "$cmd\t---\t$oldnum"
+ elif [ ${#cmd} -ge 8 ]; then
+ echo -e "$cmd\t\t---\t$oldnum"
+ else
+ echo -e "$cmd\t\t\t---\t$oldnum"
+ fi
+ fi
+ done
+ echo
+done
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..f08221c
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1 @@
+Tests: upstream
diff --git a/debian/tests/upstream b/debian/tests/upstream
new file mode 100755
index 0000000..a6a67cf
--- /dev/null
+++ b/debian/tests/upstream
@@ -0,0 +1,14 @@
+#!/bin/sh -eu
+exec 2>&1
+
+# To simplify running manually.
+: ${AUTOPKGTEST_TMP:=/tmp}
+
+rm -rf "${AUTOPKGTEST_TMP}/insserv/tests"
+mkdir -p "${AUTOPKGTEST_TMP}/insserv/tests"
+cp -r tests/* "${AUTOPKGTEST_TMP}/insserv/tests/"
+
+export insserv=/sbin/insserv
+cd "${AUTOPKGTEST_TMP}/insserv/tests/"
+./common
+severity=check ./run-testsuite
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644
index 0000000..5008d7c
--- /dev/null
+++ b/debian/upstream/signing-key.asc
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBE9OedMBCADE5cOljya4PFe9mWW6p+USPCJL3ONX8eNd7kgR/V/ypUp/tweL
+H9vgvFutSp3C2/ANUYHERY32+UcftZsPqFam/GLTmfi0F9DsM9itZKTops4XOa2y
+JS1FDMiZpusOYvg6lTnG0G7B2ybG8YJuFyG2amqE4LYTZg+0tYoGOr9qA2h5xs77
+hN+f+idj2iyzyJDZgGDpqQxFV0KEFK7G4lNd7eIjGue/FneuHt5H6yyNXSNyjdQx
+TZjyFZQuGcFTTgUFQGFhc3OHriYbCoQlKhfCmyxCiJizqRIfSjisgvnrXM1BmDuC
+/4umGPInbMJEsBjcpA1u92HL2EzYvc1p5tSPABEBAAG0KEplc3NlIFNtaXRoIDxq
+c21pdGhAcmVzb25hdGluZ21lZGlhLmNvbT6JATgEEwECACIFAk9OedMCGy8GCwkI
+BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPo+x5pMDBHMz0wH/RVn4LXqNbPDXFkJ
+ZHM2COhJRI8IcOZr/jh129OR6NcfGJdQSkv/KjNpIWflDXIqBEfnfRN++KB/cjkp
+xzgQY4ABtpm97s4ML1Nm174UTynhqF14nRTaLi5lBqJzx4Cx0+mNiHJgUEaUKbRk
+4dMZSb8/Lx1jMSpieP/NP5oZAbM1Vxcz1l2KPNRrr3Tu2FPnmy1CQV0/o8WwwZn/
+/utOmr6bLO1FZG34HmCkZMc1V0+9VQFyMulFxWZzSzEmLYqv6k4d0zKaGwnDCzux
+Fe/bjSXUnp8ftvn7J7h5EoAen6nXVvupPGJj19TSpxqyRGnnjXHMSgK/Fe0qzIPp
+CPzU8PO4jQRPTnnTAQQAyek6C0O9n/tt+dwa9OIXPEv/VlCVRe3I9/6SxSHZHx5+
+S2QSYZh2c1Mnutg0blc8HsecZYbiVP8lCeNKkavHMo3G6sH8PYmI1+KXLWWOCsnK
+sMk4SQJqeFDlJy3u8c74N+qxZ6nEOs7K/AHaGtyQkWenf7PQkgpazm4LnU2PavkA
+EQEAAYkBvQQYAQIACQUCT0550wIbLgCoCRD6PseaTAwRzJ0gBBkBAgAGBQJPTnnT
+AAoJECpy60GQb45JVaYD/2mf35Hmc1y6ccE/OhY4HdmowVb1KTLZS/vY0aBbyrVn
+rEdj6FxKs5c9IFZbxml36fiBRuzf7tR5YyhY9JfWmishM4qO0pfGxlJGyOI7lRAU
+7JM7uE+oMPaRzLLyLOdsSenRiiHr+anV0N9byhWE4N0WwwknrOg6yqWyABEBf2cr
+5ewH/jXcTqa7S3cuO3PsXaUY/RGWaHChZGnkp1mZAa8gx4B+tn2M8PLkVi5tjf/J
+NQS0jSwoHmTROSKwxu+lUePKy/gjZRoROiq7zqa31jUlPZVZ8zBq1bSjB7V+1GyS
+793Yuj2o14rrFSclPAlJXBwOn7SIoUA+ZE4p0J496HfhS6aBH4HNv/DjxY02JzAS
+foyhlhvkUQqE+ysq7yULHKJYnzwGz8CtrQNdcXU6iAxl8VM7UsR69+8tRV8/NGcw
+y/DkhYkz9cKa6FvGZYWTuTq0cSz7EyJ6t8Wp2Yc5L91dACF7gKmv/t0QwXQ6yJNb
+pivinLwAx8pMRewMbPoY+bdH0KY=
+=EE8+
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..620410d
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,6 @@
+# Run the "uscan" command to check for upstream updates and more.
+# See uscan(1) for format
+
+version=4
+opts="pgpmode=auto,uversionmangle=s/-beta/~beta/" \
+https://download.savannah.gnu.org/releases/sysvinit/insserv-([0-9\.]+(?:-beta[0-9]?)?)@ARCHIVE_EXT@ debian uupdate