[SCM] Debian package checker branch, master, updated. 2.1.3-60-gd6ac8bf
The following commit has been merged in the master branch:
commit d6ac8bf38340dae035d62880930a77fb1b6129bc
Author: Adam D. Barratt <adam@adam-barratt.org.uk>
Date: Fri Jan 2 18:47:04 2009 +0000
Flag the source bashism when its argument is quoted.
diff --git a/checks/scripts b/checks/scripts
index 146249c..aae51e8 100644
--- a/checks/scripts
+++ b/checks/scripts
@@ -615,6 +615,8 @@ while (<SCRIPTS>) {
my @bashism_single_quote_regexs = (
$LEADIN . qr'echo\s+(?:-[^e\s]+\s+)?\'[^\']*(\\[\\abcEfnrtv0])+.*?[\']',
# unsafe echo with backslashes
+ $LEADIN . qr'source\s+[\"\']?(?:\.\/|\/|\$)[^\s]+',
+ # should be '.', not 'source'
);
my @bashism_string_regexs = (
qr'\$\[\w+\]', # arith not allowed
@@ -641,8 +643,6 @@ while (<SCRIPTS>) {
);
my @bashism_regexs = (
qr'(?:^|\s+)function \w+(\s|\(|\Z)', # function is useless
- # should be '.', not 'source'
- $LEADIN . qr'source\s+(?:\.\/|\/|\$)[^\s]+',
qr'(test|-o|-a)\s*[^\s]+\s+==\s', # should be 'b = a'
qr'\[\s+[^\]]+\s+==\s', # should be 'b = a'
qr'\s(\|\&)', # pipelining is not POSIX
diff --git a/debian/changelog b/debian/changelog
index 48f2e3a..ee585c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -93,6 +93,7 @@ lintian (2.1.4) UNRELEASED; urgency=low
+ [ADB] More intelligently remove comments from shell scripts, to avoid
removing some constructs that aren't comments, such as those in
[ $# -gt 2 ] and "foo # bar".
+ + [ADB] Flag the source bashism when its argument is quoted.
* checks/watch-file:
+ [RA] Recognize additional SourceForge URLs and recommend the
redirector. Thanks, Riccardo Stagni. (Closes: #510398)
diff --git a/testset/maintainer-scripts/debian/prerm b/testset/maintainer-scripts/debian/prerm
index 512169c..88f2c7c 100644
--- a/testset/maintainer-scripts/debian/prerm
+++ b/testset/maintainer-scripts/debian/prerm
@@ -181,3 +181,6 @@ read -p "Would you like to restart the service?" foo bar
read --fish
set -e
+
+source "$BAR"
+source '$BAR'
diff --git a/testset/tags.maintainer-scripts b/testset/tags.maintainer-scripts
index 314a269..1debc3f 100644
--- a/testset/tags.maintainer-scripts
+++ b/testset/tags.maintainer-scripts
@@ -115,6 +115,8 @@ W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:171 'foobar@(
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:179 'read -r'
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:180 'read -p'
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:181 'read --fish'
+W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:185 'source "$BAR"'
+W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:186 'source '$BAR''
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:19 '[ "$2" == '
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:23 'function foo('
W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:26 '&>'
--
Debian package checker
Reply to: