Debian Bug report logs - #16443
dpkg-genchanges can't handle multi-architectures / and closes

Package: dpkg; Maintainer for dpkg is Dpkg Developers <debian-dpkg@lists.debian.org>; Source for dpkg is src:dpkg (PTS, buildd, popcon).

Reported by: joey@debian.org (Martin Schulze)

Date: Thu, 1 Jan 1998 13:48:03 UTC

Severity: wishlist

Done: Anthony Towns <ajt@master.debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Klee Dienes and Ian Jackson <dpkg-maint@chiark.greenend.org.uk>:
Bug#16443; Package dpkg-dev. (full text, mbox, link).


Acknowledgement sent to joey@debian.org (Martin Schulze):
New bug report received and forwarded. Copy sent to Klee Dienes and Ian Jackson <dpkg-maint@chiark.greenend.org.uk>. (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: joey@debian.org (Martin Schulze)
To: submit@bugs.debian.org
Subject: dpkg-genchanges can't handle multi-architectures / and closes
Date: Thu, 1 Jan 98 14:57 MET
Package: dpkg-dev
Version: 1.4.0.19
Severity: wishlist

As we get closer to a real multi-architecture distribution it get's
more and more important to be able to handle multi-architecture
uploads.  Unfortunately dpkg-genchanges is only able to create a
.changes file for the architecture it is run on.  If there are .deb
files for other architectures they're not included correctly.

I've looked at dpkg-genchanges and fixed this.  If you want to include
some more .deb files for other architectures just add them to
debian/files as noted in the manpage.  They're automatically added to
the list of files and their architecture will be added to the
Architecture: field.

By the time I was working on this I also added support for closes
fields in the debian/changelog file.  This was proposed on
debian-policy and I hope it will be included into the dpkg package.

Here is the patch:

--- dpkg-genchanges.orig	Thu Jan  1 14:48:42 1998
+++ dpkg-genchanges	Thu Jan  1 14:48:45 1998
@@ -102,10 +102,16 @@
 open(FL,"< $fileslistfile") || &syserr("cannot read files list file");
 while(<FL>) {
     if (m/^(([-+.0-9a-z]+)_([^_]+)_(\w+)\.deb) (\S+) (\S+)$/) {
-        defined($p2f{$2}) &&
-            &warn("duplicate files list entry for package $2 (line $.)");
+        if (defined($p2f{$2})) {
+	    if ($p2f{$2} !~ /$1/) {
+		$p2f{$2}= $p2f{$2} . " " . $1;
+	    } else {
+		&warn("duplicate files list entry for package $2 (line $.)");
+	    }
+	} else {
+	    $p2f{$2}= $1;
+	}
 	$f2p{$1}= $2;
-        $p2f{$2}= $1;
         $p2ver{$2}= $3;
         defined($f2sec{$1}) &&
             &warn("duplicate files list entry for file $1 (line $.)");
@@ -142,19 +148,20 @@
 	    }
 	} else {
 	    $p2arch{$p}=$a;
-	    $f=$p2f{$p};
 	    if (m/^Description$/) {
 		$v=$` if $v =~ m/\n/;
 		push(@descriptions,sprintf("%-10s - %-.65s",$p,$v));
 	    } elsif (m/^Section$/) {
-		$f2seccf{$f}= $v;
+		foreach $f (split(/ /, $p2f{$p})) { $f2seccf{$f}= $v; }
 	    } elsif (m/^Priority$/) {
-		$f2pricf{$f}= $v;
+		foreach $f (split(/ /, $p2f{$p})) { $f2pricf{$f}= $v; }
 	    } elsif (s/^X[BS]*C[BS]*-//i) {
 		$f{$_}= $v;
 	    } elsif (m/^Architecture$/) {
-		$v= $arch if $v eq 'any';
-		push(@archvalues,$v) unless $archadded{$v}++;
+		foreach $f (split(/ /, $p2f{$p})) {
+		    $f =~ /.*_(\S+)\.deb/;
+		    push(@archvalues,$1) unless $archadded{$1}++;
+		}
 	    } elsif (m/^(Package|Essential|Pre-Depends|Depends|Provides)$/ ||
 		     m/^(Recommends|Suggests|Optional|Conflicts|Replaces)$/ ||
 		     m/^X[CS]+-/i) {
@@ -166,7 +173,7 @@
 #print STDERR "L key >$_< value >$v<\n";
         if (m/^Source$/) {
             &setsourcepackage;
-        } elsif (m/^(Version|Maintainer|Changes|Urgency|Distribution|Date)$/) {
+        } elsif (m/^(Version|Maintainer|Changes|Urgency|Distribution|Date|Closes)$/) {
             $f{$_}= $v;
         } elsif (s/^X[BS]*C[BS]*-//i) {
             $f{$_}= $v;
@@ -195,7 +202,8 @@
 }
 
 for $p (keys %p2f) {
-    $f= $p2f{$p};
+    $f2= $p2f{$p};
+  foreach $f (split(/ /, $f2)) {
     $sec= $f2seccf{$f}; $sec= $sourcedefault{'Section'} if !length($sec);
     if (!length($sec)) { $sec='-'; &warn("missing Section for binary package $p; using '-'"); }
     $sec eq $f2sec{$f} || &error("package $p has section $sec in control file".
@@ -204,6 +212,7 @@
     if (!length($pri)) { $pri='-'; &warn("missing Priority for binary package $p; using '-'"); }
     $pri eq $f2pri{$f} || &error("package $p has priority $pri in control".
                                  " file but $f2pri{$f} in files list");
+  }
 }
 
 if (!$binaryonly) {
--- parsechangelog/debian.orig	Thu Jan  1 14:48:21 1998
+++ parsechangelog/debian	Thu Jan  1 14:48:12 1998
@@ -92,6 +92,8 @@
                     (($newurgn > $oldurgn ? $newurg : $oldurg).
                      $oldcomment.
                      $newcomment);
+            } elsif ($k eq 'Closes') {
+		$f{'Closes'} = $v;
             } elsif (defined($mapkv{$k})) {
                 $f{$mapkv{$k}}= $v;
             } elsif ($k =~ m/^X[BCS]+-/i) {

Regards,

	Joey

-- 
  / Martin Schulze  *  joey@infodrom.north.de  *  26129 Oldenburg /
 /                            Erfahrung ist eine nützliche Sache /
/ Leider macht man sie immer erst kurz nachdem man sie brauchte /


Information forwarded to debian-bugs-dist@lists.debian.org, Klee Dienes and Ian Jackson <dpkg-maint@chiark.greenend.org.uk>:
Bug#16443; Package dpkg-dev. (full text, mbox, link).


Acknowledgement sent to joey@debian.org (Martin Schulze):
Extra info received and forwarded to list. Copy sent to Klee Dienes and Ian Jackson <dpkg-maint@chiark.greenend.org.uk>. (full text, mbox, link).


Message #10 received at 16443@bugs.debian.org (full text, mbox, reply):

From: joey@debian.org (Martin Schulze)
To: 16443@bugs.debian.org
Subject: Addition
Date: Sat, 3 Jan 98 15:21 MET
Howdy,

I noticed that dpkg-gencontrol and dpkg-source get slightly confused
by the additional Closes: fields.  These little patches fix that:

Regards,

	Joey

--- dpkg-gencontrol.orig	Sat Jan  3 15:16:12 1998
+++ dpkg-gencontrol	Sat Jan  3 15:17:22 1998
@@ -149,7 +149,7 @@
         } elsif (m/^Version$/) {
             $sourceversion= $v;
             $f{$_}= $v unless length($forceversion);
-        } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date)$/) {
+        } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date|Closes)$/) {
         } elsif (s/^X[CS]*B[CS]*-//i) {
             $f{$_}= $v;
         } elsif (!m/^X[CS]+-/i) {
--- dpkg-source.orig	Sat Jan  3 15:11:13 1998
+++ dpkg-source	Sat Jan  3 15:11:01 1998
@@ -159,7 +159,7 @@
                 $f{$_}= $v;
             } elsif (s/^X[BS]*C[BS]*-//i) {
                 $f{$_}= $v;
-            } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date)$/ ||
+            } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date|Closes)$/ ||
                      m/^X[BS]+-/i) {
             } else {
                 &unknown("parsed version of changelog");


-- 
  / Martin Schulze  *  joey@infodrom.north.de  *  26129 Oldenburg /
 /                            Erfahrung ist eine nützliche Sache /
/ Leider macht man sie immer erst kurz nachdem man sie brauchte /


Bug reassigned from package `dpkg-dev' to `dpkg-iwj'. Request was from Ben Collins <bcollins@debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg-iwj' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug closed, ack sent to submitter - they'd better know why ! Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Fri Apr 26 18:31:14 2024; Machine Name: buxtehude

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.