| 1 |
igenibel |
358 |
#use wml::templ::template title="Debian Developer's Packages Overview" author="Igor Genibel" |
| 2 |
|
|
|
| 3 |
joy |
365 |
# +-------------------------------------------------------------------------+ |
| 4 |
|
|
# | Copyright (C) 2002 Igor Genibel | |
| 5 |
|
|
# | | |
| 6 |
|
|
# | This program is free software; you can redistribute it and/or | |
| 7 |
|
|
# | modify it under the terms of the GNU General Public License | |
| 8 |
|
|
# | as published by the Free Software Foundation; either version 2 | |
| 9 |
|
|
# | of the License, or (at your option) any later version. | |
| 10 |
|
|
# | | |
| 11 |
|
|
# | This program is distributed in the hope that it will be useful, | |
| 12 |
|
|
# | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 |
|
|
# | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 |
|
|
# | GNU General Public License for more details. | |
| 15 |
|
|
# +-------------------------------------------------------------------------+ |
| 16 |
|
|
# | This code is currently maintained and debugged by Igor Genibel, any | |
| 17 |
|
|
# | questions or comments regarding this code should be directed to: | |
| 18 |
|
|
# | - igor@genibel.org | |
| 19 |
|
|
# +-------------------------------------------------------------------------+ |
| 20 |
|
|
# | - Igor Genibel - http://genibel.org/ | |
| 21 |
|
|
# | $Id$ |
| 22 |
|
|
# +-------------------------------------------------------------------------+ |
| 23 |
|
|
|
| 24 |
igenibel |
617 |
<style type="text/css"> |
| 25 |
|
|
a.dash:link,a.dash:visited,a.dash:active { |
| 26 |
|
|
text-decoration: none; |
| 27 |
|
|
} |
| 28 |
|
|
</style> |
| 29 |
|
|
|
| 30 |
igenibel |
358 |
<? |
| 31 |
|
|
|
| 32 |
|
|
$branch = array ("main", |
| 33 |
|
|
"contrib", |
| 34 |
|
|
"non-free", |
| 35 |
|
|
"non-US/main", |
| 36 |
|
|
"non-US/contrib", |
| 37 |
|
|
"non-US/non-free" ); |
| 38 |
|
|
|
| 39 |
|
|
setlocale(LC_ALL, 'fr_FR'); |
| 40 |
|
|
|
| 41 |
|
|
$prefix="/org/qa.debian.org/data/ddpo/results"; |
| 42 |
|
|
#$prefix="/home/igenibel/qa.debian.org/data/ddpo/results"; |
| 43 |
|
|
|
| 44 |
igenibel |
634 |
function bug_display($bug_number, $base_url) |
| 45 |
igenibel |
615 |
{ |
| 46 |
igenibel |
634 |
$bug_link=""; |
| 47 |
igenibel |
615 |
preg_match("/(\d+)\((\d+)\)/", $bug_number, $result); |
| 48 |
|
|
if (strcmp($result[1], $result[2]) == 0) |
| 49 |
|
|
{ |
| 50 |
igenibel |
634 |
$bug_link = "<a class=\"a\" href=\"$base_url\">$result[1]</a>"; |
| 51 |
igenibel |
615 |
}else{ |
| 52 |
igenibel |
634 |
$bug_link = "<a class=\"a\" href=\"${base_url}&repeatmerged=no\">$result[1]</a> <a class=\"a\" href=\"${base_url}&repeatmerged=yes\">($result[2])</a>"; |
| 53 |
igenibel |
615 |
} |
| 54 |
igenibel |
634 |
return $bug_link; |
| 55 |
igenibel |
615 |
} |
| 56 |
|
|
|
| 57 |
igenibel |
358 |
function printBackLink() { |
| 58 |
|
|
?> |
| 59 |
|
|
<p><a href="developer.php">Back to main page</a></p> |
| 60 |
|
|
<? |
| 61 |
|
|
} |
| 62 |
|
|
|
| 63 |
|
|
function print_header_entries_top($keys, $name) |
| 64 |
|
|
{ |
| 65 |
|
|
?> |
| 66 |
joy |
366 |
<h1 align="center">Packages overview for <?print $name?></h1> |
| 67 |
igenibel |
358 |
|
| 68 |
joy |
366 |
<p><strong>General information:</strong></p> |
| 69 |
igenibel |
358 |
<? |
| 70 |
|
|
if ($keys == "NOID") { |
| 71 |
|
|
?> |
| 72 |
joy |
366 |
<p><font size="+1" color="red">GPG key id not found!</font> |
| 73 |
|
|
<font size="-2">(key id was not found neither in the Debian keyring |
| 74 |
|
|
nor on a public keyserver)</font></p> |
| 75 |
igenibel |
358 |
<? |
| 76 |
|
|
}else{ |
| 77 |
|
|
foreach (explode(",", $keys) as $key) { |
| 78 |
|
|
?> |
| 79 |
joy |
370 |
<small>GPG key id: <a href="developer.php?gpg_key=<?print $key?>"><?print $key?></a></small><br> |
| 80 |
igenibel |
358 |
<? |
| 81 |
|
|
} |
| 82 |
|
|
} |
| 83 |
|
|
} |
| 84 |
|
|
|
| 85 |
|
|
function print_header_entries_body($login, $key, $name) |
| 86 |
|
|
{ |
| 87 |
igenibel |
611 |
global $prefix; |
| 88 |
igenibel |
410 |
$lintian = preg_replace("/[\s-\"í'å]/", "_", $name); |
| 89 |
igenibel |
611 |
$fp = fopen("$prefix/../../ftp/Maintainers", "r"); |
| 90 |
|
|
$ok = 0; |
| 91 |
|
|
while(!feof($fp)) { |
| 92 |
|
|
$line = fgets($fp, "10240"); |
| 93 |
|
|
if (preg_match("/$login/", $line)) { |
| 94 |
|
|
$ok = 1; |
| 95 |
|
|
if (preg_match("/$login \(/", $line)) { |
| 96 |
|
|
$buildd=urlencode("$login ($name) "); |
| 97 |
|
|
}else{ |
| 98 |
|
|
$buildd=urlencode("$name <$login> "); |
| 99 |
|
|
} |
| 100 |
|
|
} |
| 101 |
|
|
if ($ok == 1 ) { |
| 102 |
|
|
break; |
| 103 |
|
|
} |
| 104 |
|
|
} |
| 105 |
|
|
fclose($fp); |
| 106 |
igenibel |
358 |
?> |
| 107 |
joy |
370 |
<small> |
| 108 |
cjwatson |
596 |
<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=maint&data=<? print $login ?>&archive=no&raw=yes&bug-rev=yes&pend-exc=fixed&pend-exc=done">Non-fixed bugs, most recent first</a><br> |
| 109 |
igenibel |
358 |
<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=<?print $login?>">All bugs related to <<?print $login?>></a><br> |
| 110 |
cjwatson |
596 |
<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=maint&data=<?print rawurlencode($login)?>&archive=no&pend-exc=done&sev-inc=critical&sev-inc=grave&sev-inc=serious">RC Bugs related to <<?print $login?>></a><br> |
| 111 |
igenibel |
358 |
<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?submitter=<?print $login?>">All bugs submitted by <<?print $login?>></a><br> |
| 112 |
|
|
<a href="http://lintian.debian.org/reports/m<?print $lintian?>.html">Lintian report</a><br> |
| 113 |
joy |
420 |
<a href="http://buildd.debian.org/bymaint.php?maint=<?print "$buildd"?>">Buildd report</a><br> |
| 114 |
cjwatson |
596 |
<a href="http://www.debian.gr.jp/~kitame/maint.cgi?num=srcs&limit=0&showpkgs=on&maint=<?print "$login"?>">Bug statistics</a><br> |
| 115 |
joy |
370 |
</small> |
| 116 |
igenibel |
358 |
|
| 117 |
|
|
<hr> |
| 118 |
joy |
370 |
<small> |
| 119 |
igenibel |
610 |
<b>Packages in <font color="blue">blue</font> are packages that are co-maintained by developer (reference to Uploaders: field)</b><br> |
| 120 |
joy |
367 |
<b>Packages version in <font color="red">red</font> are NMUed</b><br> |
| 121 |
igenibel |
615 |
<b>Packages where testing version in <font color="#ff00ff">magenta</font> are those where the unstable version differs from the version in testing</b><br><br> |
| 122 |
joy |
637 |
<b><u>The real number of bugs is displayed in each bugs column. |
| 123 |
|
|
If there are any merged bugs, the total is displayed within parenthesis.</u></b> |
| 124 |
joy |
370 |
</small> |
| 125 |
igenibel |
358 |
<? |
| 126 |
|
|
} |
| 127 |
|
|
|
| 128 |
|
|
# |
| 129 |
|
|
# print info for not found developer |
| 130 |
|
|
# |
| 131 |
|
|
|
| 132 |
|
|
function print_notfound($login) |
| 133 |
|
|
{ |
| 134 |
|
|
print "<h2>No information available for $login</h2>"; |
| 135 |
|
|
} |
| 136 |
|
|
|
| 137 |
|
|
|
| 138 |
|
|
# |
| 139 |
|
|
# print the form because no login provided |
| 140 |
|
|
# |
| 141 |
|
|
|
| 142 |
|
|
function print_form() |
| 143 |
|
|
{ |
| 144 |
|
|
?> |
| 145 |
joy |
366 |
|
| 146 |
|
|
<h1>Debian Developer's Packages Overview</h1> |
| 147 |
|
|
|
| 148 |
|
|
<p>Use the following search forms to determine the Debian developer whose |
| 149 |
|
|
packages overview you wish to see:</p> |
| 150 |
|
|
|
| 151 |
|
|
<p>Search based on the <tt>Maintainer</tt> field in packages: |
| 152 |
igenibel |
358 |
<form method="GET" action="developer.php"> |
| 153 |
|
|
<input size="30" maxsize="40" type="text" limit="16" name="login" value=""> |
| 154 |
joy |
366 |
<input type="submit" value="Find"> |
| 155 |
|
|
</form> |
| 156 |
|
|
<small> |
| 157 |
joy |
386 |
If a single username is provided, @debian.org is automatically appended. |
| 158 |
joy |
390 |
<br> |
| 159 |
|
|
If you start with an uppercase letter or type two words, it is assumed that |
| 160 |
joy |
386 |
you want to do a (partial) match on the maintainer name. |
| 161 |
joy |
366 |
</small> |
| 162 |
|
|
|
| 163 |
|
|
<p>Search based on a GPG key ID: |
| 164 |
igenibel |
358 |
<form method="GET" action="developer.php"> |
| 165 |
|
|
<input size="8" maxsize="8" type="text" limit="8" name="gpg_key" value=""> |
| 166 |
joy |
366 |
<input type="submit" value="Find"> |
| 167 |
|
|
</form> |
| 168 |
|
|
|
| 169 |
|
|
<p>Search based on a source package name: |
| 170 |
igenibel |
358 |
<form method="GET" action="developer.php"> |
| 171 |
|
|
<input size="20" maxsize="30" type="text" limit="20" name="package" value=""> |
| 172 |
|
|
<input type="submit" value="Go"> |
| 173 |
|
|
</form> |
| 174 |
joy |
366 |
|
| 175 |
igenibel |
358 |
<? |
| 176 |
|
|
} |
| 177 |
|
|
|
| 178 |
|
|
|
| 179 |
|
|
function print_query_all() |
| 180 |
|
|
{ |
| 181 |
|
|
?> |
| 182 |
joy |
366 |
|
| 183 |
|
|
<p>Do you want to see the complete, sorted list of developers? |
| 184 |
|
|
<strong>(>200kb!)</strong> |
| 185 |
igenibel |
358 |
<form method="POST" action="developer.php"> |
| 186 |
|
|
<input type="hidden" name="all" value="1"> |
| 187 |
joy |
366 |
<input type="submit" value="Show the list"> |
| 188 |
igenibel |
358 |
</form> |
| 189 |
|
|
|
| 190 |
|
|
<? |
| 191 |
|
|
} |
| 192 |
|
|
|
| 193 |
|
|
function print_all() |
| 194 |
|
|
{ |
| 195 |
|
|
global $prefix; |
| 196 |
|
|
$fp = fopen("$prefix/extract", "r"); |
| 197 |
|
|
?> |
| 198 |
|
|
|
| 199 |
joy |
369 |
<hr> |
| 200 |
|
|
|
| 201 |
|
|
<h2>Sorted developer list</h2> |
| 202 |
|
|
|
| 203 |
igenibel |
358 |
<table width="100%" border="1"> |
| 204 |
|
|
<tr align="center"> |
| 205 |
|
|
<td width="60%"> |
| 206 |
|
|
<b>Name and email</b> |
| 207 |
|
|
</td> |
| 208 |
|
|
<td> |
| 209 |
|
|
<b>main</b> |
| 210 |
|
|
</td> |
| 211 |
|
|
<td> |
| 212 |
|
|
<b>non-US</b> |
| 213 |
|
|
</td> |
| 214 |
|
|
<td> |
| 215 |
cjwatson |
596 |
<b>Other <font size="-3" color="blue"><br>all contrib &<br>non-free<br>packages</font></b> |
| 216 |
igenibel |
358 |
</td> |
| 217 |
|
|
<td> |
| 218 |
|
|
<b>Total</b> |
| 219 |
|
|
</td> |
| 220 |
|
|
</tr> |
| 221 |
|
|
|
| 222 |
|
|
<? |
| 223 |
|
|
while(!feof($fp)) { |
| 224 |
|
|
$line = fgets($fp, "10240"); |
| 225 |
|
|
if($line != "") { |
| 226 |
|
|
$count = 0; |
| 227 |
|
|
$line = preg_replace("/, /", ",", $line); |
| 228 |
|
|
preg_match("/;(.+?);(.+?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*)$/", $line, $info_array); |
| 229 |
|
|
print '<tr align="center">'; |
| 230 |
|
|
print '<td width="15%">'; |
| 231 |
|
|
print "<b><a href=\"$index_page?login=$info_array[1]\">$info_array[3] <$info_array[1]></a></b>"; |
| 232 |
|
|
print '</td>'; |
| 233 |
|
|
$main = 0; |
| 234 |
|
|
$nonUS = 0; |
| 235 |
|
|
$other = 0; |
| 236 |
|
|
if($info_array[4] != "") { |
| 237 |
|
|
$main += count(explode(" ", $info_array[4])); |
| 238 |
|
|
$count += count(explode(" ", $info_array[4])); |
| 239 |
|
|
} |
| 240 |
|
|
if($info_array[5] != "") { |
| 241 |
|
|
$other += count(explode(" ", $info_array[5])); |
| 242 |
|
|
$count += count(explode(" ", $info_array[5])); |
| 243 |
|
|
} |
| 244 |
|
|
if($info_array[6] != "") { |
| 245 |
|
|
$nonUS += count(explode(" ", $info_array[6])); |
| 246 |
|
|
$count += count(explode(" ", $info_array[6])); |
| 247 |
|
|
} |
| 248 |
|
|
if($info_array[7] != "") { |
| 249 |
|
|
$other += count(explode(" ", $info_array[7])); |
| 250 |
|
|
$count += count(explode(" ", $info_array[7])); |
| 251 |
|
|
} |
| 252 |
|
|
if($info_array[8] != "") { |
| 253 |
|
|
$other += count(explode(" ", $info_array[8])); |
| 254 |
|
|
$count += count(explode(" ", $info_array[8])); |
| 255 |
|
|
} |
| 256 |
|
|
if($info_array[9] != "") { |
| 257 |
|
|
$other += count(explode(" ", $info_array[9])); |
| 258 |
|
|
$count += count(explode(" ", $info_array[9])); |
| 259 |
|
|
} |
| 260 |
|
|
|
| 261 |
|
|
?> |
| 262 |
|
|
<td><? print $main?></td> |
| 263 |
|
|
<td><? print $nonUS?></td> |
| 264 |
|
|
<td><? print $other?></td> |
| 265 |
|
|
<td><b><? print $count?></b></td> |
| 266 |
|
|
</tr> |
| 267 |
|
|
<? |
| 268 |
|
|
} |
| 269 |
|
|
} |
| 270 |
|
|
print '</table>'; |
| 271 |
|
|
} |
| 272 |
|
|
|
| 273 |
|
|
function get_rep($package_name) |
| 274 |
|
|
{ |
| 275 |
|
|
if(preg_match("/^lib/", $package_name)) { |
| 276 |
|
|
return substr($package_name, 0, 4); |
| 277 |
|
|
}else{ |
| 278 |
|
|
return substr($package_name, 0, 1); |
| 279 |
|
|
} |
| 280 |
|
|
} |
| 281 |
|
|
|
| 282 |
weasel |
362 |
# Check whether there is a debcheck entry for that package |
| 283 |
|
|
function debcheckavailable($branch, $package_name) { |
| 284 |
|
|
$package = ereg_replace ("\.", "_", $package_name); |
| 285 |
|
|
if (ereg ("[^a-zA-Z0-9+_-]", $package) || |
| 286 |
|
|
($branch != "oldstable" && $branch != "stable" && $branch != "testing" && $branch != "unstable")) { |
| 287 |
|
|
return 0; |
| 288 |
|
|
} |
| 289 |
|
|
$BASEDIR='/org/qa.debian.org/data/debcheck/result/'; |
| 290 |
|
|
return file_exists($BASEDIR.'/'.$branch.'/packages/'.$package); |
| 291 |
|
|
} |
| 292 |
|
|
|
| 293 |
igenibel |
358 |
# |
| 294 |
|
|
# This function print a package table information for specific branch |
| 295 |
|
|
# given in argument |
| 296 |
|
|
# |
| 297 |
|
|
function print_package_entries($branch, $packages) |
| 298 |
|
|
{ |
| 299 |
|
|
|
| 300 |
|
|
$packages = preg_replace ("/, /", ",", $packages); |
| 301 |
|
|
$pack_array = split(" ", $packages); |
| 302 |
|
|
|
| 303 |
|
|
?> |
| 304 |
joy |
369 |
|
| 305 |
joy |
418 |
<h3>Packages in <em><?print $branch?></em> (<?print count($pack_array)?>)</h3> |
| 306 |
joy |
369 |
|
| 307 |
joy |
370 |
<table width="100%" border="1" cellpadding="3" cellspacing="1"> |
| 308 |
igenibel |
358 |
<tr align="center"> |
| 309 |
joy |
369 |
<th rowspan="2"><small><font color="green">Source Name</font></small></th> |
| 310 |
igenibel |
615 |
<th rowspan="1" colspan="5"><small><font color="green">Bugs(see above)</font></small></th> |
| 311 |
igenibel |
537 |
<th rowspan="1" colspan="5"><small><font color="green">Version</font></small></th> |
| 312 |
joy |
369 |
<th rowspan="1" colspan="2"><small><font color="green">Security</font></small></th> |
| 313 |
|
|
<th rowspan="2"><small><font color="green">Binary<br> Package Page</font></small></th> |
| 314 |
|
|
<th rowspan="2"><small><font color="green">Buildd</font></small></th> |
| 315 |
|
|
<th rowspan="2"><small><font color="green">Excuses</font></small></th> |
| 316 |
|
|
<th rowspan="1" colspan="3"><small><font color="green">Broken dependencies</font></small></th> |
| 317 |
|
|
<th rowspan="2"><small><font color="green">Section</font></small></th> |
| 318 |
|
|
<th rowspan="2"><small><font color="green">Priority</font></small></th> |
| 319 |
|
|
<th rowspan="2"><small><font color="green">Pool</font></small></th> |
| 320 |
igenibel |
409 |
<th rowspan="1" colspan="3"><small><font color="green"><a href="http://www.debian.org/devel/testing">Uninstallable</a></font></small></th> |
| 321 |
igenibel |
358 |
</tr> |
| 322 |
|
|
<tr align="center"> |
| 323 |
cjwatson |
595 |
<th><small><u><font color="green"><span title="All opened bugs">All</span></font></u></small></th> |
| 324 |
|
|
<th><small><u><font color="green"><span title="Release Critical bugs">RC</span></font></u></small></th> |
| 325 |
cjwatson |
596 |
<th><small><u><font color="green"><span title="Important & Normal bugs">I&N</span></font></u></small></th> |
| 326 |
|
|
<th><small><u><font color="green"><span title="Minor & Wishlist bugs">M&W</span></font></u></small></th> |
| 327 |
|
|
<th><small><u><font color="green"><span title="Fixed & Pending bugs">F&P</span></font></u></small></th> |
| 328 |
joy |
369 |
<th><small><font color="green">Stable</font></small></th> |
| 329 |
|
|
<th><small><font color="green">Testing</font></small></th> |
| 330 |
|
|
<th><small><font color="green">Unstable</font></small></th> |
| 331 |
cjwatson |
595 |
<th><small><u><font color="green"><span title="Stable Proposed updates">Prop. Up.</span></font></u></small></th> |
| 332 |
joy |
369 |
<th><small><font color="green">Exp.</font></small></th> |
| 333 |
|
|
<th><small><font color="green">Stable</font></small></th> |
| 334 |
|
|
<th><small><font color="green">Testing</font></small></th> |
| 335 |
|
|
<th><small><font color="green">Stable</font></small></th> |
| 336 |
|
|
<th><small><font color="green">Testing</font></small></th> |
| 337 |
|
|
<th><small><font color="green">Unstable</font></small></th> |
| 338 |
|
|
<th><small><font color="green">Stable</font></small></th> |
| 339 |
|
|
<th><small><font color="green">Testing</font></small></th> |
| 340 |
|
|
<th><small><font color="green">Unstable</font></small></th> |
| 341 |
igenibel |
358 |
</tr> |
| 342 |
|
|
<? |
| 343 |
|
|
foreach ($pack_array as $package) |
| 344 |
|
|
{ |
| 345 |
|
|
global $prefix; |
| 346 |
|
|
# print "<<< $package >>>"; |
| 347 |
|
|
# $upstream = $package[1]; |
| 348 |
|
|
preg_match("/(.+)\((.+)\)/", $package, $result); |
| 349 |
|
|
$list = split (",", $result[2]); |
| 350 |
|
|
$package_name = $result[1]; |
| 351 |
|
|
if(preg_match("/#/", $package)) { |
| 352 |
|
|
$uploader = 1; |
| 353 |
|
|
$package = preg_replace("/#/", "", $package); |
| 354 |
|
|
} |
| 355 |
|
|
if(preg_match("/%/", $package)) { |
| 356 |
|
|
$all = 1; |
| 357 |
|
|
$package = preg_replace("/%/", "", $package); |
| 358 |
|
|
} |
| 359 |
igenibel |
550 |
preg_match("/(.+?)\[(.+)\]\{(.+)\}\{(.+)\}\{(.+)\}\|(.*)\|:(.*):/", $package, $results); |
| 360 |
igenibel |
358 |
$package = $package_name; |
| 361 |
|
|
$version = $results[2]; |
| 362 |
|
|
$versions = explode (",", $version); |
| 363 |
|
|
$version_stable = $versions[0]; |
| 364 |
|
|
$version_testing = $versions[1]; |
| 365 |
|
|
$version_unstable = $versions[2]; |
| 366 |
igenibel |
537 |
$version_prop = $versions[3]; |
| 367 |
|
|
$version_experimental = $versions[4]; |
| 368 |
|
|
$security_stable = $versions[5]; |
| 369 |
|
|
$security_testing = $versions[6]; |
| 370 |
igenibel |
358 |
$uninstalable_stable = preg_replace("/,/", " ", $results[3]); |
| 371 |
|
|
$uninstalable_testing = preg_replace("/,/", " ", $results[4]); |
| 372 |
|
|
$uninstalable_unstable = preg_replace("/,/", " ", $results[5]); |
| 373 |
|
|
$priority = $results[6]; |
| 374 |
|
|
$section = $results[7]; |
| 375 |
|
|
|
| 376 |
|
|
$fp = fopen("$prefix/bugs.txt", "r"); |
| 377 |
igenibel |
615 |
$bug_list = explode(" ", "0(0) 0(0) 0(0) 0(0)"); |
| 378 |
igenibel |
358 |
$temp = preg_replace("/\+/", "_", $package); |
| 379 |
|
|
while(!feof($fp)) { |
| 380 |
|
|
$line = fgets($fp, "512"); |
| 381 |
|
|
$line = preg_replace("/\+/", "_", $line); |
| 382 |
igenibel |
615 |
if(preg_match("/^$temp\s+(\d+\(\d+\)\s\d+\(\d+\)\s\d+\(\d+\)\s\d+\(\d+\))/", $line, $results)) { |
| 383 |
igenibel |
358 |
$bug_list = explode(" ", $results[1]); |
| 384 |
|
|
break; |
| 385 |
|
|
} |
| 386 |
|
|
} |
| 387 |
|
|
fclose($fp); |
| 388 |
|
|
|
| 389 |
weasel |
362 |
if(strcmp($version_stable, "-") == 0 || !debcheckavailable('stable', $package)) { |
| 390 |
joy |
370 |
$stable_dep = "<small>-</small>"; |
| 391 |
igenibel |
358 |
}else{ |
| 392 |
cjwatson |
596 |
$stable_dep = '<small><a href="http://qa.debian.org/debcheck.php?dist=stable&package=' . rawurlencode($package) .'">Stable</a></small>'; |
| 393 |
igenibel |
358 |
} |
| 394 |
|
|
|
| 395 |
weasel |
362 |
if(strcmp($version_testing, "-")== 0 || !debcheckavailable('testing', $package)) { |
| 396 |
joy |
370 |
$testing_dep = "<small>-</small>"; |
| 397 |
igenibel |
358 |
}else{ |
| 398 |
cjwatson |
596 |
$testing_dep = '<small><a href="http://qa.debian.org/debcheck.php?dist=testing&package=' . rawurlencode($package) .'">Testing</a></small>'; |
| 399 |
igenibel |
358 |
} |
| 400 |
|
|
|
| 401 |
|
|
$buildd = "http://buildd.debian.org/build.php?pkg=".$package; |
| 402 |
|
|
if(preg_match("/non-US/", $branch)) { |
| 403 |
|
|
$pool = "http://non-us.debian.org/debian-non-US/pool/". $branch . "/" .get_rep($package) . "/" . $package . "/"; |
| 404 |
|
|
}else{ |
| 405 |
joy |
385 |
$pool = "http://ftp.debian.org/debian/pool/". $branch . "/" .get_rep($package) . "/" . $package . "/"; |
| 406 |
igenibel |
358 |
} |
| 407 |
|
|
|
| 408 |
weasel |
362 |
if(strcmp($version_unstable, "-")== 0 || !debcheckavailable('unstable', $package)) { |
| 409 |
joy |
370 |
$sid_dep = "<small>-</small>"; |
| 410 |
weasel |
362 |
}else{ |
| 411 |
cjwatson |
596 |
$sid_dep = '<small><a href="http://qa.debian.org/debcheck.php?dist=unstable&package=' . rawurlencode($package) . '">Unstable</a></small>'; |
| 412 |
weasel |
362 |
} |
| 413 |
igenibel |
358 |
$char = substr($package, 0, 1); |
| 414 |
|
|
if(file_exists("$prefix/excuses/$char/$package")) { |
| 415 |
|
|
$excuse = "<a href=\"developer.php?excuse=$package\">Excuses</a>"; |
| 416 |
|
|
}else{ |
| 417 |
igenibel |
409 |
$excuse = "-"; |
| 418 |
igenibel |
358 |
} |
| 419 |
igenibel |
537 |
if(strcmp($version_prop, "-")) { |
| 420 |
|
|
$version_prop = '<font color="#2222AA"><b>' . $version_prop . '</b></font>'; |
| 421 |
|
|
} |
| 422 |
|
|
$prop = '<td rowspan="1" colspan="1"><small>' . $version_prop . '</small></td>'; |
| 423 |
igenibel |
358 |
if(strcmp($version_experimental, "-")) { |
| 424 |
|
|
$version_experimental = '<font color="2222AA"><b>' . $version_experimental . '</b></font>'; |
| 425 |
|
|
} |
| 426 |
joy |
370 |
$experimental = '<td rowspan="1" colspan="1"><small>' . $version_experimental . '</small></td>'; |
| 427 |
igenibel |
358 |
|
| 428 |
|
|
|
| 429 |
|
|
if((strcmp ($version_stable, $version_testing) == 0) && |
| 430 |
|
|
(strcmp ($version_stable, "/") != 0)) { |
| 431 |
igenibel |
537 |
if((strcmp ($version_unstable, $version_testing) == 0)) { |
| 432 |
|
|
$version_print = '<td rowspan="1" colspan="3"><small>' . $version_stable . '</small></td>' .$prop .$experimental; |
| 433 |
igenibel |
358 |
}else{ |
| 434 |
igenibel |
598 |
$version_print = '<td rowspan="1" colspan="2"><small><font color="#ff00ff">' . $version_stable . '</font></small></td><td rowspan="1" colspan="1"><small>' . $version_unstable . '</small></td>' . $prop .$experimental; |
| 435 |
igenibel |
358 |
} |
| 436 |
|
|
$ver = explode("-", $version_unstable); |
| 437 |
|
|
if((preg_match("/(.+\..+?)$/", $ver[count($ver) - 1], $toto)) && (count($ver) != 1)) |
| 438 |
|
|
{ |
| 439 |
|
|
$version_print = preg_replace("/$version_unstable/", "<font color=\"red\">$version_unstable</font>", $version_print); |
| 440 |
|
|
} |
| 441 |
|
|
}else if(strcmp ($version_testing, $version_unstable) == 0) { |
| 442 |
|
|
if(strcmp($version_stable, "/") != 0) { |
| 443 |
igenibel |
408 |
$version_stable = '<font color="#00AADD">'.$version_stable.'</font>'; |
| 444 |
igenibel |
358 |
} |
| 445 |
igenibel |
537 |
$version_print = '<td><small>'.$version_stable.'</small></td><td rowspan="1" colspan="2"><small>' . $version_testing .'</small></td>' .$prop . $experimental; |
| 446 |
igenibel |
358 |
$ver = explode("-", $version_unstable); |
| 447 |
|
|
if((preg_match("/(.+\..+?)$/", $ver[count($ver) - 1], $toto)) && (count($ver) != 1)) |
| 448 |
|
|
{ |
| 449 |
|
|
$version_print = preg_replace("/$version_unstable/", "<font color=\"red\">$version_unstable</font>", $version_print); |
| 450 |
|
|
} |
| 451 |
|
|
}else { |
| 452 |
|
|
if(strcmp($version_stable, "/") != 0) { |
| 453 |
joy |
370 |
$version_stable = '<small><font color="#00AADD">'.$version_stable.'</font></small>'; |
| 454 |
igenibel |
358 |
}else{ |
| 455 |
joy |
370 |
$version_stable = '<small>'.$version_stable.'</small>'; |
| 456 |
igenibel |
537 |
} |
| 457 |
|
|
$version_print = '<td>' . $version_stable . '</td><td><small><font color="#ff00ff">'.$version_testing . '</font></small></td><td><small>'.$version_unstable.'</small></td>' . $prop .$experimental; |
| 458 |
igenibel |
358 |
$ver = explode("-", $version_unstable); |
| 459 |
|
|
if((preg_match("/(.+\..+?)$/", $ver[count($ver) - 1], $toto)) && (count($ver) != 1)) |
| 460 |
|
|
{ |
| 461 |
|
|
$version_print = preg_replace("/$version_unstable/", "<font color=\"red\">$version_unstable</font>", $version_print); |
| 462 |
|
|
} |
| 463 |
|
|
} |
| 464 |
|
|
|
| 465 |
igenibel |
627 |
if ($background == 1) { |
| 466 |
|
|
print '<tr align="center">'; |
| 467 |
|
|
$background=0; |
| 468 |
|
|
}else{ |
| 469 |
|
|
print '<tr align="center" bgcolor="#dcdcdc">'; |
| 470 |
|
|
$background=1; |
| 471 |
|
|
} |
| 472 |
igenibel |
358 |
?> |
| 473 |
|
|
<td width="15%"> |
| 474 |
joy |
370 |
<small> |
| 475 |
igenibel |
358 |
<? |
| 476 |
joy |
370 |
if ($uploader == 1) { |
| 477 |
|
|
print '<font color="blue">'; |
| 478 |
|
|
} |
| 479 |
igenibel |
392 |
print "<b>$package</b><a href=\"http://packages.qa.debian.org/".get_rep($package)."/$package.html\">[pts]</a>"; |
| 480 |
joy |
370 |
if ($uploader == 1) { |
| 481 |
|
|
print '</font>'; |
| 482 |
igenibel |
358 |
$uploader = 0; |
| 483 |
|
|
} |
| 484 |
joy |
370 |
?> |
| 485 |
|
|
</small> |
| 486 |
|
|
</td> |
| 487 |
igenibel |
358 |
<td> |
| 488 |
joy |
370 |
<small> |
| 489 |
igenibel |
358 |
<? |
| 490 |
igenibel |
634 |
$bugs = "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=". rawurlencode($package)."&archive=no&pend-exc=pending-fixed&pend-exc=fixed&pend-exc=done"; |
| 491 |
|
|
$nobugs = "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=". rawurlencode($package)."&archive=no"; |
| 492 |
igenibel |
358 |
$bugs_all = "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=". rawurlencode($package); |
| 493 |
|
|
$bug_count = $bug_list[0] + $bug_list[1] + $bug_list[2] + $bug_list[3]; |
| 494 |
igenibel |
615 |
$real_bug_count = 0; |
| 495 |
|
|
for ($i = 0; $i <= count($bug_list); $i++) { |
| 496 |
|
|
preg_match("/\d+\((\d+)\)/", $bug_list[$i], $count_array); |
| 497 |
|
|
$real_bug_count += $count_array[1]; |
| 498 |
|
|
} |
| 499 |
igenibel |
358 |
if($bug_count == 0) { ?> |
| 500 |
igenibel |
617 |
<a class="dash" href="<?print $bugs_all?>">-</a> |
| 501 |
igenibel |
634 |
<? }else{ |
| 502 |
|
|
print bug_display("$bug_count($real_bug_count)", $bugs_all); |
| 503 |
|
|
} ?> |
| 504 |
joy |
370 |
</small> |
| 505 |
igenibel |
358 |
</td> |
| 506 |
|
|
<td> |
| 507 |
joy |
370 |
<small> |
| 508 |
igenibel |
358 |
<? |
| 509 |
igenibel |
615 |
if(!strcmp($bug_list[0], "0(0)")) { ?> |
| 510 |
igenibel |
617 |
<a class="dash" href="<? print $nobugs; ?>&sev-inc=critical&sev-inc=grave&sev-inc=serious">-</a> |
| 511 |
igenibel |
634 |
<? }else{ print bug_display($bug_list[0], "$bugs" . "&sev-inc=critical&sev-inc=grave&sev-inc=serious"); } ?> |
| 512 |
joy |
370 |
</small> |
| 513 |
igenibel |
358 |
</td> |
| 514 |
|
|
<td> |
| 515 |
joy |
370 |
<small> |
| 516 |
igenibel |
358 |
<? |
| 517 |
igenibel |
615 |
if(!strcmp($bug_list[1], "0(0)")) { ?> |
| 518 |
igenibel |
617 |
<a class="dash" href="<? print $nobugs; ?>&sev-inc=important&sev-inc=normal">-</a> |
| 519 |
igenibel |
634 |
<? }else{ print bug_display($bug_list[1], "$bugs" . "&sev-inc=important&sev-inc=normal"); } ?> |
| 520 |
joy |
370 |
</small> |
| 521 |
igenibel |
358 |
</td> |
| 522 |
|
|
<td> |
| 523 |
joy |
370 |
<small> |
| 524 |
igenibel |
358 |
<? |
| 525 |
igenibel |
615 |
if(!strcmp($bug_list[2], "0(0)")) { ?> |
| 526 |
igenibel |
617 |
<a class="dash" href="<? print $nobugs; ?>&sev-inc=minor&sev-inc=wishlist">-</a> |
| 527 |
igenibel |
634 |
<? }else{ print bug_display($bug_list[2], "$bugs" . "&sev-inc=minor&sev-inc=wishlist"); } ?> |
| 528 |
joy |
370 |
</small> |
| 529 |
igenibel |
358 |
</td> |
| 530 |
|
|
<td> |
| 531 |
joy |
370 |
<small> |
| 532 |
igenibel |
358 |
<? |
| 533 |
igenibel |
615 |
if(!strcmp($bug_list[3], "0(0)")) { ?> |
| 534 |
igenibel |
636 |
<a class="dash" href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=<? print rawurlencode($package); ?>&archive=no&pend-inc=pending-fixed&pend-inc=fixed">-</a> |
| 535 |
igenibel |
635 |
<? }else{ print bug_display($bug_list[3], "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=". rawurlencode($package)."&archive=no&pend-inc=pending-fixed&pend-inc=fixed"); } ?> |
| 536 |
joy |
370 |
</small> |
| 537 |
igenibel |
358 |
</td> |
| 538 |
|
|
<? |
| 539 |
|
|
|
| 540 |
|
|
print $version_print; |
| 541 |
|
|
if(strcmp($security_stable,"-")) { |
| 542 |
|
|
$security_stable = "<font color=\"red\">$security_stable</font>"; |
| 543 |
|
|
} |
| 544 |
|
|
if(strcmp($security_testing,"-")) { |
| 545 |
|
|
$security_testing = "<font color=\"red\">$security_stable</font>"; |
| 546 |
|
|
} |
| 547 |
joy |
370 |
print '<td><small>'.$security_stable.'</small></td><td><small>'.$security_testing.'</small></td>'; |
| 548 |
igenibel |
358 |
?> |
| 549 |
|
|
<td width="15%"> |
| 550 |
joy |
370 |
<small> |
| 551 |
igenibel |
358 |
<? |
| 552 |
|
|
for ($i = 1; $i <= count($list); $i++) { |
| 553 |
|
|
$url = rawurlencode("${list[$i -1]}"); |
| 554 |
igenibel |
627 |
print '<a title="'; |
| 555 |
|
|
print "${list[$i -1]}"; |
| 556 |
|
|
print '" href="http://packages.debian.org/'; |
| 557 |
igenibel |
358 |
print $url; |
| 558 |
|
|
print '">'; |
| 559 |
|
|
print $i; |
| 560 |
|
|
print "</a>"; |
| 561 |
|
|
if(($i % 3 ) == 0) { |
| 562 |
|
|
print " "; |
| 563 |
|
|
}else{ |
| 564 |
|
|
print " "; |
| 565 |
|
|
} |
| 566 |
|
|
} |
| 567 |
|
|
?> |
| 568 |
joy |
370 |
</small> |
| 569 |
igenibel |
358 |
</td> |
| 570 |
|
|
<td> |
| 571 |
joy |
370 |
<small> |
| 572 |
igenibel |
537 |
<? |
| 573 |
igenibel |
540 |
if($all == 1 || preg_match("/non-free/", $branch) || (strcmp($version_unstable, "-") == 0)) { |
| 574 |
igenibel |
409 |
print "-"; |
| 575 |
igenibel |
358 |
$all = 0; |
| 576 |
|
|
}else{ |
| 577 |
|
|
print "<a href=\"$buildd\">Buildd</a>"; |
| 578 |
|
|
} |
| 579 |
|
|
?> |
| 580 |
joy |
370 |
</small> |
| 581 |
igenibel |
358 |
</td> |
| 582 |
|
|
<td> |
| 583 |
joy |
370 |
<small> |
| 584 |
igenibel |
358 |
<? |
| 585 |
|
|
print $excuse; |
| 586 |
|
|
?> |
| 587 |
joy |
370 |
</small> |
| 588 |
igenibel |
358 |
</td> |
| 589 |
|
|
<td> |
| 590 |
|
|
<?print $stable_dep?> |
| 591 |
|
|
</td> |
| 592 |
|
|
<td> |
| 593 |
|
|
<?print $testing_dep?> |
| 594 |
|
|
</td> |
| 595 |
|
|
<td> |
| 596 |
|
|
<?print $sid_dep?> |
| 597 |
|
|
</td> |
| 598 |
|
|
<td> |
| 599 |
|
|
<? |
| 600 |
joy |
370 |
print "<small>$section</small>"; |
| 601 |
igenibel |
358 |
?> |
| 602 |
joy |
370 |
</td> |
| 603 |
igenibel |
358 |
<td> |
| 604 |
|
|
<? |
| 605 |
joy |
370 |
print "<small>$priority</small>"; |
| 606 |
igenibel |
358 |
?> |
| 607 |
joy |
370 |
</td> |
| 608 |
igenibel |
358 |
<td> |
| 609 |
joy |
370 |
<small> |
| 610 |
igenibel |
358 |
<a href="<?print $pool?>">Pool</a> |
| 611 |
joy |
370 |
</small> |
| 612 |
igenibel |
358 |
</td> |
| 613 |
|
|
<td> |
| 614 |
|
|
<? |
| 615 |
joy |
370 |
print "<small>$uninstalable_stable</small>"; |
| 616 |
igenibel |
358 |
?> |
| 617 |
|
|
</td> |
| 618 |
|
|
<td> |
| 619 |
|
|
<? |
| 620 |
joy |
370 |
print "<small>$uninstalable_testing</small>"; |
| 621 |
igenibel |
358 |
?> |
| 622 |
|
|
</td> |
| 623 |
|
|
<td> |
| 624 |
|
|
<? |
| 625 |
joy |
370 |
print "<small>$uninstalable_unstable</small>"; |
| 626 |
igenibel |
358 |
?> |
| 627 |
|
|
</td> |
| 628 |
|
|
</tr> |
| 629 |
|
|
<? |
| 630 |
|
|
} |
| 631 |
|
|
?> |
| 632 |
|
|
</table> |
| 633 |
|
|
<? |
| 634 |
|
|
} |
| 635 |
|
|
|
| 636 |
|
|
if($excuse != "") { |
| 637 |
|
|
$char = substr($excuse, 0, 1); |
| 638 |
igenibel |
537 |
$excuse = preg_replace("/ /", "+", $excuse); |
| 639 |
igenibel |
358 |
if(file_exists("$prefix/excuses/$char/$excuse")) { |
| 640 |
|
|
$fp = fopen("$prefix/excuses/$char/$excuse","r"); |
| 641 |
|
|
print fread ($fp, filesize ("$prefix/excuses/$char/$excuse")); |
| 642 |
|
|
fclose($fp); |
| 643 |
|
|
}else{ |
| 644 |
|
|
print "<h2>No excuse for $excuse</h2>"; |
| 645 |
|
|
} |
| 646 |
|
|
}else if($gpg_key != "") { |
| 647 |
|
|
$contents = file("$prefix/extract"); |
| 648 |
|
|
|
| 649 |
|
|
$printed = 0; |
| 650 |
|
|
$match = 0; |
| 651 |
|
|
|
| 652 |
|
|
$gpg_key = preg_replace ("/0x/i", "", $gpg_key); |
| 653 |
|
|
foreach ($contents as $line) { |
| 654 |
|
|
if(preg_match("/;(.+?);(.*$gpg_key.*);(.+?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*)/i", $line, $pack_array)) { |
| 655 |
|
|
$match += 1; |
| 656 |
|
|
if($printed == 0) { |
| 657 |
|
|
print_header_entries_top($pack_array[2], $pack_array[3]); |
| 658 |
|
|
$printed = 1; |
| 659 |
|
|
}else{ |
| 660 |
|
|
print "<hr>"; |
| 661 |
|
|
} |
| 662 |
|
|
|
| 663 |
|
|
print_header_entries_body($pack_array[1], $pack_array[2], $pack_array[3]); |
| 664 |
|
|
$count = 4; |
| 665 |
|
|
foreach ($branch as $value) { |
| 666 |
|
|
if($pack_array[$count] != "") { |
| 667 |
|
|
print_package_entries($value, $pack_array[$count]); |
| 668 |
|
|
} |
| 669 |
|
|
$count += 1; |
| 670 |
|
|
} |
| 671 |
|
|
} |
| 672 |
|
|
} |
| 673 |
|
|
if($match == 0) { |
| 674 |
|
|
print_notfound($gpg_key); |
| 675 |
|
|
} |
| 676 |
|
|
|
| 677 |
|
|
printBackLink(); |
| 678 |
|
|
}else if($login != "") { |
| 679 |
|
|
$fp = fopen("$prefix/extract", "r"); |
| 680 |
|
|
$contents = fread($fp, filesize ("$prefix/extract")); |
| 681 |
joy |
386 |
|
| 682 |
|
|
if (preg_match("/\S \S/", $login) || preg_match("/^[A-Z][^@]+$/", $login)) { |
| 683 |
joy |
391 |
if (preg_match("/;(.*?);(.*?);(.*$login.*);(.*?);(.*?);(.*?);(.*?);(.*?);(.*)/", $contents, $pack_array)) { |
| 684 |
joy |
386 |
print_header_entries_top($pack_array[2], $pack_array[3]); |
| 685 |
|
|
print_header_entries_body($pack_array[1], $pack_array[2], $pack_array[3]); |
| 686 |
joy |
389 |
$count = 4; |
| 687 |
joy |
386 |
foreach ($branch as $value) { |
| 688 |
|
|
if($pack_array[$count] != "") { |
| 689 |
|
|
print_package_entries($value, $pack_array[$count]); |
| 690 |
|
|
} |
| 691 |
|
|
$count += 1; |
| 692 |
joy |
387 |
} |
| 693 |
joy |
386 |
} else { |
| 694 |
|
|
print_notfound($login); |
| 695 |
|
|
} |
| 696 |
|
|
} else { |
| 697 |
joy |
388 |
if (! preg_match("/@/", $login)) { |
| 698 |
joy |
386 |
$login .= "@debian.org"; |
| 699 |
|
|
} |
| 700 |
|
|
if (preg_match("/;$login;(.*?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*)/i", $contents, $pack_array)) { |
| 701 |
igenibel |
358 |
print_header_entries_top($pack_array[1], $pack_array[2]); |
| 702 |
|
|
print_header_entries_body($login, $pack_array[1], $pack_array[2]); |
| 703 |
|
|
$count = 3; |
| 704 |
|
|
foreach ($branch as $value) { |
| 705 |
|
|
if($pack_array[$count] != "") { |
| 706 |
|
|
print_package_entries($value, $pack_array[$count]); |
| 707 |
|
|
} |
| 708 |
|
|
$count += 1; |
| 709 |
|
|
} |
| 710 |
joy |
386 |
} else { |
| 711 |
igenibel |
358 |
print_notfound($login); |
| 712 |
|
|
} |
| 713 |
joy |
386 |
} |
| 714 |
igenibel |
358 |
fclose($fp); |
| 715 |
|
|
printBackLink(); |
| 716 |
|
|
}else if ($package != "") { |
| 717 |
|
|
$fp = fopen("$prefix/extract", "r"); |
| 718 |
|
|
$found = 0; |
| 719 |
|
|
if(preg_match("/\+\+/", $package)) { |
| 720 |
|
|
$package_short = preg_replace("/\+/", "", $package); |
| 721 |
|
|
$regexp="/[ ;]$package_short..\(/"; |
| 722 |
|
|
}elseif(preg_match("/\+/", $package)){ |
| 723 |
|
|
$package_short = preg_replace("/\+/", "", $package); |
| 724 |
|
|
$regexp="/[ ;]$package_short.\(/"; |
| 725 |
|
|
}else{ |
| 726 |
|
|
$regexp="/[ ;]$package\(/"; |
| 727 |
|
|
} |
| 728 |
|
|
while(!feof($fp)) { |
| 729 |
igenibel |
548 |
$line = fgets($fp, "32768"); |
| 730 |
igenibel |
358 |
if(preg_match("$regexp", $line, $results)) { |
| 731 |
|
|
$found = 1; |
| 732 |
|
|
preg_match("/;(.+?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*?);(.*)/i", $line, $pack_array); |
| 733 |
|
|
print_header_entries_top($pack_array[2], $pack_array[3]); |
| 734 |
|
|
print_header_entries_body($pack_array[1], $pack_array[2], $pack_array[3]); |
| 735 |
|
|
$count = 4; |
| 736 |
|
|
foreach ($branch as $value) { |
| 737 |
|
|
if($pack_array[$count] != "") { |
| 738 |
|
|
print_package_entries($value, $pack_array[$count]); |
| 739 |
|
|
} |
| 740 |
|
|
$count += 1; |
| 741 |
|
|
} |
| 742 |
|
|
} |
| 743 |
|
|
} |
| 744 |
|
|
if($found == 0) { |
| 745 |
|
|
print_notfound($package); |
| 746 |
|
|
} |
| 747 |
|
|
fclose($fp); |
| 748 |
|
|
printBackLink(); |
| 749 |
|
|
}else{ |
| 750 |
|
|
print_form(); |
| 751 |
|
|
if($all) { |
| 752 |
|
|
print_all(); |
| 753 |
|
|
}else{ |
| 754 |
|
|
print_query_all(); |
| 755 |
|
|
} |
| 756 |
|
|
} |
| 757 |
|
|
|
| 758 |
|
|
$fp = fopen("$prefix/extract.date", "r"); |
| 759 |
|
|
$general = fgets($fp, "512"); |
| 760 |
|
|
fclose($fp); |
| 761 |
|
|
$fp = fopen("$prefix/bugs.date", "r"); |
| 762 |
|
|
$bugs = fgets($fp, "512"); |
| 763 |
|
|
fclose($fp); |
| 764 |
|
|
?> |
| 765 |
joy |
384 |
|
| 766 |
joy |
368 |
<hr> |
| 767 |
joy |
384 |
|
| 768 |
joy |
368 |
<p><small> |
| 769 |
igenibel |
358 |
Last updated:<br> |
| 770 |
joy |
368 |
General information: <? print $general; ?><br> |
| 771 |
joy |
384 |
Bug information: <? print $bugs; ?><br> |
| 772 |
|
|
General information is updated once a day.<br> |
| 773 |
|
|
Bug information is updated every 15 minutes. |
| 774 |
joy |
368 |
</small></p> |