Bug#617959: 'script-calls-init-script-directly' is bad advice
Package: lintian
Version: 2.4.3
Severity: normal
It's been brought to my attention that lintian outputs a
'script-calls-init-script-directly' warning for scripts in /etc/ that
call scripts in /etc/init.d/:
W: samba: script-calls-init-script-directly ./etc/network/if-up.d/samba:30
As discussed in Policy bugs #445203 and #588085, this is wrong advice. For
maintainer scripts, use of invoke-rc.d is a requirement because this controls
whether services will be started on installation/upgrade. For scripts in
/etc, there is no such general rule, and lintian should not be advising
packages to make changes that will give wrong semantics in the majority of
cases.
For samba in particular, the script in question does this:
status=$(/etc/init.d/samba status)
# Really only necessary to do anything if nmbd is not already running
if echo "$status" | grep -q 'smbd is running' \
&& ! echo "$status" | grep -q 'nmbd is running'
then
/etc/init.d/samba start
fi
This is not something that should be mediated by invoke-rc.d or policy-rc.d
- the intent is to *always* start nmbd when the interface is brought up, *if*
smbd is currently running. invoke-rc.d has nothing to do with this.
The logrotate job for samba does similar, but doesn't trigger this warning
because it's not a script.
/var/log/samba/log.smbd {
weekly
missingok
rotate 7
postrotate
/etc/init.d/samba reload > /dev/null
endscript
compress
notifempty
}
Again, invoke-rc.d adds nothing to this, it could only get in the way and
cause bugs.
Please stop outputting this warning in lintian. The false-positives are much
too frequent.
-- System Information:
Debian Release: 6.0
APT prefers oldstable
APT policy: (500, 'oldstable'), (500, 'stable')
Architecture: armel (armv5tel)
Kernel: Linux 2.6.30-1-iop32x
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages lintian depends on:
ii binutils 2.20.1-16 The GNU assembler, linker and bina
ii diffstat 1.53-1 produces graph of changes introduc
ii dpkg-dev 1.15.8.10 Debian package development tools
ii file 5.04-5 Determines file type using "magic"
ii gettext 0.18.1.1-3 GNU Internationalization utilities
ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii libapt-pkg-perl 0.1.24+b2 Perl interface to libapt-pkg
ii libclass-accessor-perl 0.34-1 Perl module that automatically gen
ii libipc-run-perl 0.89-1 Perl module for running processes
ii libparse-debianchangel 1.1.1-2.1 parse Debian changelogs and output
ii libtimedate-perl 1.2000-1 collection of modules to manipulat
ii liburi-perl 1.54-2 module to manipulate and access UR
ii locales 2.11.2-10 Embedded GNU C Library: National L
ii man-db 2.5.7-8 on-line manual pager
ii perl [libdigest-sha-pe 5.10.1-17 Larry Wall's Practical Extraction
lintian recommends no packages.
Versions of packages lintian suggests:
pn binutils-multiarch <none> (no description available)
pn libtext-template-perl <none> (no description available)
ii man-db 2.5.7-8 on-line manual pager
-- no debconf information
Reply to: