]> git.pld-linux.org Git - projects/buildlogs.git/blobdiff - index.php
Space between words. Drop CVS id.
[projects/buildlogs.git] / index.php
index d4eb1e7b76ea88272143b614210d83f5355bf14e..11558cdd43afdb0079b6bad379cc4e0a931def1e 100644 (file)
--- a/index.php
+++ b/index.php
@@ -88,17 +88,31 @@ echo '<' . '?xml-stylesheet href="#internalStyle" type="text/css"?' . ">\n";
   <style type="text/css"><!--
 A { text-decoration: none; }
 A:hover { text-decoration: underline; }
   <style type="text/css"><!--
 A { text-decoration: none; }
 A:hover { text-decoration: underline; }
-H1 { font-family: arial,helvetica,sans-serif; 
-     font-size: 20pt; 
+H1 { font-family: arial,helvetica,sans-serif;
+     font-size: 20pt;
      font-weight: bold;}
      font-weight: bold;}
-H2 { font-family: arial,helvetica,sans-serif; 
-     font-size: 18pt; 
+H2 { font-family: arial,helvetica,sans-serif;
+     font-size: 18pt;
      font-weight: bold;}
      font-weight: bold;}
-BODY,TD { font-family: arial,helvetica,sans-serif; 
+BODY,TD { font-family: arial,helvetica,sans-serif;
           font-size: 13pt; }
           font-size: 13pt; }
-TH { font-family: arial,helvetica,sans-serif; 
-     font-size: 13pt; 
+TH { font-family: arial,helvetica,sans-serif;
+     font-size: 13pt;
      font-weight: bold; }
      font-weight: bold; }
+/* error lines from build logs */
+.error {
+       background-color: #b00;
+}
+.verbose {
+       color: #886;
+}
+.section {
+       color: #111;
+       background-color: #161;
+}
+.changelog a {
+       color: #fff;
+}
 //-->
 </style>
  </head>
 //-->
 </style>
  </head>
@@ -112,7 +126,7 @@ TH { font-family: arial,helvetica,sans-serif;
 function start_pre()
 {
        echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
 function start_pre()
 {
        echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
-               "<font color=\"#cccccc\"><pre style=\"width: 2048px;overflow: scroll\">";
+               "<font color=\"#cccccc\"><pre style=\"white-space: pre-line; word-break: break-all;\">";
 }
 
 function end_pre()
 }
 
 function end_pre()
@@ -279,10 +293,15 @@ function dump_log($tail)
 
        $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
        $df = preg_replace("/\.(bz2|gz)$/", "", $df);
 
        $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
        $df = preg_replace("/\.(bz2|gz)$/", "", $df);
+       list($name, $id) = explode(',', $df);
 
 
-       echo "<h1>$df</h1>";
+       if ($name != 'command') {
+               $gitweb_url = "http://git.pld-linux.org/?p=packages/$name.git;a=summary";
+               $name = "<a href=\"$gitweb_url\">$name</a>";
+       }
+       echo "<h1>$name <small>$id</small></h1>";
 
 
-       echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\">";
+       echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\" width=\"100%\">";
 
        function one_item($h, $t) {
                echo "<tr><td bgcolor=\"#ccccff\">$h:</td>".
 
        function one_item($h, $t) {
                echo "<tr><td bgcolor=\"#ccccff\">$h:</td>".
@@ -293,21 +312,21 @@ function dump_log($tail)
                return "<a href=\"$h\">$c</a>";
        }
 
                return "<a href=\"$h\">$c</a>";
        }
 
-       one_item(_("Status"), ($ok == 1 ?  
-                               "<font color=\"green\"><b>"._("OK")."</b></font>" : 
+       one_item(_("Status"), ($ok == 1 ?
+                               "<font color=\"green\"><b>"._("OK")."</b></font>" :
                                "<font color=\"red\"><b>"._("Failed")."</b></a>"));
                                "<font color=\"red\"><b>"._("Failed")."</b></a>"));
-       one_item(_("Source URL"), 
-                href("ftp://$buildlogs_server/$f", 
+       one_item(_("Source URL"),
+                href("ftp://$buildlogs_server/$f",
                      "ftp://$buildlogs_server/$f"));
 
        $big_url = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
        $bu = "$big_url&amp;off=$off";
 
                      "ftp://$buildlogs_server/$f"));
 
        $big_url = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
        $bu = "$big_url&amp;off=$off";
 
-       one_item(_("text/plain URL"), 
+       one_item(_("text/plain URL"),
                 href("$bu&amp;name=$name_url&amp;id=$id&amp;action=text",
                      _("View!")));
        if ($tail) {
                 href("$bu&amp;name=$name_url&amp;id=$id&amp;action=text",
                      _("View!")));
        if ($tail) {
-               one_item(_("full text"), 
+               one_item(_("full text"),
                         href("$bu&amp;name=$name_url&amp;id=$id",
                              _("View!")));
        }
                         href("$bu&amp;name=$name_url&amp;id=$id",
                              _("View!")));
        }
@@ -319,13 +338,12 @@ function dump_log($tail)
         }
        one_item("Date", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
        /*
         }
        one_item("Date", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
        /*
-       echo "<tr><td>Here:</td><td>" . 
+       echo "<tr><td>Here:</td><td>" .
                "<a href=\"$url?idx=$idx&amp;ok=$ok&amp;id=$id\">".
                "http://" . getenv("SERVER_NAME") .
                getenv("SCRIPT_NAME") . "?idx=$idx&amp;ok=$ok&amp;id=$id</a>" .
             "</td></tr>"; */
 
                "<a href=\"$url?idx=$idx&amp;ok=$ok&amp;id=$id\">".
                "http://" . getenv("SERVER_NAME") .
                getenv("SCRIPT_NAME") . "?idx=$idx&amp;ok=$ok&amp;id=$id</a>" .
             "</td></tr>"; */
 
-       echo "</table><h2>"._("Content:")."</h2>";
 
 
        # what can I say beside PHP suxx? how the fuck should I create
 
 
        # what can I say beside PHP suxx? how the fuck should I create
@@ -340,21 +358,116 @@ function dump_log($tail)
        }
 
        $cmd = "$filter '$root_directory/$f'";
        }
 
        $cmd = "$filter '$root_directory/$f'";
-       if ($tail)
-               $cmd = "$cmd | tail -n 100";
        $fd = popen($cmd, "r");
        $fd = popen($cmd, "r");
-       start_pre();
+       $toc = array();
+       $err = array();
+       $first_cut = false;
+       $first_cut_done = false;
+       $time = "";
+       $out_buf = array();
+       $out_buf_size = 0;
        while (($s = fgets($fd, 102400)) != false) {
        while (($s = fgets($fd, 102400)) != false) {
-               if (strlen($s) > 800) {
-                       $s = chunk_split($s, 800, "\n    ");
-                       $s = trim($s);
-               }
+
+               $toc_elem = false;
+               $err_elem = false;
+
                $s = htmlspecialchars($s);
                $s = htmlspecialchars($s);
-               echo $s;
+               // highlight errors
+               if (preg_match("/(?:fail|error(s|\sCS\d+)?):/i", $s)) {
+                       $first_cut = true;
+                       $err_count++;
+                       $toc_elem = "error $err_count";
+                       $err_elem = $s;
+                       $s = "<span class=error id=error-$err_count>$s</span>";
+               } elseif (preg_match("/(?:undefined reference to|recipe for target '.*?' failed)/i", $s)) {
+                       $first_cut = true;
+                       $err_count++;
+                       $toc_elem = "error $err_count";
+                       $err_elem = $s;
+                       $s = "<span class=error id=error-$err_count>$s</span>";
+               } elseif (preg_match("#^\+ /usr/bin/make\b.*\b(?P<target>check)\b#", $s, $m)) {
+                       // rpm build section
+                       $toc_elem = "make {$m['target']}";
+                       $err_elem = $s;
+                       $s = "<span class=line id=make-{$m['target']}>$s</span>";
+               } elseif (preg_match('/^(?P<line>- For complete changelog see:) (?P<link>.+)$/', $s, $m)) {
+                       // rpm changelog link
+                       $link = "<a href=\"{$m['link']}\">{$m['link']}</a>";
+                       $s = "<span class=changelog>{$m['line']} $link<br/></span>";
+               } elseif (preg_match('/^(?P<line>\* \w{3} \w{3} [ \d]{2} \d{4} .*?) (?P<hash>[a-z0-9]{7})$/', $s, $m)) {
+                       // rpm changelogs
+                       $url = "http://git.pld-linux.org/?p=packages/{$name_url}.git;a=commitdiff;h={$m['hash']}";
+                       $link = "<a href=\"$url\">{$m['hash']}</a>";
+                       $s = "<span class=changelog>{$m['line']} $link<br/></span>";
+               } elseif (substr($s, 0, 2) == "+ ") {
+                       // shell verbose
+                       $s = "<span class=verbose>$s</span>";
+               } elseif (preg_match("/^Executing\(%(?P<section>\w+)\)/", $s, $m)) {
+                       // rpm build section
+                       $toc_elem = $m['section'];
+                       $err_elem = $s;
+                       $s = "<span class=section id={$m['section']}>$s</span>";
+               } elseif (preg_match("/^Processing files: (?P<pkg>(?P<name>.+)-[^-]+-[^-]+)/", $s, $m)) {
+                       $first_cut = true;
+                       // processing files
+                       $toc_elem = "files ".$m['name'];
+                       $err_elem = $s;
+                       $s = "<span class=section id=files-{$m['name']}>$s</span>";
+               } elseif (preg_match("/^ended at: (?P<date>.+), done in (?P<time>[\d:.]+)/", $s, $m)) {
+                       $time = $m['time'];
+               }
+
+               $out_buf[] = $s;
+               $out_buf_size++;
+
+               // if error/processing found truncate early but keep last 100 lines before error
+               if ($tail && $first_cut && !$first_cut_done && $out_buf_size > 100) {
+                       array_splice($out_buf, 0, $out_buf_size - 100);
+                       $out_buf_size = 100;
+                       $first_cut_done = true;
+               }
+
+               // if (not in tail mode) or (in tail mode but we have an error)
+               if (!$tail || $first_cut) {
+                       if ($toc_elem)
+                               $toc[] = $toc_elem;
+                       if ($err_elem)
+                               $err[] = $err_elem;
+               }
        }
        }
-       end_pre();
        pclose($fd);
 
        pclose($fd);
 
+       // no errors found, no processing found but we are in tail mode
+       if ($tail && !$first_cut_done && $out_buf_size > 100) {
+               array_splice($out_buf, 0, $out_buf_size - 100);
+               $out_buf_size = 100;
+       }
+
+       $code = join('', $out_buf);
+
+       if ($time) {
+               one_item(_("Runtime"), $time);
+       }
+
+       echo "</table>";
+
+       if (!empty($toc)) {
+               echo "<h2>"._("Toc:")."</h2>";
+               echo "<ul class=toc>";
+               foreach ($toc as $i => $section) {
+                       $id = str_replace(" ", "-", $section);
+                       echo "<li><a href=#{$id}>{$section}</a></li>";
+                       echo "<code>{$err[$i]}</code>";
+               }
+               echo "</ul>";
+       }
+
+       echo "<h2>"._("Content:")."</h2>";
+
+       start_pre();
+       echo $code;
+       end_pre();
+
 ?>
        <table width="100%">
         <tr>
 ?>
        <table width="100%">
         <tr>
@@ -362,7 +475,7 @@ function dump_log($tail)
           [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
          </td>
          <td align=right>
           [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
          </td>
          <td align=right>
-          [<a href="<?php echo "$bu&amp;action=qa" 
+          [<a href="<?php echo "$bu&amp;action=qa"
                ?>"><?=_("View rpm -qa of builder")?></a>]
          </td>
         </tr>
                ?>"><?=_("View rpm -qa of builder")?></a>]
          </td>
         </tr>
@@ -383,11 +496,14 @@ function dump_text()
                return;
 
        echo "# src  : ftp://$buildlogs_server/$f\n";
                return;
 
        echo "# src  : ftp://$buildlogs_server/$f\n";
-       echo "# date   : " .  
+       echo "# date   : " .
                        date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
 
        if (preg_match("/\.bz2$/", $f)) {
                        date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
 
        if (preg_match("/\.bz2$/", $f)) {
-               $filter = "bzcat";
+               if (is_executable("/usr/bin/lbzcat"))
+                       $filter = "lbzcat";
+               else
+                       $filter = "bzcat";
        } elseif (preg_match("/\.gz$/", $f)) {
                $filter = "zcat";
        } else {
        } elseif (preg_match("/\.gz$/", $f)) {
                $filter = "zcat";
        } else {
@@ -413,16 +529,17 @@ function list_archs()
 
        echo "<table width=\"100%\" border=\"0\">\n";
        echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
 
        echo "<table width=\"100%\" border=\"0\">\n";
        echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
-  foreach ($addr as $dist => $ddist) {
-    foreach ($ddist as $arch) {
-               echo "<tr><td nowrap=\"nowrap\">".
-                    "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=0&amp;cnt=$cnt\">
-             $dist/$arch</a></td><td nowrap=\"nowrap\">".
-                    "[<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=1&amp;cnt=$cnt\">OK</a>]</td>".
-                    #"<td>[<a href=\"$url?idx=$i&amp;action=qa\">qa</a>]</td>".
-                    "</tr>\n";
-    }
-  }
+       foreach ($addr as $dist => $ddist) {
+               echo "<tr><td colspan=2 nowrap=\"nowrap\"><hr/></td></tr>\n";
+               foreach ($ddist as $arch) {
+                       echo "<tr><td nowrap=\"nowrap\">".
+                               "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=0&amp;cnt=$cnt\">
+                               $dist/$arch</a></td><td nowrap=\"nowrap\">".
+                               "[<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=1&amp;cnt=$cnt\">OK</a>]</td>".
+                               #"<td>[<a href=\"$url?idx=$i&amp;action=qa\">qa</a>]</td>".
+                               "</tr>\n";
+               }
+       }
        echo "</table><hr />\n";
        
        echo "<div align=\"center\">";
        echo "</table><hr />\n";
        
        echo "<div align=\"center\">";
@@ -430,10 +547,10 @@ function list_archs()
        
        echo "<a href=\"$url\">main()</a><hr />\n";
        echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
        
        echo "<a href=\"$url\">main()</a><hr />\n";
        echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
-               "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
-            "<small>(c) 2002 ".
+            "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
+            "<small>(c) 2002-". date("Y") . " ". 
             "<a href=\"mailto:feedback@pld-linux.org\">PLD&nbsp;Team</a><br />\n".
             "<a href=\"mailto:feedback@pld-linux.org\">PLD&nbsp;Team</a><br />\n".
-            '$Revision: 1.13 $'.
+            '$Revision: 1.37 $'.
             "</small></div>\n";
 
        # smile ;)
             "</small></div>\n";
 
        # smile ;)
@@ -441,10 +558,10 @@ function list_archs()
        $pow = array("vim", "php", "brain", "power", "electricity",
                     "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
                     "voodoo magic", "Linux", "x-files", "X", "foobar",
        $pow = array("vim", "php", "brain", "power", "electricity",
                     "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
                     "voodoo magic", "Linux", "x-files", "X", "foobar",
-                    "/dev/null", "/dev/zero", "/dev/drzewo", 
+                    "/dev/null", "/dev/zero", "/dev/drzewo",
                     "Leppe'", "matrix", "Neo", "PDP-11",
                     "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
                     "Leppe'", "matrix", "Neo", "PDP-11",
                     "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
-                    "foobarbaz", "ed", "Joe", "Unix conspiracy", 
+                    "foobarbaz", "ed", "Joe", "Unix conspiracy",
                     "overclock", "The Right Thing",
                     "The Bad Thing", "Star Treck", "NSA", "NASA",
                     "achelon", "VAX", "Real Programmer",
                     "overclock", "The Right Thing",
                     "The Bad Thing", "Star Treck", "NSA", "NASA",
                     "achelon", "VAX", "Real Programmer",
@@ -488,11 +605,7 @@ function get_qa()
 
        if (!isset($dist) || !isset($arch))
                return false;
 
        if (!isset($dist) || !isset($arch))
                return false;
-       if($dist!='ti'){
-               $addr = "http://ftp.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
-       }else{
-               $addr = "http://ftp.pld-linux.org/branches/titanium/.stat/builder/$dist/rpmqa-$arch.txt";
-       }
+       $addr = "http://ftp1.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
     return fopen("$addr", "r");
 }
 
     return fopen("$addr", "r");
 }
 
@@ -509,10 +622,15 @@ function search_qa()
                echo _("Sorry, cannot open.");
        } else {
                while (($s = fgets($f, 1000)) != false) {
                echo _("Sorry, cannot open.");
        } else {
                while (($s = fgets($f, 1000)) != false) {
+                       if (stristr($s, "Query done at:")) {
+                               echo "rpmqa database from " . strstr($s, ":") . "\n";
+                               continue;
+                       }
+
                        if (stristr($s, $str))
                                echo $s;
                }
                        if (stristr($s, $str))
                                echo $s;
                }
-               echo "/* EOF */";
+               echo "\n/* EOF */";
        }
        end_pre();
 }
        }
        end_pre();
 }
@@ -524,7 +642,7 @@ function dump_qa($plain)
        $f = get_qa();
 
        if ($plain) {
        $f = get_qa();
 
        if ($plain) {
-               header("Content-type: text/plain"); 
+               header("Content-type: text/plain");
                echo _("# rpm -qa of")." $dist/$arch\n";
        } else {
                echo "<h1>"._("rpm -qa of")." $a</h1>";
                echo _("# rpm -qa of")." $dist/$arch\n";
        } else {
                echo "<h1>"._("rpm -qa of")." $a</h1>";
@@ -686,7 +804,7 @@ function adv_search()
                        break;
        }
        $query .= " LIMIT $cnt OFFSET $off ";
                        break;
        }
        $query .= " LIMIT $cnt OFFSET $off ";
-    
+
        try {
                $dbh = new PDO("$database");
        } catch (PDOException $e) {
        try {
                $dbh = new PDO("$database");
        } catch (PDOException $e) {
@@ -804,9 +922,8 @@ function welcome()
 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
 <!-- ech... niech strace... -->
 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
 <!-- ech... niech strace... -->
-<a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?> 
-<a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
-<p>Version: $Id: index.php,v 1.13 2010/05/23 17:03:07 adamg Exp $</p>
+<a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
+ <a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
 </td><td width="20%">&nbsp;</td></tr>
 </table>
 <?php
 </td><td width="20%">&nbsp;</td></tr>
 </table>
 <?php
This page took 0.090664 seconds and 4 git commands to generate.