Update of /cvsroot/fink/web/pdb
In directory sc8-pr-cvs17:/tmp/cvs-serv11975
Modified Files:
browse.php header.inc index.php list.php maintainer.php
nomaintainer.php package.php search.php section.php
sections.php testing.php
Removed Files:
help.php
Log Message:
put it all back the way it was for now
Index: section.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/section.php,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- section.php 10 Sep 2007 18:56:35 -0000 1.13
+++ section.php 10 Sep 2007 19:37:21 -0000 1.14
@@ -1,24 +1,73 @@
-<?php
-$title = "Package Database - Obsolete page";
+<?
+$title = "Package Database - Section ";
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-/* check path info */
-$PATH_INFO = $HTTP_SERVER_VARS["PATH_INFO"];
-if (ereg("^/([a-zA-Z0-9_.+-]+)$", $PATH_INFO, $r)) {
- $section = $r[1];
-} elseif (ereg("^/([a-zA-Z0-9_.+-]+/[a-zA-Z0-9_.+-]+)$", $PATH_INFO, $r)) {
- $section = $r[1];
-}
+$uses_pathinfo = 1;
+include "header.inc";
+$section = $pispec;
+?>
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php";
+<?
+if ($section == "-") {
+?>
+<p><b>No section specified.</b></p>
+<?
+} else { /* if (no section) */
+?>
-if (isset($section)) {
- $location .= "?section=" . $section;
+<h1>Archive Section <? print $section ?></h1>
+
+<?
+/* Add some special case bundle splitoffs */
+if($section == "games")
+{
+ $sectionquery = " (section='$section' OR parentname REGEXP
'kdegames3|kdetoys3') ";
+} else if($section == "graphics")
+{
+ $sectionquery = " (section='$section' OR parentname='kdegraphics3') ";
+} else if($section == "sound")
+{
+ $sectionquery = " (section='$section' OR parentname='kdemultimedia3') ";
+} else if($section == "utils")
+{
+ $sectionquery = " (section='$section' OR parentname='kdeutils3') ".
+ " AND (parentname IS NULL OR parentname !=
'webmin') ";
+} else
+$sectionquery = " section='$section' ";
+
+$q = "SELECT name,descshort FROM package WHERE ". $sectionquery .
+ " AND !(name REGEXP '.*-(dev|shlibs|bin|common|doc)$') ".
+ "AND latest=1 ORDER BY name ASC";
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+} else {
+ $count = mysql_num_rows($rs);
+
+?>
+
+<p>Found <? print $count ?> packages in section <? print $section ?>:</p>
+
+<ul>
+<?
+ while ($row = mysql_fetch_array($rs)) {
+ $desc = " - ".$row[descshort];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a
href="'.$pdbroot.'package.php/'.$row[name].'">'.$row[name].'</a>'.$desc."</li>\n";
+ }
+?>
+</ul>
+<?
}
-// This page is obsolete. We redirect to browse.php
-header("Location: http://$server/$location");
+} /* if (no section) */
+?>
+<p><a href="<? print $pdbroot ?>sections.php">Back to section list</a></p>
+
+
+<?
+include "footer.inc";
?>
Index: list.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/list.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- list.php 10 Sep 2007 18:56:34 -0000 1.9
+++ list.php 10 Sep 2007 19:37:21 -0000 1.10
@@ -1,12 +1,47 @@
-<?php
-$title = "Package Database - Obsolete page";
+<?
+$title = "Package Database";
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php";
+include "header.inc";
+?>
-// This page is obsolete. We redirect to browse.php
-header("Location: http://$server/$location");
+<h1>All Packages By Name</h1>
+
+<p>
+This is a complete list of the packages in the Fink package database.
+Note that it lists all packages, including the unstable tree and
+the latest <a
href="http://fink.sourceforge.net/doc/cvsaccess/index.php">packages from
+CVS</a>.
+</p>
+
+<?
+$q = "SELECT name,descshort FROM package ".
+ "WHERE latest=1 ORDER BY name ASC";
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+} else {
+ $count = mysql_num_rows($rs);
+?>
+
+<p>Found <? print $count ?> packages:</p>
+
+<ul>
+<?
+ while ($row = mysql_fetch_array($rs)) {
+ $desc = " - ".$row[descshort];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a
href="package.php/'.$row[name].'">'.$row[name].'</a>'.$desc."</li>\n";
+ }
+?>
+</ul>
+<?
+}
+?>
+
+<?
+include "footer.inc";
?>
Index: search.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/search.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- search.php 10 Sep 2007 18:56:35 -0000 1.12
+++ search.php 10 Sep 2007 19:37:21 -0000 1.13
@@ -1,17 +1,144 @@
-<?php
-$title = "Package Database - Obsolete page";
+<?
+$title = "Package Database - Contents Search";
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php";
+include "header.inc";
-if (isset($_GET['summary'])) {
- $summary = htmlspecialchars($_GET['summary']);
- $location .= "?summary=" . $summary;
+$summary = ereg_replace(" ", "", param(summary));
+$filename = ereg_replace(" ", "", param(filename));
+
+if (ereg("[^a-zA-Z0-9_.+-]", $summary) || ereg("[^a-zA-Z0-9_.+-]", $filename))
{
+print "yes\n";
+?>
+ <h1>Package Search</h1>
+
+ <form action="search.php" method="GET">
+ <p>Search package summaries: <input type="text" name="summary"
size="15" value="<?
+ print $summary ?>">
+ </p>
+
+<?
+if (param(c))
+{
+?>
+ <p>Search package contents: <input type="text" name="filename"
size="15" value="<?
+ print $filename ?>">
+ <input type="submit" value="Search">
+ </p>
+<?
}
+?>
+</form>
-// This page is obsolete. We redirect to browse.php
-header("Location: http://" . $server . "/" . $location);
+<p>You have entered a search text that contains invalid characters.</p>
+<?
+} else { /* $search_key valid */
+?>
+
+ <h1>Package Search</h1>
+
+ <form action="search.php" method="GET">
+ <p>Search package summaries: <input type="text" name="summary"
size="15" value="<?
+ print $summary ?>">
+ </p>
+
+<?
+if (param(c))
+{
+?>
+ <p>Search package contents: <input type="text" name="filename"
size="15" value="<?
+ print $filename ?>">
+ <input type=checkbox name=ignoredirs>Ignore Dirs
+ <input type="submit" value="Search">
+ </p>
+<?
+}
+?>
+
+</form>
+
+<?
+
+if(param(order)) {
+ $sortorder = param(order);
+ print "order $sortorder ";
+} else {
+ if(param(filename))
+ $sortorder = "filename";
+ else if (param(summary))
+ $sortorder = "name";
+}
+
+if (param(filename)) {
+
+ if(param(ignoredirs)){
+ $directories = " AND fileperms REGEXP '^[^d]' ";
+ }
+ $dosearch = 1;
+ $q = "SELECT
filename,filepath,fileperms,filesize,pkghash,version,contentspackages.package,contentspackages.release
".
+ "FROM contents,contentspackages ".
+ "WHERE contents.file_id=contentspackages.file_id ".
+ "AND filename LIKE '%$filename%' ". $directories .
+ "ORDER BY $sortorder";
+ # ASC LIMIT 0,50";
+} else if (param(summary)) {
+ $dosearch = 1;
+ $q = "SELECT name,descshort FROM package ".
+ "WHERE (name LIKE '%$summary%' OR descshort LIKE '%$summary%') ".
+ "AND latest=1 ORDER BY $sortorder ASC";
+}
+
+if($dosearch) {
+
+ $rs = mysql_query($q, $dbh);
+ if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+ } else {
+ $count = mysql_num_rows($rs);
+ param(summary) ? $search_key = param(summary) : $search_key =
param(filename);
+ if ($count == 0) {
+ print "<p>Found no packages that match $search_key.</p>";
+ } elseif ($count == 1) {
+ print "<p>Found 1 package that matches $search_key:</p>";
+ } else {
+ print "<p>Found $count packages that match $search_key:</p>";
+ }
+ if ($count > 0) {
+ if(param(filename)) {
+ print 'Sort: <a
href="'.$pdbroot."search.php?filename=$filename&summary=$summary&order=package\">Package</a>
- ";
+ print '<a
href="'.$pdbroot."search.php?filename=$filename&summary=$summary&order=filepath,filename\">Filename</a>";
+ } else {
+ print 'Sort: <a
href="'.$pdbroot."search.php?filename=$filename&summary=$summary&order=name\">Package</a>
- ";
+ print '<a
href="'.$pdbroot."search.php?filename=$filename&summary=$summary&order=descshort\">Summary</a>";
+ }
+
+ print "<ul>"; while ($row = mysql_fetch_array($rs)) {
+ $row["name"] ? $name = $row["name"] : $name = $row["package"];
+ $vers = $row["version"];
+ $tree = $row["release"];
+ $row[descshort] ? $desc = " - $row[descshort]" : $desc = " - $vers -
$row[filepath]";
+ if(! param(summary)) {
+ print '<li><a
href="'.$pdbroot."packagedetails.php?tree=$tree&pkg=$name&version=$vers\">".$name.'</a>'.$desc."</li>\n";
+ } else {
+ print '<li><a
href="'.$pdbroot."package.php/$name\">".$name.'</a>'.$desc."</li>\n";
+ }
+ }
+ print "</ul>\n";
+ }
+ }
+} elseif ($have_key) {
+ print "<p>No search string entered.</p>\n";
+}
+
+
+} /* $search_key valid */
+?>
+
+<script type="text/javascript" language="JavaScript"
src="http://db3.net-filter.com/script/13500.js"></script>
+<noscript><img
src="http://db3.net-filter.com/db.php?id=13500&page=unknown"
alt=""></noscript>
+
+<?
+include "footer.inc";
?>
Index: index.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/index.php,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- index.php 10 Sep 2007 18:56:34 -0000 1.23
+++ index.php 10 Sep 2007 19:37:21 -0000 1.24
@@ -23,17 +23,17 @@
"unstable" because they are not well-tested.
You can help improve the situation by testing those packages and
reporting both success and failure to the package maintainer.
-The <a href="browse.php?tree=testing&nochildren=on">Packages in Testing</a>
page lists all
+The <a href="testing.php">Packages in Testing</a> page lists all
packages that still have to pass testing.
In order to test the packages, you need to configure Fink to <a
href="http://fink.sourceforge.net/faq/usage-fink.php#unstable">use
unstable</a> and then download the latest descriptions by running <i>fink
selfupdate-rsync</i>
(or <i>fink selfupdate-cvs</i> if you can't use rsync for some reason).
</p>
<p>Help is also needed to find new maintainers for the <a
-href="browse.php?maintainer=None&nochildren=on">packages without
maintainers</a>.</p>
+href="nomaintainer.php">packages without maintainers</a>.</p>
<?
-$q = "SELECT COUNT(DISTINCT name) FROM package";
+$q = "SELECT COUNT(name) FROM package WHERE latest=1";
$rs = mysql_query($q, $dbh);
if (!$rs) {
print '<p><b>error during query:</b> '.mysql_error().'</p>';
@@ -43,16 +43,6 @@
$pkgcount = $pkgcount[0];
}
-$q = "SELECT MAX(UNIX_TIMESTAMP(infofilechanged)) FROM package";
-$rs = mysql_query($q, $dbh);
-if (!$rs) {
- print '<p><b>error during query:</b> '.mysql_error().'</p>';
- $dyndate = '';
-} else {
- $dyndate = mysql_fetch_array($rs);
- $dyndate = $dyndate[0];
-}
-
$q = "SELECT * FROM sections ORDER BY name ASC";
$rs = mysql_query($q, $dbh);
if (!$rs) {
@@ -67,21 +57,21 @@
<? print $pkgcount ?> packages in <? print $seccount ?> sections.
</p>
-<form action="browse.php" method="GET">
+<form action="search.php" method="GET">
<p>Search for package: <input type="text" name="summary" size="15" value="">
<input type="submit" value="Search">
</p>
</form>
<p>
-You can browse a <a href="browse.php">complete list of packages</a>,
+You can browse a <a href="list.php">complete list of packages</a>,
or you can browse by archive section:
</p>
<ul>
<?
while ($row = mysql_fetch_array($rs)) {
- print '<li><a href="browse.php?section='.$row[name].'">'.$row[name].'</a>'.
+ print '<li><a href="section.php/'.$row[name].'">'.$row[name].'</a>'.
($row[description] ? (' - '.$row[description]) : '').
'</li>'."\n";
}
Index: package.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/package.php,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- package.php 10 Sep 2007 18:56:35 -0000 1.46
+++ package.php 10 Sep 2007 19:37:21 -0000 1.47
@@ -6,6 +6,8 @@
$uses_pathinfo = 1;
include "header.inc";
$package = $pispec;
+
+include "releases.inc";
?>
@@ -15,148 +17,48 @@
<p><b>No package specified.</b></p>
<?
} else { /* if (no package) */
+?>
+<h1>Package <? print $package ?></h1>
-// Get url parameters
-list($version, $inv_p) = get_safe_param('version', '/^[0-9\-.:]+$/');
-list($distribution, $inv_p) = get_safe_param('distribution',
'/^[a-z0-9\-.]+$/');
-list($release, $inv_p) = get_safe_param('release',
'/^[0-9.]{3,}$|^unstable$|^stable$/');
-list($architecture, $inv_p) = get_safe_param('architecture',
'/^powerpc$|^i386$/');
-list($rel_id, $inv_p) = get_safe_param('rel_id', '/^[0-9]+$/');
-list($showall, $inv_p) = get_safe_param('showall', '/^on$/');
-
-// TODO/FIXME: Do we really need all the params above? On the other hand --
-// if the user clicks on a specific package version, shouldn't we select
-// that version via the *pkg_id* ?
-// In particular, it seems rather ugly to search the DB with a concat...
-// A reason to keep those params would be to allow looking at a specific
-// package version w/o knowing a pkg_id. But when would we ever be in such
-// a situation? I.e. is there *anything* that would need to do that?
-
-
-// Get package data to display (use for version-nonspecific pkg metadata)
-$qtodisplay_sel = "SELECT p.*,r.*,d.*,p.version AS pkg_version ";
-$qtodisplay_sel .= "FROM `package` AS p ";
-$qtodisplay_sel .= "INNER JOIN `release` r ON r.rel_id = p.rel_id ";
-$qtodisplay_sel .= "INNER JOIN `distribution` d ON r.dist_id = d.dist_id ";
-if (!$showall)
- $qtodisplay_sel .= "AND d.visible='1' ";
-
-$qtodisplay_where .= "WHERE p.name='$package' ";
-if ($version) {
- if (strrpos($version, ':'))
- $qtodisplay_where .= "AND
CONCAT(p.epoch,':',p.version,'-',p.revision)='$version' ";
- else
- $qtodisplay_where .= "AND CONCAT(p.version,'-',p.revision)='$version' ";
-}
-if ($rel_id) {
- $qtodisplay_where .= "AND r.rel_id='$rel_id' ";
-} else { // no need to parse the other parameters
- if ($distribution) {
- $qtodisplay_where .= "AND d.identifier='$distribution' ";
- }
- if ($release) {
- if ($release == 'unstable' || $release == 'stable') {
- $qtodisplay_where .= "AND r.type='$release' ";
- } else {
- $qtodisplay_where .= "AND r.version='$release' ";
- }
- }
- if ($architecture) {
- $qtodisplay_where .= "AND d.architecture='$architecture' ";
- }
-}
+<?
-$qtodisplay_order .= "ORDER BY d.priority DESC,r.priority DESC";
-$qtodisplay = $qtodisplay_sel.$qtodisplay_where.$qtodisplay_order;
-$qs = mysql_query($qtodisplay, $dbh);
-if (!$qs) {
+$q = "SELECT * FROM package WHERE name='$package' ORDER BY latest DESC";
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
print '<p><b>error during query:</b> '.mysql_error().'</p>';
} else {
- $pkg2disp = mysql_fetch_array($qs);
-}
+ $row = mysql_fetch_array($rs);
+ $rmap = array();
+ while ($row) {
+ if($row[epoch] > 0)
+ $epoch = "$row[epoch]:";
+ else
+ $epoch = "";
+ $rmap[$row[release]] = $epoch.$row[version]."-".$row[revision];
+
+ $row = mysql_fetch_array($rs);
+ }
-$warning = '';
-if (!$pkg2disp) { # No specific version found, try latest
- $qtodisplay = $qtodisplay_sel."WHERE p.name='$package' ".$qtodisplay_order;
- $qs = mysql_query($qtodisplay, $dbh);
+ // Get latest version data (use for version-nonspecific pkg metadata)
+ $qlatest = "SELECT * FROM package WHERE name='$package' AND latest=1";
+ $qs = mysql_query($qlatest, $dbh);
if (!$qs) {
print '<p><b>error during query:</b> '.mysql_error().'</p>';
} else {
- $pkg2disp = mysql_fetch_array($qs);
+ $latest = mysql_fetch_array($qs);
}
- $warning = "<b>Warning: Package $package $version not found";
- $warning .= $distribution ? " in distribution $distribution" : '';
- $warning .= $architecture ? "-$architecture" : '';
- $warning .= $release ? "-$release" : '';
- $warning .= $rel_id ? " for selected release" : '';
- $warning .= "!</b>";
-}
-
-if (!$pkg2disp) { # No package found
-?>
-<p><b>Package '<?=$package?>' not found in Fink!</b></p>
-<?
-} else { /* if (no package found) */
-
-if ($pkg2disp["epoch"] > 0) {
- $fullversion =
$pkg2disp["epoch"].':'.$pkg2disp["pkg_version"]."-".$pkg2disp["revision"];
-} else {
- $fullversion = $pkg2disp["pkg_version"]."-".$pkg2disp["revision"];
-}
-
-?>
-<h1>Package <? print $package." ".$fullversion ?></h1>
-<?
+ $is_restrictive = 0;
+ if ($latest[license] && strcasecmp($latest[license],'Restrictive')==0) {
+ $is_restrictive = 1;
+ }
function avail_td($text, $extras='') {
print '<td align="center" valign="top" ' . $extras . '>';
print '<div style="white-space:nowrap">' . $text . '</div>';
print '</td>';
}
-
- function show_desc($label, $text) {
- $text = htmlentities($text);
- if ($text) {
- # Try to detect urls
- $text = preg_replace('/http:\/\/[^ &:]+/', '<a href="${0}">${0}</a>',
$text);
- $text = '<div class="desc">' . $text . '</div>';
- if ($label)
- it_item($label, '');
- it_item('', $text);
- }
- }
-
- function version_tags($package, $vers, $rel_id, $disp_vers, $disp_rel_id) {
- if ($vers == $disp_vers && $rel_id == $disp_rel_id) {
- $open_tag = '<b>';
- $close_tag = '</b>';
- } else {
- $open_tag = "<a href=\"$package?version=$vers&rel_id=$rel_id\">";
- $close_tag = '</a>';
- }
- return array (
- $open_tag,
- $close_tag,
- );
- }
-
- function link_to_package($package, $vers, $rel_id, $description='') {
- $pkg_str = '<a href="'.$package;
- if ($vers) {
- $pkg_str .= '?version='.$vers;
- if ($rel_id)
- $pkg_str .= '&rel_id='.$rel_id;
- }
- elseif ($rel_id)
- $pkg_str .= '?rel_id='.$rel_id;
- $pkg_str .= '">'.$package.'</a> ';
- if ($description)
- $pkg_str .= htmlentities($description);
- return $pkg_str;
- }
-
print '<table class="pkgversion" cellspacing="2" border="0">'."\n";
@@ -167,99 +69,71 @@
print "</tr>\n";
print '<tr bgcolor="#ffecbf">';
- print '<th width="100" align="center"><a
href="http://feeds.feedburner.com/FinkProjectNews-stable"><img src="' .
$pdbroot . 'rdf.png" alt="stable RSS feed" border="0" width="14" height="14"
/></a> stable</th>';
- print '<th width="100" align="center"><a
href="http://feeds.feedburner.com/FinkProjectNews-unstable"><img src="' .
$pdbroot . 'rdf.png" alt="unstable RSS feed" border="0" width="14" height="14"
/></a> unstable</th>';
+ print '<th width="100" align="center"><a
href="http://feeds.feedburner.com/FinkProjectNews-stable"><img src="' .
$pdbroot . 'rdf.png" alt="stable RSS feed" border="0" /></a> stable</th>';
+ print '<th width="100" align="center"><a
href="http://feeds.feedburner.com/FinkProjectNews-unstable"><img src="' .
$pdbroot . 'rdf.png" alt="unstable RSS feed" border="0" /></a> unstable</th>';
print "</tr>\n";
- // Fetch list of all distributions
- $q = "SELECT * FROM `distribution` WHERE active='1' ";
- if (!$showall)
- $q .= "AND visible='1' ";
- $q .= "ORDER BY priority DESC";
- $qdist = mysql_query($q, $dbh);
- if (!$qdist) {
- die('<p><b>error during query:</b> '.mysql_error().'</p>');
- }
- $color_count = 0;
- $last_identifier = '';
- while ($dist_row = mysql_fetch_array($qdist)) {
- if ($last_identifier != $dist_row['identifier'])
- $color_count++;
- if ($color_count == 1) {
+ foreach( $releases as $os=>$dists ) {
+ if($dists["pri"]==1) {
$row_color='bgcolor="#e3caff"';
- } else if ($color_count == 2) {
+ } else if ($dists["pri"]==2) {
$row_color='bgcolor="#f1e2ff"';
} else {
$row_color='bgcolor="#f6ecff"';
}
- $last_identifier = $dist_row['identifier'];
- // Now query all releases (typically: stable, unstable, bindist) for the
given distribution.
- $q = "SELECT p.*, r.type, r.version AS rel_version FROM `package` p,
`release` r WHERE p.name = '$package' AND p.rel_id = r.rel_id AND r.dist_id='"
. $dist_row['dist_id'] . "' AND active='1' ORDER BY r.priority ASC";
- $qrel = mysql_query($q, $dbh);
- if (!$qrel) {
- die('<p><b>error during query:</b> '.mysql_error().'</p>');
- }
-
- $pkg_release = array();
-
- while ($rel_row = mysql_fetch_array($qrel)) {
- $type = $rel_row['type'];
- $rel_version = $rel_row["version"]."-".$rel_row["revision"];
- if($rel_row["epoch"] > 0)
- $rel_version = $rel_row["epoch"].":".$rel_version;
- $pkg_release[$type]["version"] = $rel_version;
- $pkg_release[$type]["restrictive"] =
(strcasecmp($rel_row["license"],'Restrictive')==0);
- $pkg_release[$type]["rel_id"] = $rel_row['rel_id'];
- $pkg_release[$type]["pkg_id"] = $rel_row['pkg_id'];
- $pkg_release[$type]["rel_version"] = $rel_row['rel_version'];
+
+ // used in System and CVS/rsync entries to leave enough space for bindists
+ $bindist_rowspan='';
+ if (is_array($dists["bin"])) {
+ if (sizeof($dists["bin"])>1)
+ $bindist_rowspan='rowspan='.sizeof($dists["bin"]);
+ $bindists_lbl=array_keys($dists["bin"]);
+ $bindists_sql=array_values($dists["bin"]);
+ } else {
+ $bindists_lbl=array();
+ $bindists_sql=array();
}
+
// System
print "<tr $row_color>";
- avail_td(nl2br($dist_row['description']),'');
+ avail_td($os,$bindist_rowspan);
// first bindist
- if(isset($pkg_release["bindist"])) {
- $vers = $pkg_release["bindist"]["version"];
- list($open_tag, $close_tag) =
- version_tags($package, $vers, $pkg_release["bindist"]["rel_id"],
$fullversion, $pkg2disp["rel_id"]);
- avail_td(
- strlen($vers) && !$pkg_release["bindist"]["restrictive"]
- ? $open_tag . $vers . $close_tag . ' (bindist
'.$pkg_release["bindist"]["rel_version"].')'
- : '<i>not present</i>'
- );
- // need to use specific tag for info file in fink cvs?
- if (strlen($vers) && !$pkg_release["bindist"]["restrictive"])
- if ($vers == $fullversion && $pkg_release["bindist"]["rel_id"] ==
$pkg2disp["rel_id"])
- $pkg2disp['bindist'] = $pkg_release["bindist"]["rel_version"];
+ if(strlen($bindists_sql[0])) {
+ $vers = $rmap[$bindists_sql[0]];
+ avail_td(strlen($vers) && $is_restrictive==0 ? $vers.'
('.$bindists_lbl[0].')' : '<i>not present</i>');
} else {
avail_td('<i>no bindists available</i>',$bindist_rowspan);
}
// CVS/rsync dist
- if(isset($pkg_release["stable"]) || isset($pkg_release["unstable"])) {
- $vers = $pkg_release["stable"]["version"];
- list($open_tag, $close_tag) =
- version_tags($package, $vers, $pkg_release["stable"]["rel_id"],
$fullversion, $pkg2disp["rel_id"]);
+ if(strlen($dists["sta"]) || strlen($dists["uns"])) {
+ $vers_st = $rmap[$dists["sta"]];
+ $vers_un = $rmap[$dists["uns"]];
avail_td(
- strlen($vers)
- ? $open_tag . $vers . $close_tag
- : '<i>not present</i>'
- , $bindist_rowspan
- );
- $vers = $pkg_release["unstable"]["version"];
- list($open_tag, $close_tag) =
- version_tags($package, $vers, $pkg_release["unstable"]["rel_id"],
$fullversion, $pkg2disp["rel_id"]);
+ strlen($vers_st)
+ ? '<!-- a
href="../packagedetails.php?tree='.$dists["sta"]."&pkg=$package&version=$vers_st\"
-->".$vers_st #."</a>"
+ : '<i>not present</i>'
+ , $bindist_rowspan);
avail_td(
- strlen($vers)
- ? $open_tag . $vers . $close_tag
- : '<i>not present</i>'
- , $bindist_rowspan
- );
+ strlen($vers_un)
+ ? '<!-- a
href="../packagedetails.php?tree='.$dists["uns"]."&pkg=$package&version=$vers_un\"
-->".$vers_un #."</a>"
+ : '<i>not present</i>'
+ , $bindist_rowspan);
} else {
avail_td("<i>unsupported</i>",$bindist_rowspan.' colspan=2');
}
print "</tr>\n";
+
+ // other bindists
+ for( $bindistrow=1; $bindistrow<sizeof($bindists_sql); $bindistrow++ ) {
+ print "<tr $row_color>";
+ $vers = $rmap[$bindists_sql[$bindistrow]];
+ avail_td(strlen($vers) && $is_restrictive==0 ? $vers.'
('.$bindists_lbl[$bindistrow].')' : '<i>not present</i>');
+ print "</tr>\n";
+ }
+
}
print "</table>\n";
@@ -267,20 +141,13 @@
print "<br>";
it_start();
-
- if ($warning)
- it_item('', $warning);
-
- it_item("Description:", htmlentities($pkg2disp[descshort]) . " (" .
$fullversion . ")");
- show_desc('', $pkg2disp[desclong]);
-
- show_desc('Usage Hints:', $pkg2disp[descusage]);
-
- it_item("Section:", '<a
href="'.$pdbroot.'browse.php?section='.$pkg2disp[section].'">'.$pkg2disp[section].'</a>');
+ $desc = $latest[desclong];
+ it_item("<p>Description:</p>", $desc);
+ it_item("Section:", '<a
href="'.$pdbroot.'section.php/'.$latest[section].'">'.$latest[section].'</a>');
// Get the maintainer field, and try to parse out the email address
- if ($pkg2disp[maintainer]) {
- $maintainers = $pkg2disp[maintainer];
+ if ($latest[maintainer]) {
+ $maintainers = $latest[maintainer];
preg_match("/^(.+?)\s*<(\S+)>/", $maintainers, $matches);
$maintainer = $matches[1];
$email = $matches[2];
@@ -290,45 +157,33 @@
// If there was an email specified, make the maintainer field a mailto: link
if ($email) {
$email = str_replace(array("@","."), array("AT","DOT"), $email);
- it_item("Maintainer:", '<a
href="'.$pdbroot.'browse.php?maintainer='.$maintainer.'">'.$maintainer.'
<'.$email.'>'.'</a>');
+ it_item("Maintainer:", '<a
href="'.$pdbroot.'maintainer.php?maintainer='.$maintainer.'">'.$maintainer.'
<'.$email.'>'.'</a>');
# it_item("Maintainer:", '<a href="mailto:'.$email.'">'.$maintainer.'</a>');
} else {
- it_item("Maintainer:", '<a
href="'.$pdbroot.'browse.php?maintainer='.$maintainer.'">'.$maintainer.'</a>');
- }
- if ($pkg2disp[homepage]) {
- it_item("Website:", '<a
href="'.$pkg2disp[homepage].'">'.$pkg2disp[homepage].'</a>');
+ it_item("Maintainer:", '<a
href="'.$pdbroot.'maintainer.php?maintainer='.$maintainer.'">'.$maintainer.'</a>');
}
- if ($pkg2disp[license]) {
- it_item("License:", '<a
href="http://fink.sourceforge.net/doc/packaging/policy.php#licenses">'.$pkg2disp[license].'</a>');
+ if ($latest[homepage]) {
+ it_item("Website:", '<a
href="'.$latest[homepage].'">'.$latest[homepage].'</a>');
}
- if ($pkg2disp[parentname]) {
- it_item("Parent:", link_to_package($pkg2disp[parentname], $version,
$rel_id));
+ if ($latest[license]) {
+ it_item("License:", '<a
href="http://fink.sourceforge.net/doc/packaging/policy.php#licenses">'.$latest[license].'</a>');
}
- if ($pkg2disp[infofile]) {
- # where the info file sits on a local Fink installation
- $infofile_path = "/sw/" . str_replace('dists/', '', $pkg2disp[infofile]);
- $infofile_cvs_url = 'http://fink.cvs.sourceforge.net/'.$pkg2disp[infofile];
- if ($pkg2disp['bindist'])
- $infofile_tag = '?pathrev=release_'.str_replace('.', '_',
$pkg2disp['bindist']);
- else
- $infofile_tag = '';
- $infofile_html = '<a
href="'.$infofile_cvs_url.$infofile_tag.($infofile_tag ? '&' :
'?').'view=markup">'.$infofile_path.'</a><br>';
- $infofile_html .= '<a href="'.$infofile_cvs_url.$infofile_tag.'">CVS
log</a>, Last Changed: '.$pkg2disp[infofilechanged];
- it_item("Info-File:", $infofile_html);
+ if ($latest[parentname]) {
+ it_item("Parent:", '<a
href="'.$pdbroot.'package.php/'.$latest[parentname].'">'.$latest[parentname].'</a>');
}
// List the splitoffs of this package
- $q = "SELECT * FROM `package` WHERE rel_id='$pkg2disp[rel_id]' AND
parentname='$pkg2disp[name]' ORDER BY name";
+ $q = "SELECT * FROM splitoffs WHERE
parentkey='$latest[release]$latest[name]'";
$rs = mysql_query($q, $dbh);
if (!$rs) {
print '<p><b>error during query:</b> '.mysql_error().'</p>';
} else {
if($row = mysql_fetch_array($rs))
- it_item("SplitOffs:", link_to_package($row["name"], $version,
$rel_id, $row["descshort"]));
+ it_item("SplitOffs:", '<a
href="'.$pdbroot.'package.php/'.$row[name].'">'.$row[name].'</a>
'.htmlentities($row[descshort]));
while ($row = mysql_fetch_array($rs)) {
- it_item(" ", link_to_package($row["name"], $version, $rel_id,
$row["descshort"]));
+ it_item(" ", '<a
href="'.$pdbroot.'package.php/'.$row[name].'">'.$row[name].'</a>
'.htmlentities($row[descshort]));
}
}
it_end();
@@ -337,14 +192,12 @@
<?
-} /* if (no package found) */
+} /* if (SQL error) */
} /* if (no package) */
?>
<p><a href="<? print $pdbroot ?>sections.php">Section list</a> -
-<a href="<? print $pdbroot ?>browse.php">Flat package list</a> -
-<a href="<? print $pdbroot ?>browse.php?nolist=on">Search packages</a>
-</p>
+<a href="<? print $pdbroot ?>list.php">Flat package list</a></p>
<?
Index: maintainer.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/maintainer.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- maintainer.php 10 Sep 2007 18:56:34 -0000 1.5
+++ maintainer.php 10 Sep 2007 19:37:21 -0000 1.6
@@ -1,17 +1,55 @@
-<?php
-$title = "Package Database - Obsolete page";
+<?
+$title = "Package Database - Maintainer ";
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php";
+include "header.inc";
+?>
-if (isset($_GET['maintainer'])) {
- $maintainer = htmlspecialchars($_GET['maintainer']);
- $location .= "?maintainer=" . $maintainer;
+<?
+if (!isset($_GET['maintainer'])) {
+?>
+<p><b>No maintainer specified.</b></p>
+<?
+} else { /* if (no maintainer) */
+$maintainer = htmlspecialchars($_GET['maintainer']);
+?>
+
+<h1>Packages maintained by <? print $maintainer ?></h1>
+
+<?
+$q = "SELECT name,descshort FROM package WHERE maintainer LIKE
'%$maintainer%'".
+ " AND !(name REGEXP '.*-(dev|shlibs|bin|common|doc)$') ".
+ "AND latest=1 ORDER BY name ASC";
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+} else {
+ $count = mysql_num_rows($rs);
+
+?>
+
+<p>Found <? print $count ?> packages maintained by <? print $maintainer ?>:</p>
+
+<ul>
+<?
+ while ($row = mysql_fetch_array($rs)) {
+ $desc = " - ".$row[descshort];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a
href="'.$pdbroot.'package.php/'.$row[name].'">'.$row[name].'</a>'.$desc."</li>\n";
+ }
+?>
+</ul>
+<?
}
-// This page is obsolete. We redirect to browse.php
-header("Location: http://" . $server . "/" . $location);
+} /* if (no maintainer) */
+?>
+
+<!-- <p><a href="<? print $pdbroot ?>sections.php">Back to section
list</a></p> -->
+
+<?
+include "footer.inc";
?>
Index: header.inc
===================================================================
RCS file: /cvsroot/fink/web/pdb/header.inc,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- header.inc 10 Sep 2007 18:56:34 -0000 1.14
+++ header.inc 10 Sep 2007 19:37:21 -0000 1.15
@@ -47,6 +47,7 @@
$localroot."pdb/search.php", "Search",
$localroot."pdb/testing.php", "Help needed"
);
+include "timestamp.inc";
$fsroot = "../";
if (substr($root,0,1) == "-") {
@@ -61,29 +62,4 @@
include $fsroot."db.inc.php";
$dbh = mysql_pconnect($db_host, $db_user, $db_passwd);
mysql_select_db($db_name, $dbh);
-
-
-// Read url parameters. We use basic HTML encoding for now, and
-// cut off very long values, to make unforseen SQL injection hacks more
difficult.
-function get_safe_param($param_name, $valid_regexp='.*', $max_length=35) {
- $param_name = $_GET[$param_name];
- if ($param_name) $has_param_name = true;
- if (strlen($param_name) > $max_length || !preg_match($valid_regexp,
$param_name)) {
- $param_name = '';
- } else {
- $param_name = mysql_real_escape_string(htmlspecialchars($param_name));
- if (strlen($param_name) > $max_length || !preg_match($valid_regexp,
$param_name))
- $param_name = '';
- }
- if ($has_param_name && !$param_name)
- $invalid_param = true;
- else
- $invalid_param = false;
- return array (
- $param_name,
- $invalid_param,
- );
-}
-
-
?>
Index: nomaintainer.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/nomaintainer.php,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- nomaintainer.php 10 Sep 2007 18:56:34 -0000 1.15
+++ nomaintainer.php 10 Sep 2007 19:37:21 -0000 1.16
@@ -1,12 +1,64 @@
-<?php
-$title = "Package Database - Obsolete page";
+<?
+$title = "Package Database";
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php?maintainer=None&nochildren=on";
+include "header.inc";
-// This page is obsolete. We redirect to browse.php
-header("Location: http://$server/$location");
+if (!param(distro)) {
+ $distro_sql = "AND (`release` LIKE 'current-10.3%' OR `release` LIKE
'current-10.4%')";
+ $distro_txt = ' in the 10.3 and 10.4 releases';
+} else if (!strcmp(param(distro),"all")) {
+ $distro_sql = '';
+ $distro_txt = '';
+} else if (ereg("[^a-zA-Z0-9_.+-]",param(distro))) {
+ print '<p><b>error during query:</b> invalid distro</p>';
+ $distro_sql = '';
+ $distro_txt = '';
+} else {
+ $distro_sql = "AND `release` LIKE 'current-".param(distro)."%'";
+ $distro_txt = ' in the '.param(distro). ' release';
+}
+
+$q = "SELECT name,descshort FROM package ".
+ "WHERE maintainer LIKE '%None%' AND latest=1 AND parentname IS NULL ".
+ "$distro_sql ORDER BY name ASC";
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+} else {
+ $count = mysql_num_rows($rs);
+?>
+
+
+<h1>Packages without Maintainers</h1>
+
+<p>
+This is a list of packages that need a new maintainer, because the original
+maintainer who brought the package to Fink is no longer able to maintain
+it. If you are interested in taking on one of these packages, and you are
+not already a core Fink developer, please <a
+href="mailto:fink-develATlistsDOTsourceforgeDOTnet">contact the Fink
+developers</a> and volunteer!</p>
+<p>Core Fink developers are welcome to adopt a package by changing the
+maintainer name in the package's .info file to their own.</p>
+
+<p>Found <? print $count ?> packages without maintainers<? print $distro_txt
?>:</p>
+<ul>
+<?
+ while ($row = mysql_fetch_array($rs)) {
+ $desc = " - ".$row[descshort];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a
href="'.$pdbroot.'package.php/'.$row[name].'">'.$row[name].'</a>'.$desc."</li>\n";
+ }
+?>
+</ul>
+<?
+}
+?>
+
+<?
+include "footer.inc";
?>
Index: browse.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/browse.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- browse.php 10 Sep 2007 18:56:34 -0000 1.4
+++ browse.php 10 Sep 2007 19:37:21 -0000 1.5
@@ -3,62 +3,13 @@
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-
-
-function addGETParam(&$params, $param_name) {
- $value = stripslashes($_GET[$param_name]);
- if ($value)
- $params[$param_name] = urlencode($value);
-}
-
-
-if (isset($_GET['submit']) && $_GET['submit'] == 'Search') {
- // Re-direct to clean out empty params
- $getparams = array();
- $value = $_GET['nomaintainer'];
- if ($value == 'on')
- $_GET['maintainer'] = 'None';
- addGETParam($getparams, 'maintainer');
- addGETParam($getparams, 'name');
- addGETParam($getparams, 'summary');
- addGETParam($getparams, 'nolist');
- addGETParam($getparams, 'dist');
- addGETParam($getparams, 'tree');
- addGETParam($getparams, 'section');
- addGETParam($getparams, 'nochildren');
- addGETParam($getparams, 'noshlibsdev');
- addGETParam($getparams, 'sort');
- addGETParam($getparams, 'showall');
- $redirect_url = '?';
- foreach ($getparams as $key => $value) {
- $redirect_url .= "$key=$value&";
- }
- $redirect_url = rtrim($redirect_url, '&?');
- header("Location: browse.php$redirect_url");
-}
-
-// are there any advanced search options? If no, collapse advanced search div
-if ($_GET['maintainer'] || $_GET['name'] || $_GET['dist'] || $_GET['tree'] ||
$_GET['section'] || $_GET['nochildren'] || $_GET['noshlibsdev'] ||
$_GET['sort'])
- $pdb_has_adv_searchoptions = true;
-else
- $pdb_has_adv_searchoptions = false;
-
-// load javascript for pdb in header.inc
-$pdb_scripts = true;
-
include "header.inc";
?>
<h1>Browse packages</h1>
<p>
-On this page you can browse through all packages in the Fink package database,
-optionally and at your direction narrowed down by various search parameters,
set below.
-</p>
-<p>
-For each of several distributions (10.2, 10.3, 10.4), this database includes
-information about all packages found in the respective latest stable and
unstable trees.
-Furthermore, all packages from the most recent binary distributions are
covered.
+TODO: Write some text that fits here
</p>
<?
@@ -78,22 +29,16 @@
$maintainer any, name
$dist any, dist name
$section any, sectio name
-$tree any, stable, testing (=stable version outdated), unstable, bindist
+$tree any, stable, testing (=stable version outdated), unstable
+$binary any, true, false
$nochildren any, true, false
*/
-/**
- * Simple function to replicate PHP 5 behaviour
- */
-function microtime_float()
-{
- list($usec, $sec) = explode(" ", microtime());
- return ((float)$usec + (float)$sec);
-}
-// This function generates a form popup, with the given
+// This function generates a form popup, with the given label,
// variable name, current value, and list of possible values.
-function genFormSelect($var_name, $cur_val, $values, $description = '') {
+function genFormSelect($label, $var_name, $cur_val, $values) {
+ echo $label;
echo "<select NAME='$var_name'>\n";
foreach ($values as $key => $val) {
echo " <option value='$key' ";
@@ -101,46 +46,27 @@
echo ">$val</option>\n";
}
echo "</select>\n";
- echo $description ? " $description" : '';
echo "<br>";
}
-list($showall, $inv_p) = get_safe_param('showall', '/^on$/');
-
-// Distribution values
-$dist_values = array();
-$q = "SELECT * FROM `distribution` WHERE active='1' ";
-if (!$showall)
- $q .= "AND visible='1' ";
-$q .= "ORDER BY priority DESC";
-$qdist = mysql_query($q, $dbh);
-if (!$qdist) {
- die('<p class="attention"><b>Error in db query (distribution):</b>
'.mysql_error().'</p>');
-}
-$dist_values[''] = 'Any';
-while ($dist = mysql_fetch_array($qdist)) {
- $dist_values[$dist['dist_id']] = $dist['description'];
-}
-
// Allowed values for certain fields
$tree_values = array(
- "" => "Any",
- "unstable" => "Unstable",
- "stable" => "Stable",
- "bindist" => "Binary Distribution",
- "testing" => "Packages that need testing"
+ "any" => "any",
+ "stable" => "stable",
+ "testing" => "testing",
+ "unstable" => "unstable"
);
$sort_values = array(
- "" => "Ascending",
+ "ASC" => "Ascending",
"DESC" => "Descending"
);
// Load legal sections
-$section_values = array('' => 'Any');
+$section_values = array("any" => "Any");
$query = "SELECT * FROM sections ORDER BY name ASC";
$rs = mysql_query($query, $dbh);
if (!$rs) {
- print '<p class="attention"><b>Error in db query (sections):</b>
'.mysql_error().'</p>';
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
} else {
$seccount = mysql_num_rows($rs);
while ($row = mysql_fetch_array($rs)) {
@@ -148,104 +74,70 @@
}
}
-// Read url parameters
-// NOTE: You have to change the parameter list at the top of this file as well
-$invalid_param = false;
-list($maintainer, $inv_p) = get_safe_param('maintainer', '/[EMAIL
PROTECTED]&\'\\\ ]+$/');
-$invalid_param = $invalid_param || $inv_p;
-list($name, $inv_p) = get_safe_param('name', '/^[a-z0-9+\-.%]+$/');
-$invalid_param = $invalid_param || $inv_p;
-list($summary, $inv_p) = get_safe_param('summary', '/.*/');
-$invalid_param = $invalid_param || $inv_p;
-list($nolist, $inv_p) = get_safe_param('nolist', '/on/');
-$invalid_param = $invalid_param || $inv_p;
+// Read the maintainer field. We use basic HTML encoding for now, and cut off
+// very long values, to make unforseen SQL injection hacks more difficult.
+$maintainer = $_GET['maintainer'];
+if (strlen($maintainer) > 15 || !preg_match("/[EMAIL PROTECTED] ]+$/",
$maintainer)) {
+ $maintainer = "";
+} else {
+ $maintainer = htmlspecialchars($maintainer);
+ if (strlen($maintainer) > 15 || !preg_match("/^[a-zA-Z0-9@ ]+$/",
$maintainer))
+ $maintainer = "";
+}
// Extract the distribution
-$dist = $_GET['dist'];
-if (!isset($dist_values[$tree]))
- $tree = '';
+// TODO
+//$dist = htmlspecialchars($_GET['dist']);
// Extract the tree
$tree = $_GET['tree'];
if (!isset($tree_values[$tree]))
- $tree = '';
+ $tree = "any";
// Extract the section
$section = $_GET['section'];
if (!isset($section_values[$section]))
- $section = '';
+ $section = "any";
+
+// List only binary packages, only non-binary packages, or all?
+$binary = $_GET['binary'];
+if ($binary != "1" and $binary != "0") $binary = "";
//
$nochildren = $_GET['nochildren'];
-if ($nochildren != "on") $nochildren = '';
+if ($nochildren != "on") $nochildren = "off";
//
$noshlibsdev = $_GET['noshlibsdev'];
-if ($noshlibsdev != "on") $noshlibsdev = '';
+if ($noshlibsdev != "on") $noshlibsdev = "off";
// Sort direction
$sort = $_GET['sort'];
-if ($sort != "DESC") $sort = '';
+if ($sort != "DESC") $sort = "ASC";
?>
-<form action="browse.php" method="get" name="pdb_browser" id="pdb_browser"
onreset="resetForm();return false;">
-<?if ($showall) print '<input name="showall" type="hidden" value="on">';?>
-<br>
-Summary:
-<input name="summary" type="text"
value="<?=stripslashes(stripslashes($summary))?>"> (Leave empty to list all)
-<br>
+<form action="browse.php" method="get" name="pdb_browser" id="pdb_browser">
-<input name="submit" type="submit" value="Search">
-<input type="reset" value="Clear Form">
-<br>
-<?if ($invalid_param) print '<p class="attention">Invalid Input
Parameters!</p>';?>
-<br>
+<script language="javascript" type="text/javascript">
+<!--
+function list_unmaintained_packages() {
+ document.pdb_browser.elements.maintainer.value="None"
+}
+//-->
+</script>
-<span class="expand_adv_options">
-<a href="javascript:switchMenu('advancedsearch','triangle');" title="Advanced
search options"><img src="<? echo $root ?>img/collapse.png" alt=""
id="triangle" width="9" height="8"> Advanced search options</a>
-</span>
+Maintainer:
+<input name="maintainer" type="text" value="<?=$maintainer?>">
+(<a href="javascript:list_unmaintained_packages()">list packages without
maintainer</a>)
<br>
-<div id="advancedsearch">
-
-<table><tr>
-<td>Package Name:</td>
-<td><input name="name" type="text" value="<?=$name?>"> (Exact match. Use '%'
as wildcard.)</td>
-</tr><tr>
-<td>Maintainer:</td>
-<td>
-<input name="maintainer" type="text"
value="<?=stripslashes(stripslashes($maintainer))?>"
onChange="set_list_nomaintainer(this.value)">
-<input name="nomaintainer" type="checkbox"
onchange="list_unmaintained_packages(this.checked)" <? if ($maintainer ==
"None") echo "checked";?>>
-No maintainer
-</td>
-</tr>
-
<?
-
-// We need to set a specific distribution if showing packages in "testing"
-// Select the one with the highest priority
-if ($tree == 'testing' && !$dist) {
- reset($dist_values);
- next($dist_values);
- $dist = key($dist_values);
-}
+genFormSelect("Tree: ", "tree", $tree, $tree_values);
+genFormSelect("Section: ", "section", $section, $section_values);
+genFormSelect("Sort: ", "sort", $sort, $sort_values);
?>
-<tr>
-<td>Distribution:</td>
-<td><?genFormSelect("dist", $dist, $dist_values);?></td>
-</tr><tr>
-<td>Tree:</td>
-<td><?genFormSelect("tree", $tree, $tree_values);?></td>
-</tr><tr>
-<td>Section:</td>
-<td><?genFormSelect("section", $section, $section_values);?></td>
-</tr><tr>
-<td>Sort order:</td>
-<td><?genFormSelect("sort", $sort, $sort_values);?></td>
-</tr></table>
-
<input name="nochildren" type="checkbox" <? if ($nochildren == "on") echo
"checked";?>>
Exclude packages with parent (includes most "-dev", "-shlibs", ... splitoffs)
<br>
@@ -254,194 +146,71 @@
Exclude -shlibs, -dev, -bin, -common, -doc packages
<br>
-</div>
-
+<input name="submit" type="submit" value="Browse">
</form>
<?
-if (!$nolist && !$invalid_param) {
-
//
// Build the big query string
//
-$query =
- "SELECT p.name, p.version, p.revision, p.descshort, r.rel_id ";
-if ($dist && $tree) {
- // show pkg of specifc dist/tree
- if ($tree == 'testing') {
- $query .= ", CONCAT(p.version, '-', p.revision) AS version_unstable, ".
- " CONCAT(sp.version, '-', sp.revision) AS version_stable ".
- "FROM `release` r, `package` p ".
- "LEFT OUTER JOIN (`package` sp, `release` sr) ".
- " ON (p.name = sp.name ".
- " AND sp.rel_id = sr.rel_id ".
- " AND sr.dist_id = $dist ".
- " AND sr.type = 'stable') ".
- " WHERE p.rel_id = r.rel_id ".
- " AND r.dist_id = $dist ".
- " AND r.type = 'unstable' ";
- } else {
- $query .= "FROM `package` p, `release` r ".
- "WHERE p.rel_id = r.rel_id".
- " AND r.dist_id = $dist ".
- " AND r.type = '$tree' ";
- }
-} else if ($dist && !$tree) {
- // show latest pkg of specifc dist or tree
- $query .= "FROM `package` p, `release` r ".
- "WHERE p.rel_id = r.rel_id ".
- " AND r.dist_id = $dist ".
- " AND r.priority = (SELECT MAX(rX.priority) ".
- " FROM `package` pX, ".
- " `release` rX ".
- " WHERE p.name = pX.name ".
- " AND pX.rel_id = rX.rel_id ".
- " AND rX.dist_id = $dist ".
- " GROUP BY pX.name) ";
-} else if (!$dist && $tree) {
- // show everything in a given tree, regardless of the dist
- // Note: This query is almost identical to the (!$dist && !$tree) one.
- // The only additions are the '$tree' specifiers.
- $query .= "FROM `package` p, `release` r, `distribution` d ".
- "WHERE p.rel_id = r.rel_id ".
- " AND r.dist_id = d.dist_id ";
- if (!$showall)
- $query .= "AND d.visible='1' ";
- $query .= " AND r.type = '$tree' ".
- " AND d.priority = (SELECT MAX(dX.priority) ".
- " FROM `package` pX, ".
- " `release` rX, ".
- " `distribution` dX ".
- " WHERE p.name = pX.name ".
- " AND pX.rel_id = rX.rel_id ".
- " AND rX.dist_id = dX.dist_id ".
- " AND rX.type = '$tree' ";
- if (!$showall)
- $query .= " AND dX.visible='1' ";
- $query .= " GROUP BY pX.name) ".
- " AND r.priority = (SELECT MAX(rX.priority) ".
- " FROM `package` pX, ".
- " `release` rX ".
- " WHERE p.name = pX.name ".
- " AND pX.rel_id = rX.rel_id ".
- " AND rX.dist_id = d.dist_id ".
- " AND rX.type = '$tree' ".
- " GROUP BY pX.name) ";
-} else if (!$dist && !$tree) {
- // show latest if no specifc dist/tree
- $query .= "FROM `package` p, `release` r, `distribution` d ".
- "WHERE p.rel_id = r.rel_id ".
- " AND r.dist_id = d.dist_id ";
- if (!$showall)
- $query .= "AND d.visible='1' ";
- $query .= " AND d.priority = (SELECT MAX(dX.priority) ".
- " FROM `package` pX, ".
- " `release` rX, ".
- " `distribution` dX ".
- " WHERE p.name = pX.name ".
- " AND pX.rel_id = rX.rel_id ".
- " AND rX.dist_id = dX.dist_id ";
- if (!$showall)
- $query .= " AND dX.visible='1' ";
- $query .= " GROUP BY pX.name) ".
- " AND r.priority = (SELECT MAX(rX.priority) ".
- " FROM `package` pX, ".
- " `release` rX ".
- " WHERE p.name = pX.name ".
- " AND pX.rel_id = rX.rel_id ".
- " AND rX.dist_id = d.dist_id ".
- " GROUP BY pX.name) ";
-}
+$query = "SELECT name,version,revision,descshort FROM package WHERE ".
+ "latest=1 "; // TODO: Should we really always specify latest=1 ???
probably not
+
+if ($tree == "testing") // TODO: Handle stable / unstable, too!
+ $query .= "AND needtest=1 ";
if ($nochildren == "on")
- $query .= "AND p.parentname IS NULL ";
+ $query .= "AND parentname IS NULL ";
if ($noshlibsdev == "on")
- $query .= "AND !(p.name REGEXP '.*-(dev|shlibs|bin|common|doc)$') ";
+ $query .= "AND !(name REGEXP '.*-(dev|shlibs|bin|common|doc)$') ";
if ($maintainer != "")
- $query .= "AND p.maintainer LIKE '%$maintainer%' ";
-
-if ($name != "")
- $query .= "AND p.name LIKE '$name' ";
-
-if ($summary != "")
- $query .= "AND (p.name LIKE '%$summary%' OR p.descshort LIKE
'%$summary%' OR p.desclong LIKE '%$summary%' OR p.descusage LIKE '%$summary%')
";
+ $query .= "AND maintainer LIKE '%$maintainer%' ";
-if ($section) {
+if ($section != "any") {
if ($section == "games") {
- $sectionquery = " (p.section='$section' OR p.parentname REGEXP
'kdegames3|kdetoys3') ";
+ $sectionquery = " (section='$section' OR parentname REGEXP
'kdegames3|kdetoys3') ";
} else if ($section == "graphics") {
- $sectionquery = " (p.section='$section' OR
p.parentname='kdegraphics3') ";
+ $sectionquery = " (section='$section' OR
parentname='kdegraphics3') ";
} else if ($section == "sound") {
- $sectionquery = " (p.section='$section' OR
p.parentname='kdemultimedia3') ";
+ $sectionquery = " (section='$section' OR
parentname='kdemultimedia3') ";
} else if ($section == "utils") {
- $sectionquery = " (p.section='$section' OR
p.parentname='kdeutils3') ".
- " AND (p.parentname IS NULL OR p.parentname !=
'webmin') ";
+ $sectionquery = " (section='$section' OR
parentname='kdeutils3') ".
+ " AND (parentname IS NULL OR parentname !=
'webmin') ";
} else {
- $sectionquery = " p.section='$section' ";
+ $sectionquery = " section='$section' ";
}
$query .= "AND $sectionquery ";
}
-if ($tree == 'testing')
- $query .= "HAVING version_stable IS NULL OR version_unstable !=
version_stable ";
-$query .= "ORDER BY p.name $sort";
-$time_sql_start = microtime_float();
+
+$query .= "ORDER BY name $sort";
+
$rs = mysql_query($query, $dbh);
-$time_sql_end = microtime_float();
if (!$rs) {
- print '<p class="attention"><b>Error in db query (list packages):</b>
'.mysql_error().'</p>';
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
} else {
$count = mysql_num_rows($rs);
+?>
+<p>Found <? print $count ?> packages:</p>
-// Maybe display an overview of the search settings used to obtain the results
here?
-// Many seach servics (e.g. Google) do this: While the search settings are
initially
-// still visible in the widgets on the page, the user may have altered them.
-?>
-<p>
-Found <?=$count?>
-package<?=($count==1 ? '' : 's')?><?=($maintainer=='None' ? ' without
maintainer' : '')?><?=($tree=='testing' ? ' that need testing' : '')?>:
-</p>
-<?
- if ($count > 0) {
-?>
-<table class="pdb" cellspacing="2" border="0">
+<ul>
<?
- if ($tree == 'testing') {
- print '<tr class="pdbHeading"><th>Name</th><th>Version in
unstable</th><th>Version in stable</th><th>Description</th></tr>';
- }
- elseif ($tree && $dist) {
- print '<tr
class="pdbHeading"><th>Name</th><th>Version</th><th>Description</th></tr>';
- }
- else {
- print '<tr class="pdbHeading"><th>Name</th><th>Latest
Version</th><th>Description</th></tr>';
- }
while ($row = mysql_fetch_array($rs)) {
- print '<tr class="package">';
- if ($tree || $dist)
- $rel_id_str = '?rel_id='.$row["rel_id"].($showall ? '&showall=on' : '');
- else
- $rel_id_str = ($showall ? '?showall=on' : '');
- print '<td class="packageName"><a
href="package.php/'.$row["name"].$rel_id_str.'">'.$row["name"].'</a></td>';
- if ($tree == 'testing') {
- print '<td>'.$row['version_unstable'].'</td>'.
- '<td>'.$row['version_stable'].'</td>';
- } else {
- print '<td
class="packageName">'.$row['version'].'-'.$row['revision'].'</td>';
- }
- print '<td>'.$row['descshort']."</td></tr>\n";
+ $desc = " - ".$row["descshort"];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a href="package.php/'.$row["name"].'">'.$row["name"].'</a> '.
+ $row["version"].'-'.$row["revision"].$desc."</li>\n";
}
?>
-</table>
-<? } // no packages to list ?>
-<p>Query took <? printf("%.2f", $time_sql_end - $time_sql_start); ?> sec</p>
+</ul>
<?
-} // no sql error
-} // if($nolist)
+}
?>
<?
Index: sections.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/sections.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- sections.php 10 Sep 2007 18:56:35 -0000 1.5
+++ sections.php 10 Sep 2007 19:37:21 -0000 1.6
@@ -27,7 +27,7 @@
<ul>
<?
while ($row = mysql_fetch_array($rs)) {
- print '<li><a href="browse.php?section='.$row[name].'">'.$row[name].'</a>'.
+ print '<li><a href="section.php/'.$row[name].'">'.$row[name].'</a>'.
($row[description] ? (' - '.$row[description]) : '').
'</li>'."\n";
}
Index: testing.php
===================================================================
RCS file: /cvsroot/fink/web/pdb/testing.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- testing.php 10 Sep 2007 18:56:35 -0000 1.9
+++ testing.php 10 Sep 2007 19:37:21 -0000 1.10
@@ -3,10 +3,58 @@
$cvs_author = '$Author$';
$cvs_date = '$Date$';
-$server = $_SERVER['SERVER_NAME'];
-$location = "pdb/browse.php?tree=testing&nochildren=on";
+$have_key = isset($maintainer);
-// This page is obsolete. We redirect to browse.php
-header("Location: http://$server/$location");
+include "header.inc";
+?>
+
+
+<h1>Packages in Testing</h1>
+
+<p>
+This is a list of packages that need testing, i.e. the version in
+unstable is newer than the version in stable.
+The list is based on the latest <a
+href="http://fink.sourceforge.net/doc/cvsaccess/index.php">packages from
CVS</a>.
+</p>
+
+<?
+// list is actually constructed by 'flag' script during db update
+
+if ($have_key && !ereg("[^ a-zA-Z0-9_.+-]", $maintainer)) {
+ $q = "SELECT name,version,revision,descshort FROM package ".
+ "WHERE needtest=1 AND (maintainer LIKE '%$maintainer%') ".
+ "AND parentname IS NULL ".
+ "ORDER BY name ASC";
+} else {
+ $q = "SELECT name,version,revision,descshort FROM package ".
+ "WHERE needtest=1 AND parentname IS NULL ".
+ "ORDER BY name ASC";
+}
+$rs = mysql_query($q, $dbh);
+if (!$rs) {
+ print '<p><b>error during query:</b> '.mysql_error().'</p>';
+} else {
+ $count = mysql_num_rows($rs);
+?>
+
+<p>Found <? print $count ?> testing packages:</p>
+
+<ul>
+<?
+ while ($row = mysql_fetch_array($rs)) {
+ $desc = " - ".$row[descshort];
+ if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
+ $desc = "";
+ print '<li><a href="package.php/'.$row[name].'">'.$row[name].'</a> '.
+ $row[version].'-'.$row[revision].$desc."</li>\n";
+ }
+?>
+</ul>
+<?
+}
+?>
+<?
+include "footer.inc";
?>
--- help.php DELETED ---
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Fink-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-commits