Current policy states in section 9.3.3.2 ("Running initscripts") the following: "The use of invoke-rc.d to invoke the /etc/init.d/* initscripts is strongly recommended[51], instead of calling them directly."
Footnote 51 further says: "In the future, the use of invoke-rc.d to invoke initscripts shall be made mandatory. Maintainers are advised to switch to invoke-rc.d as soon as possible." I propose that the future has arrived. I ran the attached script on all binary packages in sid/main/i386, and it reported 134 packages that I then analyzed manually. There were only two false positives (both mentioned how to run their init.d script in a message to the user, but didn't run it themselves). All other reported packages were true positives. I have attached the list as well. Almost all of the packages in the list are either dict-* packages (seemingly from the same template), have code from an old debhelper version (so a rebuild might suffice), or are otherwise pretty easy to fix. Even though the number of packages are fairly large, it is my opinion that it should be possible to keep the transition period quite short, weeks at most, and I'm willing to put some time into it. See also bug #353659 against lintian to add a check for this. I would like to see this policy change happen in time for all packages to be updated in etch. This would mean that sysadmins can, finally, rely on policy-rc.d working reliably. Also it means that it would be easier to build chroots, and not have to worry about services and daemons being started inside them unnecessarily. I realize that my script doesn't find all problematic packages. It is meant as a quick estimate. For proper testing, I have recently implemented changes into piuparts that should make it possible to find all problematic packages: in my development version /proc now gets mounted (ergo, start-stop-daemon works), and after packages have been installed, lsof checks that no processes run inside the chroot. This will, I hope, catch packages that don't use invoke-rc.d when they should. Are there any objections to this proposed change? (If there are none within a few days, I'll file the appropriate bug against debian-policy.) -- Every time I say /quit I die a little.
find-lack-of-invoke
Description: application/shellscript
adjtimex_1.20-6_i386.deb adzapper_20060115-1_all.deb apcd_0.6b.nr-2_i386.deb autofs_4.1.4-9_i386.deb avahi-dnsconfd_0.6.9-6_i386.deb battery-stats_0.3.3-1_i386.deb bind_8.4.6-1_i386.deb boa_0.94.14rc20-1.3_i386.deb bricolage-db_1.8.9-1_all.deb bwbar_1.2.2-3_i386.deb canna-shion_0.0.20010204-4_all.deb clamav-data_20060325.213700.1357_all.deb diald_0.99.4-5_i386.deb dict-bouvier_6.revised-2_all.deb dict-devil_1.0-8_all.deb dict-easton_1.5A-1_all.deb dict-elements_20001107-a-3_all.deb dict-freedict-afr-deu_1.3-1_all.deb dict-freedict-cro-eng_1.3-1_all.deb dict-freedict-cze-eng_1.3-1_all.deb dict-freedict-dan-eng_1.3-1_all.deb dict-freedict-deu-eng_1.3-1_all.deb dict-freedict-deu-fra_1.3-1_all.deb dict-freedict-deu-ita_1.3-1_all.deb dict-freedict-deu-nld_1.3-1_all.deb dict-freedict-deu-por_1.3-1_all.deb dict-freedict-eng-ara_1.3-1_all.deb dict-freedict-eng-cro_1.3-1_all.deb dict-freedict-eng-cze_1.3-1_all.deb dict-freedict-eng-deu_1.3-1_all.deb dict-freedict-eng-fra_1.3-1_all.deb dict-freedict-eng-hin_1.3-1_all.deb dict-freedict-eng-hun_1.3-1_all.deb dict-freedict-eng-iri_1.3-1_all.deb dict-freedict-eng-ita_1.3-1_all.deb dict-freedict-eng-lat_1.3-1_all.deb dict-freedict-eng-nld_1.3-1_all.deb dict-freedict-eng-por_1.3-1_all.deb dict-freedict-eng-rom_1.3-1_all.deb dict-freedict-eng-rus_1.3-1_all.deb dict-freedict-eng-scr_1.3-1_all.deb dict-freedict-eng-spa_1.3-1_all.deb dict-freedict-eng-swa_1.3-1_all.deb dict-freedict-eng-swe_1.3-1_all.deb dict-freedict-eng-tur_1.3-1_all.deb dict-freedict-eng-wel_1.3-1_all.deb dict-freedict-fra-deu_1.3-1_all.deb dict-freedict-fra-eng_1.3-1_all.deb dict-freedict-fra-nld_1.3-1_all.deb dict-freedict-gla-deu_1.3-1_all.deb dict-freedict-hin-eng_1.3-1_all.deb dict-freedict-hun-eng_1.3-1_all.deb dict-freedict-iri-eng_1.3-1_all.deb dict-freedict-ita-deu_1.3-1_all.deb dict-freedict-ita-eng_1.3-1_all.deb dict-freedict-jpn-deu_1.3-1_all.deb dict-freedict-lat-deu_1.3-1_all.deb dict-freedict-lat-eng_1.3-1_all.deb dict-freedict-nld-deu_1.3-1_all.deb dict-freedict-nld-eng_1.3-1_all.deb dict-freedict-nld-fra_1.3-1_all.deb dict-freedict-por-deu_1.3-1_all.deb dict-freedict-por-eng_1.3-1_all.deb dict-freedict-scr-eng_1.3-1_all.deb dict-freedict-slo-eng_1.3-1_all.deb dict-freedict-spa-eng_1.3-1_all.deb dict-freedict-swa-eng_1.3-1_all.deb dict-freedict-swe-eng_1.3-1_all.deb dict-freedict-tur-deu_1.3-1_all.deb dict-freedict-tur-eng_1.3-1_all.deb dict-freedict-wel-eng_1.3-1_all.deb dict-gazetteer2k-counties_1.0.0-4_all.deb dict-gazetteer2k-places_1.0.0-4_all.deb dict-gazetteer2k-zips_1.0.0-4_all.deb dict-gcide_0.48-4.1_all.deb dict-hitchcock_1.5A-1_all.deb dict-jargon_4.4.4-6_all.deb dict-moby-thesaurus_1.0-5_all.deb discover_2.0.7-2.1_i386.deb eagle-usb-utils_2.1.1-2_i386.deb exim-doc-html_3.20-1_all.deb exim-doc_3.20-1_all.deb exim_3.36-18_i386.deb fidogate_4.4.7-3_i386.deb firebird2-classic-server_1.5.3.4870-3_i386.deb fml_4.0.3-2_all.deb fonty_1.0-23_all.deb gcpegg_5.1-7_i386.deb genpower_1.0.5-1_i386.deb gnudip_2.1.1-3_all.deb heartbeat-2_2.0.4-1_i386.deb heartbeat_1.2.4-5_i386.deb interchange-ui_5.4.0-1_all.deb iptotal_0.3.3-6_i386.deb jukebox-mercury_0.1-1.1_all.deb libcteco50000_0.9.8-3_i386.deb libnss-ldap_238-1.1_i386.deb libroxen-imho_0.99-2_i386.deb libslbreflex2_2.2.0-8_i386.deb libssl0.9.7_0.9.7g-5_i386.deb libssl0.9.8_0.9.8a-8_i386.deb libtowitoko2_2.0.7-7_i386.deb linuxlogo_4.12-2_i386.deb mailgraph_1.12-1_all.deb mono-xsp2_1.1.13-1_all.deb mono-xsp_1.1.13-1_all.deb nas_1.7-6_i386.deb nbd-client_2.8.3-2_i386.deb nessusd_2.2.7-2_i386.deb net-acct_0.71-7_i386.deb netsaint-statd-server_2.15-9_all.deb ntop_3.2-3_i386.deb orca_0.2.3_i386.deb oss-preserve_1.1-2_i386.deb php4-tclink_3.4.0-3.3_i386.deb pipsecd_19990511-27_i386.deb quota_3.13-4_i386.deb rbootd_2.0-8_i386.deb reseed_1.1-3_all.deb roxen4_4.0.325-6_i386.deb sauce_0.8.1_all.deb scanlogd_2.2.5-1_i386.deb sendpage-server_0.9.14-5_all.deb sfs-client_0.8-0+pre20050819.1-2.1_i386.deb sfs-server_0.8-0+pre20050819.1-2.1_i386.deb squid-prefetch_1.0-1_all.deb tama_1.2.0-3_i386.deb tcpquota_1.6.15-10_all.deb thttpd_2.23beta1-4_i386.deb uif_1.0.5-3_all.deb watchdog_5.2.4-5_i386.deb wdm_1.28-2.1_i386.deb xpilot-ng-server_4.7.2-1.1+b1_i386.deb xtide-data_20040203-1_all.deb