[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: