]> err.no Git - dpkg/commitdiff
Reorder a bit fields in output files.
authorGuillem Jover <guillem@debian.org>
Wed, 11 Apr 2007 01:17:35 +0000 (01:17 +0000)
committerGuillem Jover <guillem@debian.org>
Wed, 11 Apr 2007 01:17:35 +0000 (01:17 +0000)
ChangeLog
debian/changelog
scripts/changelog/debian.pl
scripts/controllib.pl
scripts/dpkg-genchanges.pl
scripts/dpkg-gencontrol.pl
scripts/dpkg-scanpackages.pl
scripts/dpkg-source.pl

index 298352c8d891e2ef2d0acbbbdd71c2e9ff304fab..43ed64aa9924d9d9849d97b8254275cce65b55a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2007-04-11  Guillem Jover  <guillem@debian.org>
+
+       * scripts/controllib.pl (@pkg_dep_fields): Reorder fields by
+       importance.
+       (set_field_importance): New function.
+       (sort_field_by_importance): Likewise.
+       (outputclose): Use sort_field_by_importance instead of direct sorting.
+       * scripts/changelog/debian.pl (%fieldimps): Do not set directly, use
+       set_field_importance instead.
+       * scripts/dpkg-genchanges.pl: Likewise.
+       * scripts/dpkg-gencontrol.pl: Likewise.
+       * scripts/dpkg-source.pl: Likewise.
+       * scripts/changelog/debian.pl (@changelog_fields): New variable.
+       * scripts/dpkg-genchanges.pl (@changes_fields): New variable.
+       * scripts/dpkg-gencontrol.pl (@control_fields): New variable.
+       * scripts/dpkg-source.pl (@dsc_fields): New variable.
+       * scripts/dpkg-scanpackages.pl: Require 'controllib.pl'.
+       (@pkg_dep_fields): Declare as 'our'.
+       (@fieldpri): Reorder fields, use '@pkg_dep_fields' instead of
+       hardcoded list.
+
 2007-04-05  Guillem Jover  <guillem@debian.org>
 
        * scripts/controllib.pl (get_host_arch): New function.
index 645ed733ece2372138bae8ce45c26d03e2123672..a5882ab0eab62a58cf1bcdf6a45be6885afce566 100644 (file)
@@ -61,6 +61,7 @@ dpkg (1.14.0) UNRELEASED; urgency=low
   * Fix typo in German dpkg man page. Closes: #416167
     Thanks to Martin Weis.
   * Properly sort Uploaders field in generated .dsc files.
+  * Reorder a bit fields in output files.
 
   [ Updated dpkg translations ]
   * Romanian (Eddy PetriČ™or).
index 3443a3a4aee950a4828d6cdcf79edb4654166628..ea343c9cb0af2ebf85fba1caee0b171e26ed6c8a 100755 (executable)
@@ -21,6 +21,10 @@ $progname= "parsechangelog/$progname";
 
 $since='';
 
+my @changelog_fields = qw(Source Version Distribution Urgency Maintainer
+                          Date Closes Changes));
+
+
 sub version {
     printf _g("Debian %s version %s.\n"), $progname, $version;
 
@@ -60,9 +64,6 @@ while (@ARGV) {
 }
 
 %mapkv=(); # for future use
-$i=100;grep($fieldimps{$_}=$i--,
-          qw(Source Version Distribution Urgency Maintainer Date Closes
-            Changes));
 $i=1;grep($urgencies{$_}=$i++,
           qw(low medium high critical emergency));
 
@@ -162,6 +163,7 @@ while ($f{'Changes'} =~ /closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i
 }
 $f{'Closes'} = join(' ',sort { $a <=> $b} @closes);
 
+set_field_importance(@changelog_fields);
 outputclose();
 
 sub clerror
index fd68a5cfe043cf3f12656bab2e0add987a0a3176..c5ce7c797565a0d1189fda66814827ab16dc8ba5 100755 (executable)
@@ -20,8 +20,8 @@ textdomain("dpkg-dev");
 
 $parsechangelog= 'dpkg-parsechangelog';
 
-@pkg_dep_fields = qw(Replaces Provides Depends Pre-Depends Recommends Suggests
-                     Conflicts Enhances);
+@pkg_dep_fields = qw(Pre-Depends Depends Recommends Suggests Enhances
+                     Conflicts Replaces Provides);
 @src_dep_fields = qw(Build-Depends Build-Depends-Indep
                      Build-Conflicts Build-Conflicts-Indep);
 
@@ -170,6 +170,29 @@ sub substvars {
     return $v;
 }
 
+sub set_field_importance(@)
+{
+    my @fields = @_;
+    my $i = 1;
+
+    grep($fieldimps{$_} = $i++, @fields);
+}
+
+sub sort_field_by_importance($$)
+{
+    my ($a, $b) = @_;
+
+    if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
+       $fieldimps{$a} <=> $fieldimps{$b};
+    } elsif (defined($fieldimps{$a})) {
+       -1;
+    } elsif (defined($fieldimps{$b})) {
+       1;
+    } else {
+       $a cmp $b;
+    }
+}
+
 sub outputclose {
     my ($varlistfile) = @_;
 
@@ -177,7 +200,7 @@ sub outputclose {
 
     &parsesubstvars($varlistfile) if (defined($varlistfile));
 
-    for $f (sort { $fieldimps{$b} <=> $fieldimps{$a} } keys %f) {
+    for $f (sort sort_field_by_importance keys %f) {
         $v= $f{$f};
        if (defined($varlistfile)) {
            $v= &substvars($v);
index 32f3abc4de286708ca85fc3c63ccf59fa4eca127..13ddf0c5247c1163161f7bbfb9bac25446ca4f7c 100755 (executable)
@@ -31,6 +31,11 @@ require 'controllib.pl';
 require 'dpkg-gettext.pl';
 textdomain("dpkg-dev");
 
+my @changes_fields = qw(Format Date Source Binary Architecture Version
+                        Distribution Urgency Maintainer Changed-By
+                        Description Closes Changes Files);
+
+
 sub version {
     printf _g("Debian %s version %s.\n"), $progname, $version;
 
@@ -74,10 +79,6 @@ Options:
 "), $progname;
 }
 
-$i=100;grep($fieldimps{$_}=$i--,
-          qw(Format Date Source Binary Architecture Version
-             Distribution Urgency Maintainer Changed-By Description 
-            Closes Changes Files));
 
 while (@ARGV) {
     $_=shift(@ARGV);
@@ -384,5 +385,6 @@ for $f (qw(Urgency)) {
 for $f (keys %override) { $f{&capit($f)}= $override{$f}; }
 for $f (keys %remove) { delete $f{&capit($f)}; }
 
+set_field_importance(@changes_fields);
 outputclose();
 
index 14be678214223f992e10b287e8f08ff049d61a6c..0ed7946fd4b4e6ccbab029fa13480ad8e8005905 100755 (executable)
@@ -18,6 +18,11 @@ require 'controllib.pl';
 require 'dpkg-gettext.pl';
 textdomain("dpkg-dev");
 
+my @control_fields = (qw(Package Source Version Architecture Essential Origin
+                         Bugs Maintainer Installed-Size), @pkg_dep_fields,
+                      qw(Section Priority Description));
+
+
 sub version {
     printf _g("Debian %s version %s.\n"), $progname, $version;
 
@@ -55,12 +60,6 @@ Options:
 "), $progname;
 }
 
-$i=100;grep($fieldimps{$_}=$i--,
-          qw(Package Version Section Priority Architecture Essential
-             Pre-Depends Depends Recommends Suggests Enhances Optional 
-            Conflicts Replaces Provides Installed-Size Origin Maintainer
-            Bugs Source Description Build-Depends Build-Depends-Indep
-            Build-Conflicts Build-Conflicts-Indep ));
 
 while (@ARGV) {
     $_=shift(@ARGV);
@@ -294,6 +293,7 @@ if (!$stdout) {
     binmode(STDOUT);
 }
 
+set_field_importance(@control_fields);
 outputclose($varlistfile);
 
 if (!$stdout) {
index 3dbb12b83fb6b3112c15e9ab7d3db799f4daef7d..5be21b2aae3fb663b1c83ab1140ef45386c102cc 100755 (executable)
@@ -12,9 +12,12 @@ my $dpkglibdir= "."; # This line modified by Makefile
 ($0) = $0 =~ m:.*/(.+):;
 
 push(@INC,$dpkglibdir);
+require 'controllib.pl';
 require 'dpkg-gettext.pl';
 textdomain("dpkg-dev");
 
+our @pkg_dep_fields;
+
 my (@samemaint, @changedmaint);
 my %packages;
 my %overridden;
@@ -25,30 +28,9 @@ my %kmap= (optional         => 'suggests',
           package_revision => 'revision',
          );
 
-my @fieldpri= ('Package',
-              'Source',
-              'Version',
-              'Priority',
-              'Section',
-              'Essential',
-              'Maintainer',
-              'Pre-Depends',
-              'Depends',
-              'Recommends',
-              'Suggests',
-              'Conflicts',
-              'Provides',
-              'Replaces',
-              'Enhances',
-              'Architecture',
-              'Filename',
-              'Size',
-              'Installed-Size',
-              'MD5sum',
-              'Description',
-              'Origin',
-              'Bugs'
-             );
+my @fieldpri = (qw(Package Source Version Architecture Essential Origin Bugs
+                   Maintainer Installed-Size), @pkg_dep_fields, qw(Filename
+                   Size MD5sum Section Priority Description));
 
 # This maps the fields into the proper case
 my %field_case;
index 551de9bf2a7cedbea88759d096bfee917217f2e6..369c72f60afcb66372f2d23c8b07c910a5759c28 100755 (executable)
@@ -45,6 +45,10 @@ require 'controllib.pl';
 require 'dpkg-gettext.pl';
 textdomain("dpkg-dev");
 
+my @dsc_fields = (qw(Format Source Binary Architecture Version Origin
+                     Maintainer Uploaders Standards-Version), @src_dep_fields);
+
+
 # Make sure patch doesn't get any funny ideas
 delete $ENV{'POSIXLY_CORRECT'};
 
@@ -120,12 +124,6 @@ sub handleformat {
 }
 
 
-$i = 100;
-grep ($fieldimps {$_} = $i--,
-      qw(Format Source Version Binary Origin Maintainer Uploaders Architecture
-      Standards-Version Build-Depends Build-Depends-Indep Build-Conflicts
-      Build-Conflicts-Indep));
-
 while (@ARGV && $ARGV[0] =~ m/^-/) {
     $_=shift(@ARGV);
     if (m/^-b$/) {
@@ -582,6 +580,7 @@ if ($opmode eq 'build') {
         || &syserr(_g("write building message"));
     open(STDOUT,"> $basenamerev.dsc") || &syserr(sprintf(_g("create %s"), "$basenamerev.dsc"));
 
+    set_field_importance(@dsc_fields);
     outputclose($varlistfile);
 
     if ($ur) {