diff options
Diffstat (limited to 'rpm.php')
-rw-r--r-- | rpm.php | 271 |
1 files changed, 134 insertions, 137 deletions
@@ -62,170 +62,167 @@ function report($db, $type) global $what, $smarty; $packages = null; $rpmrepo = new TableRpmRepo($db); + $uptable = new TableUpstream($db); + $repos = $rpmrepo->getAllRepoHash(); $smarty->assign('repos', $repos); $i=0; - $resup=$db->query("SELECT * FROM upstream WHERE type='$type' ORDER BY name"); - if ($resup) { - while ($upstream = $resup->fetchObject()) { - $package = null; - $rpmname = $upstream->name; + foreach($uptable->request(array('type'=>$type, 'ORDER'=>'name')) as $up) { + $package = null; + $rpmname = $up['name']; - $verup = strtolower( - $upstream->stable ? $upstream->stable : $upstream->unstable - ); + $verup = strtolower($up['stable'] ? $up['stable'] : $up['unstable']); - $sql2="SELECT DISTINCT owner FROM acls WHERE name = '$rpmname'"; - $res2=$db->query($sql2); - $owners=array(); - if ( $res2 ) { - while ($owner= $res2->fetchObject()) { - $owners[] = $owner->owner; - } + $sql2="SELECT DISTINCT owner FROM acls WHERE name = '$rpmname'"; + $res2=$db->query($sql2); + $owners=array(); + if ( $res2 ) { + while ($owner= $res2->fetchObject()) { + $owners[] = $owner->owner; } + } - $sql = "SELECT * FROM rpm WHERE name = '$rpmname'"; + $sql = "SELECT * FROM rpm WHERE name = '$rpmname'"; - $res=$db->query($sql); - $rpm = ($res ? $res->fetchObject() : false); - $rpms=array(); - if ( $rpm ) { - do { - $rpms[$rpm->repo_main."-".$rpm->repo_sub]=$rpm; - } while ($rpm = $res->fetchObject()); - } + $res=$db->query($sql); + $rpm = ($res ? $res->fetchObject() : false); + $rpms=array(); + if ( $rpm ) { + do { + $rpms[$rpm->repo_main."-".$rpm->repo_sub]=$rpm; + } while ($rpm = $res->fetchObject()); + } - switch ($what) { - case '%work': - $display = false; - if (count($rpms) - && isset($rpms['devel-']) - && $rpms['devel-']->ver != $verup - ) { - $display = true; - } - break; - case '%fedora': - $display = (count($rpms)); - break; - case '%stable': - $display = !empty($upstream->stable); - break; - case '%all': + switch ($what) { + case '%work': + $display = false; + if (count($rpms) + && isset($rpms['devel-']) + && $rpms['devel-']->ver != $verup + ) { $display = true; - break; - default: // owner - $display = (array_search($what, $owners) !== false); - break; } + break; + case '%fedora': + $display = (count($rpms)); + break; + case '%stable': + $display = !empty($up['stable']); + break; + case '%all': + $display = true; + break; + default: // owner + $display = (array_search($what, $owners) !== false); + break; + } - if ($display) { - if ($rpm) { - $package['name'] = '<a href="zoom.php?rpm=' . $rpmname . - '" title="' . htmlentities($rpm->summary) . '">' . - $rpmname . '</a>'; - } else { - $package['name'] = $rpmname; - } - if ( $upstream->channel != $upstream->type ) { - $package['channel'] = $upstream->channel; - } + if ($display) { + if ($rpm) { + $package['name'] = '<a href="zoom.php?rpm=' . $rpmname . + '" title="' . htmlentities($rpm->summary) . '">' . + $rpmname . '</a>'; + } else { + $package['name'] = $rpmname; + } + if ($up['channel'] != $up['type']) { + $package['channel'] = $up['channel']; + } - $dispowner=""; - $package['owners'] = $owners; - if ( $upstream->stable ) { - $package['upstream_stable'] = $upstream->stable; - } - if ( $upstream->unstable - && (!$upstream->stable - || $upstream->stable!=$upstream->unstable) - ) { - $package['upstream_unstable'] = $upstream->unstable . - ' <small>(' . $upstream->state . ')</small>'; - } + $dispowner=""; + $package['owners'] = $owners; + if ($up['stable']) { + $package['upstream_stable'] = $up['stable']; + } + if ($up['stable'] + && (!$up['unstable'] + || $up['stable']!=$up['unstable']) + ) { + $package['upstream_unstable'] = $up['unstable'] . + ' <small>(' . $up['state'] . ')</small>'; + } - $versions = null; - foreach ( $repos as $repomain ) { - $display=""; - $class=""; - foreach ( $repomain as $k=>$repo ) { - if ( isset($rpms[$repo['main']."-".$repo['sub']]) ) { - $rpm=$rpms[$repo['main']."-".$repo['sub']]; + $versions = null; + foreach ( $repos as $repomain ) { + $display=""; + $class=""; + foreach ( $repomain as $k=>$repo ) { + if ( isset($rpms[$repo['main']."-".$repo['sub']]) ) { + $rpm=$rpms[$repo['main']."-".$repo['sub']]; - $verpm=$rpm->ver; - $pat = "/\.((beta|RC)\d*)\./i"; - if (preg_match($pat, $rpm->rel, $res)) { - $verpm .= strtolower($res[1]); - } + $verpm=$rpm->ver; + $pat = "/\.((beta|RC)\d*)\./i"; + if (preg_match($pat, $rpm->rel, $res)) { + $verpm .= strtolower($res[1]); + } - switch ($repo['sub']) { - case "base": - if ( isset($rpms[$repo['main']."-updates"]) ) { - $display .= sprintf( - "%s-%s<br/>", - $rpm->ver, - $rpm->rel - ); - } else { - $display .= sprintf( - "<strong>%s</strong>-%s<br/>", - $rpm->ver, - $rpm->rel - ); - } - if ( $verup==$verpm ) { - $class="check"; - } - break; - case "": + switch ($repo['sub']) { + case "base": + if ( isset($rpms[$repo['main']."-updates"]) ) { $display .= sprintf( - "<strong>%s</strong>-%s<br/>", + "%s-%s<br/>", $rpm->ver, $rpm->rel ); - if ( $verup==$verpm ) { - $class="check"; - } - break; - case "updates": + } else { $display .= sprintf( - "<strong>%s</strong>-%s ". - "<small>(updates)</small><br/>", - $rpm->ver, - $rpm->rel - ); - if ( $verup==$verpm ) { - $class="check"; - } - break; - case "testing": - $display .= sprintf( - "%s-%s <small>(testing)</small><br/>", + "<strong>%s</strong>-%s<br/>", $rpm->ver, $rpm->rel ); - if ( $verup==$verpm ) { - $class="info"; - } - break; } - } // RPM exists - } // sub repo - if ( $display && empty($class) ) { - $class="attn"; - } - $versions[] = array( - 'class' => $class, - 'display' => $display - ); - $package['versions'] = $versions; - } // mainrepo + if ( $verup==$verpm ) { + $class="check"; + } + break; + case "": + $display .= sprintf( + "<strong>%s</strong>-%s<br/>", + $rpm->ver, + $rpm->rel + ); + if ( $verup==$verpm ) { + $class="check"; + } + break; + case "updates": + $display .= sprintf( + "<strong>%s</strong>-%s ". + "<small>(updates)</small><br/>", + $rpm->ver, + $rpm->rel + ); + if ( $verup==$verpm ) { + $class="check"; + } + break; + case "testing": + $display .= sprintf( + "%s-%s <small>(testing)</small><br/>", + $rpm->ver, + $rpm->rel + ); + if ( $verup==$verpm ) { + $class="info"; + } + break; + } + } // RPM exists + } // sub repo + if ( $display && empty($class) ) { + $class="attn"; + } + $versions[] = array( + 'class' => $class, + 'display' => $display + ); + $package['versions'] = $versions; + } // mainrepo - $i++; - $packages[] = $package; - } - } // each $unstable + $i++; + $packages[] = $package; + } } return $packages; } |