use warnings;
use Data::Dumper;
+use Exporter;
use Deb::Versions;
use Packages::CGI;
+our @ISA = qw( Exporter );
+our @EXPORT_OK = qw( split_name_mail parse_deps );
+our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
+
our $ARCHIVE_DEFAULT = '';
our $SECTION_DEFAULT = 'main';
our $SUBSECTION_DEFAULT = 'unknown';
return $self;
}
-sub merge_data {
- my ($self, $pkg, $version, $architecture, $data) = @_;
-
- my %data = ( package => $pkg,
- version => $version,
- architecture => $architecture );
- chomp($data);
- while ($data =~ /^(\S+):\s*(.*)\s*$/mg) {
- my ($key, $value) = ($1, $2);
- $key =~ tr [A-Z] [a-z];
- $data{$key} = $value;
- }
-# debug( "Merge package:\n".Dumper(\%data), 3 );
- return $self->merge_package( \%data );
-}
-
sub gettext { return $_[0]; }
sub split_name_mail {
my $string = shift;
}
sub add_src_data {
- my ($self, $src, $version, $data) = @_;
-
- chomp($data);
- my %data = ();
- $data =~ s/\n\s+/\377/g;
- while ($data =~ /^(\S+):\s*(.*)\s*$/mog) {
- my ($key, $value) = ($1, $2);
- $key =~ tr [A-Z] [a-z];
- $data{$key} = $value;
- }
+ my ($self, $src, $data) = @_;
+
+ my %data = split /\00/o, $data;
- $self->{src}{name} = $src;
- $self->{src}{version} = $version;
+ $self->{src}{package} = $src;
+ $self->{src}{version} = $data{version};
if ($data{files}) {
- $self->{src}{files} = [];
- foreach my $sf ( split( /\377/, $data{files} ) ) {
- next unless $sf;
- # md5, size, name
- push @{$self->{src}{files}}, [ split( /\s+/, $sf) ];
- }
+ my @files = split /\01/so, $data{files};
+ $self->{src}{files} = \@files;
}
$self->{src}{directory} = $data{directory};
my @uploaders;
return 1;
}
+sub add_provided_by {
+ my ($self, $provided_by) = @_;
+
+ $self->{provided_by} ||= [];
+ push @{$self->{provided_by}}, @$provided_by;
+}
+
+sub is_virtual {
+ my ($self) = @_;
+
+ return (exists($self->{provided_by}) && !exists($self->{versions}));
+}
+
our @TAKE_NEWEST = qw( description essential priority section subsection tag
archive source source-version );
our @STORE_ALL = qw( version source source-version installed-size size