1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347
|
Check-Script: scripts
Author: Richard Braakman <dark@xs4all.nl>
Abbrev: scr
Standards-Version: 3.7.0
Type: binary
Unpack-Level: 2
Info: This script checks the #! lines of scripts in a package.
Needs-Info: file-info, scripts
Tag: script-without-interpreter
Type: error
Info: This file starts with the #! sequence that identifies scripts, but
it does not name an interpreter.
Tag: executable-not-elf-or-script
Type: warning
Info: This executable file is not an ELF format binary, and does not start
with the #! sequence that marks interpreted scripts. It might be a sh script
that fails to name /bin/sh as its shell.
Ref: policy 10.4
Tag: script-not-executable
Type: warning
Info: This file starts with the #! sequence that marks interpreted scripts,
but it is not executable.
Tag: interpreter-not-absolute
Type: warning
Info: This script uses a relative path to locate its interpreter.
This path will be taken relative to the caller's current directory, not
the script's, so it is not likely to be what was intended.
Tag: unusual-interpreter
Type: warning
Info: This package contains a script for an interpreter that the Lintian
maintainers have not thought of. It could be a typo for a common
interpreter. If not, please file a wishlist bug on lintian so that the
Lintian maintainers can add this interpreter to their list.
Tag: forbidden-config-interpreter
Type: error
Info: This package contains a 'config' script for pre-configuring the package,
however, at that time only essential packages are guaranteed to be installed,
so you cannot use a non-essential interpreter
Tag: unusual-control-interpreter
Type: info
Info: This package contains a control script for an interpreter that
is not normally used for control scripts.
Tag: interpreter-in-usr-local
Type: error
Info: This package contains a script that looks for an interpreter
in a directory in /usr/local. Since Debian does not install anything
in /usr/local, this is the wrong place to look.
Tag: interpreter-without-predep
Type: error
Info: The package contains a control script that uses an unusual interpreter,
but does not declare a pre-dependency on the package that provides this
interpreter.
.
A perusal of &packaging; section 6.2 shows that any of the control scripts
can be called while the package is not configured. Therefore, a
pre-dependency is required to ensure that the interpreter is always
available when the script is invoked.
.
Please do not add a pre-dependency without following the policy for doing so.
(Policy section 3.5).
Tag: gawk-script-but-no-gawk-dep
Type: error
Info: Packages that use gawk scripts must depend on the gawk package.
If they don't need gawk-specific features, and can just as easily work
with mawk, then they should be awk scripts instead.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: mawk-script-but-no-mawk-dep
Type: error
Info: Packages that use mawk scripts must depend on the mawk package.
If they don't need mawk-specific features, and can just as easily work
with gawk, then they should be awk scripts instead.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: missing-dep-for-interpreter
Type: error
Info: You used an interpreter for a script that is not in an essential
package. In most cases you will need to add a Dependency on the
package that contains the interpreter.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: csh-considered-harmful
Type: warning
Info: The Debian policy for scripts explicitly warns against using csh
and tcsh as scripting languages.
Ref: policy 10.4
Tag: suid-perl-script-but-no-perl-suid-dep
Type: error
Info: Packages that use perl scripts that are suid must depend on the
perl-suid package.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: php-script-but-no-php-cli-dep
Type: error
Info: Packages that use PHP scripts with /usr/bin/php as interpreter must
depend on a php-cli package (such as php4-cli or php5-cli). Note that a
dependency on a php-cgi package (such as php5-cgi) is needlessly strict,
and forces the user to install a package that isn't needed.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: php4-script-but-no-php4-cli-dep
Type: error
Info: Packages that use PHP4 scripts must depend on the php4-cli package. Note
that a dependency on php4-cgi is needlessly strict, and forces the user to
install a package that isn't needed.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: php5-script-but-no-php5-cli-dep
Type: error
Info: Packages that use PHP5 scripts must depend on the php5-cli package. Note
that a dependency on php5-cgi is needlessly strict, and forces the user to
install a package that isn't needed.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: wrong-path-for-python
Type: error
Info: Python is installed as /usr/bin/python on Debian systems.
.
Specific Python versions are installed as /usr/bin/pythonX.Y
Tag: wrong-path-for-ruby
Type: error
Info: Ruby is installed as /usr/bin/ruby on Debian systems.
.
Specific Ruby versions are installed as /usr/bin/rubyX.Y
Tag: wrong-path-for-interpreter
Type: error
Info: The interpreter you used is installed at another location on Debian systems.
Tag: python-script-but-no-python-dep
Type: error
Info: Packages with scripts that are executed with python must depend on the
package python. Those that have scripts executed with a versioned python
package need a dependency on the equivalent version of python.
.
For example, if a script in the package uses #!/usr/bin/python, then the
package needs a dependency on "python". If a script uses
#!/usr/bin/python2.2, then the package need a dependency on "python2.2".
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: ruby-script-but-no-ruby-dep
Type: error
Info: Packages with scripts that are executed with ruby must depend on the
package ruby. Those that have scripts executed with a versioned ruby
package need a dependency on the equivalent version of ruby.
.
For example, if a script in the package uses #!/usr/bin/ruby, then the
package needs a dependency on "ruby". If a script uses
#!/usr/bin/ruby1.6, then the package need a dependency on "ruby1.6".
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: wish-script-but-no-wish-dep
Type: error
Info: Packages that use wish scripts must depend on the virtual package wish
or, if they require a specific version of wish or tk, that version of tk.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: tclsh-script-but-no-tclsh-dep
Type: error
Info: Packages that use wish scripts must depend on the virtual package
tclsh or, if they require a specific version of wish or tk, that version
of tcl.
.
In some cases a weaker relationship, such as Suggests or Recommends, will
be more appropriate.
Tag: calls-suidperl-directly
Type: error
Info: Since perl version 5.8.3-3, /usr/bin/suidperl shouldn't be called directly
anymore (and doing so will lead to errors in most cases) but the script should
just use /usr/bin/perl as interpreter which will call suidperl automatically if
the script has the suid permission bit set.
Tag: shell-script-fails-syntax-check
Type: error
Info: Running this shell script with the shell's -n option set fails,
which means that the script has syntax errors.
.
Run e.g. <tt>sh -n yourscript</tt> to see the errors yourself.
Tag: maintainer-shell-script-fails-syntax-check
Type: error
Info: Running this shell script with the shell's -n option set fails,
which means that the script has syntax errors. This will likely make
the package uninstallable.
.
Run e.g. <tt>sh -n yourscript</tt> to see the errors yourself.
Tag: possibly-insecure-handling-of-tmp-files-in-maintainer-script
Type: warning
Info: The maintainer script seems to access a file in <tt>/tmp</tt> or some
other temporary directory. Since creating temporary files in a
world-writable directory is very dangerous, this is likely to be a
security bug. It's suggested that you use the <tt>tempfile</tt> or
<tt>mktemp</tt> utilities to create temporary files in these
directories.
Ref: policy 10.4
Tag: killall-is-dangerous
Type: warning
Info: The maintainer script seems to call <tt>killall</tt>. Since this
utility kills processes by name, it may well end up killing unrelated
processes. Most uses of <tt>killall</tt> should use
<tt>start-stop-daemon</tt> instead.
Tag: mknod-in-maintainer-script
Type: error
Ref: policy 10.6
Info: Maintainer scripts must not create device files directly. They
should call MAKEDEV instead.
Tag: possible-bashism-in-maintainer-script
Type: warning
Ref: policy 10.4
Info: This script is marked as running under <tt>/bin/sh</tt>, but it seems
to use a feature found in bash but not in the POSIX shell specification.
.
Examples:
'==' in a test, it should use '=' instead
'read' without a variable in the argument
'function' to define a function
'source' instead of '.'
'. command args', passing arguments to commands via 'source' is not supported
'{foo,bar}' instead of 'foo bar'
'[[ test ]]' instead of '[ test ]' (requires a Korn shell)
Tag: possible-non-posix-code-in-maintainer-script
Type: info
Ref: policy 10.4
Info: This script is marked as running under <tt>/bin/sh</tt>, but it seems
to use a shell feature that is not defined in the POSIX standard. The
feature is so common in current shells that this isn't currently
considered an release critical bug and there are discussion wether
policy should be amended to specifically allow the use of the feature.
.
Examples:
'-a' and '-o' as operators of 'test'. You can use shell conditionals
(&& and ||) instead.
'local' scoping of variables.
Tag: suidregister-used-in-maintainer-script
Type: error
Info: This script calls suidregister which is no longer needed, a new
command 'dpkg-statoverride' gives admins more flexibility. Please see
the documentation of suidmanager and dpkg-statoverride for details.
Tag: maintainer-script-needs-depends-on-netbase
Type: warning
Info: This script calls update-inetd, but the package does not depend or
pre-depend on either netbase or update-inetd, which provide it.
Tag: maintainer-script-needs-depends-on-adduser
Type: warning
Info: This script calls adduser, but the package does not depend or
pre-depend on the adduser package.
Tag: maintainer-script-needs-depends-on-gconf2
Type: warning
Info: This script calls gconf-schemas, which comes from the gconf2 package
and was introduced with gconf2 2.10.1-2, but does not depend or
pre-depend on the appropriate version of gconf2. Packages that call
gconf-schemas need to depend on gconf2 (>= 2.10.1-2). If you are using
dh_gconf, add a dependency on ${misc:Depends} and dh_gconf will take care
of this for you.
Tag: maintainer-script-needs-depends-on-ucf
Type: warning
Info: This script calls ucf, but the package does not depend or pre-depend
on the ucf package.
Tag: update-alternatives-remove-called-in-postrm
Type: warning
Info: 'update-alternatives --remove <alternative> foo' is called in the
postrm. This can be dangerous because at the time the postrm is executed
foo has already been deleted and update-alternatives will ignore it while
constructing its list of available alternatives. Then, if the
/etc/alternatives symlink points at foo, update-alternatives won't
recognize it and will mark the symlink as something site-specific. As
such, the symlink will no longer be updated automatically and will be
left dangling until `update-alternatives --auto <alternative>' is
run by hand.
.
update-alternatives --remove should be called in the prerm instead.
Tag: deprecated-chown-usage
Type: warning
Info: 'chown user.group' is called in one of the maintainer scripts.
This should be avoided, as the correct syntax is 'chown user:group'.
Using "." as a separator is still supported by the GNU tools, but it will
fail as soon as a system uses the "." in user or group names.
Tag: maintainer-script-hides-init-failure
Type: warning
Info: This script calls invoke-rc.d to run an init script but then, if the
init script fails, exits successfully (using || exit 0). If the init
script fails, the maintainer script should probably fail.
.
The most likely cause of this problem is that the package was built with
a debhelper version suffering from Bug#337664 that inserted incorrect
invoke-rc.d code in the generated maintainer script. The package needs to
be reuploaded (could be bin-NMUd, no source changes needed).
Tag: maintainer-script-calls-init-script-directly
Type: error
Info: This script apparently runs an init script directly rather than
using invoke-rc.d. The use of invoke-rc.d to invoke the /etc/init.d/*
initscripts instead of calling them directly is required. Maintainer
scripts may call the init script directly only if invoke-rc.d is not
available.
Ref: policy 9.3.3.2
Tag: gconftool-used-in-maintainer-script
Type: warning
Info: This script apparently runs gconftool or gconftool-2. It should
probably be calling gconf-schemas or update-gconf-defaults instead.
|