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

[SCM] Debian package checker branch, master, updated. 2.2.13-50-gbd5784d



The following commit has been merged in the master branch:
commit 633597a85d9bfa9f97b7e12068cad6621d79fbd4
Author: Russ Allbery <rra@debian.org>
Date:   Sat Aug 15 18:37:47 2009 -0700

    Warn about files in /etc/ld.so.conf.d
    
    * checks/files:
      + [RA] Warn about packages containing files in /etc/ld.so.conf.d that
        don't appear to be part of libc.  Policy 3.8.3 no longer permits
        modification of ld.so.conf.

diff --git a/checks/files b/checks/files
index 2067923..9a84327 100644
--- a/checks/files
+++ b/checks/files
@@ -249,6 +249,10 @@ foreach my $file (sort keys %{$info->index}) {
 	    tag "non-standard-file-permissions-for-etc-init.d-script",
 		sprintf("$file %04o != 0755",$operm);
 	}
+	#----------------- /etc/ld.so.conf.d
+	elsif ($file =~ m,^etc/ld\.so\.conf\.d/(.+)$, and $pkg !~ /^libc/) {
+	    tag 'package-modifies-ld.so-search-path', "$file";
+	}
 	#----------------- /etc/modprobe.d
 	elsif ($file =~ m,^etc/modprobe\.d/(.+)$, and $1 !~ m,\.conf$, and $index_info->{type} !~ m/^d/) {
 	    tag "non-conf-file-in-modprobe.d", $file;
diff --git a/checks/files.desc b/checks/files.desc
index 7646f53..9b55796 100644
--- a/checks/files.desc
+++ b/checks/files.desc
@@ -1042,3 +1042,19 @@ Info: This package contains a file named <tt>dir</tt> or <tt>dir.old</tt>,
  build systems create it automatically, but it must not be included in a
  package since it needs to be generated dynamically based on the installed
  info files on the system.
+
+Tag: package-modifies-ld.so-search-path
+Severity: important
+Certainty: possible
+Ref: policy 10.2
+Info: This package installs a file in <tt>/etc/ld.so.conf.d</tt>,
+ presumably to modify the search path of the run-time linker, and does not
+ appear to be part of libc.
+ .
+ Packages containing shared libraries should either install them into
+ <tt>/usr/lib</tt> or should require binaries built against them to set
+ RPATH to find the library at run-time.  Installing libraries in a
+ different directory and modifying the run-time linker path is equivalent
+ to installing them into <tt>/usr/lib</tt> except now conflicting library
+ packages may cause random segfaults and difficult-to-debug problems
+ instead of conflicts in the package manager.
diff --git a/debian/changelog b/debian/changelog
index 1d9fca9..d64c6a6 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ lintian (2.2.14) UNRELEASED; urgency=low
       - debhelper-overrides-need-versioned-build-depends
       - multiple-distributions-in-changes-file
       - patch-system-but-no-source-readme
+      - package-modifies-ld.so-search-path
       - possible-documentation-but-no-doc-base-registration
 
   * checks/changelog-file.desc:
@@ -30,6 +31,9 @@ lintian (2.2.14) UNRELEASED; urgency=low
   * checks/files:
     + [CW] /var/lock and /var/run are not temporary filesystems in d-i, so
       don't emit errors about their use in udebs.
+    + [RA] Warn about packages containing files in /etc/ld.so.conf.d that
+      don't appear to be part of libc.  Policy 3.8.3 no longer permits
+      modification of ld.so.conf.
   * checks/infofiles.desc:
     + [RA] Add missing leading * to example info directory entry.
   * checks/lintian.desc:
diff --git a/t/tests/files-general/debian/debian/install b/t/tests/files-general/debian/debian/install
index 18bf731..149e873 100644
--- a/t/tests/files-general/debian/debian/install
+++ b/t/tests/files-general/debian/debian/install
@@ -4,3 +4,4 @@ lintian-22x22.png usr/share/apps/lintian/icons/hicolor/22x22
 lintian.conf etc/modprobe.d
 dir usr/share/info
 foo.vcproj usr/lib/foo
+lintian-lib.conf etc/ld.so.conf.d
diff --git a/t/tests/files-general/debian/lintian-lib.conf b/t/tests/files-general/debian/lintian-lib.conf
new file mode 100644
index 0000000..e2b41a8
--- /dev/null
+++ b/t/tests/files-general/debian/lintian-lib.conf
@@ -0,0 +1 @@
+/usr/lib/lintian
diff --git a/t/tests/files-general/desc b/t/tests/files-general/desc
index 64e1cfc..5a57765 100644
--- a/t/tests/files-general/desc
+++ b/t/tests/files-general/desc
@@ -10,5 +10,6 @@ Test-For:
  non-conf-file-in-modprobe.d
  package-contains-empty-directory
  package-contains-info-dir-file
+ package-modifies-ld.so-search-path
  stray-directory-in-manpage-directory
  windows-devel-file-in-package
diff --git a/t/tests/files-general/tags b/t/tests/files-general/tags
index 431de07..5ccd78b 100644
--- a/t/tests/files-general/tags
+++ b/t/tests/files-general/tags
@@ -3,6 +3,7 @@ E: files-general: dir-or-file-in-var-run var/run/lintian/
 E: files-general: executable-manpage usr/share/man/man5/foo.5.gz
 E: files-general: non-conf-file-in-modprobe.d etc/modprobe.d/--lzma
 E: files-general: package-contains-info-dir-file usr/share/info/dir.gz
+E: files-general: package-modifies-ld.so-search-path etc/ld.so.conf.d/lintian-lib.conf
 E: files-general: stray-directory-in-manpage-directory usr/share/man/man1/random/
 I: files-general: package-contains-empty-directory usr/share/man/man1/random/
 W: files-general: executable-not-elf-or-script ./usr/share/man/man5/foo.5.gz

-- 
Debian package checker


Reply to: