Candidate revision lintian 2.5.1ubuntu1

Bug #798513 reported by أحمد المحمودي (Ahmed El-Mahmoudy)
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
lintian (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: lintian

lintian (2.5.1ubuntu1) oneiric; urgency=low

  * Merge from Debian unstable (LP: #798513). Remaining changes:
    - Don't warn about a symlinked changelog file in Ubuntu due to CDBS.
    - Add no-upstream-changelog tag to cruft-general-test-suite,
      cruft-general-upstream, cruft-upstream-binaries, fields-no-homepage,
      patch-systems-no-patch-system tests.
    - checks/changelog-file.desc, testset/tags.libbaz: Drop
      debian-changelog-file-is-a-symlink tag.
    - t/tests/changelog-file-symlink, t/tests/init.d-symlink: Drop these tests.
    - checks/init.d: fix LP: #496798 again; upstream only took part of our
      patch and the rest of the fix was dropped in the last merge; per
      maintainer's comments in Debian bug #569492, Ubuntu will need to
      carry this fix for the time being
    - Add wrong-name-for-upstream-changelog tag to changelog-file-extra-upstream
      test.
    - t/tests/fields-multi-arch: Do not test invalid Multi-Arch field,
      because dpkg-deb will already fail.
    - Drop debug-symbols-directly-in-usr-lib-debug from binaries-general.
  * Dropped changes:
    - Prefer libtest-simple-perl (>= 0.93) to perl (>= 5.12).

 -- أحمد المحمودي (Ahmed El-Mahmoudy) <email address hidden> Fri, 17 Jun 2011 05:04:50 +0200

lintian (2.5.1) unstable; urgency=low

  * Summary of tag changes:
    + Added:
      - bad-perm-for-file-in-etc-sudoers.d
      - debian-rules-missing-recommended-target
      - dh_pycentral-is-obsolete
      - dh_python-is-obsolete
      - illegal-multi-arch-value
      - non-empty-dependency_libs-in-la-file
    + Removed:
      - uses-dh-python-with-no-pycompat
      - ldconfig-symlink-before-shlib-in-deb

  * checks/binaries:
    + [NT] Applied patch from Paul Wise to detect binaries embeddeding
      glee, glew and libtheora. (Closes: #629288)
    + [NT] Also consider multiarch dirs when looking for public shared
      libraries. (Closes: #630164)
  * checks/debhelper{,.desc}:
    + [NT] Recognise that dh_python and dh_pycentral are now obsolete.
      (Closes: #496902, #541978)
  * checks/changes-file:
    + [NT] Always verify the checksums of changes-files.
  * checks/copyright-file:
    + [NT] Extended current dh_make template checks. Thanks to
      Nelson A. de Oliveira for the patch. (Closes: #598412)
  * checks/fields{,.desc}:
    + [NT] Allow "all" and "any" to appear together in the Architecture
      field of a .dsc file. (Closes: #626775)
    + [NT] Added illegal-multi-arch-value. (Closes: #616493)
  * checks/files:
    + [NT] Fixed two misnamed udeb tags, which lead to an internal
      error if triggered. Thanks to Guillem Jover for the report.
      (Closes: #628754)
    + [NT] Added bad-perm-for-file-in-etc-sudoers.d tag.
      (Closes: #588831)
    + [CW] Do not issue missing-pre-dependency-on-multiarch-support for
      udebs.
    + [NT] Limit missing-pre-dependency-on-multiarch-support to real
      files only. Previously it would also check symlinks.
      (Closes: #629648)
  * checks/java{,.desc}:
    + [NT] Sort the jar files by name, so they are checked in the same
      order.
    + [NT] Improved the description of classpath-contains-relative-path.
      (Closes: #629189)
    + [NT] Reduced false-positives of classpath-contains-relative-path.
      Relative classpaths are now okay if they point to jar files in
      /usr/share/java (but not subdirs thereof) and there is a strong
      libX-java dependency. Alternatively if the classpath points to
      a file or a symlink in the package itself, then it is also okay.
    + [NT] Allow maven plugins to be without classpaths.
      (Closes: #629056)
  * checks/manpages.desc:
    + [ADB] Don't suggest using debmake's output as a reference. The
      package is not even in oldstable any more.
  * checks/md5sums.desc:
    + [ADB] Drop references to obsolete debstd. Thanks to Steve Langasek
      for the pointer.
  * checks/rules:
    + [NT] Removed code for handling packages with dh_python.
    + [NT] Fixed the code for determining Build-Depends for python
      packages. Thanks to Jakub Wilk for the patch.
      (Closes: #614876, #616553)
    + [NT] Applied patch from Roger Leigh to implement the check for
      rules files missing the build-arch and build-indep targets.
      (Closes: #605012)
  * checks/shared-libs{,.desc}:
    + [NT] Added non-empty-dependency_libs-in-la-file. (Closes: #628673)
    + [NT] Removed ldconfig-symlink-before-shlib-in-deb.

  * collection/java:
    + [NT] Fixed a regex that would accept any file ending with "jar" to
      be a jar file rather than only accepting ".jar". This fixes a
      number of false-positives java checks.
  * collection/unpacked:
    + [NT] Added support for unpacking source packages using libdpkg-perl,
      instead of dpkg-source, if the latter is not present.
      (Closes: #626476)

  * data/binaries/multiarch-dirs:
    + [NT] New file - maps architectures to multiarch dirs.
  * data/fields/{perl-provides,virtual-packages}:
    + [NT] Refreshed. (Closes: #627082, #627431)
  * data/output/ftp-master-*:
    + [NT] Refreshed.
  * data/shared-libs/ldconfig-dirs:
    + [NT] Updated ldconfig path for i386 multiarch paths. Thanks to
      Raphaël Hertzog for the reminder.
  * data/spelling/corrections-multiword:
    + [CW] Remove the "requires to" correction; it has too many common
      false positives, especially involving relative clauses.
      (Closes: #625886)

  * debian/control:
    + [NT] (Build-)Dependency changes.
      - xz-lzma is now preferred to lzma as Build-Dependency
      - Added depends on libdpkg-perl
      - Reduced dpkg-dev to a suggests, we can use libdpkg-perl as
        fallback.
      - Explicitly depends on bzip2 to always support bz2 source packages.
      - Added xz-utils as suggests - needed for .xz source packages.

  * doc/lintian.xml:
    + [NT] Clarify that the package type is not listed in the output for
      binary packages. (Closes: #629193)

  * frontend/lintian:
    + [NT] Allow some options to be put into the lintianrc file.
      (Closes: #460350)
    + [NT] Added --no-cfg option that can be specified if no config
      file should be read.
    + [NT] Deprecated --checksums (also known as --md5sums and -m).
      Lintian will now always verify the checksums in changes files.
      The options will be accepted with a warning for now, but may
      be removed in a later release. (Closes: #629453)
    + [NT] Fixed an issue where fail was called before it was
      available. Thanks to Toby Corkindale for the report.
      (Closes: #630560, LP: #797553)

  * lib/Lintian/Tag/Info.pm:
    + [NT] Output the name of the check and the type of the check
      along with the description of the tag.
  * lib/Lintian/Tags.pm:
    + [NT] Fixed a flaw in logic that gave incorrect results for
      architecture dependent overrides. Thanks to Andreas Beckmann for
      the report and the patch. (Closes: #626587)

  * man/lintian.pod.in:
    + [NT] Mentioned that --checksums and aliases are deprecated.

  * unpack/list-srcpkg:
    + [ADB] Don't rely on the order of fields in the Sources file. The
      files produced by the Debian archive no longer follow the order
      which the code previously assumed, and we shouldn't assume that
      the order won't change again in the future. (Closes: #626597)

 -- Niels Thykier <email address hidden> Wed, 15 Jun 2011 23:05:28 +0200

Changed in lintian (Ubuntu):
status: New → Confirmed
Revision history for this message
Micah Gersten (micahg) wrote :

Do we really need this change anymore since we have perl 5.12 now?
- Prefer libtest-simple-perl (>= 0.93) to perl (>= 5.12).

Dave Walker (davewalker)
description: updated
Revision history for this message
Philipp Kaluza (pixelpapst) wrote :

Recommending as a useful tool for the pycentral -> dh_python2 transition.

tags: added: pycentral-deprecation
Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

Note, this package FTBFS on Ubuntu at "Raw Debian source package tests":

Running magic-architecture-srcpkg-ok... building... testing... FAILED:
--- t/source/magic-architecture-srcpkg-ok/tags 2011-01-27 13:31:42.000000000 +0000
+++ debian/tests/tags.magic-architecture-srcpkg-ok 2011-06-21 16:53:38.109886941 +0000
@@ -1,2 +1,3 @@
 I: magic-architecture-srcpkg-ok source: duplicate-long-description magic-architecture-srcpkg-ok-data magic-architecture-srcpkg-ok
 I: magic-architecture-srcpkg-ok source: duplicate-short-description magic-architecture-srcpkg-ok-data magic-architecture-srcpkg-ok
+W: magic-architecture-srcpkg-ok source: ancient-standards-version 3.8.1 (current is 3.9.2)
Running magic-architecture-srcpkg-wrong... building... testing... FAILED:
--- t/source/magic-architecture-srcpkg-wrong/tags 2011-01-27 13:31:42.000000000 +0000
+++ debian/tests/tags.magic-architecture-srcpkg-wrong 2011-06-21 16:53:39.929901985 +0000
@@ -1 +1,2 @@
 E: magic-architecture-srcpkg-wrong source: magic-arch-in-arch-list
+W: magic-architecture-srcpkg-wrong source: ancient-standards-version 3.8.1 (current is 3.9.2)
Running package-version-0... building... testing... FAILED:
--- t/source/package-version-0/tags 2011-04-12 09:22:07.000000000 +0000
+++ debian/tests/tags.package-version-0 2011-06-21 16:53:39.977902361 +0000
@@ -0,0 +1 @@
+W: package-version-0 source: timewarp-standards-version (2009-06-12 < 2011-04-07)

I can't understand why this happens on Ubuntu.

the build log can be found at:

https://launchpadlibrarian.net/73903728/buildlog_ubuntu-oneiric-i386.lintian_2.5.1ubuntu1%7Eppa1_FAILEDTOBUILD.txt.gz

description: updated
Revision history for this message
Niels Thykier (niels-thykier) wrote :
Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

Thanks Niels, that fixed it.

Revision history for this message
Benjamin Drung (bdrung) wrote :

Please use "merge" in the title or add the tag "merge" to the bug. Otherwise it won't be shown as merge in the sponsoring overview.

tags: added: merge
Revision history for this message
Benjamin Drung (bdrung) wrote :

There still one test failing in my amd64 chroot:

Running binaries-general 1.0... building... testing... FAILED:
--- t/tests/binaries-general/tagsting...2011-06-27 17:20:44.000000000 +0000
+++ debian/tests/binaries-general/tags.binaries-general 2011-06-27 17:23:17.107068548 +0000
@@ -1,6 +1,7 @@
 E: binaries-general: arch-dependent-file-in-usr-share usr/share/foo/basic
 E: binaries-general: binary-or-shlib-defines-rpath usr/lib/foo/basiclibrpath /usr/lib
 E: binaries-general: binary-or-shlib-defines-rpath usr/share/foo/basic /usr/local/lib
+E: binaries-general: debug-symbols-directly-in-usr-lib-debug usr/lib/debug/basic
 E: binaries-general: library-in-debug-or-profile-should-not-be-stripped usr/lib/debug/usr/share/foo/basic
 W: binaries-general: binary-compiled-with-profiling-enabled usr/share/foo/basic
 W: binaries-general: debug-package-should-be-named-dbg usr/lib/debug/basic

Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

That doesn't happen on i386 arch

Revision history for this message
Benjamin Drung (bdrung) wrote :

... but on amd64! Let's wait for 2.5.2, which builds on amd64 and which can be synced if the last outstanding change (Debian bug #631872) is fixed too.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.4 KiB)

This bug was fixed in the package lintian - 2.5.1ubuntu1

---------------
lintian (2.5.1ubuntu1) oneiric; urgency=low

  * Merge from Debian unstable (LP: #798513). Remaining changes:
    - Don't warn about a symlinked changelog file in Ubuntu due to CDBS.
    - Add no-upstream-changelog tag to cruft-general-test-suite,
      cruft-general-upstream, cruft-upstream-binaries, fields-no-homepage,
      patch-systems-no-patch-system tests.
    - checks/changelog-file.desc, testset/tags.libbaz: Drop
      debian-changelog-file-is-a-symlink tag.
    - t/tests/changelog-file-symlink, t/tests/init.d-symlink: Drop these tests.
    - checks/init.d: fix LP: #496798 again; upstream only took part of our
      patch and the rest of the fix was dropped in the last merge; per
      maintainer's comments in Debian bug #569492, Ubuntu will need to
      carry this fix for the time being
    - Add wrong-name-for-upstream-changelog tag to changelog-file-extra-upstream
      test.
    - t/tests/fields-multi-arch: Do not test invalid Multi-Arch field,
      because dpkg-deb will already fail.
    - Drop debug-symbols-directly-in-usr-lib-debug from binaries-general.
  * Dropped changes:
    - Prefer libtest-simple-perl (>= 0.93) to perl (>= 5.12).
  * Cherry-pick 5d5a40f from upstream to fix tests broken by 3.8.1 becoming
    ancient earlier this week. (Thanks to Niels Thykier)

lintian (2.5.1) unstable; urgency=low

  * Summary of tag changes:
    + Added:
      - bad-perm-for-file-in-etc-sudoers.d
      - debian-rules-missing-recommended-target
      - dh_pycentral-is-obsolete
      - dh_python-is-obsolete
      - illegal-multi-arch-value
      - non-empty-dependency_libs-in-la-file
    + Removed:
      - uses-dh-python-with-no-pycompat
      - ldconfig-symlink-before-shlib-in-deb

  * checks/binaries:
    + [NT] Applied patch from Paul Wise to detect binaries embeddeding
      glee, glew and libtheora. (Closes: #629288)
    + [NT] Also consider multiarch dirs when looking for public shared
      libraries. (Closes: #630164)
  * checks/debhelper{,.desc}:
    + [NT] Recognise that dh_python and dh_pycentral are now obsolete.
      (Closes: #496902, #541978)
  * checks/changes-file:
    + [NT] Always verify the checksums of changes-files.
  * checks/copyright-file:
    + [NT] Extended current dh_make template checks. Thanks to
      Nelson A. de Oliveira for the patch. (Closes: #598412)
  * checks/fields{,.desc}:
    + [NT] Allow "all" and "any" to appear together in the Architecture
      field of a .dsc file. (Closes: #626775)
    + [NT] Added illegal-multi-arch-value. (Closes: #616493)
  * checks/files:
    + [NT] Fixed two misnamed udeb tags, which lead to an internal
      error if triggered. Thanks to Guillem Jover for the report.
      (Closes: #628754)
    + [NT] Added bad-perm-for-file-in-etc-sudoers.d tag.
      (Closes: #588831)
    + [CW] Do not issue missing-pre-dependency-on-multiarch-support for
      udebs.
    + [NT] Limit missing-pre-dependency-on-multiarch-support to real
      files only. Previously it would also check symlinks.
      (Closes: #629648)
  * checks/java{,.desc}:
    + [NT] Sort the jar files by name, so they are checked i...

Read more...

Changed in lintian (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote : Re: [Bug 798513] Re: Candidate revision lintian 2.5.1ubuntu1

On Mon, Jun 27, 2011 at 05:30:37PM -0000, Benjamin Drung wrote:
> There still one test failing in my amd64 chroot:
>
> Running binaries-general 1.0... building... testing... FAILED:
> --- t/tests/binaries-general/tagsting...2011-06-27 17:20:44.000000000 +0000
> +++ debian/tests/binaries-general/tags.binaries-general 2011-06-27 17:23:17.107068548 +0000
> @@ -1,6 +1,7 @@
> E: binaries-general: arch-dependent-file-in-usr-share usr/share/foo/basic
> E: binaries-general: binary-or-shlib-defines-rpath usr/lib/foo/basiclibrpath /usr/lib
> E: binaries-general: binary-or-shlib-defines-rpath usr/share/foo/basic /usr/local/lib
> +E: binaries-general: debug-symbols-directly-in-usr-lib-debug usr/lib/debug/basic
> E: binaries-general: library-in-debug-or-profile-should-not-be-stripped usr/lib/debug/usr/share/foo/basic
> W: binaries-general: binary-compiled-with-profiling-enabled usr/share/foo/basic
> W: binaries-general: debug-package-should-be-named-dbg usr/lib/debug/basic
---end quoted text---

I beleive the problem indeed was due to the Ubuntu change:

  - Drop debug-symbols-directly-in-usr-lib-debug from binaries-general.

you probably removed it because it caused the following FTBFS in i386
arch:
-E: binaries-general: debug-symbols-directly-in-usr-lib-debug usr/lib/debug/basic

I tried to find out why debug-symbols-directly-in-usr-lib-debug error
isn't triggered, so I created a package for the binaries-general test
(attached), and built it, here are my findings:

* In lintian, the checks/binaries has the following:

    # Detached debugging symbols directly in /usr/lib/debug.
    if ($file =~ m,^usr/lib/debug/[^/]+$,) {
        unless (exists($objdump->{NEEDED})
            || $fileinfo =~ m/statically linked/) {
            tag 'debug-symbols-directly-in-usr-lib-debug', $file;
        }
    }

* After building the 'basic' package, I ran:

$ file debian/basic/usr/lib/debug/basic
debian/basic/usr/lib/debug/basic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

* Please note: "statically linked", although the Makefile builds 'basic'
with:

   gcc -o basic basic.c -pg -Wl,--rpath,/usr/local/lib

So, I decided to check the built 'basic' binary:

$ file basic
basic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

So, the culprit turned to be:

  objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/basic

This 'objcopy' causes the resulting binary to be statically linked.

What I would like you to do is to build the package I have attached, and
check if debian/basic/usr/lib/debug/basic would be statically linked or
not.

--
 ‎أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0xEDDDA1B7
 GPG Fingerprint: 8206 A196 2084 7E6D 0DF8 B176 BC19 6A94 EDDD A1B7

Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

On Mon, Jun 27, 2011 at 05:30:37PM -0000, Benjamin Drung wrote:
> There still one test failing in my amd64 chroot:
>
> Running binaries-general 1.0... building... testing... FAILED:
> --- t/tests/binaries-general/tagsting...2011-06-27 17:20:44.000000000 +0000
> +++ debian/tests/binaries-general/tags.binaries-general 2011-06-27 17:23:17.107068548 +0000
> @@ -1,6 +1,7 @@
> E: binaries-general: arch-dependent-file-in-usr-share usr/share/foo/basic
> E: binaries-general: binary-or-shlib-defines-rpath usr/lib/foo/basiclibrpath /usr/lib
> E: binaries-general: binary-or-shlib-defines-rpath usr/share/foo/basic /usr/local/lib
> +E: binaries-general: debug-symbols-directly-in-usr-lib-debug usr/lib/debug/basic
> E: binaries-general: library-in-debug-or-profile-should-not-be-stripped usr/lib/debug/usr/share/foo/basic
> W: binaries-general: binary-compiled-with-profiling-enabled usr/share/foo/basic
> W: binaries-general: debug-package-should-be-named-dbg usr/lib/debug/basic
---end quoted text---

I beleive the problem indeed was due to the Ubuntu change:

  - Drop debug-symbols-directly-in-usr-lib-debug from binaries-general.

you probably removed it because it caused the following FTBFS in i386
arch:
-E: binaries-general: debug-symbols-directly-in-usr-lib-debug usr/lib/debug/basic

I tried to find out why debug-symbols-directly-in-usr-lib-debug error
isn't triggered, so I created a package for the binaries-general test
(attached), and built it, here are my findings:

* In lintian, the checks/binaries has the following:

    # Detached debugging symbols directly in /usr/lib/debug.
    if ($file =~ m,^usr/lib/debug/[^/]+$,) {
        unless (exists($objdump->{NEEDED})
            || $fileinfo =~ m/statically linked/) {
            tag 'debug-symbols-directly-in-usr-lib-debug', $file;
        }
    }

* After building the 'basic' package, I ran:

$ file debian/basic/usr/lib/debug/basic
debian/basic/usr/lib/debug/basic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

* Please note: "statically linked", although the Makefile builds 'basic'
with:

   gcc -o basic basic.c -pg -Wl,--rpath,/usr/local/lib

So, I decided to check the built 'basic' binary:

$ file basic
basic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

So, the culprit turned to be:

  objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/basic

This 'objcopy' causes the resulting binary to be statically linked.

What I would like you to do is to build the package I have attached, and
check if debian/basic/usr/lib/debug/basic would be statically linked or
not.

Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

I just ran the experiment on a Debian unstable (i386 arch) chroot, and
"objdump --only-keep-debug" did not cause the resulting binary to be
statically linked.

--
 ‎أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0xEDDDA1B7
 GPG Fingerprint: 8206 A196 2084 7E6D 0DF8 B176 BC19 6A94 EDDD A1B7

Revision history for this message
Benjamin Drung (bdrung) wrote :

Is this a bug in objdump or a misuse of lintian?

Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

On Sat, Jul 02, 2011 at 12:16:24PM -0000, Benjamin Drung wrote:
> Is this a bug in objdump or a misuse of lintian?
---end quoted text---

Running "objdump --only-keep-debug" on a dynamically linked binary on
Ubuntu i386 caused the resulting binary to become statically linked
(uses shared libs). While on Debian i386, the resulting binary remained
dynamically linked. I am pretty sure that if you run on Ubuntu amd64,
the resulting binary will also be dynamically linked.

So, it seems a bug in objdump on Ubuntu i386.

--
 ‎أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0xEDDDA1B7
 GPG Fingerprint: 8206 A196 2084 7E6D 0DF8 B176 BC19 6A94 EDDD A1B7

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.