Your message dated Mon, 21 Aug 2006 14:18:55 -0700
with message-id <[EMAIL PROTECTED]>
and subject line Bug#377141: fixed in lintian 1.23.23
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: lintian
Version: 1.23.22
Severity: wishlist
Tags: patch

Hello!

The attached new version-substvars check checks the usage of the
${Source-Version}, ${source:Version}, and ${binary:Version} substvars in
the Depends field, and warns when it causes un-binNMUability of the
package.

Note that one of the tags is marked as error instead of warning. This is
because the maintainer has introduced a regression while moving from
${Source-Version} to the new vars, using source:Version instead of
binary:Version (for example, xulrunner_1.8.0.4-1).

Thanks.

lintian (1.23.23) unstable; urgency=low

  * checks/version-substvars: new check to warn about usage of the
    ${Source-Version}, ${source:Version} and ${binary:Version} substvars
    that results in the package not being safely binNMUable.

-- 
Adeodato Simó                                     dato at net.com.org.es
Debian Developer                                  adeodato at debian.org
 
                            Listening to: Maximilian Hecker - My Friends
# version-substvars -- lintian check script
#
# Copyright (C) 2006 Adeodato Simó
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, you can find it on the World Wide
# Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110-1301, USA.

# SUMMARY
# =======
#
# What breaks
# -----------
# 
# (b1) any -> any (= ${source:Version})          -> use b:V
# (b2) any -> all (= ${Source-Version}) [or b:V] -> use s:V
# (b3) all -> any (= ${either-of-them})          -> use (>= ${s:V}), optionally 
(<< ${s:V}.1~)


package Lintian::version_substvars;
use strict;

use Util;
use Tags;

sub run {

my $pkg = shift;
my $type = shift;

my @control_data = read_dpkg_control("debfiles/control");

shift @control_data; # skip source info entry

foreach (@control_data) {
        my ($pkg1, $pkg1_is_any, $pkg2, $pkg2_is_any, $substvar_strips_binNMU);

    $pkg1 = $_->{'package'};
        $pkg1_is_any = ($_->{'architecture'} ne 'all');

        foreach (split /,/, ($_->{'depends'} || "")) {
                next unless 
m/(\S+)\s*\(\s*=\s*\${((?:Source-|source:|binary:)Version)}/x;

                $pkg2 = $1;
                $substvar_strips_binNMU = ($2 eq 'source:Version');
                $pkg2_is_any = (slurp_entire_file("control/$pkg2/architecture") 
!~ m/^all$/);

                if ($pkg1_is_any) {
                        if ($pkg2_is_any and $substvar_strips_binNMU) {
                                # (b1) any -> any (= ${source:Version})
                                tag "not-binnmuable-any-depends-any", "$pkg1 -> 
$pkg2";
                        } elsif (not $pkg2_is_any and not 
$substvar_strips_binNMU) {
                                # (b2) any -> all (= ${Source-Version}) [or b:V]
                                tag "not-binnmuable-any-depends-all", "$pkg1 -> 
$pkg2";
                        }
                } elsif ($pkg2_is_any) {
                        # (b3) all -> any (= ${either-of-them})
                        tag "not-binnmuable-all-depends-any", "$pkg1 -> $pkg2";
                }

                # TODO (post-Etch?): warn/error about ${Source-Version} being 
deprecated
        }
}

}

1;

# vim: syntax=perl sw=4 ts=4 noet shiftround
Check-Script: version-substvars
Author: Adeodato Simó <[EMAIL PROTECTED]>
Abbrev: v-s
Standards-Version: 3.7.2
Type: source
Unpack-Level: 1
Needs-Info: debfiles, source-control-file
Info: This script checks for correct use of the various *Version
 substvars, e.g. deprecated substvars, or usage that can cause
 un-binNMUability

Tag: not-binnmuable-any-depends-any
Type: error
Info: The package is not safely binNMUable because an arch:any package
 depends on another arch:any package with a (= ${source:Version})
 relationship. Please use (= ${binary:Version}) instead.

Tag: not-binnmuable-any-depends-all
Type: warning
Info: The package is not safely binNMUable because an arch:any package
 depends on an arch:all package with a (= ${Source-Version}) or
 (= ${binary:Version}) relationship. Please use (= ${source:Version})
 instead.

Tag: not-binnmuable-all-depends-any
Type: warning
Info: The package is not safely binNMUable because an arch:all package
 depends on an arch:any package with a strict (= ${Source-Version}), or
 similar, relationship.
 .
 It is not possible for arch:all packages to depend so strictly on
 arch:any packages while having the package binNMUable, so please use
 one of these, whichever is more appropriate:
 .
   Depends: arch_any (>= ${source:Version})
   Depends: arch_any (>= ${source:Version}), arch_any (<< ${source:Version}.1~)

--- End Message ---
--- Begin Message ---
Source: lintian
Source-Version: 1.23.23

We believe that the bug you reported is fixed in the latest version of
lintian, which is due to be installed in the Debian FTP archive:

lintian_1.23.23.dsc
  to pool/main/l/lintian/lintian_1.23.23.dsc
lintian_1.23.23.tar.gz
  to pool/main/l/lintian/lintian_1.23.23.tar.gz
lintian_1.23.23_all.deb
  to pool/main/l/lintian/lintian_1.23.23_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Russ Allbery <[EMAIL PROTECTED]> (supplier of updated lintian package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Mon, 21 Aug 2006 10:28:14 -0700
Source: lintian
Binary: lintian
Architecture: source all
Version: 1.23.23
Distribution: unstable
Urgency: low
Maintainer: Debian Lintian Maintainers <[EMAIL PROTECTED]>
Changed-By: Russ Allbery <[EMAIL PROTECTED]>
Description: 
 lintian    - Debian package checker
Closes: 333311 370720 372748 374167 374314 374899 375318 375638 376030 376109 
376596 377141 377182 377616 377654 378054 378055 379176 379558 379749 380399 
381800 381965 383203
Changes: 
 lintian (1.23.23) unstable; urgency=low
 .
   The "new Python policy" release
 .
   * checks/binaries.desc:
     + [RA] Greatly expand the binary-or-shlib-defines-rpath long
       description based on recent discussion in debian-policy.  Add a
       reference to the wiki page.  (Closes: #378054, #378055)
   * checks/changelog-file{.desc,}:
     + [RA] Diagnose changelog files that are symlinks, using the new way
       the changelog-file collection script processes them.
   * checks/common_data.pm:
     + [RA] Add Python-Version as a known source and binary field.
   * checks/copyright-file:
     + [RA] Catch "<fill in http/ftp site>" as well as the string without
       "http/".  Thanks, Jari Aalto.  (Closes: #374167)
   * checks/deb-format{.desc,}:
     + [RA] Remove deb-created-with-broken-tar; the bug was actually in
       dpkg, and the dpkg in stable has been fixed.  Thanks Jari Aalto and
       Thijs Kinkhorst.  (Closes: #375638, #376030)
   * checks/debconf:
     + [RA] Diagnose a missing template description only once and avoid
       Perl warnings.  Thanks, Thomas Huriaux.  (Closes: #377654)
   * checks/debhelper:
     + [RA] Use the standard control file parser rather than a custom
       parser that can't handle continuation lines.
     + [RA] Warn if dh_python is used without debian/pycompat in non-CDBS
       packages and check for the debhelper version required for Python
       policy.  Thanks, Raphaël Hertzog.  (Closes: #375318)
   * checks/fields{.desc,}:
     + [RA] Don't warn virtual-package-depends-without-real-package-depends
       for Recommends and rewrite the tag description to be more accurate.
       Thanks to Martin F. Krafft for the report.  (Closes: #370720)
     + [RA] ~ is now permitted in version numbers.  (Closes: #381965)
     + [RA] Catch and check dependencies correctly for debconf-updatepo run
       from the clean target.  Thanks, James Westby.  (Closes: #380399)
     + [RA] Warn when encountering an aspell dictionary package that isn't
       arch: all.  Thanks, Piotr Engelking.  (Closes: #374899)
     + [RA] Check the syntax of the new Python-Version field.
     + [RA] Check for missing build dependencies on python-central or
       python-support.  Thanks, Raphaël Hertzog.
     + [RA] Check for old << dependencies on Python in Python packages that
       lack a Python-Version control field, as these are probably packages
       that don't follow the new Python policy.  Thanks, Raphaël Hertzog.
   * checks/files{.desc,}:
     + [RA] Provide a better explanation of why Debian packages shouldn't
       ship files in /srv.  (Closes: #379176)
     + [RA] Warn about files installed into /etc/gconf/schemas.
     + [RA] Warn about files in /usr/lib/site-python.  Thanks, Thomas
       Viehmann and Raphaël Hertzog.  (Closes: #372748)
   * checks/manpages{.desc,}:
     + [RA] Warn about manpage short descriptions of the form "manual page
       for program" (usually generated by help2man).
   * checks/menu:
     + [RA] Ignore trailing whitespace in doc-base files.  Patch from Bas
       Zoetekouw.  (Closes: #379749)
   * checks/nmu{.desc,}:
     + [RA] When checking for an NMU changelog entry, require "NMU" be
       surrounded by word boundaries.
     + [RA] Warn if the changelog incorrectly indicates an NMU.  Thanks to
       George Danchev for the report.
   * checks/scripts{.desc,}:
     + [RA] Except mkstemp from possibly-insecure-handling-of-tmp-files for
       maintainer scripts written in Perl.
     + [RA] Mention [[ ]] explicitly in the possible-bashism long
       description as requiring a Korn shell and make it clearer that the
       primary arbiter of this test is the POSIX shell specification.
       (Closes: #381800 by clarification)
     + [RA] Use the Dep library to check dependencies.  Add php5 to the
       interpreter list and correctly handle the dependencies for
       version-less PHP scripts.  (Closes: #379558)
     + [RA] Check for proper dependencies if gconf-schemas is called in
       maintainer scripts and diagnose calling gconftool(-2) directly.
       Thanks, Josselin Mouette.  (Closes: #333311)
   * checks/version-substvars{.desc,}:
     + [RA] New check from Adeodato Simó for proper use of substvars for
       versioned dependencies between packages built from the same source
       package so that NMUs will work properly.  Also catch use of such a
       substvar for a versioned dependency on a package not built from the
       same source.  (Closes: #377141, #376596)
 .
   * collection/changelog-file:
     + [RA] Be much more careful about changelog files that are symlinks.
       Don't skip over changelog symlinks just because they point to
       non-existant files, mark unsafe symlinks or symlinks to non-existent
       files by creating copyright as a symlink to a non-existent file in
       the lab, and don't create an empty dummy changelog if we couldn't
       find a changelog.  Correctly handle changelog files that are
       symlinks to other files in the same directory.
 .
   * debian/copyright:
     + [RA] Add Subversion repository location.
 .
   * frontend/lintian:
     + [JvW] Give error if there is no "Description" field in .changes, this is
       required by dak
 .
   * frontend/lintian-info:
     + [RA] Add the -t or --tags option that, given a tag name, prints out
       the description.  (Closes: #376109)
 .
   * lib/Tags.pm:
     + [RA] If a tag has been overriden via any mechanism, do not add it to
       any of the statistics (tag, severity, or significance).  Before, the
       override only suppressed a record for the specific statistic the
       override was based on, meaning that classic tag-based overrides
       didn't suppress severity statistics.  Overridden error tags would
       therefore cause lintian to exit with non-zero status.  Thanks,
       Andree Leidenfrost and Martin F. Krafft.  (Closes: #377182, #374314)
 .
   * man/lintian.1:
     + [RA] Better document the --archivedir and --dist options and how
       lintian constructs the path to an archive.  (Closes: #383203)
     + [RA] Document new version-substvars check script.
   * man/lintian-info.1:
     + [RA] Document the new -t or --tags option.
 .
   * reporting/html_reports:
     + [RA] Include the lintian version in HTML page footers.  Thanks,
       Thijs Kinkhorst.  (Closes: #377616)
Files: 
 da8f32e61a502e9799c3c4ff44685904 803 devel optional lintian_1.23.23.dsc
 b180a3d7af42209a6a36be62ccd38f8d 307986 devel optional lintian_1.23.23.tar.gz
 7098ad61fa1d7283e50b8d2c56db9fda 264248 devel optional lintian_1.23.23_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFE6hIS+YXjQAr8dHYRArRZAJ4sOrVbFGtZ/3nXHbiJOf6OIxsaOwCaAp/H
ZbRw4ZGNgjRqlLfKHEGXu4g=
=Fori
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to