debug( "find source package: source=$source", 1) if DEBUG;
my $src_data = $sources_all{"$archive $suite $source"};
+ #FIXME: should be $main_archive or similar, not hardcoded "us"
+ $src_data = $sources_all{"us $suite $source"} unless $src_data;
$page->add_src_data( $source, $src_data )
if $src_data;
debug( "Data search and merging took ".timestr($std) ) if DEBUG;
my $did = $page->get_newest( 'description' );
- my @tags = map { [ split( /::/, $_) ] } split(/, /, $page->get_newest( 'tag' ));
+ my @complete_tags = split(/, /, $page->get_newest( 'tag' ));
+ my @tags;
+ foreach (@complete_tags) {
+ my ($facet, $tag) = split( /::/, $_, 2);
+ # handle tags like devel::{lang:c,lang:c++}
+ if ($tag =~ s/^\{(.+)\}$/$1/) {
+ foreach (split( /,/, $tag )) {
+ next if $tag =~ /^special:/;
+ push @tags, [ $facet, $_ ];
+ }
+ } else {
+ next if $tag =~ /^special:/;
+ push @tags, [ $facet, $tag ];
+ }
+ }
+
$contents{tags} = \@tags;
$contents{debtags_voc} = \%debtags;
instsize => $sizes_inst->{$a}, );
$d{version} = $versions->{$a} if $multiple_versions;
+ $d{archive} = $archives->{$a};
if ( ($suite ne "experimental")
&& ($subsection ne 'debian-installer')) {
$d{contents_avail} = 1;
# non-US hack
($server = lc $page->get_newest('archive')) =~ s/-//go;
$server = $env->{$server}||$env->{us};
- $path = "$src_dir/$src_file_name";
+ $path = "/$src_dir/$src_file_name";
if ($src_file_name =~ /dsc$/) {
$name = 'dsc'
} else {