summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/feed-browser/css/feed.css49
-rw-r--r--contrib/feed-browser/index.php32
-rw-r--r--contrib/feed-browser/update.php208
3 files changed, 163 insertions, 126 deletions
diff --git a/contrib/feed-browser/css/feed.css b/contrib/feed-browser/css/feed.css
index b1252c4f7e..f2927f71f8 100644
--- a/contrib/feed-browser/css/feed.css
+++ b/contrib/feed-browser/css/feed.css
@@ -3,10 +3,34 @@ body
color: #000;
background-color: #fff;
font-family: Sans;
- padding: 0;
+ padding: 10px;
margin: 0;
}
+#left
+{
+ position: absolute;
+ left:10px;
+ top:10px;
+ width:200px;
+ background:#fff;
+}
+
+#right
+{
+ background:#fff;
+ margin-left: 199px;
+ margin-right: 0;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ margin-left: 201px;
+ margin-right:0;
+}
+html>body #right {
+ margin-left: 201px;
+ margin-right:0;
+}
+
a
{
text-decoration: none;
@@ -37,6 +61,7 @@ td
h1
{
+ padding-top: 1em;
font-size: 125%;
}
@@ -45,12 +70,6 @@ h2
font-size: 105%;
}
-#menu, #menu li
-{
- display: inline;
- list-style: none;
-}
-
dt
{
padding-top: 0.5em;
@@ -58,6 +77,7 @@ dt
#sections
{
+ padding-top: 1em;
list-style: none;
font-size: 0.8em;
}
@@ -67,18 +87,13 @@ dt
list-style: none;
margin-left: -1em;
}
-
-#page
-{
-}
-
-#left
+.download:before
{
- float: left;
- width: 20%;
+ content: url("http://ewi546.ewi.utwente.nl/tmp/hrw/fb/img/package-x-generic.png");
+ padding: 0 2px;
}
-#right
+#download
{
- width: 79%;
+ list-style: none;
}
diff --git a/contrib/feed-browser/index.php b/contrib/feed-browser/index.php
index 9b612f9fd1..3b1230ce22 100644
--- a/contrib/feed-browser/index.php
+++ b/contrib/feed-browser/index.php
@@ -80,10 +80,11 @@ switch($action)
<style type="text/css" media="all">@import "css/feed.css";</style>
</head>
<body >
- <div id="page">
- <div id="left"><?php echo sectionslist(); ?></div>
<div id="right"><?php echo searchletter(); echo $ipkgoutput; ?></div>
- </div>
+ <div id="left">
+ <h1>Sections list</h1>
+ <?php echo sectionslist(); ?>
+ </div>
</body>
</html>
<?php
@@ -287,8 +288,9 @@ function searchsection($section)
function pkgdetails ($package)
{
$result = db_query("SELECT * FROM packages,feeds
- WHERE packages.p_name='$package' AND feeds.f_name = packages.p_feed
- ORDER BY packages.p_version DESC");
+ WHERE (packages.p_name='$package' OR packages.p_provides='$package')
+ AND feeds.f_name = packages.p_feed
+ ORDER BY packages.p_version DESC, feeds.f_name ASC, packages.p_arch DESC ");
// display first result
@@ -380,18 +382,20 @@ function pkgdetails ($package)
}
- $details .= "\n<h2>Available versions and architectures:</h2><ul>\n";
+ $details .= "\n<h2>Available versions and architectures:</h2><ul id='download'>\n";
foreach($result as $packages_a)
{
- $details .= sprintf("\n<li><a href='%s' title='%s %s for %s'>%s %s</a> for %s</li>\n",
+ $details .= sprintf("\n<li><a class='download' href='%s' title='%s %s for %s'>%s %s</a> for %s (%s feed)</li>\n",
$packages_a['feeds.f_uri']."/".$packages_a['packages.p_file'],
$packages_a['packages.p_name'],
$packages_a['packages.p_version'],
$packages_a['packages.p_arch'],
$packages_a['packages.p_name'],
$packages_a['packages.p_version'],
- $packages_a['packages.p_arch']);
+ $packages_a['packages.p_arch'],
+ $packages_a['feeds.f_name']
+ );
}
$details .= "</ul>\n";
@@ -407,20 +411,17 @@ function pkgdetails ($package)
function addlinks ($input)
{
// split input elements up
- $elements = preg_split ('/[\s,]+/', $input);
+ $elements = explode (', ', $input);
$offset = 0;
foreach ($elements as $element)
{
- // skip version information and empty elements (shouldn't happend)
- if (!eregi('^([0-9a-z\-]*)$', $element) OR empty($element))
- {
- continue;
- }
+ // strip version number
+ $element = ereg_replace('^(.*)( \((.*)\))+$', '\\1', $element);
// do we have this package in the db?
- $result = db_query ("SELECT DISTINCT p_name FROM packages WHERE p_name='{$element}'");
+ $result = db_query ("SELECT DISTINCT p_name FROM packages WHERE p_name='{$element}' OR p_provides='{$element}'");
if(isset($result[0]['p_name']))
{
@@ -440,7 +441,6 @@ function addlinks ($input)
}
}
-
return $input;
}
diff --git a/contrib/feed-browser/update.php b/contrib/feed-browser/update.php
index 07f4f15bc9..1b5e7c34fc 100644
--- a/contrib/feed-browser/update.php
+++ b/contrib/feed-browser/update.php
@@ -35,6 +35,7 @@
Description: IPv4 link-local address allocator
*/
+error_reporting(E_ALL);
$start = time();
$p_count = 0;
@@ -45,82 +46,96 @@ $feeds = db_query("SELECT f_name, f_uri FROM feeds");
foreach($feeds as $feed)
{
+ print("Updating {$feed['f_name']}: {$feed['f_uri']}\n");
+ db_query_n("DELETE FROM packages WHERE p_feed = '{$feed['f_name']}'");
+
+ $count = 0;
+
+ $packagesgz_h = fopen("compress.zlib://{$feed['f_uri']}/Packages.gz", "r");
+
+ if ($packagesgz_h)
+ {
+ $package_info = array(
+ 'name'=>'', 'version'=>'', 'arch'=>'', 'depends'=>'',
+ 'maintainer'=>'', 'homepage'=>'', 'section'=>'', 'replaces'=>'',
+ 'provides'=>'', 'recommends'=>'', 'conflicts'=>'', 'size'=>'',
+ 'md5sum'=>'', 'source'=>'', 'feed'=>'', 'file'=>'', 'desc'=>''
+ );
+
+ while (!feof($packagesgz_h))
+ {
+ $buffer = fscanf($packagesgz_h, "%[^:]: %[ -~]");
+ list ($field, $value) = $buffer;
+
+ if($field == 'Package' && $count > 0)
+ {
+ insert_ipkgs($package_info);
+
+ $package_info = array(
+ 'name'=>'', 'version'=>'', 'arch'=>'', 'depends'=>'',
+ 'maintainer'=>'', 'homepage'=>'', 'section'=>'', 'replaces'=>'',
+ 'provides'=>'', 'recommends'=>'', 'conflicts'=>'', 'size'=>'',
+ 'md5sum'=>'', 'source'=>'', 'feed'=>'', 'file'=>'', 'desc'=>''
+ );
+ }
+
+ switch($field)
+ {
+ case 'Package':
+ $package_info['name'] = $value;
+ $count++;
+ break;
+ case 'Version':
+ $package_info['version'] = $value;
+ break;
+ case 'Depends':
+ $package_info['depends'] = $value;
+ break;
+ case 'Provides':
+ $package_info['provides'] = $value;
+ break;
+ case 'Recommends':
+ $package_info['recommends'] = $value;
+ break;
+ case 'Replaces':
+ $package_info['replaces'] = $value;
+ break;
+ case 'Conflicts':
+ $package_info['conflicts'] = $value;
+ break;
+ case 'Section':
+ $package_info['section'] = $value;
+ break;
+ case 'Architecture':
+ $package_info['arch'] = $value;
+ break;
+ case 'Maintainer':
+ $package_info['maintainer'] = str_replace("'","\"", $value);
+ break;
+ case 'MD5sum':
+ $package_info['md5sum'] = $value;
+ break;
+ case 'Size':
+ $package_info['size'] = $value;
+ break;
+ case 'Filename':
+ $package_info['file'] = $value;
+ break;
+ case 'Source':
+ $package_info['source'] = $value;
+ break;
+ case 'Description':
+ $package_info['desc'] = str_replace("'","\"", $value);
+ break;
+ }
- print("Updating $feed[f_name]: $feed[f_uri]\n");
- db_query_n("DELETE FROM packages WHERE p_feed = '$feed[f_name]'");
-
- $count = 0;
-
- $packagesgz_h = fopen("compress.zlib://$feed[f_uri]/Packages.gz", "r");
- if ($packagesgz_h) {
- while (!feof($packagesgz_h)) {
- $buffer = fscanf($packagesgz_h, "%[^:]: %[ -~]");
- list ($field, $value) = $buffer;
-
-
- if($field == 'Package' && $count > 0)
- {
- insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc,$feed[f_name], $conflicts, $provides, $replaces, $recommends);
- unset($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc, $conflicts, $provides, $replaces, $recommends);
- }
-
-
- switch($field)
- {
- case 'Package':
- $package = $value;
- $count++;
- break;
- case 'Version':
- $version = $value;
- break;
- case 'Depends':
- $depends = $value;
- break;
- case 'Provides':
- $provides = $value;
- break;
- case 'Recommends':
- $recommends = $value;
- break;
- case 'Replaces':
- $replaces = $value;
- break;
- case 'Conflicts':
- $conflicts = $value;
- break;
- case 'Section':
- $section = $value;
- break;
- case 'Architecture':
- $arch = $value;
- break;
- case 'Maintainer':
- $maintainer = str_replace("'","\"", $value);
- break;
- case 'MD5sum':
- $md5sum = $value;
- break;
- case 'Size':
- $size = $value;
- break;
- case 'Filename':
- $file = $value;
- break;
- case 'Source':
- $source = $value;
- break;
- case 'Description':
- $desc = str_replace("'","\"", $value);
- break;
- }
-
- }
- insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc,$feed[f_name], $conflicts, $provides, $replaces, $recommends);
}
-$p_count = $count + $p_count;
-gzclose($packagesgz_h);
+ insert_ipkgs($package_info);
+ }
+
+ $p_count = $count + $p_count;
+ gzclose($packagesgz_h);
}
//close the db
@@ -141,41 +156,48 @@ $seconds = $difference;
print "Added $p_count packages in $days days, $hours hours, $minutes minutes and $seconds seconds \n";
-function insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc, $feed, $conflicts, $provides, $replaces, $recommends)
+function insert_ipkgs(&$package_info)
{
- db_query_n(
- "INSERT INTO packages (p_name, p_version, p_depends, p_arch, p_maintainer, p_section, p_size, p_md5, p_source, p_desc, p_feed, p_file, p_conflicts, p_provides, p_replaces, p_recommends)
- VALUES ('$package', '$version', '$depends', '$arch', '$maintainer', '$section', '$size', '$md5sum', '$source', '$desc', '$feed', '$file', '$conflicts', '$provides', '$replaces', '$recommends')
- ");
+ db_query_n("INSERT INTO packages VALUES (
+ '{$package_info['name']}', '{$package_info['version']}',
+ '{$package_info['arch']}', '{$package_info['depends']}',
+ '{$package_info['maintainer']}', '{$package_info['homepage']}',
+ '{$package_info['section']}', '{$package_info['replaces']}',
+ '{$package_info['provides']}', '{$package_info['recommends']}',
+ '{$package_info['conflicts']}', '{$package_info['size']}',
+ '{$package_info['md5sum']}', '{$package_info['source']}',
+ '{$package_info['feed']}', '{$package_info['file']}',
+ '{$package_info['desc']}'
+ )");
}
function db_query($query)
{
- $result = FALSE;
+ $result = FALSE;
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
- sqlite_close($db_h);
- }
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
+ sqlite_close($db_h);
+ }
- return $result;
+ return $result;
}
function db_query_n($query)
{
- $result = FALSE;
+ $result = FALSE;
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- sqlite_close($db_h);
- }
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ sqlite_close($db_h);
+ }
- return $result;
+ return $result;
}