[SCM] Debian package checker branch, master, updated. 2.5.10-84-gdc5ab1a
The following commit has been merged in the master branch:
commit dc5ab1a6f0bdb2fa5ef8e2f43922f708c84bffe6
Author: Niels Thykier <niels@thykier.net>
Date: Mon Jul 23 15:13:48 2012 +0200
c/init.d: Migrate to L::Collect's is_conffile method
Move file-in-etc-rc.d-marked-as-conffile to checks/conffiles, so the
check does not need to access the conffiles control file directly.
As a side-effect of the tag move, also remove the leading slash from
the filename when emitting file-in-etc-rc.d-marked-as-conffile.
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/checks/conffiles b/checks/conffiles
index 5d510bf..ff2dc60 100644
--- a/checks/conffiles
+++ b/checks/conffiles
@@ -63,6 +63,8 @@ if (-f $cf) {
} else {
unless (m,^/etc/,) {
tag 'non-etc-file-marked-as-conffile', $file;
+ } elsif (m,^/etc/rc.\.d,) {
+ tag 'file-in-etc-rc.d-marked-as-conffile', $file;
}
}
diff --git a/checks/conffiles.desc b/checks/conffiles.desc
index 34926cd..8d51e09 100644
--- a/checks/conffiles.desc
+++ b/checks/conffiles.desc
@@ -44,3 +44,10 @@ Certainty: certain
Ref: policy 10.7
Info: Files in <tt>/etc</tt> must be marked conffiles if they are included
in a package. Otherwise they should be created by maintainer scripts.
+
+Tag: file-in-etc-rc.d-marked-as-conffile
+Severity: important
+Certainty: certain
+Ref: policy 9.3.3
+Info: The symbolic links in <tt>/etc/rc?.d</tt> may not be marked as conffiles.
+
diff --git a/checks/init.d b/checks/init.d
index 7ed5eb3..0eeb337 100644
--- a/checks/init.d
+++ b/checks/init.d
@@ -73,11 +73,9 @@ my $postinst = $info->control('postinst');
my $preinst = $info->control('preinst');
my $postrm = $info->control('postrm');
my $prerm = $info->control('prerm');
-my $conffiles = $info->control('conffiles');
my %initd_postinst;
my %initd_postrm;
-my %conffiles;
my $opts_r = qr/-\S+\s*/;
my $action_r = qr/\w+/;
@@ -158,26 +156,12 @@ for (keys %initd_postrm) {
tag 'postrm-contains-additional-updaterc.d-calls', "etc/init.d/$_";
}
-# load conffiles
-if (open(IN, '<', $conffiles)) {
- while (<IN>) {
- chop;
- next if m/^\s*$/o;
- $conffiles{$_} = 1;
-
- if (m,^/?etc/rc.\.d,o) {
- tag 'file-in-etc-rc.d-marked-as-conffile', $_;
- }
- }
- close(IN);
-}
-
foreach my $initd_file (keys %initd_postinst) {
next unless $initd_file;
my $initd_path = "$initd_dir/$initd_file";
# init.d scripts have to be marked as conffiles unless they're symlinks.
- unless ($conffiles{"/etc/init.d/$initd_file"} or $conffiles{"etc/init.d/$initd_file"}
+ unless ($info->is_conffile ("etc/init.d/$initd_file")
or -l $initd_path) {
tag 'init.d-script-not-marked-as-conffile', "etc/init.d/$initd_file";
}
diff --git a/checks/init.d.desc b/checks/init.d.desc
index 18a1b87..84a8c7a 100644
--- a/checks/init.d.desc
+++ b/checks/init.d.desc
@@ -53,12 +53,6 @@ Certainty: certain
Info: The <tt>postrm</tt> de-registers an <tt>/etc/init.d</tt> script which
has not been registered in the <tt>postinst</tt> script before.
-Tag: file-in-etc-rc.d-marked-as-conffile
-Severity: important
-Certainty: certain
-Ref: policy 9.3.3
-Info: The symbolic links in <tt>/etc/rc?.d</tt> may not be marked as conffiles.
-
Tag: init.d-script-not-marked-as-conffile
Severity: important
Certainty: wild-guess
diff --git a/debian/changelog b/debian/changelog
index 2545133..851a52e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,9 @@ lintian (2.5.11) UNRELEASED; urgency=low
apparently-corrupted-elf-binary.
+ [NT] Remove some references to objdump in tag descriptions
as Lintian uses readelf.
+ * checks/conffiles:
+ + [NT] Remove leading slash on the filename when emitting
+ file-in-etc-rc.d-marked-as-conffile.
* checks/cruft:
+ [NT] Detect MS-DOS executables as windows binaries.
* checks/deb-format{,.desc}:
@@ -30,6 +33,11 @@ lintian (2.5.11) UNRELEASED; urgency=low
packages.
* checks/infofiles:
+ [NT] Use L::Util's gzip decompressor rather than zcat.
+ * checks/init.d{,.desc}:
+ + [NT] Move file-in-etc-rc.d-marked-as-conffile to conffiles
+ check.
+ + [NT] Use L::Collect's conffile API instead of accessing the
+ "conffiles" control file directly.
* checks/manpages{,.desc}:
+ [CW,NT] Manually do redirects and chdir rather than
invoking a shell when calling man and lexgrog.
diff --git a/t/tests/conffiles-general/debian/debian/conffiles b/t/tests/conffiles-general/debian/debian/conffiles
index c011be9..27cb89f 100644
--- a/t/tests/conffiles-general/debian/debian/conffiles
+++ b/t/tests/conffiles-general/debian/debian/conffiles
@@ -1,4 +1,5 @@
/etc/foo
+/etc/rc2.d/file
/usr/share/foo
/var/cache/foo
etc/foo
diff --git a/t/tests/conffiles-general/desc b/t/tests/conffiles-general/desc
index aa3b27c..e0b89e5 100644
--- a/t/tests/conffiles-general/desc
+++ b/t/tests/conffiles-general/desc
@@ -3,6 +3,7 @@ Sequence: 6000
Version: 1.0
Description: Test for conffile-related checks
Test-For:
+ file-in-etc-rc.d-marked-as-conffile
file-in-usr-marked-as-conffile
non-etc-file-marked-as-conffile
relative-conffile
diff --git a/t/tests/conffiles-general/tags b/t/tests/conffiles-general/tags
index ce92674..0870cb5 100644
--- a/t/tests/conffiles-general/tags
+++ b/t/tests/conffiles-general/tags
@@ -1,4 +1,5 @@
E: conffiles-general: duplicate-conffile etc/foo
+E: conffiles-general: file-in-etc-rc.d-marked-as-conffile etc/rc2.d/file
E: conffiles-general: file-in-usr-marked-as-conffile usr/share/foo
E: conffiles-general: non-etc-file-marked-as-conffile var/cache/foo
E: conffiles-general: relative-conffile etc/foo
diff --git a/t/tests/init.d-general/debian/debian/rules b/t/tests/init.d-general/debian/debian/rules
deleted file mode 100644
index 264ec6e..0000000
--- a/t/tests/init.d-general/debian/debian/rules
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/make -f
-
-TMP:=debian/init.d-general-bugs
-%:
- dh $@
-
-override_dh_builddeb:
- mkdir -p $(TMP)/etc/rc2.d
- echo "# Hallo word" > $(TMP)/etc/rc2.d/file
- echo "/etc/rc2.d/file" >> $(TMP)/DEBIAN/conffiles
- dh_builddeb
diff --git a/t/tests/init.d-general/desc b/t/tests/init.d-general/desc
index ba8d961..6f4711f 100644
--- a/t/tests/init.d-general/desc
+++ b/t/tests/init.d-general/desc
@@ -4,7 +4,6 @@ Version: 1.0
Description: Test tags related to the init.d checks
Test-For:
duplicate-updaterc.d-calls-in-postinst
- file-in-etc-rc.d-marked-as-conffile
init.d-script-does-not-implement-optional-option
init.d-script-does-not-implement-required-option
init.d-script-sourcing-without-test
diff --git a/t/tests/init.d-general/tags b/t/tests/init.d-general/tags
index f6f3277..818f511 100644
--- a/t/tests/init.d-general/tags
+++ b/t/tests/init.d-general/tags
@@ -1,10 +1,8 @@
E: init.d-general-bugs: duplicate-updaterc.d-calls-in-postinst init.d-general-bugs
-E: init.d-general-bugs: file-in-etc-rc.d-marked-as-conffile /etc/rc2.d/file
E: init.d-general-bugs: init.d-script-does-not-implement-required-option etc/init.d/init.d-general-bugs force-reload
E: init.d-general-bugs: init.d-script-does-not-implement-required-option etc/init.d/init.d-general-bugs restart
E: init.d-general-bugs: init.d-script-does-not-implement-required-option etc/init.d/init.d-general-bugs start
E: init.d-general-bugs: init.d-script-does-not-implement-required-option etc/init.d/init.d-general-bugs stop
-E: init.d-general-bugs: package-installs-into-etc-rc.d etc/rc2.d/file
E: init.d-general-sourcing-without-test: init.d-script-sourcing-without-test etc/init.d/init.d-general-sourcing-without-test:15 /etc/default/rcS
I: init.d-general-bugs: init.d-script-does-not-implement-optional-option etc/init.d/init.d-general-bugs status
W: init.d-general-interpreter-in-usr-dir: init.d-script-uses-usr-interpreter etc/init.d/init.d-general-interpreter-in-usr-dir /usr/bin/perl
--
Debian package checker
Reply to: