return $self->merge_package( \%data );
}
-sub gettext { return $_[0]; }
-
our @DEP_FIELDS = qw( build-depends build-depends-indep
build-conflicts build-conflicts-indep);
sub merge_package {
($data->{package} && $data->{suite} && $data->{archive}) || return;
$self->{package} ||= $data->{package};
($self->{package} eq $data->{package}) || return;
- debug( "merge package $data->{package}/$data->{version} into $self (".($self->{version}||'').")", 2 );
+ debug( "merge package $data->{package}/$data->{version} into $self (".($self->{version}||'').")", 2 ) if DEBUG;
if (!$self->{version}
|| (version_cmp( $data->{version}, $self->{version} ) > 0)) {
- debug( "added package is newer, replacing old information" );
+ debug( "added package is newer, replacing old information" ) if DEBUG;
$self->{data} = $data;
$self->{version} = $data->{version};
}
+
+ return 1;
}
#FIXME: should be mergable with the Packages::Page version
sub get_dep_field {
my ($self, $dep_field) = @_;
- return $self->{dep_fields}{$dep_field}[1];
+ my @deps;
+ foreach my $dep (@{$self->{dep_fields}{$dep_field}[1]}) {
+ my @or_deps;
+ foreach my $or_dep ( @$dep ) {
+ my $p_name = $or_dep->[0];
+ my $p_version = $or_dep->[1] ? "$or_dep->[1] $or_dep->[2]" : undef;
+ my $arch_neg;
+ my $arch_str = '';
+ if ($or_dep->[3] && @{$or_dep->[3]}) {
+ # as either all or no archs have to be prepended with
+ # exlamation marks, use the first and delete the others
+ if ($or_dep->[3][0] =~ /^!/) {
+ $arch_neg = 1;
+ foreach (@{$or_dep->[3]}) {
+ $_ =~ s/^!//go;
+ }
+ }
+ $arch_str = join(" ",sort(@{$or_dep->[3]}));
+ }
+
+ push @or_deps, [ $p_name, $p_version, $arch_neg, $arch_str ];
+ }
+ push @deps, [ 0, @or_deps ];
+ }
+ return \@deps;
}
1;