diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Dpkg/Fields.pm | 46 | ||||
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rwxr-xr-x | scripts/dpkg-genchanges.pl | 26 | ||||
-rwxr-xr-x | scripts/dpkg-gencontrol.pl | 38 | ||||
-rwxr-xr-x | scripts/dpkg-source.pl | 27 | ||||
-rw-r--r-- | scripts/po/POTFILES.in | 1 |
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 |