summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRaphaël Hertzog <hertzog@debian.org>2009-09-17 22:13:40 +0200
committerRaphaël Hertzog <hertzog@debian.org>2009-09-19 18:18:32 +0200
commit47919c5e51f198646beb4d823d5d93a8b5aca972 (patch)
tree49cd23c2da68c132c3f54c1bfa91e0ea4bd48c8f /scripts
parent293c6541c334b422139fa48c4e12070f6f095868 (diff)
downloaddpkg-47919c5e51f198646beb4d823d5d93a8b5aca972.tar.gz
Drop Dpkg::Fields and convert everything to Dpkg::Control::Fields
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Dpkg/Fields.pm46
-rw-r--r--scripts/Makefile.am1
-rwxr-xr-xscripts/dpkg-genchanges.pl26
-rwxr-xr-xscripts/dpkg-gencontrol.pl38
-rwxr-xr-xscripts/dpkg-source.pl27
-rw-r--r--scripts/po/POTFILES.in1
6 files changed, 26 insertions, 113 deletions
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
deleted file mode 100644
index 8aa5cc384..000000000
--- a/scripts/Dpkg/Fields.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package Dpkg::Fields;
-
-use strict;
-use warnings;
-
-use base qw(Exporter);
-use Dpkg::Gettext;
-use Dpkg::ErrorHandling;
-use Dpkg::Control::Fields;
-
-our @EXPORT_OK = qw(capit unknown %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 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));
-$control_src_fields{$_} = 1 foreach (field_list_src_dep());
-$control_pkg_fields{$_} = 1 foreach (qw(Architecture Bugs Description Essential
- Homepage Installer-Menu-Item Kernel-Version Package Package-Type
- Priority Section Subarchitecture Tag Multi-Arch));
-$control_pkg_fields{$_} = 1 foreach (field_list_pkg_dep());
-
-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;
-}
-
-sub unknown($$)
-{
- my ($field, $desc) = @_;
-
- warning(_g("unknown information field '%s' in input data in %s"),
- $field, $desc);
-}
-
-1;
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 630fdff02..a1150aa80 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -103,7 +103,6 @@ nobase_dist_perllib_DATA = \
Dpkg/Deps.pm \
Dpkg/ErrorHandling.pm \
Dpkg/Exit.pm \
- Dpkg/Fields.pm \
Dpkg/Gettext.pm \
Dpkg/IPC.pm \
Dpkg/Path.pm \
diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl
index f3b4c68d8..1761f186a 100755
--- a/scripts/dpkg-genchanges.pl
+++ b/scripts/dpkg-genchanges.pl
@@ -11,9 +11,9 @@ use Dpkg::Gettext;
use Dpkg::Checksums;
use Dpkg::ErrorHandling;
use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
-use Dpkg::Fields qw(:list unknown);
use Dpkg::Compression;
use Dpkg::Control::Info;
+use Dpkg::Control::Fields;
use Dpkg::Control;
use Dpkg::Substvars;
use Dpkg::Vars;
@@ -258,14 +258,8 @@ foreach $_ (keys %{$src_fields}) {
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'));
+ field_transfer_single($src_fields, $fields);
}
}
@@ -306,8 +300,6 @@ foreach my $pkg ($control->get_packages()) {
$f2seccf{$_} = $v foreach (@f);
} elsif (m/^Priority$/) {
$f2pricf{$_} = $v foreach (@f);
- } elsif (s/^X[BS]*C[BS]*-//i) { # Include XC-* fields
- $fields->{$_} = $v;
} elsif (m/^Architecture$/) {
if (grep(debarch_is($host_arch, $_), split(/\s+/, $v))
and ($include & ARCH_DEP)) {
@@ -316,10 +308,10 @@ foreach my $pkg ($control->get_packages()) {
$v = '';
}
push(@archvalues,$v) unless !$v || $archadded{$v}++;
- } elsif (m/^$control_pkg_field_regex$/ || m/^X[BS]+-/i) {
- # Silently ignore valid fields
+ } elsif (m/^Description$/) {
+ # Description in changes is computed, do not copy this field
} else {
- unknown($_, _g("package's section of control info file"));
+ field_transfer_single($pkg, $fields);
}
}
}
@@ -331,12 +323,8 @@ foreach $_ (keys %{$changelog}) {
set_source_package($v);
} elsif (m/^Maintainer$/i) {
$fields->{"Changed-By"} = $v;
- } elsif (m/^(Version|Changes|Urgency|Distribution|Date|Closes)$/i) {
- $fields->{$_} = $v;
- } elsif (s/^X[BS]*C[BS]*-//i) {
- $fields->{$_} = $v;
- } elsif (!m/^X[BS]+-/i) {
- unknown($_, _g("parsed version of changelog"));
+ } else {
+ field_transfer_single($changelog, $fields);
}
}
diff --git a/scripts/dpkg-gencontrol.pl b/scripts/dpkg-gencontrol.pl
index bc3edc962..814fb7874 100755
--- a/scripts/dpkg-gencontrol.pl
+++ b/scripts/dpkg-gencontrol.pl
@@ -19,7 +19,6 @@ use Dpkg::Changelog qw(parse_changelog);
textdomain("dpkg-dev");
-my @pkg_dep_fields = field_list_pkg_dep();
my $controlfile = 'debian/control';
my $changelogfile = 'debian/changelog';
@@ -142,29 +141,20 @@ if (defined($oppackage)) {
$pkg = $control->get_pkg_by_idx(1);
}
-my %pkg_dep_fields = map { $_ => 1 } @pkg_dep_fields;
-
# Scan source package
my $src_fields = $control->get_source();
foreach $_ (keys %{$src_fields}) {
- my $v = $src_fields->{$_};
- 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
+ if (m/^Source$/) {
+ set_source_package($src_fields->{$_});
} else {
- unknown($_, _g('general section of control info file'));
+ field_transfer_single($src_fields, $fields);
}
}
# Scan binary package
foreach $_ (keys %{$pkg}) {
my $v = $pkg->{$_};
- if (exists($pkg_dep_fields{$_})) {
+ if (field_get_dep_type($_)) {
# Delay the parsing until later
} elsif (m/^Architecture$/) {
my $host_arch = get_host_arch();
@@ -185,12 +175,8 @@ foreach $_ (keys %{$pkg}) {
$host_arch, "@archlist");
$fields->{$_} = $host_arch;
}
- } 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"));
+ } else {
+ field_transfer_single($pkg, $fields);
}
}
@@ -203,11 +189,11 @@ foreach $_ (keys %{$changelog}) {
} elsif (m/^Version$/) {
$sourceversion = $v;
$fields->{$_} = $v unless defined($forceversion);
- } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date|Closes)$/) {
- } elsif (s/^X[CS]*B[CS]*-//i) {
- $fields->{$_} = $v;
- } elsif (!m/^X[CS]+-/i) {
- unknown($_, _g("parsed version of changelog"));
+ } elsif (m/^Maintainer$/) {
+ # That field must not be copied from changelog even if it's
+ # allowed in the binary package control information
+ } else {
+ field_transfer_single($changelog, $fields);
}
}
@@ -233,7 +219,7 @@ if (exists $pkg->{"Provides"}) {
}
my (@seen_deps);
-foreach my $field (@pkg_dep_fields) {
+foreach my $field (field_list_pkg_dep()) {
if (exists $pkg->{$field}) {
my $dep;
my $field_value = $substvars->substvars($pkg->{$field});
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index b4af22010..745955092 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -9,7 +9,6 @@ use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::Arch qw(debarch_eq);
use Dpkg::Deps;
-use Dpkg::Fields qw(:list unknown);
use Dpkg::Compression;
use Dpkg::Control::Info;
use Dpkg::Control::Fields;
@@ -163,10 +162,6 @@ if ($options{'opmode'} eq 'build') {
if (m/^Source$/i) {
set_source_package($v);
$fields->{$_} = $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) {
($fields->{$_} = $v) =~ s/[\r\n]//g; # Merge in a single-line
} elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
@@ -178,12 +173,8 @@ if ($options{'opmode'} eq 'build') {
$dep->simplify_deps($facts);
$dep->sort() if $type eq 'union';
$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'));
+ field_transfer_single($src_fields, $fields);
}
}
@@ -211,12 +202,10 @@ if ($options{'opmode'} eq 'build') {
push(@sourcearch, $a) unless $archadded{$a}++;
}
}
- } elsif (s/^X[BC]*S[BC]*-//i) { # Include XS-* fields
- $fields->{$_} = $v;
- } elsif (m/^$control_pkg_field_regex$/ ||
- m/^X[BC]+-/i) { # Silently ignore valid fields
+ } elsif (m/^Homepage$/) {
+ # Do not overwrite the same field from the source entry
} else {
- unknown($_, _g("package's section of control info file"));
+ field_transfer_single($pkg, $fields);
}
}
}
@@ -236,12 +225,10 @@ if ($options{'opmode'} eq 'build') {
} elsif (m/^Version$/) {
check_version($v, 1);
$fields->{$_} = $v;
- } elsif (s/^X[BS]*C[BS]*-//i) {
- $fields->{$_} = $v;
- } elsif (m/^(Maintainer|Changes|Urgency|Distribution|Date|Closes)$/i ||
- m/^X[BS]+-/i) {
+ } elsif (m/^Maintainer$/i) {
+ # Do not replace the field coming from the source entry
} else {
- unknown($_, _g("parsed version of changelog"));
+ field_transfer_single($changelog, $fields);
}
}
diff --git a/scripts/po/POTFILES.in b/scripts/po/POTFILES.in
index 85de51ea8..db9eecf54 100644
--- a/scripts/po/POTFILES.in
+++ b/scripts/po/POTFILES.in
@@ -25,7 +25,6 @@ scripts/Dpkg/Control/Hash.pm
scripts/Dpkg/Control/Types.pm
scripts/Dpkg/Deps.pm
scripts/Dpkg/ErrorHandling.pm
-scripts/Dpkg/Fields.pm
scripts/Dpkg/IPC.pm
scripts/Dpkg/Shlibs.pm
scripts/Dpkg/Shlibs/Objdump.pm