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

Bug#533571: [checks/init.d] multiple corrections and enhancements



Russ Allbery wrote:

> Raphael Geissert writes:
> 
>> I planned to send all my init.d-related changes together, but since
>> I'm going to have a very busy weekend I might not finish the other
>> checks I planned.  So, here it is what I've done so far:
> 
> Thanks, applied with some tweaks.
> 

Thanks.

>> commit e61537249dd53ef7195943bd84bad0ee416687e7
>> Author: Raphael Geissert
>> <atomo64-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> Date:   Tue Jun 16 15:07:40 2009 -0500
>>
>>     Don't treat /etc/init.d/README as an init script
> 
> /etc/init.d/skeleton should also be excluded since we don't want to
> complain about not registering it.  Added.

I knew I was missing another file, thanks :)

> 
>> commit f9e8c4cd363e37d9754bf6c610996288b2f75aee
>> Author: Raphael Geissert
>> <atomo64-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> Date:   Sun Jun 14 21:12:19 2009 -0500
>>
>>     Check for init scripts with a /usr shebang
> 
> This is not a Policy violation and is not an RC bug, so it's not
> severity: serious.

It ain't a Policy violation, but under certain conditions it could break the
boot or shutdown process. But okay, I probably overinflated the severity
and certainty, I should have reviewed it a second time.

> Init scripts are not randomly run before /usr is 
> mounted.

Unless they have a broken or incorrect LSB header (which... happens, and
hence my urgency on implementing the other check), or they play with the
default order values (not that often).

> Only rcS scripts need worry about that now, and with 
> dependency boot systems, only scripts that don't declare a dependency on
> the file system.  The point about the interpreter possibly being removed
> is certainly valid, but /usr/bin/perl is essential.
> 
> I kept the check, since I think it's bad practice to write scripts in
> something other than /bin/sh or /bin/bash or something similar, but I
> made it normal/possible.  I think this one is a little questionable, and
> I wonder if it shouldn't be checking for something else entirely or
> excluding Perl or something.

Checking what then?

The init.d-related checks I still plant to write are:
* init.d-script-is-foo.sh-but-not-bin-sh
Basically making sure *.sh scripts use /bin/sh. This would have been of more
use when Policy still stated that script might be sourced.
Maybe with a severity/certainty of minor/certain?
* init.d-uses-usr-binary-but-no-dependency-on-remote_fs
serious/certain?
* default-file-contains-not-only-variables-and-comments
A check for anything that doesn't match:
m/^\s*(?:#|[A-Za-z0-9_]+=|$)/
serious/certain?

What do you think?

> 
> It may be that it's rare enough there's no need to worry about it,
> though.
> 

I actually don't expect to find any, but who knows; I prefer to add a test
to make sure there is none instead of blindly assuming there is none :)

Cheers,
-- 
Raphael Geissert - Debian Maintainer
www.debian.org - get.debian.net





Reply to: