Package: dh-make-perl
Version: 0.21
Severity: normal
Tags: patch

The --version option is simply ignored. The variable $version is set up by 
GetOptions but then quickly overridden further down.

I've introduced a new variable $pkgversion to hold the user's requested package
version (which is what the --version option is documented to force) and if
the user doesn't specify --version, it defaults to "$version-1"; the version
extracted from the .tar.gz + "-1".

-- System Information:
Debian Release: testing/unstable
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15.lyta
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages dh-make-perl depends on:
ii  debhelper                     5.0.37.3   helper programs for debian/rules
ii  dpkg-dev                      1.13.21    package building tools for Debian
ii  fakeroot                      1.5.8      Gives a fake root environment
ii  libmodule-depends-perl        0.10-1     identify the dependencies of a dis
ii  libyaml-perl                  0.57-2     YAML Ain't Markup Language (tm)
ii  make                          3.81-2     The GNU version of the "make" util
ii  perl                          5.8.8-4    Larry Wall's Practical Extraction 
ii  perl-modules [libpod-parser-p 5.8.8-4    Core Perl modules

Versions of packages dh-make-perl recommends:
ii  apt-file                      2.0.8      APT package searching utility -- c
pn  libmodule-build-perl          <none>     (no description available)

-- no debconf information
--- /usr/bin/dh-make-perl       2006-03-08 21:21:50.000000000 +0100
+++ dh-make-perl        2006-08-08 15:02:53.000000000 +0200
@@ -156,7 +156,13 @@
 my $datadir = '/usr/share/dh-make-perl';
 my $homedir = "$ENV{HOME}/.dh-make-perl";
 my ($perlname, $maindir, $modulepm, $meta);
-my ($pkgname, $srcname, $version, $desc, $longdesc, $copyright, $author);
+my ($pkgname, $srcname, 
+    # $version is the version from the perl module itself
+    $version, 
+    # $pkgversion is the resulting version of the package: User's
+    # --version=s or "$version-1"
+    $pkgversion, 
+    $desc, $longdesc, $copyright, $author);
 my ($extrasfields, $extrapfields);
 my (@docs, $changelog, @args);
 my ($cpanmodule, $cpanplusmodule, $cpanmirror, $build, $install, $dbflags, 
@@ -173,7 +179,7 @@
        "cpan-mirror=s" => \$cpanmirror,
        "desc=s" => \$desc,
        "arch=s" => \$arch,
-       "version=s" => \$version,
+       "version=s" => \$pkgversion,
        "help" => sub {die "\n"},
        # disabled: see build_package()
        "dbflags=s" => \$dbflags,
@@ -196,6 +202,9 @@
 my $tarball = setup_dir();
 $meta = process_meta("$maindir/META.yml") if (-f "$maindir/META.yml");
 ($pkgname, $version) = extract_basic();
+if (! defined $pkgversion) {
+       $pkgversion = $version . "-1";
+}
 move ($tarball, dirname($tarball) . "/${pkgname}_${version}.orig.tar.gz") if 
($tarball && $tarball =~ /(?:\.tar\.gz|\.tgz)$/);
 my $module_build = (-f "$maindir/Build.PL") ? "Module-Build" : "MakeMaker";
 $bdepends .= ', libmodule-build-perl' if ($module_build eq "Module-Build");
@@ -420,9 +429,9 @@
        $name = $cpanplusmodule if ($name eq '__PACKAGE__' && $cpanplusmodule);
 
        # Get the version
-       if (defined $version) {
+       if (defined $pkgversion) {
            # Explicitly specified
-           $ver = $version;
+           $ver = $pkgversion;
 
        } elsif ($file =~ /([\'\"]?)VERSION\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s) {
            # Regular MakeMaker
@@ -669,7 +678,7 @@
 sub create_changelog {
        my ($file) = shift;
        open(C, ">$file") || die "Cannot open $file: $!\n";
-       print C "$srcname ($version-1) unstable; urgency=low\n";
+       print C "$srcname ($pkgversion) unstable; urgency=low\n";
        print C "\n  * Initial Release.\n\n";
        print C " -- $maintainer  $date\n\n";
        #print C "Local variables:\nmode: debian-changelog\nEnd:\n";
@@ -801,7 +810,7 @@
        $bdependsi = $val if (defined($val=get_override_val($data, $subkey, 
'bdependsi')));     
        $desc = $val if (defined($val=get_override_val($data, $subkey, 
'desc')));
        $longdesc = $val if (defined($val=get_override_val($data, $subkey, 
'longdesc')));
-       $version = $val if (defined($val=get_override_val($data, $subkey, 
'version')));
+       $pkgversion = $val if (defined($val=get_override_val($data, $subkey, 
'version')));
        $arch = $val if (defined($val=get_override_val($data, $subkey, 
'arch')));
        $changelog = $val if (defined($val=get_override_val($data, $subkey, 
'changelog')));
        @docs = split(/\s+/, $val) if (defined($val=get_override_val($data, 
$subkey, 'docs')));
@@ -830,7 +839,7 @@
                die "checkver not a function\n" unless (ref($checkver) eq 
'CODE');
                $subkey = &$checkver($maindir);
        } else {
-               $subkey = $version;
+               $subkey = $pkgversion;
        }
        return ($data, $subkey);
 }

Reply via email to