]> git.deb.at Git - deb/packages.git/blob - templates/html/show.tmpl
Merge branch 'master' into ubuntu-master
[deb/packages.git] / templates / html / show.tmpl
1 [% PROCESS 'config/archive_layout.tmpl' %]
2 [% PROCESS 'config/mirrors.tmpl' %]
3 [%- known_vcs = [ [ 'cvs', 'CVS', 'cvs' ],
4                 [ 'svn', 'Subversion', 'subversion' ],
5                 [ 'bzr', 'bzr', 'bzr' ],
6                 [ 'darcs', 'Darcs', 'darcs' ],
7                 [ 'arch', 'arch', 'tla' ],
8                 [ 'git', 'Git', 'git-core' ],
9                 [ 'hg', 'Hg', 'mercurial' ], ];
10    vcs_link = page.get_newest("vcs-browser");
11 -%]
12 [%- suite_name = suite;
13     SET suite_name = suite_name _ ' (' _ suite_aliases.$suite _ ')' IF suite_aliases.$suite;
14     nav_arr = [ { prefix=>g('Distribution:'), title=>g('Overview over this suite'), url=>make_url('/','','source',''), name=>suite_name }, ];
15     nav_arr.push( { title =>g('Source packages'), url=>make_url('/'), name=>g('Source') } ) IF is_source;
16     nav_arr.push( { prefix=>g('Section:'), title=>g('All packages in this section'), url=>make_url("$subsection/"), name=>subsection } );
17     nav_arr.push( { prefix=>g('Package:'), name=>pkg } ); -%]
18 [% desclang = 'en';
19    SET desclang = po_lang IF desc.$po_lang.long;
20    SET desclang = ddtp_lang IF desc.$ddtp_lang.long %]
21 [%- PROCESS 'html/head.tmpl'
22    title_tag = is_source ? g('Details of source package %s in %s', pkg, suite)
23                          : g('Details of package %s in %s', pkg, suite)
24    description = desc.$desclang.short
25    keywords = "$suite, $archive, $section, $subsection, $version"
26    print_search_field = 'packages'
27    search_field_values = { 
28                           searchon => is_source ? 'sourcenames' : 'names',
29                          }
30   navigation = nav_arr
31 -%]
32 <!-- show.tmpl -->
33 [% PROCESS 'html/util.inc' %]
34 [% FOREACH s IN suites %]
35    [% '<div id="pothers">' IF loop.first %]
36    [%- IF s == suite -%]
37      [% PROCESS menuitem name=s url='' %]
38    [%- ELSE -%]
39      [% PROCESS menuitem name=s url=make_url(pkg,'','suite',s) %]
40    [%- END -%]
41    [%- '</div>' IF loop.last -%]
42 [% END %]
43
44 [% IF src %]
45 <div id="psource">
46 [% PROCESS menuitem prefix=g('Source:') title=g('Source package building this package') url=make_url(src.pkg,'','source','source') name=src.pkg %]
47 </div>
48 [% END %]
49
50 [%- PROCESS 'html/messages.tmpl' -%]
51
52 [% IF is_virtual %]
53 <h1>[% g('Virtual Package: %s', pkg) %]
54 [% ELSIF is_source %]
55 <h1>[% g('Source Package: %s (%s)', pkg, version) %]
56 [% ELSE %]
57 <h1>[% g('Package: %s (%s)', pkg, versions.short) %]
58 [% END %]
59 [%- PROCESS marker text=archive title=mirrors.$archive.title url=mirrors.$archive.url IF archive && archive != main_archive %]
60 [%- PROCESS marker text=section title=section_titles.$section url=section_urls.$section IF section && section != main_section %]
61 [%- PROCESS marker text=g('essential') title=g('package manager will refuse to remove this package by default') url='http://www.debian.org/doc/debian-policy/ch-binary.html#s3.8' IF page.get_newest('essential') == 'yes' %]</h1>
62
63 [% UNLESS is_virtual %]
64 <div id="pmoreinfo">
65 <h2>[% g('Links for %s', pkg) %]</h2>
66 [% IF screenshots_url && screenshots_thumb_url && !is_source %]
67 <a id="screenshot" href="[% screenshots_url _ pkg %]"><img src="[% "$screenshots_thumb_url/$pkg/$version" %]" alt="Screenshot" border="0"/></a>
68 [% END %]
69 <h3>[% g('%s Resources:', organisation) %]</h3>
70 <ul>
71 <li><a href="[% launchpad_url _ (is_source ? pkg : src.pkg) _ '/+bugs' %]">[% g('Bug Reports') %]</a></li>
72
73 [% IF files && (!archive or archive == main_archive or archive == 'security') %]
74 <li><a href="[% changelogs_url _ files.changelog.path %]">[% g('%s Changelog', organisation) %]</a></li>
75 <li><a href="[% changelogs_url _ files.copyright.path %]">[% g('Copyright File') %]</a></li>
76 [% END %]
77
78 [% IF vcs_link %]
79 <li><a href="[% vcs_link %]" class="pvcslink">[% g('Debian Source Repository') %]</a>
80 [%- FOREACH vcs IN known_vcs;
81         vcs_id = vcs.0; vcs_name = vcs.1; vcs_pkg = vcs.2;
82         vcs_info = page.get_newest("vcs-$vcs_id");
83         SET vcs_info = page.get_newest("x-vcs-$vcs_id") UNLESS vcs_info;
84    IF vcs_info %]
85  (<a href="[% vcs_info %]" class="pvcslink">[% vcs_name %]</a>)
86 [% END; END -%]
87 </li>
88 [% END -%]
89
90 [% IF patch_tracking_url && src %]
91   [% FOREACH src.downloads %]
92     [% IF name.match('\.(debian\.tar|diff)\.(gz|xz|bz2|lzma)$') %]
93     <li><a href="[% "$patch_tracking_url/$src.pkg/$src.version" %]">[% g("%s Patch Tracker", organisation) %]</a></li>
94     [% END -%]
95   [% END -%]
96 [% ELSIF patch_tracking_url && is_source %]
97   [% FOREACH srcfiles %]
98     [% IF filename.match('\.(debian\.tar|diff)\.(gz|xz|bz2|lzma)$') %]
99     <li><a href="[% "$patch_tracking_url/$pkg/$version" %]">[% g("%s Patch Tracker", organisation) %]</a></li>
100     [% END -%]
101   [% END -%]
102 [% END -%]
103
104 </ul>
105
106 [% IF src %]
107   <p>[% g('Download Source Package <a href="%s">%s</a>:', src.url, src.pkg) %]
108   [% FOREACH src.downloads %]
109     [% '<ul>' IF loop.first %]
110     <li><a href="[% server _ path %]">[[% name %]]</a></li>
111     [% '</ul>' IF loop.last %]
112   [% END %]
113   [% IF src.downloads.size == 0 %]
114   [% g('Not found') %]
115   [% END %]
116 [% END %]
117
118 [%- BLOCK handle_maintainer;
119   mailarchiveurl = '';
120   IF (matches = mail.match('^(.*)@lists\.debian\.org$'));
121         mailarchiveurl = 'http://lists.debian.org/' _ uri_escape(matches.0) _ '/';
122   ELSIF (matches = mail.match('^(.*)@lists\.alioth\.debian\.org$'));
123         mailarchiveurl = 'http://lists.alioth.debian.org/pipermail/' _ uri_escape(matches.0) _ '/';
124   ELSIF (matches = mail.match('^(.*)@lists\.ubuntu\.com$'));
125         mailarchiveurl = 'http://lists.ubuntu.com/archives/' _ uri_escape(matches.0) _ '/';
126   END -%]
127   [% IF hide_mail %]
128         <li>[% name | html %]
129   [% ELSE %]
130         <li><a href="mailto:[% mail | html %]">[% name | html %]</a>
131   [% END %]
132         [%- IF mailarchiveurl %] (<a href="[% mailarchiveurl %]" title="[% g('Archive of the Maintainer Mailinglist') %]">[% g('Mail&nbsp;Archive') %]</a>)[% END %]
133         </li>
134 [% END -%]
135
136 [%- IF maintainers.size -%]
137 [% IF maintainers.size == 1 -%]
138   <h3>[% g('Maintainer:') %]</h3>
139 [%- ELSE -%]
140   <h3>[% g('Maintainers:') %]</h3>
141 [%- END %]
142 [%- FOREACH m IN maintainers;
143    '<ul>' IF loop.first;
144    PROCESS handle_maintainer name=m.name mail=m.mail;
145    '</ul>' IF loop.last;
146  END -%]
147 <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.',
148         "https://bugs.launchpad.net/ubuntu/+source/" _ (is_source ? pkg : src.pkg) _ "/+filebug",
149         "https://answers.launchpad.net/ubuntu/+source/" _ (is_source ? pkg : src.pkg) _ "/+addquestion") %]</p>
150 [%- END -%]
151
152 [%- IF original_maintainers.size -%]
153 [% IF original_maintainers.size == 1 -%]
154   <h3>[% g('Original Maintainer (usually from Debian):') %]</h3>
155 [%- ELSE -%]
156   <h3>[% g('Original Maintainers (usually from Debian):') %]</h3>
157 [%- END %]
158 [%- FOREACH m IN original_maintainers;
159    '<ul>' IF loop.first;
160    PROCESS handle_maintainer name=m.name mail=m.mail hide_mail=1;
161    '</ul>' IF loop.last;
162  END -%]
163 <p>[% g('It should generally not be necessary for users to contact the original maintainer.') %]</p>
164 [%- END -%]
165
166 [% url = page.get_newest('url');
167    SET url = page.get_newest('homepage') IF page.get_newest('homepage');
168    IF url %]
169 <h3>[% g('External Resources:') %]</h3>
170 <ul>
171 <li><a href="[% url | html %]">[% g('Homepage') %]</a> [[% extract_host(url) | html %]]</li>
172 </ul>
173 [% END %]
174
175 [% FOREACH sim IN similar %]
176         [% IF loop.first %]
177         <h3>[% g('Similar packages:') %]</h3>
178         <ul>
179         [% END %]
180         <li><a href="/[% sim %]">[% sim %]</a></li>
181         [% '</ul>' IF loop.last %]
182 [% END %]
183
184 </div> <!-- end pmoreinfo -->
185 [% END %]
186
187 [% IF suite == "experimental" || subsection == "debian-installer" %]
188 <div class="pconstantnag">
189 [% IF suite == "experimental" %]
190 [% changelog_link = 'changelog';
191    changelog_link = "$changelogs_url$files.changelog.path" %] 
192 <h2>[% g('Experimental package') %]</h2>
193 <p>[% g('Warning: This package is from the <strong>experimental</strong> distribution. That means it is likely unstable or buggy, and it may even cause data loss. Please be sure to consult the <a href="%s">changelog</a> and other possible documentation before using it.',
194         changelog_link) %]</p>
195 [% END %]
196 [% IF subsection == "debian-installer" %]
197 <h2>[% g('debian-installer udeb package') %]</h2>
198 <p>[% g('Warning: This package is intended for the use in building <a href="http://www.debian.org/devel/debian-installer">debian-installer</a> images only. Do not install it on a normal %s system.',
199         organisation ) %]</p>
200 [% END %]
201 </div>
202 [% END %]
203
204 <div id="ptablist">
205 </div>
206
207 [% IF desc %]
208 <div id="pdesctab">
209 [% UNLESS is_virtual %]
210 <div id="pdesc" [% "lang=\"$desclang\"" IF desclang != po_lang %]>
211         [% IF desc.$desclang.short %]
212         <h2>[% desc.$desclang.short %]</h2>
213         <p>[% desc.$desclang.long %]
214         [% END %]
215 [% ELSE %]
216 <div id="pdesc">
217         <p>[% g('This is a <em>virtual package</em>. See the <a href="%s">Debian policy</a> for a <a href="%sch-binary.html#s-virtual_pkg">definition of virtual packages</a>.',
218                 policy_url, policy_url) %]</p>
219 [% END %]
220 </div> <!-- end pdesc -->
221
222 [% FOREACH tag IN tags %]
223   [% IF loop.first -%]
224     <div id="ptags"><p>
225     <a href="[% tags_url %]edit.html?pkg=[% uri_escape(pkg) %]">[% g('Tags') %]</a>:
226   [%- END %]
227   [% facet = tag.0; lfacet = "$facet-$po_lang"; 
228      facet_name = debtags_voc.$lfacet;
229      SET facet_name = debtags_voc.$facet UNLESS facet_name;
230      tag_id = "$tag.0::$tag.1"; ltag = "$tag_id-$po_lang";
231      tag_name = debtags_voc.$ltag;
232      SET tag_name = debtags_voc.$tag_id UNLESS tag_name;
233    %]
234   [% facet_name _ ': ' UNLESS old_facet && facet == old_facet %]
235   [% IF tag_name %]
236    <a href="/about/debtags#[% string2id(tag_id) %]">[% tag_name | html %]</a>[% ', ' UNLESS loop.last %]
237   [% ELSE %]
238   [% tag_id %][% ', ' UNLESS loop.last %]
239   [% END %]
240   [% old_facet = facet %]
241   [% IF loop.last -%]
242     </p>
243     </div> <!-- end ptags -->
244   [%- END %]
245 [% END %]
246
247 [% FOREACH p IN providers %]
248   [% IF loop.first %]<div id="pdeps"><h2>[% g('Packages providing %s', pkg) %]</h2><dl>[% END %]
249     <dt>[% IF p.available %]<a href="[% make_url(p.name,'','source','') %]">[% p.name %]</a>[% ELSE; p.name; END %]</dt>
250     [% PROCESS desc_i18n_dd trans_desc=p.trans_desc desc=p.desc %]
251   [% '</dl></div>' IF loop.last %]
252 [% END %]
253 </div> <!-- pdesctab -->
254 [% END %]
255
256 [% FOREACH b IN binaries %]
257   [% IF loop.first %]<div id="pbinaries">[% g('The following binary packages are built from this source package:') %]<dl>[% END %]
258     <dt>[% IF b.available %]<a href="[% make_url(b.name,'','source','') %]">[% b.name %]</a>[% ELSE; b.name; END %]</dt>
259     [% PROCESS desc_i18n_dd trans_desc=b.trans_desc desc=b.desc %]
260   [% '</dl></div>' IF loop.last %]
261 [% END %]
262
263 [% FOREACH relations %]
264   [% IF loop.first -%]
265     <div id="pdeps">
266     <h2>[% g('Other Packages Related to %s', pkg) %]</h2>
267
268     <table id="pdeplegend" class="visual" summary="[% g('legend') %]"><tr>
269     [% IF is_source %]
270     <td><ul class="uladep"><li>[% g('build-depends') %]</li></ul></td>
271     <td><ul class="ulidep"><li>[% g('build-depends-indep') %]</li></ul></td>
272     [% ELSE %]
273     <td><ul class="uldep"><li>[% g('depends') %]</li></ul></td>
274     <td><ul class="ulrec"><li>[% g('recommends') %]</li></ul></td>
275     <td><ul class="ulsug"><li>[% g('suggests') %]</li></ul></td>
276     [% END %]
277     </tr></table>
278   [%- END %]
279
280   <ul class="ul[% id %]">
281   [% FOREACH t IN terms %]
282     [% '<li>' UNLESS t.is_old_pkgs %]
283     [% FOREACH a IN t.alternatives %]
284       [% '<dl>' IF loop.first %]
285       <dt>[% IF loop.first %]<span class="nonvisual">[% id %]:</span>[% ELSE %][% g('or ') %][% END %]
286         [% IF a.suite %]<a href="[% make_url(a.name,'','suite',a.suite,'source','') %]">[% a.name %]</a>[% ELSE %][% a.name %][% END %]
287         [% ' (' _ a.version _ ')' IF a.version %]
288         [% ' [' _ a.arch_str _ ']' IF a.arch_str %]</dt>
289       [%- IF !t.is_old_pkgs -%]
290         [% PROCESS desc_i18n_dd no_end_tag=1 trans_desc=a.trans_desc desc=a.desc -%]
291         [%- IF a.providers.pkgs && a.providers.pkgs.size > 0 -%]
292           [% IF a.providers.also;
293                 '<br>' _ g('also a virtual package provided by');
294              ELSE;
295                 g('virtual package provided by');
296              END; %]
297           [% js_id = a.name %]
298             <span id="js_[% js_id %]" class="p_js_elem"></span> <span id="html_[% js_id %]">[% FOREACH provider IN a.providers.pkgs.sort %]<a href="[% make_url(provider,'','suite',a.suite,'source','') %]">[% provider %]</a>[% ', ' UNLESS loop.last %][% END %]</span>
299         [% IF a.providers.pkgs.size > 10 %]
300         <script type="text/javascript">init_toggle_elem("[% js_id %]","[% g('show %u providing packages', a.providers.pkgs.size) %]", "[% g('hide %u providing packages', a.providers.pkgs.size) %]")</script>
301         [% END %]
302         [% END %]
303         </dd>
304       [% END %]
305       [% '</dl>' IF loop.last %]
306     [% END %]
307   [% END %]
308   </ul>
309
310   [% IF loop.last -%]
311     </div> <!-- end pdeps -->
312   [%- END %]
313 [% END %]
314
315 [% FOREACH d IN downloads %]
316   [% IF loop.first -%]
317     <div id="pdownload">
318     <h2>[% g('Download %s', pkg) %]</h2>
319     
320     <table summary="[% g('The download table links to the download of the package and a file overview. In addition it gives information about the package size and the installed size.') %]">
321     <caption class="hidecss">[% g('Download for all available architectures') %]</caption>
322     <tr><th>[% g('Architecture') %]</th>
323         [% '<th>'_ g('Version') _'</th>' IF versions.multiple %]
324         <th>[% g('Package Size') %]</th>
325         <th>[% g('Installed Size') %]</th>
326         <th>[% g('Files') %]</th>
327     </tr>
328   [%- END %]
329
330 <tr>
331 [% download_url = pkg _ '/download'
332    filelist_url = pkg _ '/filelist' %]
333 <th><a href="[% make_url(download_url,'','arch',d.arch) %]">[% d.arch %]</a>
334 [%- SET a = d.archive; IF mirrors.$a.unofficial_port  %] <strong>[% g('(unofficial port)') %]</strong>[% END %]</th>
335 [% vnorm = d.version.replace( '\+b\d+$', '' ); vlatest = version.replace( '\+b\d+$', '' );
336    vup = vnorm.replace( '-[^-]+$', '' ); vuplatest = vlatest.replace( '-[^-]+$', '' );
337    IF vnorm == vlatest;
338         version_class = 'vcurrent';
339    ELSIF vup == vuplatest;
340         version_class = 'volder';
341    ELSE;
342         version_class = 'vold';
343    END %]
344 [% "<td class='$version_class'>$d.version</td>" IF versions.multiple %]
345 <td class="size">[% g('%s&nbsp;kB', num.format_number(d.pkgsize,1)) %]</td><td class="size">[% g('%s&nbsp;kB', num.format_number(d.instsize,1)) %]</td>
346 <td>
347 [% IF d.contents_avail %]
348   [<a href="[% make_url(filelist_url,'','arch',d.arch) %]">[% g('list of files') %]</a>]
349 [% ELSE %]
350   [% g('no current information') %]
351 [% END %]
352 </td>
353 </tr>
354
355   [% IF loop.last -%]
356     </table>
357
358     </div> <!-- end pdownload -->
359   [%- END %]
360 [% END %]
361
362 [% FOREACH srcfiles %]
363   [% IF loop.first -%]
364     <div id="pdownload">
365     <h2>Download [% pkg %]</h2>
366     
367     <table summary="[% g('Download information for the files of this source package') %]">
368     <tr><th>[% g('File') %]</th><th>[% g('Size (in kB)') %]</th><th>[% g('MD5 checksum') %]</th></tr>
369   [%- END %]
370
371 <tr>
372 <td><a href="[% server _ path %]">[% filename %]</a></td>
373 <td>[% g('%s&nbsp;kB', num.format_number(size,1)) %]</td>
374 <td class="md5sum">[% md5sum %]</td>
375 </tr>
376
377   [% IF loop.last -%]
378     </table>
379
380 [% FOREACH vcs IN known_vcs;
381         vcs_id = vcs.0; vcs_name = vcs.1; vcs_pkg = vcs.2;
382         vcs_info = page.get_newest("vcs-$vcs_id");
383         SET vcs_info = page.get_newest("x-vcs-$vcs_id") UNLESS vcs_info;
384         LAST IF vcs_info;
385    END;
386    IF vcs_info || vcs_link; %]
387 <dl>
388 [% IF vcs_info %]
389 <dt>[% g('Debian Package Source Repository (<acronym title="Version Control System">VCS</acronym>: <a href="%s">%s</a>)',
390         make_url(vcs_pkg,'','source',''), vcs_name ) %]</dt>
391 <dd><a href="[% vcs_info %]" class="pvcslink">[% vcs_info %]</a></dd>
392 [% END;
393    IF vcs_link %]
394 <dt>[% g('Debian Package Source Repository (Browsable)') %]</dt>
395 <dd><a href="[% vcs_link %]" class="pvcslink">[% vcs_link %]</a></dd>
396 [% END %]
397 </dl>
398 [% END %]
399
400     </div> <!-- end pdownload -->
401   [%- END %]
402 [% END %]
403
404 [%# <script type="text/javascript">init_tab_list("ptablist")</script> %]
405
406 [%- PROCESS 'html/foot.tmpl' page_name=pkg -%]