[%
-# TODO: find a way to get the U.S. mirror list from a more authoritive
-# location automatically. might not be overly smart to automatize it
-# completely, since I hand pick sites that are up-to-date, fast, and
-# have HTTP on a reasonably short URL
-# -- Joy
-
-# hint:
-# grep-dctrl -F Site,Alias -e '(udel|bigfoot|kernel|crosslink|internap|cerias|lcs.mit|progeny)' Mirrors.masterlist | timestamps/archive_mirror_check.py
-
mirrors = {
us => {
- url => 'http://www.debian.org/',
- mirror_list => 'http://www.debian.org/mirror/list',
- north_america => [
- "ftp.us.debian.org/debian",
- "http.us.debian.org/debian",
-#only amd64,i386 "ftp.debian.org/debian",
- "ftp.ca.debian.org/debian",
- "ftp.mx.debian.org/debian",
- "ftp.egr.msu.edu/debian",
- "mirrors.kernel.org/debian",
- "ftp-mirror.internap.com/pub/debian",
-#only some arches "ftp.cerias.purdue.edu/pub/os/debian",
- "debian.lcs.mit.edu/debian",
- "debian.oregonstate.edu/debian",
- ],
- europa => [
- "ftp.de.debian.org/debian",
- "ftp.at.debian.org/debian",
- "ftp.bg.debian.org/debian",
- "ftp.ch.debian.org/debian",
- "ftp.cz.debian.org/debian",
- "ftp.dk.debian.org/debian",
- "ftp.ee.debian.org/debian",
- "ftp.es.debian.org/debian",
- "ftp.fi.debian.org/debian",
- "ftp.fr.debian.org/debian",
- "ftp.hr.debian.org/debian",
- "ftp.hu.debian.org/debian",
- "ftp.ie.debian.org/debian",
- "ftp.is.debian.org/debian",
- "ftp.it.debian.org/debian",
- "ftp.nl.debian.org/debian",
-#only some arches "ftp.no.debian.org/debian",
- "ftp.pl.debian.org/debian",
- "ftp.ro.debian.org/debian",
- "ftp.ru.debian.org/debian",
- "ftp.se.debian.org/debian",
-#only some arches "ftp.si.debian.org/debian",
- "ftp.tr.debian.org/debian",
- "ftp.uk.debian.org/debian",
- ],
- south_america => [
- "ftp.br.debian.org/debian",
- "ftp.cl.debian.org/debian",
- "download.unesp.br/linux/debian",
- "sft.if.usp.br/debian",
-#not reachable "debian.unesr.edu.ve/debian",
- "debian.torredehanoi.org/debian",
- ],
- oceania => [
- "ftp.au.debian.org/debian",
- "ftp.wa.au.debian.org/debian",
- "ftp.nz.debian.org/debian",
- "mirror.pacific.net.au/debian",
- "ftp.iinet.net.au/debian/debian",
- "mirror.optus.net/debian",
- ],
- asia => [
- "ftp.jp.debian.org/debian",
- "ftp2.jp.debian.org/debian",
- "ftp.kr.debian.org/debian",
-#only some arches "ftp.hk.debian.org/debian",
- "ftp.tw.debian.org/debian",
- "debian.nctu.edu.tw/debian",
- "debian.linux.org.tw/debian",
- "linux.cdpa.nsysu.edu.tw/debian",
- "ftp.nara.wide.ad.jp/debian",
- "mirrors.geekbone.org/debian",
- "ftp.yz.yamagata-u.ac.jp/debian",
- "debian.thaios.net/debian",
- "www.anheng.com.cn/debian",
- "ftp.daum.net/debian",
- ],
- africa => [
- "debian.mirror.ac.za/debian",
- ],
- },
-
- volatile => {
- url => 'http://www.debian.org/volatile/',
- title => g('volatile packages that need major changes during the life of a stable release'),
- mirror_list => 'http://www.debian.org/volatile/volatile-mirrors',
- europa => [
- "volatile.debian.org/debian-volatile",
- "ftp.at.debian.org/debian-volatile",
- "ftp.be.debian.org/debian-volatile",
- "ftp.ch.debian.org/debian-volatile",
- "ftp.de.debian.org/debian-volatile",
- "ftp2.de.debian.org/debian-volatile",
- "ftp.ee.debian.org/debian-volatile",
- "ftp.fi.debian.org/debian-volatile",
- "ftp.gr.debian.org/debian-volatile",
- "ftp.nl.debian.org/debian-volatile",
- "ftp.ru.debian.org/debian-volatile",
- "ftp.sk.debian.org/debian-volatile",
- "ftp.ua.debian.org/debian-volatile",
- "ftp.uk.debian.org/debian-volatile",
- ],
- north_america => [
- "mirror.csclub.uwaterloo.ca/debian-volatile",
- "ftp3.nrc.ca/debian-volatile",
- "gulus.usherbrooke.ca/debian-volatile",
- ],
- south_america => [
- "ftp.br.debian.org/debian-volatile",
- "ftp.cl.debian.org/debian-volatile",
- "sft.if.usp.br/debian-volatile",
- ],
- asia => [
- "ftp2.jp.debian.org/debian-volatile",
- "ftp.tw.debian.org/debian-volatile",
- "mirror.unej.ac.id/debian-volatile",
- "mirrors.geekbone.org/debian-volatile",
- ],
- oceania => [
- "ftp.nz.debian.org/debian-volatile",
- ],
- },
-
- backports => {
- url => 'http://www.backports.org/',
- title => g('newer packages that have been adapted to stable releases of Debian'),
- mirror_list => 'http://www.backports.org/debian/README.mirrors.html',
- europa => [
- "www.backports.org/debian",
- "debian.sil.at/backports.org/",
- "backports.debian.or.at/backports.org",
- "mirror.realroute.net/backports.org",
- "backports.cisbg.com",
- "backports.linuxdediziert.de/backports.org",
- "debian.netcologne.de/debian-backports",
- "ftp.de.debian.org/backports.org",
- "mirror.buildd.net/backports.org",
- "ftp.estpak.ee/backports.org",
- "debian.acantho.net/backports.org",
- "backports.essentkabel.com/backports.org",
- "backports.sipo.nl",
- "ftp.tuke.sk",
- ],
- asia => [
- "backports.mithril-linux.org",
- ],
- oceania => [
- "mirror.linux.org.au/backports.org",
- "mirror.pacific.net.au/linux/debian-backports",
- ],
- },
-
- debports => {
- url => 'http://www.debian-ports.org/',
- title => g('ports of packages to architectures not yet or not anymore available in Debian'),
- mirror_list => 'http://wiki.debian.org/DebianPorts/Mirrors',
- unofficial_port => {
- avr32 => {
- url => 'http://avr32.debian.net/',
- name => 'AVR32',
- },
- m68k => {
- url_name => 'm68k',
- name => 'M68K',
- },
- },
- north_america => [
- "www.gtlib.gatech.edu/pub/gnuab/debian",
- ],
- europa => [
- "ftp.debian-ports.org/debian",
- "ftp.de.debian.org/debian-ports",
- "ftp.ch.debian.org/debian-ports",
- ],
- asia => [
- "debian.nctu.edu.tw/debian-ports",
+ url => 'http://www.ubuntu.com/',
+ mirror_list => 'https://launchpad.net/ubuntu/+archivemirrors',
+ north_america = [
+ "mirrors.kernel.org/ubuntu",
+ "ftp.osuosl.org/pub/ubuntu",
+ "lug.mtu.edu/ubuntu",
+ "ubuntu.mirrors.tds.net/ubuntu",
+ "ubuntu.secs.oakland.edu",
+ "mirror.mcs.anl.gov/pub/ubuntu",
+ "mirrors.cat.pdx.edu/ubuntu",
+ "ubuntu.cs.utah.edu/ubuntu",
+ "ftp.ussg.iu.edu/linux/ubuntu",
+ "mirrors.xmission.com/ubuntu",
+ "mirrors.cs.wmich.edu/ubuntu",
+ "gulus.USherbrooke.ca/pub/distro/ubuntu",
+ ],
+ europa = [
+ "cz.archive.ubuntu.com/ubuntu",
+ "de.archive.ubuntu.com/ubuntu",
+ "dk.archive.ubuntu.com/ubuntu",
+ "es.archive.ubuntu.com/ubuntu",
+ "fr.archive.ubuntu.com/ubuntu",
+ "ge.archive.ubuntu.com/ubuntu",
+ "gr.archive.ubuntu.com/ubuntu",
+ "hr.archive.ubuntu.com/ubuntu",
+ "mt.archive.ubuntu.com/ubuntu",
+ "nl.archive.ubuntu.com/ubuntu",
+ "no.archive.ubuntu.com/ubuntu",
+ "se.archive.ubuntu.com/ubuntu",
+ "yu.archive.ubuntu.com/ubuntu",
+ ],
+ south_americas = [
+ "br.archive.ubuntu.com/ubuntu",
+ "cl.archive.ubuntu.com/ubuntu",
+ "espelhos.edugraf.ufsc.br/ubuntu",
+ "ubuntu.c3sl.ufpr.br/ubuntu",
+ ],
+ australia = [
+ "nz.archive.ubuntu.com/ubuntu",
+ "nz2.archive.ubuntu.com/ubuntu",
+ "ftp.iinet.net.au/pub/ubuntu",
+ "mirror.optus.net/ubuntu",
+ "ftp.filearena.net/pub/ubuntu",
+ "mirror.pacific.net.au/linux/ubuntu",
+ ],
+ asia = [
+ "kr.archive.ubuntu.com/ubuntu",
+ "th.archive.ubuntu.com/ubuntu",
+ "mirror.lupaworld.com/ubuntu",
+ "kambing.vlsm.org/ubuntu",
+ "ubuntu.mithril-linux.org/archives",
+ "mirror.in.th/ubuntu",
+ "mirror.rootguide.org/ubuntu",
+ ],
+ africa = [
+ "za.archive.ubuntu.com/ubuntu",
],
},
}
-ports_url = 'http://www.debian.org/ports/'
-
continents = {
north_america => g('North America'),
south_america => g('South America'),
asia => g('Asia'),
- australia => g('Australia and New Zealand'),
+ oceania => g('Oceania'),
europa => g('Europe'),
africa => g('Africa'),
}
<h2>[% g('Links for %s', pkg) %]</h2>
<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('\.diff\.(gz|bz2|lzma)$') %]
+ [% IF name.match('\.(debian|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('\.diff\.(gz|bz2|lzma)$') %]
+ [% IF filename.match('\.(debian|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');