my @archives = @ARCHIVES;
my @suites = @SUITES;
my @archs = @ARCHITECTURES;
+ my %deborts_hash;
+ @deborts_hash{qw( avr32 m68k powerpcspe sh4 sparc64 )} = ();
$DBDIR .= "/contents";
mkdirp( $DBDIR );
open CONT, "zcat $filename|$what"
or die $!;
- while (<CONT>) { last if /^FILE/mo; }
- if (eof(CONT)) { # no header found
+ my $header_found = 0;
+ while (<CONT>) { /^FILE/mo && do { $header_found = 1; last };}
+ if (eof(CONT)) { # no header found or only header found
close CONT; # explicit close to reset $.
+ next if $header_found;
open CONT, "zcat $filename|$what";
}
while (<CONT>) {
activate($filelist_db);
#FIXME: hardcoded archs. (debports has no contrib/non-free)
- if ($arch ne 'avr32' and $arch ne 'm68k') {
+ if (not exists $deborts_hash{$arch}) {
system("ln", "-sf", basename($filelist_db),
"$DBDIR/filelists_${suite}_all.db") == 0
or die "Oops";
# path to private ftp directory
#ftproot=/org/ftp.root
-ftpsite=http://ftp.de.debian.org/debian
-security_ftpsite=http://security.debian.org/debian-security
-volatile_ftpsite=http://volatile.debian.org/debian-volatile
-backports_ftpsite=http://backports.debian.org/debian-backports
-debports_ftpsite=http://ftp.debian-ports.org/debian
-ddtp_ftpsite=
+ftpsite=http://archive.ubuntu.com/ubuntu
+security_ftpsite=http://archive.ubuntu.com/ubuntu
+#ddtp_ftpsite=http://archive.ubuntu.com/ubuntu
wget_cmd="wget --no-verbose --tries=2 --timeout=60"
check_release_cmd="perl -I${libdir} ${bindir}/check-release --verbose --ignoremissing --keyring ${configdir}/trusted.gpg"
# Architectures
#
- polangs="bg de fi fr hu ja nl ru sk sv uk zh-cn"
- ddtplangs="be ca cs da de en-gb eo es et eu fi fr gl hu id it ja ka km ko lt ml nl oc pl pt pt-br ro ru sk sl sv tr uk vi zh-cn zh-hk zh-tw"
+ polangs="bg de fi fr hu ja nl ru sk sv uk zh-cn zh-tw"
+ ddtplangs="ca cs da de eo es eu fi fr hu it ja km ko nl pl pt pt-br ru sk sv uk zh zh-cn zh-tw"
-archives="us security debports backports volatile"
-sections="main contrib non-free"
+archives="us security"
+sections="main multiverse restricted universe"
parts="$sections"
-suites="etch etch-m68k etch-volatile etch-backports lenny lenny-volatile lenny-backports squeeze squeeze-backports sid experimental"
+suites="dapper dapper-updates dapper-backports hardy hardy-updates hardy-backports jaunty jaunty-updates jaunty-backports karmic karmic-updates karmic-backports lucid lucid-updates lucid-backports maverick"
- dists="$suites"
priorities="required important standard optional extra"
-architectures="alpha amd64 arm armel avr32 hppa hurd-i386 i386 ia64 kfreebsd-i386 kfreebsd-amd64 m68k mips mipsel powerpc powerpcspe s390 sh4 sparc sparc64"
-arch_etch="alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc"
-arch_lenny="${arch_etch} armel"
-arch_squeeze="alpha amd64 armel hppa i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc s390 sparc"
-arch_sid="${arch_squeeze} avr32 hurd-i386 m68k powerpcspe sh4 sparc64"
-arch_experimental="${arch_sid}"
-arch_lenny_proposed_updates="${arch_lenny}"
-arch_etch_proposed_updates="${arch_etch}"
+ dists="$suites"
+architectures="i386 amd64 powerpc"
+arch_dapper="i386 amd64 powerpc"
+arch_dapper_updates="${arch_dapper}"
+arch_dapper_backports="${arch_dapper}"
+arch_hardy="i386 amd64"
+arch_hardy_updates="${arch_hardy}"
+arch_hardy_backports="${arch_hardy}"
+arch_jaunty="${arch_hardy}"
+arch_jaunty_updates="${arch_jaunty}"
+arch_jaunty_backports="${arch_jaunty}"
+arch_karmic="${arch_jaunty}"
+arch_karmic_updates="${arch_karmic}"
+arch_karmic_backports="${arch_karmic}"
+arch_lucid="${arch_karmic}"
+arch_lucid_updates="${arch_lucid}"
+arch_lucid_backports="${arch_lucid}"
+arch_maverick="${arch_lucid}"
+arch_maverick_updates="${arch_maverick}"
+arch_maverick_backports="${arch_maverick}"
# Miscellaneous
#
[% END %]
<h3>[% g('%s Resources:', organisation) %]</h3>
<ul>
-<li><a href="[% (is_source ? src_bugs_url : bugs_url) _ pkg %]">[% g('Bug Reports') %]</a></li>
-
-[% IF src.pkg -%]
-<li><a href="[% pts_url _ src.pkg %]">[% g('Developer Information (PTS)') %]</a></li>
-[% ELSIF is_source %]
-<li><a href="[% pts_url _ pkg %]">[% g('Developer Information (PTS)') %]</a></li>
-[%- END %]
+<li><a href="[% launchpad_url _ (is_source ? pkg : src.pkg) _ '/+bugs' %]">[% g('Bug Reports') %]</a></li>
[% IF files && (!archive or archive == main_archive or archive == 'security') %]
<li><a href="[% changelogs_url _ files.changelog.path %]">[% g('%s Changelog', organisation) %]</a></li>
[% IF patch_tracking_url && src %]
[% FOREACH src.downloads %]
- [% IF name.match('\.(debian|diff)\.(gz|bz2|lzma)$') %]
+ [% IF name.match('\.(debian\.tar|diff)\.(gz|bz2|lzma)$') %]
<li><a href="[% "$patch_tracking_url/$src.pkg/$src.version" %]">[% g("%s Patch Tracker", organisation) %]</a></li>
[% END -%]
[% END -%]
[% ELSIF patch_tracking_url && is_source %]
[% FOREACH srcfiles %]
- [% IF filename.match('\.(debian|diff)\.(gz|bz2|lzma)$') %]
+ [% IF filename.match('\.(debian\.tar|diff)\.(gz|bz2|lzma)$') %]
<li><a href="[% "$patch_tracking_url/$pkg/$version" %]">[% g("%s Patch Tracker", organisation) %]</a></li>
[% END -%]
[% END -%]
[% END %]
[% END %]
-[% IF maintainers.size == 1 -%]
- <h3>[% g('Maintainer:') %]</h3>
-[%- ELSE -%]
- <h3>[% g('Maintainers:') %]</h3>
-[%- END %]
-[%- FOREACH maintainers;
+[%- BLOCK handle_maintainer;
mailarchiveurl = '';
IF (matches = mail.match('^(.*)@lists\.debian\.org$'));
mailarchiveurl = 'http://lists.debian.org/' _ uri_escape(matches.0) _ '/';
ELSIF (matches = mail.match('^(.*)@lists\.ubuntu\.com$'));
mailarchiveurl = 'http://lists.ubuntu.com/archives/' _ uri_escape(matches.0) _ '/';
END -%]
- [%- '<ul>' IF loop.first -%]
+ [% IF hide_mail %]
+ <li>[% name | html %]
+ [% ELSE %]
<li><a href="mailto:[% mail | html %]">[% name | html %]</a>
- (<a href="[% ddpo_url %][% uri_escape(mail) %]" title="[% g("An overview over the maintainer's packages and uploads") %]">[% g('QA Page') %]</a>
- [%- IF mailarchiveurl %], <a href="[% mailarchiveurl %]" title="[% g('Archive of the Maintainer Mailinglist') %]">[% g('Mail Archive') %]</a>[% END %])
+ [% END %]
+ [%- IF mailarchiveurl %] (<a href="[% mailarchiveurl %]" title="[% g('Archive of the Maintainer Mailinglist') %]">[% g('Mail Archive') %]</a>)[% END %]
</li>
- [%- '</ul>' IF loop.last -%]
+[% END -%]
+
+[%- IF maintainers.size -%]
+[% IF maintainers.size == 1 -%]
+ <h3>[% g('Maintainer:') %]</h3>
+[%- ELSE -%]
+ <h3>[% g('Maintainers:') %]</h3>
+[%- END %]
+[%- FOREACH m IN maintainers;
+ '<ul>' IF loop.first;
+ PROCESS handle_maintainer name=m.name mail=m.mail;
+ '</ul>' IF loop.last;
+ END -%]
+<p>[% g('Please consider <a href="%s">filing a bug</a> or <a href="%s">asking a question</a> via Launchpad before contacting the maintainer directly.',
+ "https://bugs.launchpad.net/ubuntu/+source/" _ (is_source ? pkg : src.pkg) _ "/+filebug",
+ "https://answers.launchpad.net/ubuntu/+source/" _ (is_source ? pkg : src.pkg) _ "/+addquestion") %]</p>
+[%- END -%]
+
+[%- IF original_maintainers.size -%]
+[% IF original_maintainers.size == 1 -%]
+ <h3>[% g('Original Maintainer (usually from Debian):') %]</h3>
+[%- ELSE -%]
+ <h3>[% g('Original Maintainers (usually from Debian):') %]</h3>
+[%- END %]
+[%- FOREACH m IN original_maintainers;
+ '<ul>' IF loop.first;
+ PROCESS handle_maintainer name=m.name mail=m.mail hide_mail=1;
+ '</ul>' IF loop.last;
+ END -%]
+<p>[% g('It should generally not be necessary for users to contact the original maintainer.') %]</p>
[%- END -%]
[% url = page.get_newest('url');