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

[SCM] Debian package checker branch, master, updated. 2.5.2-77-g5f42daa



The following commit has been merged in the master branch:
commit 5f42daa63467530018054b5ef6f14099917083af
Author: Niels Thykier <niels@thykier.net>
Date:   Wed Aug 31 23:56:34 2011 +0200

    Added check for arch packages with only files in /usr/share

diff --git a/checks/files b/checks/files
index 928ac44..836cc58 100644
--- a/checks/files
+++ b/checks/files
@@ -173,6 +173,8 @@ my %linked_against_libvga;
 
 my $py_support_nver = undef;
 
+my $arch_dep_files = 0;
+
 # read data from objdump-info file
 foreach my $file (sort keys %{$info->objdump_info}) {
     my $objdump = $info->objdump_info->{$file};
@@ -254,6 +256,9 @@ foreach my $file (@{$info->sorted_index}) {
     my $owner = $index_info->{owner} . '/' . $index_info->{group};
     my $operm = $index_info->{operm};
     my $link = $index_info->{link};
+
+    $arch_dep_files = 1 if $file !~ m,^usr/share/,o && $file ne 'usr/';
+
     if ($index_info->{type} eq 'h') {
 	my $link_target_dir = $link;
 	$link_target_dir =~ s,[^/]*$,,;
@@ -1305,6 +1310,10 @@ foreach my $file (@{$info->sorted_index}) {
     }
 }
 
+if (!$arch_dep_files && ($info->field('architecture')//'') ne 'all') {
+    tag 'package-contains-no-arch-dependent-files' unless $type eq 'udeb';
+}
+
 # python-support check
 if (defined($py_support_nver) && $pkg ne 'python-support'){
     # Okay - package installs something to /usr/share/python-support/
diff --git a/checks/files.desc b/checks/files.desc
index 3437e4e..7d6af20 100644
--- a/checks/files.desc
+++ b/checks/files.desc
@@ -1275,3 +1275,14 @@ Info: The package ships a library in one of the multiarch lib directories,
  pre-dependency on multiarch-support.  Packages installing to these
  paths must Pre-Depend: multiarch-support to ensure the library can be
  found by the dynamic linker at every point during an upgrade.
+
+Tag: package-contains-no-arch-dependent-files
+Severity: important
+Certainty: certain
+Info: The package is not marked architecture all, but all the files it
+ ships are installed in /usr/share.
+ .
+ Most likely this package should be marked architecture all, but there
+ is a chance that the package is missing files.
+Ref: policy 5.6.8
+
diff --git a/debian/changelog b/debian/changelog
index 7d811d8..c40695a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,7 @@ lintian (2.5.3) UNRELEASED; urgency=low
       - no-debian-copyright
       - obsolete-field-in-dep5-copyright
       - out-of-date-copyright-format-uri
+      - package-contains-no-arch-dependent-files
       - syntax-error-in-dep5-copyright
       - unknown-copyright-format-uri
       - unknown-paragraph-in-dep5-copyright
@@ -62,6 +63,10 @@ lintian (2.5.3) UNRELEASED; urgency=low
     + [NT] Ignore non-ELF files in multiarch paths, when checking for
       a missing pre-depends on multiarch-support.  Thanks to Sven
       Joachim for the report.  (Closes: #639735)
+    + [NT] Added check for packages that only ships files in /usr/share
+      and are not marked "Architecture: all".  Thanks to Evgeni Golov,
+      Carl Fürstenberg and Jari Aalto for the suggestions.
+      (Closes: #574689)
   * checks/menus.desc:
     + [NT] Added reference to the doc-base manual to help people
       find the list of valid doc-base sections.  (Closes: #584280)
diff --git a/t/COVERAGE b/t/COVERAGE
index a1c8ca9..7a766d9 100644
--- a/t/COVERAGE
+++ b/t/COVERAGE
@@ -1,5 +1,5 @@
-Last generated 2011-08-31
-Coverage: 715/933 (76.63%), w. legacy tests: 838/933 (89.82%)
+Last generated 2011-09-01
+Coverage: 716/934 (76.66%), w. legacy tests: 839/934 (89.83%)
 
 The following tags are not tested by the test suite:
 
diff --git a/t/debs/fields-general-bad/root/usr/lib/lintian/some-file b/t/debs/fields-general-bad/root/usr/lib/lintian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/debs/fields-general-bad/root/usr/lib/lintian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/t/debs/fields-general-missing/root/usr/lib/lintian/some-file b/t/debs/fields-general-missing/root/usr/lib/lintian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/debs/fields-general-missing/root/usr/lib/lintian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/t/debs/fields-wildcard-binary/root/usr/lib/lintian/some-file b/t/debs/fields-wildcard-binary/root/usr/lib/lintian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/debs/fields-wildcard-binary/root/usr/lib/lintian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/t/tests/control-file-library-dev/debian/debian/rules b/t/tests/control-file-library-dev/debian/debian/rules
new file mode 100644
index 0000000..97ecc1f
--- /dev/null
+++ b/t/tests/control-file-library-dev/debian/debian/rules
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+override_dh_auto_install:
+	for P in $$(dh_listpackages) ; do \
+		dh_install -p$$P some-file usr/lib/$$P ; \
+	done
diff --git a/t/tests/control-file-library-dev/debian/some-file b/t/tests/control-file-library-dev/debian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/tests/control-file-library-dev/debian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/t/tests/fields-architecture/debian/Makefile b/t/tests/fields-architecture/debian/Makefile
new file mode 100644
index 0000000..c86cd92
--- /dev/null
+++ b/t/tests/fields-architecture/debian/Makefile
@@ -0,0 +1,3 @@
+install:
+	install -d -m 0755 "$(DESTDIR)/usr/lib/package"
+	echo "Hallo World" > "$(DESTDIR)/usr/lib/package/some-file"
diff --git a/t/tests/fields-depends-wildcard/debian/Makefile b/t/tests/fields-depends-wildcard/debian/Makefile
new file mode 100644
index 0000000..c86cd92
--- /dev/null
+++ b/t/tests/fields-depends-wildcard/debian/Makefile
@@ -0,0 +1,3 @@
+install:
+	install -d -m 0755 "$(DESTDIR)/usr/lib/package"
+	echo "Hallo World" > "$(DESTDIR)/usr/lib/package/some-file"
diff --git a/t/tests/fields-doc-pkg-wrong-arch/debian/Makefile b/t/tests/fields-doc-pkg-wrong-arch/debian/Makefile
new file mode 100644
index 0000000..c86cd92
--- /dev/null
+++ b/t/tests/fields-doc-pkg-wrong-arch/debian/Makefile
@@ -0,0 +1,3 @@
+install:
+	install -d -m 0755 "$(DESTDIR)/usr/lib/package"
+	echo "Hallo World" > "$(DESTDIR)/usr/lib/package/some-file"
diff --git a/t/tests/fields-indep-without-arch-indep/debian/Makefile b/t/tests/fields-indep-without-arch-indep/debian/Makefile
new file mode 100644
index 0000000..c86cd92
--- /dev/null
+++ b/t/tests/fields-indep-without-arch-indep/debian/Makefile
@@ -0,0 +1,3 @@
+install:
+	install -d -m 0755 "$(DESTDIR)/usr/lib/package"
+	echo "Hallo World" > "$(DESTDIR)/usr/lib/package/some-file"
diff --git a/t/tests/fields-multi-arch/debian/Makefile b/t/tests/fields-multi-arch/debian/Makefile
new file mode 100644
index 0000000..c86cd92
--- /dev/null
+++ b/t/tests/fields-multi-arch/debian/Makefile
@@ -0,0 +1,3 @@
+install:
+	install -d -m 0755 "$(DESTDIR)/usr/lib/package"
+	echo "Hallo World" > "$(DESTDIR)/usr/lib/package/some-file"
diff --git a/t/tests/fields-virtual-packages/debian/debian/install b/t/tests/fields-virtual-packages/debian/debian/install
index 6c37889..6e59b8c 100644
--- a/t/tests/fields-virtual-packages/debian/debian/install
+++ b/t/tests/fields-virtual-packages/debian/debian/install
@@ -1 +1 @@
-some-file usr/share/lintian
+some-file usr/lib/lintian
diff --git a/t/tests/fields-wrong-section/debian/debian/control.in b/t/tests/fields-wrong-section/debian/debian/control.in
index de437f0..ffce561 100644
--- a/t/tests/fields-wrong-section/debian/debian/control.in
+++ b/t/tests/fields-wrong-section/debian/debian/control.in
@@ -3,7 +3,7 @@ Priority: extra
 Section: {$section}
 Maintainer: {$author}
 Standards-Version: {$standards_version}
-Build-Depends: debhelper (>= 7)
+Build-Depends: debhelper (>= 7.0.50~)
 
 Package: {$srcpkg}
 Architecture: any
diff --git a/t/tests/fields-wrong-section/debian/debian/rules b/t/tests/fields-wrong-section/debian/debian/rules
new file mode 100644
index 0000000..97ecc1f
--- /dev/null
+++ b/t/tests/fields-wrong-section/debian/debian/rules
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+override_dh_auto_install:
+	for P in $$(dh_listpackages) ; do \
+		dh_install -p$$P some-file usr/lib/$$P ; \
+	done
diff --git a/t/tests/fields-wrong-section/debian/some-file b/t/tests/fields-wrong-section/debian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/tests/fields-wrong-section/debian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/t/tests/files-arch-indep-not-marked-all/desc b/t/tests/files-arch-indep-not-marked-all/desc
new file mode 100644
index 0000000..979b681
--- /dev/null
+++ b/t/tests/files-arch-indep-not-marked-all/desc
@@ -0,0 +1,6 @@
+Testname: files-arch-indep-not-marked-all
+Sequence: 6000
+Version: 1.0
+Architecture: any
+Description: Test of arch indep package not marked arch:all
+Test-For: package-contains-no-arch-dependent-files
diff --git a/t/tests/files-arch-indep-not-marked-all/tags b/t/tests/files-arch-indep-not-marked-all/tags
new file mode 100644
index 0000000..95d8a23
--- /dev/null
+++ b/t/tests/files-arch-indep-not-marked-all/tags
@@ -0,0 +1 @@
+E: files-arch-indep-not-marked-all: package-contains-no-arch-dependent-files
diff --git a/t/tests/generic-dh-make-2005/tags b/t/tests/generic-dh-make-2005/tags
index ea2c774..2133c7d 100644
--- a/t/tests/generic-dh-make-2005/tags
+++ b/t/tests/generic-dh-make-2005/tags
@@ -2,6 +2,7 @@ E: generic-dh-make-2005: description-is-dh_make-template
 E: generic-dh-make-2005: helper-templates-in-copyright
 E: generic-dh-make-2005: helper-templates-in-copyright
 E: generic-dh-make-2005: helper-templates-in-copyright
+E: generic-dh-make-2005: package-contains-no-arch-dependent-files
 E: generic-dh-make-2005: section-is-dh_make-template
 I: generic-dh-make-2005 source: debian-watch-file-is-missing
 I: generic-dh-make-2005: extended-description-is-probably-too-short
diff --git a/t/tests/huge-usr-share-percent/debian/debian/rules b/t/tests/huge-usr-share-percent/debian/debian/rules
index 0199c36..f6d1b1c 100755
--- a/t/tests/huge-usr-share-percent/debian/debian/rules
+++ b/t/tests/huge-usr-share-percent/debian/debian/rules
@@ -3,6 +3,8 @@
 	dh $@
 
 override_dh_install:
+	install -d debian/huge-usr-share-percent/usr/lib/a
+	echo "Hallo World" > debian/huge-usr-share-percent/usr/lib/a/some-file
 	install -d debian/huge-usr-share-percent/usr/share/a
 	dd if=/dev/zero of=debian/huge-usr-share-percent/usr/share/a/zero \
 	    bs=1024k count=2
diff --git a/t/tests/runtests-arch-amd64/debian/debian/install b/t/tests/runtests-arch-amd64/debian/debian/install
index a2cc8ff..08f8dfa 100644
--- a/t/tests/runtests-arch-amd64/debian/debian/install
+++ b/t/tests/runtests-arch-amd64/debian/debian/install
@@ -1 +1 @@
-dummy usr/share/package/
+dummy usr/lib/package/
diff --git a/t/tests/runtests-arch-i386/debian/debian/install b/t/tests/runtests-arch-i386/debian/debian/install
index a2cc8ff..08f8dfa 100644
--- a/t/tests/runtests-arch-i386/debian/debian/install
+++ b/t/tests/runtests-arch-i386/debian/debian/install
@@ -1 +1 @@
-dummy usr/share/package/
+dummy usr/lib/package/
diff --git a/t/tests/scripts-control-interpreters/desc b/t/tests/scripts-control-interpreters/desc
index ffa3744..58c6223 100644
--- a/t/tests/scripts-control-interpreters/desc
+++ b/t/tests/scripts-control-interpreters/desc
@@ -2,7 +2,6 @@ Testname: scripts-control-interpreters
 Sequence: 6000
 Type: native
 Version: 1.0
-Architecture: any
 Description: Check maintainer and config script interpreters
 Test-For: control-interpreter-in-usr-local
  wrong-path-for-interpreter
diff --git a/t/tests/scripts-maintainer-general/desc b/t/tests/scripts-maintainer-general/desc
index c69e0d9..01f925f 100644
--- a/t/tests/scripts-maintainer-general/desc
+++ b/t/tests/scripts-maintainer-general/desc
@@ -2,7 +2,6 @@ Testname: scripts-maintainer-general
 Sequence: 6000
 Type: native
 Version: 1.0
-Architecture: any
 Description: Check general problems in maintainer scripts
 Test-For:
  command-with-path-in-maintainer-script
diff --git a/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.examples b/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.examples
deleted file mode 100644
index b80f0bd..0000000
--- a/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.examples
+++ /dev/null
@@ -1 +0,0 @@
-app
diff --git a/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.install b/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.install
new file mode 100644
index 0000000..fe6951d
--- /dev/null
+++ b/t/tests/shared-libs-ldconfig-scripts/debian/debian/app.install
@@ -0,0 +1,2 @@
+app usr/lib/app
+
diff --git a/t/tests/version-substvars-general/debian/debian/rules b/t/tests/version-substvars-general/debian/debian/rules
new file mode 100644
index 0000000..74e7c58
--- /dev/null
+++ b/t/tests/version-substvars-general/debian/debian/rules
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+override_dh_auto_install:
+	for P in $$(dh_listpackages -a) ; do \
+		dh_install -p$$P some-file usr/lib/$$P ; \
+	done
diff --git a/t/tests/version-substvars-general/debian/some-file b/t/tests/version-substvars-general/debian/some-file
new file mode 100644
index 0000000..02c9d2d
--- /dev/null
+++ b/t/tests/version-substvars-general/debian/some-file
@@ -0,0 +1 @@
+Hi, I could totally be architecture dependent.
diff --git a/testset/tags.debconf b/testset/tags.debconf
index 632377c..5c4716f 100644
--- a/testset/tags.debconf
+++ b/testset/tags.debconf
@@ -1,14 +1,18 @@
 E: debconf source: declares-possibly-conflicting-debhelper-compat-versions rules=4 compat=4
 E: debconf-test-noscripts: copyright-contains-dh_make-todo-boilerplate
 E: debconf-test-noscripts: no-debconf-config
+E: debconf-test-noscripts: package-contains-no-arch-dependent-files
 E: debconf-test-postinst: copyright-contains-dh_make-todo-boilerplate
 E: debconf-test-postinst: no-debconf-config
+E: debconf-test-postinst: package-contains-no-arch-dependent-files
 E: debconf-test-preinst: copyright-contains-dh_make-todo-boilerplate
+E: debconf-test-preinst: package-contains-no-arch-dependent-files
 E: debconf-test: copyright-contains-dh_make-todo-boilerplate
 E: debconf-test: extended-description-is-empty
 E: debconf-test: mismatch-translated-choices debconf/testmulti-escape choices-de.utf-8
 E: debconf-test: no-template-description debconf/no-description
 E: debconf-test: no-template-type debconf/language
+E: debconf-test: package-contains-no-arch-dependent-files
 E: debconf-test: unknown-debconf-priority config:10 LOW
 E: debconf-test: unknown-debconf-priority config:11 normal
 E: debconf-udeb udeb: udeb-postinst-must-not-call-ldconfig
diff --git a/testset/tags.debug b/testset/tags.debug
index 191f3de..76e22de 100644
--- a/testset/tags.debug
+++ b/testset/tags.debug
@@ -1,9 +1,11 @@
 E: debug source: build-depends-indep-without-arch-indep
 E: debug source: version-substvar-for-external-package libhello0-dbg -> libhello
 E: hello-dbg: changelog-file-missing-in-native-package
+E: hello-hello-dbg: package-contains-no-arch-dependent-files
 E: hello: pkg-has-symbols-control-file-but-no-shared-libs
 E: hello: statically-linked-binary usr/bin/hello.dbg
 E: hello: unstripped-binary-or-object usr/bin/hello.dbg
+E: hi-dbg: package-contains-no-arch-dependent-files
 E: libhello0-dbg: binary-with-bad-dynamic-table usr/lib/libhello.so.dbg
 E: libhello0-dbg: missing-dependency-on-libc needed by usr/lib/debug/lib/libhello.so.0.0 and 1 others
 E: libhello0-dbg: sharedobject-in-library-directory-missing-soname usr/lib/libhello.so.dbg

-- 
Debian package checker


Reply to: