summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRaphaël Hertzog <hertzog@debian.org>2009-10-01 21:23:15 +0200
committerRaphaël Hertzog <hertzog@debian.org>2009-10-02 00:39:21 +0200
commit171610876f98768167ec1aec2dbc63cdaa19f1e6 (patch)
tree510f3131d2c7ad56d360e52d1ec4c947f9991d03 /scripts
parentc6e64aafd1eeacfd94d705af72b617cfa1bc3466 (diff)
downloaddpkg-171610876f98768167ec1aec2dbc63cdaa19f1e6.tar.gz
dpkg-scanpackages/dpkg-scansources: support compressed override files
This feature is supported in the dpkg-scanpackages implementation provided by dpkg-multicd.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/dpkg-scanpackages.pl11
-rwxr-xr-xscripts/dpkg-scansources.pl39
2 files changed, 32 insertions, 18 deletions
diff --git a/scripts/dpkg-scanpackages.pl b/scripts/dpkg-scanpackages.pl
index ff8e00110..40bca9712 100755
--- a/scripts/dpkg-scanpackages.pl
+++ b/scripts/dpkg-scanpackages.pl
@@ -11,6 +11,7 @@ use Dpkg::ErrorHandling;
use Dpkg::Control;
use Dpkg::Version qw(compare_versions);
use Dpkg::Checksums;
+use Dpkg::Source::CompressedFile;
textdomain("dpkg-dev");
@@ -67,8 +68,8 @@ sub set_type_udeb()
sub load_override
{
my $override = shift;
- my $override_fh = new IO::File $override, 'r' or
- syserr(_g("Couldn't open override file %s"), $override);
+ my $comp_file = Dpkg::Source::CompressedFile->new(filename => $override);
+ my $override_fh = $comp_file->open_for_read();
while (<$override_fh>) {
s/\#.*//;
@@ -109,13 +110,14 @@ sub load_override
}
close($override_fh);
+ $comp_file->cleanup_after_open();
}
sub load_override_extra
{
my $extra_override = shift;
- my $override_fh = new IO::File $extra_override, 'r' or
- syserr(_g("Couldn't open override file %s"), $extra_override);
+ my $comp_file = Dpkg::Source::CompressedFile->new(filename => $extra_override);
+ my $override_fh = $comp_file->open_for_read();
while (<$override_fh>) {
s/\#.*//;
@@ -132,6 +134,7 @@ sub load_override_extra
}
close($override_fh);
+ $comp_file->cleanup_after_open();
}
usage() and exit 1 if not $result;
diff --git a/scripts/dpkg-scansources.pl b/scripts/dpkg-scansources.pl
index 102009805..c9611faeb 100755
--- a/scripts/dpkg-scansources.pl
+++ b/scripts/dpkg-scansources.pl
@@ -33,6 +33,8 @@ use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::Control;
use Dpkg::Checksums;
+use Dpkg::Source::CompressedFile;
+use Dpkg::Compression;
textdomain("dpkg-dev");
@@ -140,8 +142,9 @@ sub load_override {
my $file = shift;
local $_;
- open OVERRIDE, $file or syserr(_g("can't read override file %s"), $file);
- while (<OVERRIDE>) {
+ my $comp_file = Dpkg::Source::CompressedFile->new(filename => $file);
+ my $override_fh = $comp_file->open_for_read();
+ while (<$override_fh>) {
s/#.*//;
next if /^\s*$/;
s/\s+$//;
@@ -178,7 +181,8 @@ sub load_override {
$Override{$package}[O_MAINT_TO] = $maintainer;
}
}
- close OVERRIDE or syserr(_g("error closing override file"));
+ close($override_fh);
+ $comp_file->cleanup_after_open();
}
sub load_src_override {
@@ -190,18 +194,23 @@ sub load_src_override {
$file = $user_file;
}
elsif (defined $regular_file) {
- $file = "$regular_file.src";
+ my $comp = get_compression_from_filename($regular_file);
+ if (defined($comp)) {
+ $file = $regular_file;
+ $file =~ s/\.$comp_ext{$comp}$/.src.$comp_ext{$comp}/;
+ } else {
+ $file = "$regular_file.src";
+ }
+ return unless -e $file;
}
else {
return;
}
debug "source override file $file";
- unless (open SRC_OVERRIDE, $file) {
- return if !defined $user_file;
- syserr(_g("can't read source override file %s"), $file);
- }
- while (<SRC_OVERRIDE>) {
+ my $comp_file = Dpkg::Source::CompressedFile->new(filename => $file);
+ my $override_fh = $comp_file->open_for_read();
+ while (<$override_fh>) {
s/#.*//;
next if /^\s*$/;
s/\s+$//;
@@ -223,16 +232,17 @@ sub load_src_override {
$Override{$key} = [];
$Override{$key}[O_SECTION] = $section;
}
- close SRC_OVERRIDE or syserr(_g("error closing source override file"));
+ close($override_fh);
+ $comp_file->cleanup_after_open();
}
sub load_override_extra
{
my $extra_override = shift;
- open(OVERRIDE, "<", $extra_override) or
- syserr(_g("Couldn't open override file %s"), $extra_override);
+ my $comp_file = Dpkg::Source::CompressedFile->new(filename => $extra_override);
+ my $override_fh = $comp_file->open_for_read();
- while (<OVERRIDE>) {
+ while (<$override_fh>) {
s/\#.*//;
s/\s+$//;
next unless $_;
@@ -240,7 +250,8 @@ sub load_override_extra
my ($p, $field, $value) = split(/\s+/, $_, 3);
$Extra_Override{$p}{$field} = $value;
}
- close(OVERRIDE);
+ close($override_fh);
+ $comp_file->cleanup_after_open();
}
# Given PREFIX and DSC-FILE, process the file and returns the fields.