OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-web                      Date:   16-Sep-2003 12:21:13
  Branch: HEAD                             Handle: 2003091611211200

  Modified files:
    openpkg-web             about.wml doc.wml events.txt index.wml
                            newsflash.wml page.inc pkg.cgi pkg.mkdb pkg.wml
                            press.wml security.wml status.cgi status.wml

  Log:
    flush pending changes

  Summary:
    Revision    Changes     Path
    1.22        +42 -25     openpkg-web/about.wml
    1.10        +20 -10     openpkg-web/doc.wml
    1.25        +2  -2      openpkg-web/events.txt
    1.46        +1  -0      openpkg-web/index.wml
    1.2         +1  -1      openpkg-web/newsflash.wml
    1.35        +7  -3      openpkg-web/page.inc
    1.4         +39 -264    openpkg-web/pkg.cgi
    1.4         +53 -59     openpkg-web/pkg.mkdb
    1.4         +53 -21     openpkg-web/pkg.wml
    1.9         +1  -0      openpkg-web/press.wml
    1.64        +1  -1      openpkg-web/security.wml
    1.6         +57 -38     openpkg-web/status.cgi
    1.7         +32 -22     openpkg-web/status.wml
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-web/about.wml
  ============================================================================
  $ cvs diff -u -r1.21 -r1.22 about.wml
  --- openpkg-web/about.wml     7 Aug 2003 14:46:09 -0000       1.21
  +++ openpkg-web/about.wml     16 Sep 2003 10:21:12 -0000      1.22
  @@ -7,11 +7,9 @@
   
   <h2>The Goal</h2>
   
  -OpenPKG is a project of the <a href="http://dev.de.cw.net/";>Development
  -Team</a> from <a href="http://www.cw.com/de/";>Cable &amp; Wireless</a>'s
  -Internet Services division. The goal is
  -the creation and maintenance of portable and easy to install
  -software packages for use on the major Unix server platforms.
  +OpenPKG is a collaboration project with the goal of creating
  +and maintaining portable and easy to install software
  +packages for use on the major Unix server platforms.
   Currently <a href="http://www.sun.com/solaris/";>Solaris</a>,
   <a href="http://www.linux.com/";>Linux</a> and <a
   href="http://www.freebsd.org/";>FreeBSD</a> are officially and
  @@ -22,29 +20,33 @@
   
   <h2>The Background</h2>
   
  -The OpenPKG project was started by 
  -<a href="mailto:[EMAIL PROTECTED]">Ralf S. Engelschall</a>
  -and <a href="mailto:[EMAIL PROTECTED]">Christoph Schug</a> in
  -November 2000 with the goal to unite and enhance the software
  -installation approaches which were common sense in the Hosting
  -group of Internet Services in the C&amp;W Internet Solution
  -Center in Munich. The daily task is to install and maintain Unix
  -software installations on top of the three server operating
  -systems <a href="http://www.sun.com/solaris/";>Solaris</a>,
  -<a href="http://www.linux.com/";>Linux</a> and <a
  -href="http://www.freebsd.org/";>FreeBSD</a>.
  +<p>
  +The roots of OpenPKG (including some packaging specifications)
  +date back to the Build'n'Play (BnP) facility, developed in
  +1996 by Ralf S. Engelschall while working for the company <a
  +href="http://www.sdm.de/";>software design &amp; management</a>
  +(sd&amp;m) in Munich. The OpenPKG project was founded by <a
  +href="mailto:[EMAIL PROTECTED]">Ralf S. Engelschall</a> while working
  +together with <a href="mailto:[EMAIL PROTECTED]">Christoph Schug</a> in
  +November 2000 on the goal to unite and enhance the software installation
  +approaches which were common sense in the Hosting group of Internet
  +Services in the <a href="http://www.cw.com/";>Cable &amp; Wireless</a>
  +Internet Solution Center in Munich.
   
   <p>
  -In the past, software packages were installed on demand and manually
  -by different Internet Engineers in the Hosting group. The results were
  -that software installation differed more or less heavily (because of
  -different knowledge and preferences between the Internet Engineers) and
  -it was mostly impossible to upgrade the installation later (because
  +The daily task was to install and maintain Unix software
  +installations on top of the three server operating systems
  +<a href="http://www.sun.com/solaris/";>Solaris</a>,
  +<a href="http://www.linux.com/";>Linux</a> and <a
  +href="http://www.freebsd.org/";>FreeBSD</a>. In the past, software
  +packages were installed on demand and manually by different Internet
  +Engineers in the Hosting group. The results were that software
  +installation differed more or less heavily (because of different
  +knowledge and preferences between the Internet Engineers) and it
  +was mostly impossible to upgrade the installation later (because
   the installation was too unique and often not well documented).
   Additionally, establishing a new server for a customer required a few
   days because of the lack of automated installation procedures.
  -
  -<p>
   OpenPKG solves this by providing a common source of software packages
   which are easy to install and upgrade and which already come with
   reasonable pre-configurations.
  @@ -59,7 +61,7 @@
   Internet Services division. Nevertheless the project is a fully open one,
   i.e., anyone can participate and the results are available for free to
   anyone as <a href="http://www.opensource.org/";>Open Source</a>. This is
  -done in order to broaden the scope and of the project, because only this
  +done in order to broaden the scope of the project, because only this
   way OpenPKG is able to get the feedback from as much users as possible
   and to have the necessary support from the vendors of the underlying
   software packages. So, you can safely base your business on OpenPKG.
  @@ -88,8 +90,11 @@
   
   <h2>The Contributors</h2>
   
  -The following people have contributed to the OpenPKG project:
  +The following people have contributed to the OpenPKG project (in no particular
  +order):
   
  +<p>
  +<box bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
   Julien Mabillard,
   Michael Bielicki,
   Jost Blachnitzky,
  @@ -123,14 +128,26 @@
   Alexander Wägner,
   Robert Watson,
   Robert Weilhammer.
  +</box>
  +
  +<p>
  +Excuse us, if your name is ungracefully still missing here, please. Just
  +drop <a href="[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> a note and you will
  +be added to this list if you deserve the credit.
   
   <h2>The Sponsors</h2>
   
   Each of following companies donated money and/or resources.
   
  +<p>
  +<box bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
   <ul>
  +  <li><a href="http://www.sdm.de/";><b>software design &amp; management</b></a> 
(1995-1999)<br>
  +      (Hosting Rack-Space, Network Connectivity, Hardware, Manpower)
     <li><a href="http://www.cw.com/de/";><b>Cable &amp; Wireless</b></a> 
(1999-2003)<br>
         (Hosting Rack-Space, Network Connectivity, Hardware, Manpower)
     <li><a href="http://www.sco.com/";><b>The SCO Group</b></a> (2003)<br>
         (Porting Software Platform UnixWare v7.1.3 & SDK)
   </ul>
  +</box>
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/doc.wml
  ============================================================================
  $ cvs diff -u -r1.9 -r1.10 doc.wml
  --- openpkg-web/doc.wml       10 Dec 2002 15:40:15 -0000      1.9
  +++ openpkg-web/doc.wml       16 Sep 2003 10:21:12 -0000      1.10
  @@ -12,6 +12,7 @@
      <li><a href="doc/slideset/openpkg.html/">OpenPKG Slideset</a> (HTML 4.0)
      <li><a href="doc/quickref/openpkg.txt">OpenPKG Quick Reference</a> (ISO-Latin 1)
      <li><a href="tutorial.html">OpenPKG User Tutorial</a> (HTML 4.0)
  +   <li><a href="doc/articles/sysadmin/article.html">OpenPKG Article</a> (HTML 4.0)
      <li><a href="doc/handbook/openpkg.html">OpenPKG Handbook</a> (HTML 4.0)
      <li><a href="doc/book/maximum-rpm.html/">RPM Book "Maximum-RPM"</a> (HTML 4.0)
      <li><a href="doc/howto/rpm-howto.html">RPM HOW-TO</a> (HTML 4.0)
  @@ -19,16 +20,16 @@
   
   <hr>
   
  -<h2>The OpenPKG Brochure</h2>
  -
  -This is the brochure for OpenPKG. It summarizes the key points of
  -OpenPKG on a two-page sheet for people who do not know anything about
  -OpenPKG. It is still under construction and available in the following
  -formats:
  -
  -<ul>
  -   <li><a href="doc/brochure/openpkg.ppt">PowerPoint</a> (PowerPoint 2000; 
<b>source</b>)
  -</ul>
  +#<h2>The OpenPKG Brochure</h2>
  +#
  +#This is the brochure for OpenPKG. It summarizes the key points of
  +#OpenPKG on a two-page sheet for people who do not know anything about
  +#OpenPKG. It is still under construction and available in the following
  +#formats:
  +#
  +#<ul>
  +#   <li><a href="doc/brochure/openpkg.ppt">PowerPoint</a> (PowerPoint 2000; 
<b>source</b>)
  +#</ul>
   
   <h2>The OpenPKG Slideset</h2>
   
  @@ -50,6 +51,15 @@
   
   <ul>
      <li><a href="doc/quickref/openpkg.txt">Text</a> (ISO-Latin 1; <b>source</b>)
  +</ul>
  +
  +<h2>The OpenPKG Article</h2>
  +
  +This is a very concise and all-in-one summary article about OpenPKG.
  +It describes all essentials of OpenPKG.
  +
  +<ul>
  +   <li><a href="doc/articles/sysadmin/article.html">HTML</a> (HTML 4.0)
   </ul>
   
   <h2>The OpenPKG Handbook</h2>
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/events.txt
  ============================================================================
  $ cvs diff -u -r1.24 -r1.25 events.txt
  --- openpkg-web/events.txt    23 Feb 2003 12:17:44 -0000      1.24
  +++ openpkg-web/events.txt    16 Sep 2003 10:21:12 -0000      1.25
  @@ -1,3 +1,3 @@
  -Q2/2003: OpenPKG 1.3-RELEASE
   Q3/2003: OpenPKG 2.0-RELEASE
  -Q4/2003: OpenPKG 2.1-RELEASE
  +Q1/2004: OpenPKG 2.1-RELEASE
  +Q3/2004: OpenPKG 2.2-RELEASE
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/index.wml
  ============================================================================
  $ cvs diff -u -r1.45 -r1.46 index.wml
  --- openpkg-web/index.wml     7 Aug 2003 14:46:09 -0000       1.45
  +++ openpkg-web/index.wml     16 Sep 2003 10:21:12 -0000      1.46
  @@ -10,6 +10,7 @@
   <b>User Quick Links:</b><br>
      <a href="security.html">Security</a>,
      <a href="doc/slideset/openpkg.html/">Slideset</a>,
  +   <a href="doc/articles/sysadmin/article.html">Article</a>,
      <a href="tutorial.html">Tutorial</a>,
      <a href="doc/quickref/openpkg.txt">Quick Ref.</a>,
      <a href="faq.html">FAQ</a>,
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/newsflash.wml
  ============================================================================
  $ cvs diff -u -r1.1 -r1.2 newsflash.wml
  --- openpkg-web/newsflash.wml 28 Aug 2002 15:31:18 -0000      1.1
  +++ openpkg-web/newsflash.wml 16 Sep 2003 10:21:12 -0000      1.2
  @@ -8,5 +8,5 @@
   The following is a complete list of all News entries:
   
   <p>
  -<newsflash from="news.txt" nohead>
  +<newsflash from="news.txt" max=100 nohead>
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/page.inc
  ============================================================================
  $ cvs diff -u -r1.34 -r1.35 page.inc
  --- openpkg-web/page.inc      17 Jul 2003 13:44:23 -0000      1.34
  +++ openpkg-web/page.inc      16 Sep 2003 10:21:12 -0000      1.35
  @@ -82,6 +82,10 @@
   .heads   { color: #333333; font-weight: bold; }
   .heads A { color: #333333; font-weight: bold; }
   .foot    { color: #666666; font-weight: normal; }
  +LI              { list-style-type: square; margin-top: 5px; }
  +UL.condensed LI { margin-top: 0px; }
  +.download       { font-size: 80%; color: #000000; }
  +.download A     { color: #000000; font-weight: normal; }
   --></style>
   
   </head>
  @@ -137,7 +141,7 @@
         <td align=right valign=bottom>
           <table cellspacing=0 cellpadding=0><tr><td>
           <a href="http://www.cw.com/";><img src="$(ROOT)cw.jpg" alt="Cable & 
Wireless" border=0></a><br>
  -        <span class=nbr>Internet Services</span>
  +        <font color="#cccccc">(primary sponsor)</font>
           <br>
           <br>
           </td></tr></table>
  @@ -196,7 +200,7 @@
         </td>
         <td>
             <font color="#cccccc">
  -          Copyright &copy; 2000-2003 Cable &amp; Wireless Germany GmbH<br>
  +          Copyright &copy; 2000-2003 Cable &amp; Wireless<br>
             Copyright &copy; 2000-2003 The OpenPKG Project<br>
             Copyright &copy; 2000-2003 Ralf S. Engelschall
             </font>
  @@ -262,12 +266,12 @@
       <navbar:button id=press    url="press.html"    txt="Press&nbsp;Area">
       <navbar:button id=security url="security.html" txt="Security">
       <navbar:button id=events   url="events.html"   txt="Event&nbsp;Schedule">
  +    <navbar:button id=download url="download.html"  txt="Download Area">
       <navbar:button id=tutorial url="tutorial.html" txt="User&nbsp;Tutorial">
       <navbar:button id=faq      url="faq.html"      
txt="FAQ&nbsp;&amp;&nbsp;Answers">
       <navbar:button id=doc      url="doc.html"      txt="Documentation">
       <navbar:button id=releng   url="releng.html"   txt="Release&nbsp;Engineering">
       #<navbar:button id=pkg      url="pkg.cgi"       txt="Package&nbsp;Repository">
  -    <navbar:button id=download url="download.html"  txt="Download Area">
       <navbar:button id=cvs      url="http://cvs.openpkg.org/"; 
txt="CVS&nbsp;Repository">
       <navbar:button id=pgp      url="http://pgp.openpkg.org/"; txt="PGP Key Server">
       <navbar:button id=stat     url="stat.html"     txt="Statistics">
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/pkg.cgi
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 pkg.cgi
  --- openpkg-web/pkg.cgi       19 Nov 2001 09:17:49 -0000      1.3
  +++ openpkg-web/pkg.cgi       16 Sep 2003 10:21:12 -0000      1.4
  @@ -13,7 +13,7 @@
   eval {
   
   my $dbfile = 'pkg.db';
  -my $rpmdir = 'ftp://ftp.openpkg.org/current';
  +my $rpmurl = 'ftp://ftp.openpkg.org/current';
   
   #   PATH_INFO
   $path_info = $ENV{'PATH_INFO'};
  @@ -48,277 +48,52 @@
       print $data;
   }
   
  -my $fh = new IO::File "<pkg.head.html";
  -my $head = '';
  -$head .= $_ while (<$fh>);
  -$fh->close;
  -my $fh = new IO::File "<pkg.foot.html";
  -my $foot = '';
  -$foot .= $_ while (<$fh>);
  +my $fh = new IO::File "<pkg.html";
  +my $page = '';
  +$page .= $_ while (<$fh>);
   $fh->close;
   
   require "$dbfile";
  -my $DB = $VAR1;
  +my $db = $VAR1;
   
  -my $page = '';
  -
  -my $ng = 0;
  -my $np = 0;
  -my $nf = 0;
  -foreach $g (sort(keys(%{$DB}))) {
  -    $ng++;
  -    foreach $n (keys(%{$DB->{$g}})) {
  -        $np++;
  -        foreach $f (keys(%{$DB->{$g}->{$n}->{FILES}})) {
  -            $nf++;
  -        }
  -    }
  -}
  -
  -$head =~ s|%NG%|$ng|sg;
  -$head =~ s|%NP%|$np|sg;
  -$head =~ s|%NF%|$nf|sg;
  +my $c = {};
  +my $g = {};
  +my $p = {};
  +foreach my $name (keys(%{$db})) {
  +    $p->{$name} = 1;
  +    $g->{$db->{$name}->{"Group"}} = 1;
  +    $c->{$db->{$name}->{"Distribution"}} = 1;
  +}
  +my $nc = keys(%{$c});
  +my $ng = keys(%{$g});
  +my $np = keys(%{$p});
  +$page =~ s|%NC%|$nc|sg;
  +$page =~ s|%NG%|$ng|sg;
  +$page =~ s|%NP%|$np|sg;
  +
  +my $cl = '';
  +foreach my $class (sort(keys(%{$c}))) {
  +    $class =~ s|^OpenPKG \[(\S+)\]|$1|s;
  +    $cl .= "<a href=\"pkg.cgi?class=$class\">$class</a><br>";
  +}
  +$page =~ s|%CL%|$cl|s;
  +
  +my $gl = '';
  +foreach my $group (sort(keys(%{$g}))) {
  +    $gl .= "<a href=\"pkg.cgi?group=$group\">$group</a><br>";
  +}
  +$page =~ s|%GL%|$gl|s;
  +
  +#  root (OpenPKG-CURRENT)
  +#  by-class (CORE)
  +#  by-group (Mail)
  +#  package (openssh)
   
   if ($qs{file} ne '') {
  -    my $group;
  -    my $name;
  -    my $file;
  -    foreach $g (sort(keys(%{$DB}))) {
  -        foreach $n (keys(%{$DB->{$g}})) {
  -            foreach $f (keys(%{$DB->{$g}->{$n}->{FILES}})) {
  -                if ($f eq $qs{file}) {
  -                    $group = $g;
  -                    $name = $n;
  -                    $file = $f;
  -                    last;
  -                }
  -            }
  -        }
  -    }
  -    my $info = $DB->{$group}->{$name}->{FILES}->{$file}->{INFO};
  -    $info =~ s|\n$||s;
  -    $info =~ s|(http://\S+)|<a href="$1">$1</a>|sg;
  -    my $desc;
  -    ($info, $desc) = ($info =~ m|^(.+)Description:\s+(.+)$|s);
  -    $page .= "<a href=\"pkg.cgi\"><font size=+1><b>OpenPKG</b></font></a> ";
  -    $page .= "<a href=\"pkg.cgi?group=$group\"><font size=+1><b>/ 
$group</b></font></a> ";
  -    $page .= "<a href=\"pkg.cgi?package=$name\"><font size=+1><b> / 
$name</b></font></a> ";
  -    $page .= "<font size=+1><b> / $file:</b></font>";
  -    $page .= "<p>\n";
  -    $page .= "<table width=600 cellspacing=0 cellpadding=0 border=0>\n".
  -             "<tr>" .
  -             "<td bgcolor=\"#b5b0a0\">" .
  -             "<font size=+1 color=\"#ffffff\"><b>$file</b></font><br>" .
  -             "<font 
color=\"#ffffff\">".$DB->{$group}->{$name}->{SUMMARY}."</font></td>"  .
  -             "</tr>\n";
  -    $page .= "<tr><td bgcolor=\"#f5f0e0\"><b>Package 
Meta-Information:</b></td></tr>\n";
  -    $page .= "<tr><td bgcolor=\"#e5e0d0\"><pre>\n";
  -    $page .= $info;
  -    $page .= "</pre></td></tr>\n";
  -    $page .= "<tr><td bgcolor=\"#f5f0e0\"><b>Package Description:</b></td></tr>\n";
  -    $page .= "<tr><td bgcolor=\"#e5e0d0\">".$desc."<br><br></td></tr>";
  -    $page .= "<tr><td bgcolor=\"#f5f0e0\"><b>Package Files:</b></td></tr>\n";
  -    $page .= "<tr><td bgcolor=\"#e5e0d0\"><font size=-2>\n";
  -    $page .= "<pre>\n";
  -    $page .= $DB->{$group}->{$name}->{FILES}->{$file}->{FLIST};
  -    $page .= "</pre>\n";
  -    $page .= "</font></td></tr>\n";
  -    if (-f "dep/$name.png") {
  -        $page .= "<tr><td bgcolor=\"#f5f0e0\"><b>Package Dependency 
Graph:</b></td></tr>\n";
  -        $page .= "<tr><td bgcolor=\"#e5e0d0\"><font size=-2>\n";
  -        $page .= "<blockquote><img src=\"dep/$name.png\"></blockquote>\n";
  -        $page .= "</td></tr>\n";
  -    }
  -    $page .= "</table>\n";
  -}
  -elsif ($qs{package} ne '') {
  -    my $group;
  -    my $name;
  -    foreach $g (sort(keys(%{$DB}))) {
  -        foreach $n (keys(%{$DB->{$g}})) {
  -            if ($n eq $qs{package}) {
  -                $group = $g;
  -                $name = $n;
  -                last;
  -            }
  -        }
  -    }
  -    $page .= "<a href=\"pkg.cgi\"><font size=+1><b>OpenPKG</b></font></a> ";
  -    $page .= "<a href=\"pkg.cgi?group=$group\"><font size=+1><b>/ 
$group</b></font></a> ";
  -    $page .= "<font size=+1><b> / $name:</b></font>";
  -    $page .= "<p>\n";
  -    $page .= "<table width=600 cellspacing=0 cellpadding=0 border=0>\n".
  -             "<tr>" .
  -             "<td colspan=4 bgcolor=\"#b5b0a0\">" .
  -             "<a name=\"$name\"><font size=+1 
color=\"#ffffff\"><b>$name</b></font></a><br>" .
  -             "<font 
color=\"#ffffff\">".$DB->{$group}->{$name}->{SUMMARY}."</font></td>"  .
  -             "</tr>\n";
  -    my @FL = keys(%{$DB->{$group}->{$name}->{FILES}});
  -    my @FL_SH  = sort(grep(/.sh$/,  @FL));
  -    my @FL_RPM = sort(grep(/.rpm$/, @FL));
  -    my @FL_SH_SRC = sort(grep(/\.src\.sh$/,   @FL_SH));
  -    my @FL_SH_BIN = sort(grep(! /\.src\.sh$/, @FL_SH));
  -    my @FL_RPM_SRC = sort(grep(/\.src\.rpm$/,   @FL_RPM));
  -    my @FL_RPM_BIN = sort(grep(! /\.src\.rpm$/, @FL_RPM));
  -    @FL = (@FL_SH_SRC, @FL_SH_BIN, @FL_RPM_SRC, @FL_RPM_BIN);
  -    my $bgcolor = '';
  -    my $bgcolidx = 0;
  -    foreach my $file (@FL) {
  -        if ($header1 ne '') {
  -            $page .= $header1;
  -            $header1 = '';
  -        }
  -        if ($header2 ne '') {
  -            $page .= $header2;
  -            $header2 = '';
  -        }
  -        my $h = $DB->{$group}->{$name}->{FILES}->{$file};
  -        my $size  = $h->{SIZE};
  -        my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
  -            localtime($h->{MTIME});
  -        my $mtime = sprintf("%02d-%02d-%04d %02d:%02d:%02d",
  -                            $mday, $mon+1, $year+1900, $hour, $min, $sec);
  -        my $color = '';
  -        $color = "#666666" if ($file =~ m|\.sh|);
  -        $color = "#666666" if ($file =~ m|\.src\.sh|);
  -        $color = "#a09080" if ($file =~ m|\.rpm|);
  -        $color = "#908070" if ($file =~ m|\.src\.rpm|);
  -        $bgcolidx = ($bgcolidx + 1) % 2;
  -        $bgcolor = ("#e5e0d0", "#f5f0e0")[$bgcolidx];
  -        $size = sprintf("%d", $size / 1024);
  -        $size =~ s|(.)(.{3})$|$1,$2|;
  -        $page .= "<tr bgcolor=\"$bgcolor\">" .
  -                 "<td width=300><a href=\"$rpmdir/SRC/$file\"><font 
color=\"$color\"><tt>$file</tt></font></a></td>" .
  -                 "<td width=50 align=right>".
  -                 ($file =~ m/\.sh$/ ? "&nbsp;" :
  -                 "<a href=\"pkg.cgi?file=$file\"><font size=-1 
color=\"#a09080\"><b>INFO</b></font></a>") . "</td>" .
  -                 "<td width=100 align=right>".$size." KB</td>" .
  -                 "<td width=150 align=right><tt>".$mtime."</tt></td>" .
  -                 "</tr>\n";
  -    }
  -    $page .= "</table>\n";
  -}
  -elsif ($qs{group} ne '') {
  -    my $group = $qs{group};
  -    $page .= "<a href=\"pkg.cgi\"><font size=+1><b>OpenPKG</b></font></a> ";
  -    $page .= "<font size=+1><b> / $group:</b></font>";
  -    $page .= "<p>\n";
  -    foreach my $name (sort(keys(%{$DB->{$group}}))) {
  -        my $header2 = "<table width=600 cellspacing=0 cellpadding=0 border=0>\n".
  -                      "<tr>" .
  -                      "<td colspan=4 bgcolor=\"#b5b0a0\">" .
  -                      "<a href=\"pkg.cgi?package=$name\"><font size=+1 
color=\"#ffffff\"><b>$name</b></font></a><br>" .
  -                      "<font 
color=\"#ffffff\">".$DB->{$group}->{$name}->{SUMMARY}."</font></td>"  .
  -                      "</tr>\n";
  -        my @FL = keys(%{$DB->{$group}->{$name}->{FILES}});
  -        my @FL_SH  = sort(grep(/.sh$/,  @FL));
  -        my @FL_RPM = sort(grep(/.rpm$/, @FL));
  -        my @FL_SH_SRC = sort(grep(/\.src\.sh$/,   @FL_SH));
  -        my @FL_SH_BIN = sort(grep(! /\.src\.sh$/, @FL_SH));
  -        my @FL_RPM_SRC = sort(grep(/\.src\.rpm$/,   @FL_RPM));
  -        my @FL_RPM_BIN = sort(grep(! /\.src\.rpm$/, @FL_RPM));
  -        @FL = (@FL_SH_SRC, @FL_SH_BIN, @FL_RPM_SRC, @FL_RPM_BIN);
  -        my $bgcolor = '';
  -        my $bgcolidx = 0;
  -        foreach my $file (@FL) {
  -            if ($file =~ m|^.*${display}.*$|) {
  -                if ($header1 ne '') {
  -                    $page .= $header1;
  -                    $header1 = '';
  -                }
  -                if ($header2 ne '') {
  -                    $page .= $header2;
  -                    $header2 = '';
  -                }
  -                my $h = $DB->{$group}->{$name}->{FILES}->{$file};
  -                my $size  = $h->{SIZE};
  -                my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
  -                    localtime($h->{MTIME});
  -                my $mtime = sprintf("%02d-%02d-%04d %02d:%02d:%02d",
  -                                    $mday, $mon+1, $year+1900, $hour, $min, $sec);
  -                my $color = '';
  -                $color = "#666666" if ($file =~ m|\.sh|);
  -                $color = "#666666" if ($file =~ m|\.src\.sh|);
  -                $color = "#a09080" if ($file =~ m|\.rpm|);
  -                $color = "#908070" if ($file =~ m|\.src\.rpm|);
  -                $bgcolidx = ($bgcolidx + 1) % 2;
  -                $bgcolor = ("#e5e0d0", "#f5f0e0")[$bgcolidx];
  -                $size = sprintf("%d", $size / 1024);
  -                $size =~ s|(.)(.{3})$|$1,$2|;
  -                $page .= "<tr bgcolor=\"$bgcolor\">" .
  -                         "<td width=300><a href=\"$rpmdir/SRC/$file\"><font 
color=\"$color\"><tt>$file</tt></font></a></td>" .
  -                         "<td width=50 align=right>".
  -                         ($file =~ m/\.sh$/ ? "&nbsp;" :
  -                         "<a href=\"pkg.cgi?file=$file\"><font size=-1 
color=\"#a09080\"><b>INFO</b></font></a>") . "</td>" .
  -                         "<td width=100 align=right>".$size." KB</td>" .
  -                         "<td width=150 align=right><tt>".$mtime."</tt></td>" .
  -                         "</tr>\n";
  -            }
  -        }
  -        $page .= "</table>\n";
  -        $page .= "<p>\n";
  -    }
  -}
  -else {
  -    my @GL = keys(%{$DB});
  -    my @GL_BS = sort(grep(/Bootstrapping/, @GL));
  -    my @GL_OT = sort(grep(! /Bootstrapping/, @GL));
  -    @GL = (@GL_BS, @GL_OT);
  -    my $cols = 0;
  -    $page .= "<font size=+1><b>OpenPKG:</b></font><p>";
  -    $page .= "<table cellspacing=2 cellpadding=0 border=0>";
  -    my $now = time();
  -    foreach my $group (@GL) {
  -        $page .= "<tr>" if ($cols == 0);
  -        $page .= "<td bgcolor=\"#e5e0d0\" width=90 valign=top>";
  -        $page .= "<table width=90 cellspacing=0 cellpadding=2 border=0>\n";
  -        $page .= "<tr>\n";
  -        $page .= "<td bgcolor=\"#b5b0a0\">\n";
  -
  -        $page .= "<a href=\"pkg.cgi?group=$group\"><font 
color=\"#ffffff\"><b>$group</b></font><br>\n";
  -        $page .= "</td>\n";
  -        $page .= "</tr>\n";
  -        $page .= "<tr>\n";
  -        $page .= "<td>\n";
  -        foreach my $name (sort(keys(%{$DB->{$group}}))) {
  -            if ($DB->{$group}->{$name}->{LICENSE} =~ m/[Cc]ommercial/) {
  -                next;
  -            }
  -            my $mtime = 0;
  -            foreach my $file (sort(keys(%{$DB->{$group}->{$name}->{FILES}}))) {
  -                 if ($mtime < $DB->{$group}->{$name}->{FILES}->{$file}->{MTIME}) {
  -                     $mtime = $DB->{$group}->{$name}->{FILES}->{$file}->{MTIME};
  -                 }
  -            }
  -            if ($mtime >= ($now - (60*60*24*1))) {
  -                $page .= "<a href=\"pkg.cgi?package=$name\"><font 
color=\"#000000\">$name</font></a>\n";
  -            }
  -            else {
  -                $page .= "<a href=\"pkg.cgi?package=$name\">$name</a>\n";
  -            }
  -            $page .= "<br>";
  -        }
  -        $page .= "</td>\n";
  -        $page .= "</tr>\n";
  -        $page .= "</table>\n";
  -
  -        $page .= "</td>";
  -        $cols++;
  -        if ($cols >= 6) {
  -            $cols = 0;
  -            $page .= "</tr>\n"; 
  -        }
  -    }
  -    if ($cols > 0 and $cols < 6) {
  -        while ($cols++ < 6) {
  -            $page .= "<td bgcolor=\"#e5e0d0\" width=90 valign=top>&nbsp;</td>";
  -        }
  -        $page .= "</tr>\n";
  -    }
  -    $page .= "</table>";
  +
   }
   
  -&send_page("text/html", $head . $page . $foot);
  +&send_page("text/html", $page);
   
   #   die gracefully
   exit(0);
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/pkg.mkdb
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 pkg.mkdb
  --- openpkg-web/pkg.mkdb      19 Nov 2001 09:17:49 -0000      1.3
  +++ openpkg-web/pkg.mkdb      16 Sep 2003 10:21:12 -0000      1.4
  @@ -1,78 +1,72 @@
   #!/e/openpkg/sw/bin/perl
   ##
  +##  pkg.mkdb -- generate package database from index
   ##
  -##
  -
  -my $rpm = '/e/openpkg/sw/bin/rpm';
   
   use IO;
   use Data::Dumper;
   $Data::Dumper::Purity = 1;
   $Data::Dumper::Indent = 1;
   
  +my $rpm    = '/e/openpkg/sw/bin/rpm';
  +my $rpmidx = '/e/openpkg/ftp/current/SRC/00INDEX.rdf.bz2';
  +my $rpmdir = '/e/openpkg/ftp/current/SRC/';
  +my $rpmurl = 'ftp://ftp.openpkg.org/current/SRC/';
   my $dbfile = '/e/openpkg/web/pkg.db';
  -my $rpmdir = '/e/openpkg/ftp/current';
   
  -my $DB = {};
  +#   read XML/RDF index
  +my $io = new IO::File "bzip2 -d -c $rpmidx |" || die;
  +my $rdf; { local $/ = undef; $rdf = <$io>; }
  +$io->close;
  +
  +#   parse XML/RDF contents
  +my $db = {};
  +$rdf =~ 
s|<rdf:Description\s+about="([^"]+)"[^>]+>(.+?)</rdf:Description>|&rdf_pkg($1, $2), 
''|sge;
  +sub rdf_pkg {
  +    my ($name, $rdf) = @_;
  +
  +    $db->{$name} = {};
  +
  +    #   parse simple tags
  +    foreach my $tag (qw(
  +        Name Version Release Distribution Group License Packager Summary URL Vendor 
Description
  +    )) {
  +        $rdf =~ s|<$tag>(.+?)</$tag>|$db->{$name}->{$tag} = $1, ''|se;
  +    }
   
  -foreach my $file (glob("$rpmdir/SRC/*.rpm")) {
  -    if ($file =~ 
m;^$rpmdir/SRC/((.+?)-([^-]+)-([0-9.]+)\.([^-]+-[^-]+|src)\.rpm)$;) {
  -        my ($filename, $name, $version, $release, $arch) = ($1, $2, $3, $4, $5);
  -        my @stat    = stat($file);
  -        my $size    = $stat[7];
  -        my $mtime   = $stat[9];
  -        my $info    = `$rpm -qpi  $file`;
  -        my $flist   = `$rpm -qplv $file`;
  -        my $x       = `$rpm -qp --qf 
"%{DISTRIBUTION}::%{GROUP}::%{SUMMARY}::%{LICENSE}" $file`;
  -        my ($distrib, $group, $summary, $license) = ($x =~ 
m|^(.+)::(.+)::(.+)::(.+)$|);
  -        # was ist mit $distrib?!
  -        $DB->{$group} = {} if (not defined($DB->{$group}));
  -        $DB->{$group}->{$name} = {} if (not defined($DB->{$group}->{$name}));
  -        $DB->{$group}->{$name}->{SUMMARY} = $summary;
  -        $DB->{$group}->{$name}->{FILES} = {} if (not 
defined($DB->{$group}->{$name}->{FILES}));
  -        $DB->{$group}->{$name}->{FILES}->{$filename} = {};
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{SIZE}    = $size;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{MTIME}   = $mtime;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{INFO}    = $info;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{FLIST}   = $flist;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{TYPE}    = 'rpm';
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{ARCH}    = $arch;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{LICENSE} = $license;
  +    #   parse source files
  +    $db->{$name}->{"Source"} = [];
  +    $rdf =~ s|<Source>(.+?)</Source>|&rdf_source($db, $name, $1), ''|se;
  +    sub rdf_source {
  +        my ($db, $name, $rdf) = @_;
  +        $rdf =~ s|<rdf:li>(.+?)</rdf:li>|push(@{$db->{$name}->{"Source"}}, $1), 
''|sge;
       }
  -}
  -foreach my $file (glob("$rpmdir/SRC/*.sh")) {
  -    if ($file =~ m;^$rpmdir/SRC/((.+?)-([^-]+)-([0-9.]+)\.([^-]+-[^-]+|src)\.sh)$;) 
{
  -        my ($filename, $name, $version, $release, $arch) = ($1, $2, $3, $4, $5);
  -        my @stat    = stat($file);
  -        my $size    = $stat[7];
  -        my $mtime   = $stat[9];
  -        my $group   = '';
  -        my $summary = '';
  -        my $info    = '';
  -        my $flist   = '';
  -        foreach my $g (keys(%{$DB})) {
  -            if (defined($DB->{$g}->{$name})) {
  -                $summary = $DB->{$g}->{$name}->{SUMMARY};
  -                $group   = $g;
  -                last;
  +
  +    #   parse dependencies
  +    foreach my $tag (qw(
  +        BuildPreReq PreReq
  +    )) {
  +        $db->{$name}->{$tag} = [];
  +        $rdf =~ s|<$tag(?:\s+cond="([^"]+)")?>(.+?)</$tag>|&rdf_dep($db, $name, 
$tag, $1, $2), ''|sge;
  +        sub rdf_dep {
  +            my ($db, $name, $tag, $cond, $rdf) = @_;
  +            $rdf =~ s|<resource(?:\s+(\S+="[^"]+"))?>(.+?)</resource>|&rdf_res($db, 
$name, $tag, $cond, $1, $2), ''|sge;
  +            sub rdf_res {
  +                my ($db, $name, $tag, $cond, $req, $res) = @_;
  +                if ($req =~ m/^(|)="([^"]+)"/s) {
  +                    $res .= " ".$reqop->{$1}." ".$2;
  +                }
  +                if ($cond ne '') {
  +                    $res .= " [$cond]";
  +                }
  +                push(@{$db->{$name}->{$tag}}, $res);
               }
           }
  -        $DB->{$group} = {} if (not defined($DB->{$group}));
  -        $DB->{$group}->{$name} = {} if (not defined($DB->{$group}->{$name}));
  -        $DB->{$group}->{$name}->{SUMMARY} = $summary;
  -        $DB->{$group}->{$name}->{FILES} = {} if (not 
defined($DB->{$group}->{$name}->{FILES}));
  -        $DB->{$group}->{$name}->{FILES}->{$filename} = {};
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{SIZE}  = $size;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{MTIME} = $mtime;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{INFO}  = $info;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{FLIST} = $flist;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{TYPE}  = 'sh';
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{ARCH}  = $arch;
  -        $DB->{$group}->{$name}->{FILES}->{$filename}->{LICENSE} = "GPL";
       }
   }
   
  -my $db = new IO::File ">$dbfile";
  -$db->print(Data::Dumper::Dumper($DB));
  -$db->close;
  +#   write database file
  +my $io = new IO::File ">$dbfile";
  +$io->print(Data::Dumper::Dumper($db));
  +$io->close;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/pkg.wml
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 pkg.wml
  --- openpkg-web/pkg.wml       27 Nov 2001 14:58:01 -0000      1.3
  +++ openpkg-web/pkg.wml       16 Sep 2003 10:21:12 -0000      1.4
  @@ -1,28 +1,60 @@
  -#!wml -oPAGE_HEADuPAGE_BODY:pkg.head.html -oPAGE_FOOT:pkg.foot.html
   
  -#use "page.inc" page=pkg twopane
  +#use "page.inc" page=pkg
   
  -<title>Package Repository</title>
  +<title>Package Repository:</title>
   
  -<intro>
  +<head>@HEAD@</head>
   
  -<h1>Package Repository</h1>
  +# <h1>Package Repository</h1>
   
  -This is the official package repository where one can find all currently
  -available RPM-based OpenPKG packages - both source and binary packages.
  -For binary packages, please make sure you pick the version suitable for
  -your particular platform. The database behind the displayed information
  -is automatically updated every hour.
  +# This is an online browsing frontend to the official <a
  +# href="ftp://ftp.openpkg.org/current/SRC/";>OpenPKG-CURRENT</a> package
  +# repository. It shows all currently available RPM-based OpenPKG packages.
  +# The database behind the displayed information is automatically updated
  +# every hour.
  +
  +# <p>
  +# Additionally, <a href="status.cgi">here</a> you can find the latest
  +# status report from our ongoing (still manually performed) package
  +# testing efforts.
  +
  +# <p>
  +# <sidebar>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=1 bgcolor="#a5a095">
  +# <center><font color="#ffffff"><b>Repository</b></font></center>
  +# </box>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
  +# <table width=100% cellspacing=0 cellpadding=0 border=0>
  +# <tr><td>Classes: </td><td align=right><b>%NC%</b></td>
  +# <tr><td>Groups:  </td><td align=right><b>%NG%</b></td>
  +# <tr><td>Packages:&nbsp;</td><td align=right><b>%NP%</b></td>
  +# </table>
  +# </box>
  +
  +# <p>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=1 bgcolor="#a5a095">
  +# <center><font color="#ffffff"><b>Classes</b></font></center>
  +# </box>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
  +# %CL%
  +# </box>
  +# 
  +# <p>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=1 bgcolor="#a5a095">
  +# <center><font color="#ffffff"><b>Groups</b></font></center>
  +# </box>
  +# <box width=140 bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
  +# %GL%
  +# </box>
  +
  +# </sidebar>
  +# 
  +# <box width=550 bdwidth=1 bdcolor="#a5a095" bdspace=1 bgcolor="#a5a095">
  +# <center><font color="#ffffff"><b>%BT%</b></font></center>
  +# </box>
  +# <box width=550 bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
  +# %BD%
  +# </box>
   
  -<p>
  -Additionally, <a href="status.cgi">here</a> you can find the latest
  -status report from our ongoing (still manually performed) package
  -testing efforts.
  -
  -<p>
  -Current State: <b>%NG%</b> groups, <b>%NP%</b> packages, <b>%NF%</b> RPM files.
  -</intro>
  -
  -<p>
  -<br>
  [EMAIL PROTECTED]@
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/press.wml
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 press.wml
  --- openpkg-web/press.wml     22 Jan 2003 13:12:54 -0000      1.8
  +++ openpkg-web/press.wml     16 Sep 2003 10:21:12 -0000      1.9
  @@ -12,6 +12,7 @@
   <p>
   <box bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
   <ul>
  + <li><b>01-Aug-2003:</b> <a href="press/PR-004-openpkg-1.3.html">OpenPKG project 
releases version 1.3</a> (english)
    <li><b>22-Jan-2003:</b> <a href="press/PR-003-openpkg-1.2.html">OpenPKG project 
releases version 1.2</a> (english)
    <li><b>28-Aug-2002:</b> <a href="press/PR-002-openpkg-1.1.html">OpenPKG project 
releases version 1.1</a> (english)
    <li><b>11-Jan-2002:</b> <a href="press/PR-001-openpkg-1.0.html">Cable &amp; 
Wireless releases OpenPKG 1.0</a> (english)
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/security.wml
  ============================================================================
  $ cvs diff -u -r1.63 -r1.64 security.wml
  --- openpkg-web/security.wml  15 Sep 2003 13:27:23 -0000      1.63
  +++ openpkg-web/security.wml  16 Sep 2003 10:21:12 -0000      1.64
  @@ -76,7 +76,7 @@
   </define-tag>
   <box bdwidth=1 bdcolor="#a5a095" bdspace=10 bgcolor="#e5e0d5">
   <table cellspacing=0 cellpadding=0 border=0>
  -  <sa 2003.038 perl>
  +  <sa 2003.039 perl>
     <sa 2003.038 mysql>
     <sa 2003.037 sendmail>
     <sa 2003.036 perl-www>
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/status.cgi
  ============================================================================
  $ cvs diff -u -r1.5 -r1.6 status.cgi
  --- openpkg-web/status.cgi    29 Jan 2003 13:09:46 -0000      1.5
  +++ openpkg-web/status.cgi    16 Sep 2003 10:21:12 -0000      1.6
  @@ -3,6 +3,7 @@
   ##  status.cgi -- Package Status Report
   ##
   
  +use POSIX qw(strftime);
   require 5.000;
   use IO;
   $|++;
  @@ -21,12 +22,16 @@
       "EVAL" => [qw(#f0f0ff #e5e5f5)],
       "JUNK" => [qw(#fff0f0 #f0e0e0)],
   };
  +my $mtime = (stat("status.txt"))[9];
  +my $updated = strftime("%a %d-%b-%Y %H:%M", localtime($mtime));
  +
   my $io = new IO::File "<status.txt" || die;
  -my $n = 0;
  -$O .= "<table cellspacing=1 cellpadding=2 border=0>\n";
  +my $odd = 0;
  +$O .= "<table cellspacing=1 cellpadding=2 border=0 width=\"90%\">\n";
   my $ishead = 1;
   my $hostlist = ();
   my @arch = ();
  +my $dst_last = "";
   my %doing = ();
   while ($line = <$io>) {
       # a2ps            4.13b           20020609   REL yes  OK   OK ...
  @@ -46,7 +51,7 @@
           $O .= "<td><font color=\"#ffffff\">$dst</font></td>";
           $O .= "<td><font color=\"#ffffff\">$rel</font></td>";
           foreach my $host (@hosts) {
  -            $O .= "<td><font color=\"#ffffff\">$host</font></td>";
  +            $O .= "<td width=30><font color=\"#ffffff\">$host</font></td>";
               push(@hostlist, $host);
           }
           $O .= "</tr>\n";
  @@ -62,80 +67,94 @@
           }
       }
       else {
  -        $O .= "<tr bgcolor=\"".$bgcolors->{$dst}->[$n]."\">\n";
  +
           my $img = "icon-x.gif";
           my $ok = 1;
  -        #foreach my $host (@hosts[0..2]) {
  -        foreach my $host (@hosts) {
  -            if ($host eq "--") {
  -                $ok = 0;
  -                last;
  -            }
  -        }
  -        if ($ok) {
  -            $img = "icon-ok.gif";
  -        }
  -        $O .= "<td align=center><img src=\"status.img/$img\" width=9 height=9 
alt=\"\"></td>";
  -        $O .= "<td><a 
href=\"ftp://ftp.openpkg.org/current/SRC/$name-$version-$release.src.rpm\";><font 
color=\"#000000\">$name</font></a></td>";
  -        $O .= "<td>$version</td>";
  -        $O .= "<td>$release</td>";
  -        $O .= "<td>$dst</td>";
  -        $O .= "<td>$rel</td>";
  -        my $n = 0;
  +        my $n  = 0;
  +        $L = "";
           foreach my $host (@hosts) {
               my @log;
               my $log;
               unless (defined $arch[$n]) {
  -                @log = 
glob("status.log/$name-$version-$release.log.".$hostlist[$n].".*");
  +                @log = 
glob("status.log/$name-$version-$release.log.".$hostlist[$n].".*"); 
                   $log = $log[0];
  -                ($arch[$n]) = $log =~ /.log.\Q$hostlist[$n]\E.(.*)$/;
  +                ($arch[$n]) = $log =~ /\Q.log.$hostlist[$n].\E(.*)$/;
               } else {
                   $log = 
"status.log/$name-$version-$release.log.$hostlist[$n].$arch[$n]";
                   @log = ( $log ) if -f $log;
               }
               $log =~ s|^status.log/||s;
  +
  +            if ( $host eq "--" &&
  +                 $#log >= 0 &&
  +                 `tail -1 $log[0]` =~ /^Build End:/) {
  +                $host = "OK";
  +            }
  +
               if ($host eq "--") {
  +                $ok = 0 if ($n < 9);
                   if (defined($doing{$hostlist[$n]}) and $doing{$hostlist[$n]} eq 
"$name-$version-$release") {
  -                    $O .= "<td bgcolor=\"#".($n < 6 ? "f0f099" : "999933")."\" 
align=center>";
  -                    $O .= "<a href=\"status-log.cgi/".$log."\">";
  +                    $L .= "<td width=30 bgcolor=\"#".($n < 9 ? "f0f099" : 
"999933")."\" align=center>";
  +                    $L .= "<a href=\"status-log.cgi/".$log."\">";
                       $mtime_srpm = 
(stat("/e/openpkg/ftp/current/SRC/$name-$version-$release.src.rpm"))[9];
                       $mtime_logf = (stat($log[0]))[9];
                       my $img = "icon-dia.gif";
  -                    $O .= "<img src=\"status.img/$img\" width=9 height=9 alt=\"--\" 
border=0>";
  +                    $L .= "<img src=\"status.img/$img\" width=9 height=9 alt=\"--\" 
border=0>";
                   }
                   elsif ($#log >= 0) {
  -                    $O .= "<td bgcolor=\"#".($n < 6 ? "ff9999" : "993333")."\" 
align=center>";
  -                    $O .= "<a href=\"status-log.cgi/".$log."\">";
  +                    $L .= "<td width=30 bgcolor=\"#".($n < 9 ? "ff9999" : 
"993333")."\" align=center>";
  +                    $L .= "<a href=\"status-log.cgi/".$log."\">";
                       $mtime_srpm = 
(stat("/e/openpkg/ftp/current/SRC/$name-$version-$release.src.rpm"))[9];
                       $mtime_logf = (stat($log[0]))[9];
                       my $img = "icon-x.gif";
                       $img = "icon-star.gif" if ($mtime_logf < $mtime_srpm);
  -                    $O .= "<img src=\"status.img/$img\" width=9 height=9 alt=\"--\" 
border=0>";
  +                    $L .= "<img src=\"status.img/$img\" width=9 height=9 alt=\"--\" 
border=0>";
                   }
                   else {
  -                    $O .= "<td bgcolor=\"#".($n < 6 ? "9999ff" : "000066")."\" 
align=center>";
  -                    $O .= "<img src=\"status.img/icon-dot.gif\" width=9 height=9 
alt=\"??\" border=0>";
  +                    $L .= "<td width=30 bgcolor=\"#".($n < 9 ? "9999ff" : 
"000066")."\" align=center>";
  +                    $L .= "<img src=\"status.img/icon-dot.gif\" width=9 height=9 
alt=\"??\" border=0>";
                   }
               }
               else {
  -                $O .= "<td bgcolor=\"#".($n < 6 ? "99cc99" : "336633")."\" 
align=center>";
  +                $L .= "<td bgcolor=\"#".($n < 9 ? "99cc99" : "336633")."\" 
align=center>";
                   if ($#log >= 0) {
  -                    $O .= "<a href=\"status-log.cgi/".$log."\">";
  +                    $L .= "<a href=\"status-log.cgi/".$log."\">";
                   }
  -                $O .= "<img src=\"status.img/icon-ok.gif\" width=9 height=9 
alt=\"OK\" border=0>";
  +                $L .= "<img src=\"status.img/icon-ok.gif\" width=9 height=9 
alt=\"OK\" border=0>";
               }
               if ($#log >= 0) {
  -                $O .= "</a>";
  +                $L .= "</a>";
               }
  -            $O .= "</td>";
  +            $L .= "</td>";
               $n++;
           }
  -        $O .= "</tr>\n";
  +        $L .= "</tr>\n";
  +
  +        if ($ok) {
  +            $img = "icon-ok.gif";
  +        }
  +        #if ($dst_last ne '' and $dst_last ne $dst) {
  +        #    $O .= "</table>";
  +        #    $O .= "<br>";
  +        #    $O .= "<table cellspacing=1 cellpadding=2 border=0 width=\"90%\">\n";
  +        #}
  +        #$dst_last = $dst;
  +        $O .= "<tr bgcolor=\"".$bgcolors->{$dst}->[$odd]."\">\n";
  +        $O .= "<td align=center><img src=\"status.img/$img\" width=9 height=9 
alt=\"\"></td>";
  +        $O .= "<td><a 
href=\"ftp://ftp.openpkg.org/current/SRC/$name-$version-$release.src.rpm\";><font 
color=\"#000000\">$name</font></a></td>";
  +        $O .= "<td>$version</td>";
  +        $O .= "<td>$release</td>";
  +        $O .= "<td>$dst</td>";
  +        $O .= "<td>$rel</td>";
  +        $O .= $L;
  +
       }
  -    $n = ($n + 1) % 2;
  +    $odd = ($odd + 1) % 2;
   }
   $O .= "</table>\n";
   $io->close();
  +
  +$O .= "<p>(last update: $updated)<p>\n";
   
   ######################################################
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/status.wml
  ============================================================================
  $ cvs diff -u -r1.6 -r1.7 status.wml
  --- openpkg-web/status.wml    29 Jan 2003 13:09:46 -0000      1.6
  +++ openpkg-web/status.wml    16 Sep 2003 10:21:12 -0000      1.7
  @@ -17,34 +17,44 @@
   The following hosts are currently part of the build procedure
   and considered primary platforms on which we focus:
   <p>
  -<ul>
  -   <li><b>dv1: ix86-freebsd4.7</b><br>
  -       (FreeBSD 4.7-STABLE)
  -   <li><b>dv2: ix86-freebsd5.0</b><br>
  -       (FreeBSD 5.0-CURRENT)
  -   <li><b>dv6: ix86-linux2.4</b><br>
  -       (Debian GNU/Linux 3.0)
  -   <li><b>dv5: ix86-linux2.2</b><br>
  -       (Debian GNU/Linux 2.2)
  -   <li><b>dv9: sparc64-solaris2.9</b><br>
  -       (Sun Solaris 9)
  -   <li><b>dv8: sparc64-solaris2.8</b><br>
  -       (Sun Solaris 8)
  -</ul>
  +<box bgcolor="#a5a095" bdwidth=0 bdspace=1>
  +<box bgcolor="#e5e0d5" bdcolor="#ffffff" bdwidth=1 bdspace=10>
  +<table cellspacing=0 cellpadding=0>
  +<tr><td><b>dv1: ix86-freebsd4.8</b></td><td>&nbsp;&nbsp;(FreeBSD 
4.8-STABLE)</td></tr>
  +<tr><td><b>dv2: ix86-freebsd5.1</b></td><td>&nbsp;&nbsp;(FreeBSD 
5.1-CURRENT)</td></tr>
  +<tr><td><b>dv5: ix86-linux2.2</b></td><td>&nbsp;&nbsp;(Debian GNU/Linux 
2.2)</td></tr>
  +<tr><td><b>dv6: ix86-linux2.4</b></td><td>&nbsp;&nbsp;(Debian GNU/Linux 
3.0)</td></tr>
  +<tr><td><b>dv4: ix86-linux2.4</b></td><td>&nbsp;&nbsp;(RedHat Linux 9)</td></tr>
  +<tr><td><b>dv14: ix86-linux2.4</b></td><td>&nbsp;&nbsp;(SuSE Linux 8.2)</td></tr>
  +<tr><td><b>dv8: sparc64-solaris2.8</b></td><td>&nbsp;&nbsp;(Sun Solaris 8)</td></tr>
  +<tr><td><b>dv9: sparc64-solaris2.9</b></td><td>&nbsp;&nbsp;(Sun Solaris 9)</td></tr>
  +<tr><td><b>dv7: ix86-solaris9</b></td><td>&nbsp;&nbsp;(Sun Solaris 9/x86)</td></tr>
  +</table>
  +</box>
  +</box>
   <p>
  -The following hosts are currently part of the build procedure
  -and considered secondary platforms on which don't focus:
  -<ul>
  -   <li><b>dv4: ix86-linux2.4</b><br>
  -       (RedHat Linux 8.0)
  -   <li><b>dv13: sparc64-solaris2.6</b><br>
  -       (Sun Solaris 2.6)
  -</ul>
  +The following hosts are currently part of the build procedure and considered
  +secondary platforms on which we don't focus, but on which we want to make sure
  +that OpenPKG also builds to some extend:
  +<p>
  +<box bgcolor="#a5a095" bdwidth=0 bdspace=1>
  +<box bgcolor="#e5e0d5" bdcolor="#ffffff" bdwidth=1 bdspace=10>
  +<table cellspacing=0 cellpadding=0>
  +<tr><td><b>dv12: alpha-freebsd5.1</b></td><td>&nbsp;&nbsp;(FreeBSD 
5.1-CURRENT)</td></tr>
  +<tr><td><b>dv13: sparc64-solaris2.6</b></td><td>&nbsp;&nbsp;(Sun Solaris 
2.6)</td></tr>
  +</table>
  +</box>
  +</box>
   
   <p>
   <u>Chart Legend:</u><br>
   <p>
   <table cellspacing=1 cellpadding=2 border=0>
  +<tr>
  +<td bgcolor="#f0f099" align=center><img src="status.img/icon-dia.gif"></td>
  +<td bgcolor="#999933" align=center><img src="status.img/icon-dia.gif"></td>
  +<td>package built ongoing</td>
  +</tr>
   <tr>
   <td bgcolor="#99cc99" align=center><img src="status.img/icon-ok.gif"></td>
   <td bgcolor="#336633" align=center><img src="status.img/icon-ok.gif"></td>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to