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

[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: