The branch, master has been updated
via 5e9016f75035abe78dd0909e5e069aed289e9b15 (commit)
via 637f5a032fc5c20bf3159b3dc6d332b19a270e66 (commit)
from f8333ae45213125436db763e635df8d31e08cae8 (commit)
- Shortlog ------------------------------------------------------------
5e9016f Add support of Dm-Upload-Allowed field
637f5a0 Define list of valid debian/control fields in Dpkg::Fields
Summary of changes:
ChangeLog | 14 ++++++++++++++
debian/changelog | 1 +
scripts/Dpkg/Fields.pm | 27 +++++++++++++++++++++++++--
scripts/dpkg-genchanges.pl | 34 ++++++++++++++++------------------
scripts/dpkg-gencontrol.pl | 35 +++++++++++++++--------------------
scripts/dpkg-source.pl | 38 +++++++++++++++++++-------------------
6 files changed, 90 insertions(+), 59 deletions(-)
-----------------------------------------------------------------------
Details of changes:
commit 5e9016f75035abe78dd0909e5e069aed289e9b15
Author: Raphael Hertzog <[EMAIL PROTECTED]>
Date: Sat Jan 12 00:21:17 2008 +0100
Add support of Dm-Upload-Allowed field
* scripts/Dpkg/Fields.pm, scripts/dpkg-source.pl: Add support of
Dm-Upload-Allowed field. It automatically ends up in the dsc.
diff --git a/ChangeLog b/ChangeLog
index f281082..ba126bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2008-01-12 Raphael hertzog <[EMAIL PROTECTED]>
+ * scripts/Dpkg/Fields.pm, scripts/dpkg-source.pl: Add support of
+ Dm-Upload-Allowed field. It automatically ends up in the dsc.
+
+2008-01-12 Raphael hertzog <[EMAIL PROTECTED]>
+
* scripts/Dpkg/Fields.pm: Define variables containing
authoritative list of fields for debian/control (one for source
stanza, one for package stanza).
diff --git a/debian/changelog b/debian/changelog
index cd63690..bbdd551 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -30,6 +30,7 @@ dpkg (1.14.16) UNRELEASED; urgency=low
* Also force version in ${binary:Version} if dpkg-gencontrol -v<version>
is used. That way we're consistent with the definition of that variable
in deb-substvars(5). Closes: #433477
+ * Add support of Dm-Upload-Allowed field. Closes: #453400
[ Updated manpages translations ]
* Fix typo in French. Closes: #460021
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
index 06500b4..809ca66 100644
--- a/scripts/Dpkg/Fields.pm
+++ b/scripts/Dpkg/Fields.pm
@@ -16,7 +16,7 @@ our %EXPORT_TAGS = ('list' => [qw(%control_src_fields
%control_pkg_fields
# Some variables (list of fields)
our %control_src_fields;
our %control_pkg_fields;
-$control_src_fields{$_} = 1 foreach (qw(Bugs
+$control_src_fields{$_} = 1 foreach (qw(Bugs Dm-Upload-Allowed
Homepage Origin Maintainer Priority Section Source Standards-Version
Uploaders Vcs-Browser Vcs-Arch Vcs-Bzr Vcs-Cvs Vcs-Darcs Vcs-Git Vcs-Hg
Vcs-Mtn Vcs-Svn));
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index 46056e7..6a712d9 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -117,9 +117,9 @@ use Cwd;
textdomain("dpkg-dev");
my @dsc_fields = (qw(Format Source Binary Architecture Version Origin
- Maintainer Uploaders Homepage Standards-Version
- Vcs-Browser Vcs-Arch Vcs-Bzr Vcs-Cvs Vcs-Darcs
- Vcs-Git Vcs-Hg Vcs-Mtn Vcs-Svn),
+ Maintainer Uploaders Dm-Upload-Allowed Homepage
+ Standards-Version Vcs-Browser Vcs-Arch Vcs-Bzr
+ Vcs-Cvs Vcs-Darcs Vcs-Git Vcs-Hg Vcs-Mtn Vcs-Svn),
@src_dep_fields);
@@ -309,6 +309,7 @@ if ($opmode eq 'build') {
if (m/^Source$/i) {
set_source_package($v);
} elsif (m/^(Standards-Version|Origin|Maintainer|Homepage)$/i ||
+ m/^Dm-Upload-Allowed$/i ||
m/^Vcs-(Browser|Arch|Bzr|Cvs|Darcs|Git|Hg|Mtn|Svn)$/i) {
$fields->{$_} = $v;
} elsif (m/^Uploaders$/i) {
commit 637f5a032fc5c20bf3159b3dc6d332b19a270e66
Author: Raphael Hertzog <[EMAIL PROTECTED]>
Date: Sat Jan 12 00:13:15 2008 +0100
Define list of valid debian/control fields in Dpkg::Fields
* scripts/Dpkg/Fields.pm: Define variables containing
authoritative list of fields for debian/control (one for source
stanza, one for package stanza).
* scripts/dpkg-genchanges.pl, scripts/dpkg-gencontrol.pl,
scripts/dpkg-source.pl: Use the new variables to properly ignore
valid fields. Some related cleanup.
diff --git a/ChangeLog b/ChangeLog
index e1aa4bb..f281082 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-01-12 Raphael hertzog <[EMAIL PROTECTED]>
+
+ * scripts/Dpkg/Fields.pm: Define variables containing
+ authoritative list of fields for debian/control (one for source
+ stanza, one for package stanza).
+ * scripts/dpkg-genchanges.pl, scripts/dpkg-gencontrol.pl,
+ scripts/dpkg-source.pl: Use the new variables to properly ignore
+ valid fields. Some related cleanup.
+
2008-01-11 Raphael Hertzog <[EMAIL PROTECTED]>
* scripts/dpkg-gencontrol.pl: Also force version in ${binary:Version}
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
index 97d6c46..06500b4 100644
--- a/scripts/Dpkg/Fields.pm
+++ b/scripts/Dpkg/Fields.pm
@@ -4,9 +4,32 @@ use strict;
use warnings;
use Exporter;
-our @ISA = qw(Exporter);
-our @EXPORT_OK = qw(capit set_field_importance sort_field_by_importance);
+use Dpkg::Deps qw(@src_dep_fields @pkg_dep_fields);
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(capit set_field_importance sort_field_by_importance
+ %control_src_fields %control_pkg_fields $control_src_field_regex
+ $control_pkg_field_regex);
+our %EXPORT_TAGS = ('list' => [qw(%control_src_fields %control_pkg_fields
+ $control_src_field_regex $control_pkg_field_regex)]);
+
+# Some variables (list of fields)
+our %control_src_fields;
+our %control_pkg_fields;
+$control_src_fields{$_} = 1 foreach (qw(Bugs
+ Homepage Origin Maintainer Priority Section Source Standards-Version
+ Uploaders Vcs-Browser Vcs-Arch Vcs-Bzr Vcs-Cvs Vcs-Darcs Vcs-Git Vcs-Hg
+ Vcs-Mtn Vcs-Svn));
+$control_src_fields{$_} = 1 foreach (@src_dep_fields);
+$control_pkg_fields{$_} = 1 foreach (qw(Architecture Bugs Description Essential
+ Homepage Installer-Menu-Item Kernel-Version Package Package-Type
+ Priority Section Subarchitecture Tag));
+$control_pkg_fields{$_} = 1 foreach (@pkg_dep_fields);
+
+our $control_src_field_regex = "(?:" . join("|", keys %control_src_fields) .
")";
+our $control_pkg_field_regex = "(?:" . join("|", keys %control_pkg_fields) .
")";
+
+# Some functions
sub capit {
my @pieces = map { ucfirst(lc) } split /-/, $_[0];
return join '-', @pieces;
diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl
index 625f3c7..20e546b 100755
--- a/scripts/dpkg-genchanges.pl
+++ b/scripts/dpkg-genchanges.pl
@@ -11,7 +11,7 @@ use Dpkg::Gettext;
use Dpkg::ErrorHandling qw(warning error failure unknown internerr syserr
subprocerr usageerr);
use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
-use Dpkg::Fields qw(capit set_field_importance sort_field_by_importance);
+use Dpkg::Fields qw(:list capit set_field_importance sort_field_by_importance);
use Dpkg::Compression;
use Dpkg::Control;
use Dpkg::Cdata;
@@ -230,16 +230,17 @@ foreach $_ (keys %{$src_fields}) {
my $v = $src_fields->{$_};
if (m/^Source$/) {
set_source_package($v);
+ } elsif (m/^Section$|^Priority$/i) {
+ $sourcedefault{$_} = $v;
+ } elsif (m/^Maintainer$/i) {
+ $fields->{$_} = $v;
+ } elsif (s/^X[BS]*C[BS]*-//i) { # Include XC-* fields
+ $fields->{$_} = $v;
+ } elsif (m/^X[BS]+-/i || m/^$control_src_field_regex$/i) {
+ # Silently ignore valid fields
+ } else {
+ unknown(_g('general section of control info file'));
}
- elsif (m/^Section$|^Priority$/i) { $sourcedefault{$_}= $v; }
- elsif (m/^Maintainer$/i) { $fields->{$_} = $v; }
- elsif (s/^X[BS]*C[BS]*-//i) { $fields->{$_} = $v; }
- elsif (m/^X[BS]+-/i ||
- m/^Build-(Depends|Conflicts)(-Indep)?$/i ||
- m/^(Standards-Version|Uploaders|Homepage|Origin|Bugs)$/i ||
- m/^Vcs-(Browser|Arch|Bzr|Cvs|Darcs|Git|Hg|Mtn|Svn)$/i) {
- }
- else { &unknown(_g('general section of control info file')); }
}
# Scan control info of all binary packages
@@ -275,7 +276,7 @@ foreach my $pkg ($control->get_packages()) {
$f2seccf{$_} = $v foreach (@f);
} elsif (m/^Priority$/) {
$f2pricf{$_} = $v foreach (@f);
- } elsif (s/^X[BS]*C[BS]*-//i) {
+ } elsif (s/^X[BS]*C[BS]*-//i) { # Include XC-* fields
$fields->{$_} = $v;
} elsif (m/^Architecture$/) {
if (not is_sourceonly) {
@@ -289,13 +290,10 @@ foreach my $pkg ($control->get_packages()) {
$v = '';
}
push(@archvalues,$v) unless !$v || $archadded{$v}++;
- } elsif (m/^(Package|Package-Type|Kernel-Version|Essential)$/ ||
- m/^(Homepage|Tag|Installer-Menu-Item|Subarchitecture)$/i ||
- m/^(Pre-Depends|Depends|Recommends|Suggests|Provides)$/ ||
- m/^(Enhances|Conflicts|Breaks|Replaces)$/ ||
- m/^X[BS]+-/i) {
+ } elsif (m/^$control_pkg_field_regex$/ || m/^X[BS]+-/i) {
+ # Silently ignore valid fields
} else {
- &unknown(_g("package's section of control info file"));
+ unknown(_g("package's section of control info file"));
}
}
}
@@ -313,7 +311,7 @@ foreach $_ (keys %{$changelog}) {
} elsif (s/^X[BS]*C[BS]*-//i) {
$fields->{$_} = $v;
} elsif (!m/^X[BS]+-/i) {
- &unknown(_g("parsed version of changelog"));
+ unknown(_g("parsed version of changelog"));
}
}
diff --git a/scripts/dpkg-gencontrol.pl b/scripts/dpkg-gencontrol.pl
index 3321c53..beeed4b 100755
--- a/scripts/dpkg-gencontrol.pl
+++ b/scripts/dpkg-gencontrol.pl
@@ -11,7 +11,7 @@ use Dpkg::ErrorHandling qw(warning error failure unknown
internerr syserr
subprocerr usageerr);
use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
use Dpkg::Deps qw(@pkg_dep_fields %dep_field_type);
-use Dpkg::Fields qw(capit set_field_importance);
+use Dpkg::Fields qw(:list capit set_field_importance);
use Dpkg::Control;
use Dpkg::Substvars;
use Dpkg::Vars;
@@ -147,30 +147,23 @@ my %pkg_dep_fields = map { $_ => 1 } @pkg_dep_fields;
my $src_fields = $control->get_source();
foreach $_ (keys %{$src_fields}) {
my $v = $src_fields->{$_};
- if (m/^(Origin|Bugs|Maintainer)$/) {
- $fields->{$_} = $v;
- } elsif (m/^(Section|Priority|Homepage)$/) {
+ if (m/^(Origin|Bugs|Maintainer|Section|Priority|Homepage)$/) {
$fields->{$_} = $v;
} elsif (m/^Source$/) {
set_source_package($v);
+ } elsif (s/^X[CS]*B[CS]*-//i) { # Include XB-* fields
+ $fields->{$_} = $v;
+ } elsif (m/^X[CS]+-/i || m/^$control_src_field_regex$/i) {
+ # Silently ignore valid fields
+ } else {
+ unknown(_g('general section of control info file'));
}
- elsif (s/^X[CS]*B[CS]*-//i) { $fields->{$_} = $v; }
- elsif (m/^X[CS]+-/i ||
- m/^Build-(Depends|Conflicts)(-Indep)?$/i ||
- m/^(Standards-Version|Uploaders)$/i ||
- m/^Vcs-(Browser|Arch|Bzr|Cvs|Darcs|Git|Hg|Mtn|Svn)$/i) {
- }
- else { &unknown(_g('general section of control info file')); }
}
# Scan binary package
foreach $_ (keys %{$pkg}) {
my $v = $pkg->{$_};
- if (m/^(Package|Package-Type|Description|Homepage|Tag|Essential)$/ ||
- m/^(Section$|Priority)$/ ||
- m/^(Subarchitecture|Kernel-Version|Installer-Menu-Item)$/) {
- $fields->{$_} = $v;
- } elsif (exists($pkg_dep_fields{$_})) {
+ if (exists($pkg_dep_fields{$_})) {
# Delay the parsing until later
} elsif (m/^Architecture$/) {
my $host_arch = get_host_arch();
@@ -191,10 +184,12 @@ foreach $_ (keys %{$pkg}) {
$host_arch, "@archlist");
$fields->{$_} = $host_arch;
}
- } elsif (s/^X[CS]*B[CS]*-//i) {
- $fields->{$_}= $v;
+ } elsif (m/^$control_pkg_field_regex$/) {
+ $fields->{$_} = $v;
+ } elsif (s/^X[CS]*B[CS]*-//i) { # Include XB-* fields
+ $fields->{$_} = $v;
} elsif (!m/^X[CS]+-/i) {
- &unknown(_g("package's section of control info file"));
+ unknown(_g("package's section of control info file"));
}
}
@@ -211,7 +206,7 @@ foreach $_ (keys %{$changelog}) {
} elsif (s/^X[CS]*B[CS]*-//i) {
$fields->{$_} = $v;
} elsif (!m/^X[CS]+-/i) {
- &unknown(_g("parsed version of changelog"));
+ unknown(_g("parsed version of changelog"));
}
}
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index f8445a1..46056e7 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -10,7 +10,7 @@ use Dpkg::ErrorHandling qw(warning warnerror error failure
unknown
$warnable_error $quiet_warnings);
use Dpkg::Arch qw(debarch_eq);
use Dpkg::Deps qw(@src_dep_fields %dep_field_type);
-use Dpkg::Fields qw(capit set_field_importance);
+use Dpkg::Fields qw(:list capit set_field_importance);
use Dpkg::Compression;
use Dpkg::Cdata;
use Dpkg::Control;
@@ -311,9 +311,9 @@ if ($opmode eq 'build') {
} elsif (m/^(Standards-Version|Origin|Maintainer|Homepage)$/i ||
m/^Vcs-(Browser|Arch|Bzr|Cvs|Darcs|Git|Hg|Mtn|Svn)$/i) {
$fields->{$_} = $v;
- }
- elsif (m/^Uploaders$/i) { ($fields->{$_} = $v) =~ s/[\r\n]//g; }
- elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
+ } elsif (m/^Uploaders$/i) {
+ ($fields->{$_} = $v) =~ s/[\r\n]//g; # Merge in a single-line
+ } elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
my $dep;
my $type = $dep_field_type{capit($_)};
$dep = Dpkg::Deps::parse($v, union => $type eq 'union');
@@ -322,10 +322,13 @@ if ($opmode eq 'build') {
$dep->simplify_deps($facts);
$dep->sort();
$fields->{$_} = $dep->dump();
+ } elsif (s/^X[BC]*S[BC]*-//i) { # Include XS-* fields
+ $fields->{$_} = $v;
+ } elsif (m/^$control_src_field_regex$/i || m/^X[BC]+-/i) {
+ # Silently ignore valid fields
+ } else {
+ unknown(_g('general section of control info file'));
}
- elsif (s/^X[BC]*S[BC]*-//i) { $fields->{$_} = $v; }
- elsif (m/^(Section|Priority|Files|Bugs)$/i || m/^X[BC]+-/i) { }
- else { &unknown(_g('general section of control info file')); }
}
# Scan control info of binary packages
@@ -360,16 +363,12 @@ if ($opmode eq 'build') {
}
}
$fields->{'Architecture'}= join(' ',@sourcearch);
- } elsif (s/^X[BC]*S[BC]*-//i) {
+ } elsif (s/^X[BC]*S[BC]*-//i) { # Include XS-* fields
$fields->{$_} = $v;
- } elsif (m/^(Package|Package-Type|Essential|Kernel-Version)$/ ||
- m/^(Homepage|Subarchitecture|Installer-Menu-Item)$/i ||
- m/^(Pre-Depends|Depends|Provides)$/i ||
- m/^(Recommends|Suggests|Conflicts|Replaces)$/i ||
- m/^(Breaks|Enhances|Description|Tag|Section|Priority)$/i
||
- m/^X[BC]+-/i) {
+ } elsif (m/^$control_pkg_field_regex$/ ||
+ m/^X[BC]+-/i) { # Silently ignore valid fields
} else {
- &unknown(_g("package's section of control info file"));
+ unknown(_g("package's section of control info file"));
}
}
}
@@ -388,7 +387,7 @@ if ($opmode eq 'build') {
} elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date|Closes)$/i ||
m/^X[BS]+-/i) {
} else {
- &unknown(_g("parsed version of changelog"));
+ unknown(_g("parsed version of changelog"));
}
}
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]