[Dehs-devel] r73 - trunk

atomo64-guest at alioth.debian.org atomo64-guest at alioth.debian.org
Sat Dec 15 23:54:48 UTC 2007


Author: atomo64-guest
Date: 2007-12-15 23:54:47 +0000 (Sat, 15 Dec 2007)
New Revision: 73

Modified:
   trunk/dehs.config.inc
   trunk/dehs_pg.php
Log:
Extract and store the dversionmangle information for later use in ddpo
Basic dversionmangling added to the watch wizard

Modified: trunk/dehs.config.inc
===================================================================
--- trunk/dehs.config.inc	2007-12-13 01:15:29 UTC (rev 72)
+++ trunk/dehs.config.inc	2007-12-15 23:54:47 UTC (rev 73)
@@ -19,6 +19,7 @@
 $uscan=$base.'/uscan.pl';
 $sfIgnore = array('dl','download','prdownload','downloads','lists','cvs','svn','www');
 $watchFileExts = array('tar.*', 'tgz', 'zip', 'gz', 'bz2');
+$watchFileDversionMangle = array('cvs', 'svn', 'git', 'snapshot', 'pre', 'hg');
 /*1: watch url, 2: $space, 3: name, 4: file ext, 5: extra options*/
 $watchFormat = 'version=3' . "\n" . '%5$s' . "\n" . '%1$s%2$s%3$s-?_?([\d+\.]+|\d+)\.%4$s debian uupdate';
 $fetchUpstreamChanges = false;

Modified: trunk/dehs_pg.php
===================================================================
--- trunk/dehs_pg.php	2007-12-13 01:15:29 UTC (rev 72)
+++ trunk/dehs_pg.php	2007-12-15 23:54:47 UTC (rev 73)
@@ -243,6 +243,7 @@
     while ($res_array=pg_fetch_array($rsql)) {
         print "Package=> " . $res_array['name'] . "\n";
         print "Version => " . $res_array['version'] . "\n";
+        print "Mangled version => " . $res_array['dversionmangled'] . "\n";
         print "Diff MD5 Downloaded => " . $res_array['md5_diff'] . "\n";
         print "Diff MD5 at Sources => " . $res_array['md5_atsource'] . "\n";
         print "Distribution => " . $res_array['dist'] . "\n";
@@ -330,7 +331,7 @@
     global $dirs,$dbconn;
     $db = pg_pconnect($dbconn) or die_status(1/*pg_last_notice($db)*/);
     if (!pg_table_exists($db,"pkgs")){
-        pg_exec($db, "CREATE TABLE pkgs (id serial PRIMARY KEY,name text,version text,maint text, uploaders text, dir text,watch text,md5_diff text,md5_atsource text,bytes numeric,dist text,section text,up_version text,up_changes text, up_url text,watch_warn text,updated bool, keep_changes bool, wwiz text,wwiz_version text, wwiz_type text)") or die_status('Error creating table pkgs\n');
+        pg_exec($db, "CREATE TABLE pkgs (id serial PRIMARY KEY,name text,version text, dversionmangled text,maint text, uploaders text, dir text,watch text,md5_diff text,md5_atsource text,bytes numeric,dist text,section text,up_version text,up_changes text, up_url text,watch_warn text,updated bool, keep_changes bool, wwiz text,wwiz_version text, wwiz_type text)") or die_status('Error creating table pkgs\n');
         pg_exec($db, "CREATE UNIQUE INDEX idxname on pkgs (name,dist)") or die_status('Errore creating index - ' . pg_last_error($db));
         $sw=true;
     }
@@ -458,9 +459,11 @@
         $uscan_res=uscan_foo($res_array['name'],$res_array['version'],$res_array['watch']);
         #print $uscan_res[0] . "\n Name => $res_array[name]\n";
         $version=$res_array[version];
+        $dversionmangled=$res_array['dversionmangled'];
         print "\rVersion=>" . $uscan_res[3];
         if ($uscan_res[3]!=null) $version=$uscan_res[3];
-        #$updated=is_updated($uscan_res[0],$res_array[version]);
+        if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
+        #$updated=is_updated($uscan_res[0],$dversionmangled);
         $updated=$uscan_res[4];
         if (!$updated) {
             events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']);
@@ -474,7 +477,7 @@
         if($uscan_res[1] != null) {
             $watch_warn=pg_escape_string(iconv("ISO-8859-1","UTF-8",$uscan_res[1]));
         }
-        pg_exec($db, "UPDATE pkgs SET up_version='" . $up_version . "',up_url='" . $up_url . "', watch_warn='" . $watch_warn . "',keep_changes='$keep_changes', wwiz_version=NULL, wwiz_type=NULL, wwiz=NULL, updated='$updated' WHERE id=$res_array[id]") or die_status("Error in update pkgs upstream");
+        pg_exec($db, "UPDATE pkgs SET up_version='" . pg_escape_string($up_version) . "', dversionmangled='".pg_escape_string($dversionmangled)."',up_url='" . pg_escape_string($up_url) . "', watch_warn='" . $watch_warn . "',keep_changes='$keep_changes', wwiz_version=NULL, wwiz_type=NULL, wwiz=NULL, updated='$updated' WHERE id=$res_array[id]") or die_status("Error in update pkgs upstream");
         #print "\rUpdated " . $res_array['name'] .  " => $updated Up Version => ". $uscan_res[0];
         print "\tUpstream left => " . $tot --;
         #				}
@@ -598,6 +601,7 @@
     $upstream=$vals[$index['UPSTREAM-VERSION'][0]][value];
     $up_url=$vals[$index['UPSTREAM-URL'][0]][value];
     $deb_vers=$vals[$index['DEBIAN-UVERSION'][0]][value];
+    $deb_mangled_vers=$vals[$index['DEBIAN-MANGLED-UVERSION'][0]][value];
     $warnings=$vals[$index['WARNINGS'][0]][value];
     $updated=$vals[$index['STATUS'][0]][value];
 
@@ -608,8 +612,9 @@
     if ($up_url=='')  $up_url=null;
     if ($deb_vers=='') $deb_vers=null;
     if ($warnings=='') $warnings=null;
+    if ($deb_mangled_vers=='') $deb_mangled_vers=null;
 
-    return array($upstream,$warnings,$up_url,$deb_vers,$updated);
+    return array($upstream, $warnings, $up_url, $deb_vers, $updated, $deb_mangled_vers);
 }
 function db_up_error() {
     global $dbconn;
@@ -644,27 +649,45 @@
     pg_close($db);
 }
 function watch_wizard($src_name='%'){
-    global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFormat;
+    global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFileDversionMangle,$watchFormat;
     $db = pg_pconnect($dbconn) or die_status ("Db error");
     $checked=$errors=$notfound=$verok=$notmatch=0;
 
     // prepare some stuff that needs to be done once per run
-    $opts = '';
-    $exts  = '(';
+    $opts       = array();
+    $exts       = '';
+    $dvmanglers = '';
 
     foreach ($watchFileExts as $ext) {
         $exts .= $ext . '|';
     }
     unset($ext);
 
-    $exts = substr($exts, 0, -1) . ')';
-    if ($exts == '()') {
-        $exts = '';
-    } else {
-        $opts = 'opts=uversionmangle=s/\.' . $exts . '$// \\';
+    if ($exts != '') {
+        $opts[] = 'uversionmangle=s/\.(' . substr($exts, 0, -1) . ')$//i';
     }
 
-    $sqlstring="SELECT mpop_inst,name,pkgs.version,pkgs.section,pkgs.dist,tot_up_error, tot_avg_error_date, wwiz_version FROM pkgs INNER JOIN
+    foreach ($watchFileDversionMangle as $dvmangler) {
+        $dvmanglers .= $dvmangler . '|';
+    }
+    unset($dvmangler);
+
+    if ($dvmanglers != '') {
+        $opts[] = 'dversionmangle=s/[-.+~]?(' . substr($dvmanglers, 0, -1) . ')(.*)$//i';
+    }
+
+    if (is_array($opts)) {
+        $_opts = '';
+        foreach ($opts as $opt) {
+            $_opts .= $opt . ',';
+        }
+        $opts = '';
+        if ($_opts != ',') {
+            $opts = 'opts=' . substr($_opts, 0, -1) . ' \\';
+        }
+    }
+
+    $sqlstring="SELECT mpop_inst,name,pkgs.version,pkgs.dversionmangled,pkgs.section,pkgs.dist,tot_up_error, tot_avg_error_date, wwiz_version FROM pkgs INNER JOIN
 	(Select max(pop_inst) as mpop_inst,SUM(up_error) as tot_up_error,AVG(avg_error_date) as tot_avg_error_date,name,dist FROM binpkgs GROUP BY name,dist HAVING max(pop_inst) IS NOT NULL) as binpkgs using(name,dist)
 	WHERE (watch IS NULL OR watch='') AND name LIKE '$src_name%' ORDER BY mpop_inst DESC";
     $rsql=pg_exec($db, $sqlstring);
@@ -695,6 +718,15 @@
             $contents=@file_get_contents($url) or '';
         }
 
+        if (!$contents) {
+            $url="http://packages.debian.org/changelogs/pool/" .
+            $res_array["section"] . "/" .
+            $initial . "/" .
+            $res_array["name"] ."/" .
+            "current/copyright";
+            $contents=@file_get_contents($url) or '';
+        }
+
         if ($contents) {
 
             if (preg_match ('/(sf\.net|sourceforge\.net)/i', $contents, $matches) ||
@@ -777,10 +809,12 @@
                     $updated=$uscan_res[4];
 
                     if (!$updated) {
-                        //FIXME: events::newVersion($res_array['name'], , $uscan_res[0], $res_array['dist']);
+                        events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']);
                     }
+                    $dversionmangled = $res_array[version];
+                    if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
 
-                    pg_exec($db, "UPDATE pkgs SET wwiz='" . pg_escape_string($watch) ."', wwiz_type='watch', wwiz_version='" . pg_escape_string($uscan_res[0]) . "', up_url='" . pg_escape_string($uscan_res[2]) . "', keep_changes='$keep_changes', updated='$updated' where name='" . pg_escape_string($res_array[name]) . "' AND dist='" . $res_array[dist] ."'");
+                    pg_exec($db, "UPDATE pkgs SET wwiz='" . pg_escape_string($watch) ."', wwiz_type='watch', wwiz_version='" . pg_escape_string($uscan_res[0]) . "',dversionmangled='".pg_escape_string($dversionmangled)."', up_url='" . pg_escape_string($uscan_res[2]) . "', keep_changes='$keep_changes', updated='$updated' where name='" . pg_escape_string($res_array[name]) . "' AND dist='" . $res_array[dist] ."'");
                 }
             }
         } else {
@@ -809,8 +843,7 @@
     foreach ($dists as $dist) {
         $id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n');
         $db = pg_pconnect($dbconn) or die_status ("Db error");
-        $sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, updated, version FROM pkgs WHERE dist='$dist'";
-        //TOADD: versionmangled
+        $sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, version, dversionmangled FROM pkgs WHERE dist='$dist'";
         $rsql=pg_exec($db, $sql);
         while($res_array=pg_fetch_array($rsql)) {
 
@@ -823,10 +856,9 @@
 
             $xml="<data><id>$res_array[id]</id>" .
             "<up_version>$version</up_version>" .
-            //"<dversion>$res_array[version]</dversion>" .
-            //"<dversionmangled>$res_array[versionmangled]</dversionmangled>" .
+            "<dversion>$res_array[version]</dversion>" .
+            "<dversionmangled>$res_array[dversionmangled]</dversionmangled>" .
             "<wwiz>$wwiz</wwiz>" .
-            //"<updated>" . ($res_array['updated']=='t')? 'true': 'false' . "</updated>" .
             "</data>";
             $value=addslashes($xml);
             dba_replace($res_array[name],$xml,$id);




More information about the Dehs-devel mailing list