[Dehs-devel] r76 - in trunk: . www

atomo64-guest at alioth.debian.org atomo64-guest at alioth.debian.org
Sun Dec 16 00:49:38 UTC 2007


Author: atomo64-guest
Date: 2007-12-16 00:49:38 +0000 (Sun, 16 Dec 2007)
New Revision: 76

Modified:
   trunk/dehs_pg.php
   trunk/www/no_watch.php
Log:
dehs_pg.php: add an 'updated' status corrector when version in Debian is newer than upstream
www/no_watch.php: updated the vers_conv function with the one used everywhere else

Modified: trunk/dehs_pg.php
===================================================================
--- trunk/dehs_pg.php	2007-12-16 00:12:23 UTC (rev 75)
+++ trunk/dehs_pg.php	2007-12-16 00:49:38 UTC (rev 76)
@@ -58,8 +58,8 @@
     }
 }
 
-if (in_array("-db_add",$argv))  db_add((isset($argv[2])?$argv[2]:''), false);
-    elseif (in_array("-db_query",$argv))  db_query($argv[2],(isset($argv[3])?$argv[3]:'%') );
+if (in_array("-db_add",$argv))  db_add((!empty($argv[2])?$argv[2]:''), false);
+    elseif (in_array("-db_query",$argv))  db_query($argv[2],(!empty($argv[3])?$argv[3]:'%') );
     elseif (in_array("-dl_diffs",$argv) || in_array("-keep_diff",$argv))  dl_diffs($argv[2]);
     elseif (in_array("-keep_sources",$argv) || in_array("-download_sources",$argv))  download_sources();
     elseif (in_array("-db_popcon",$argv))  db_popcon($argv[2]);
@@ -73,7 +73,7 @@
     elseif (in_array("-clear_db",$argv))  clear_db();
     elseif (in_array("-db_up_error",$argv))  db_up_error();
     elseif (in_array("-up_changes",$argv))  up_changes($argv[2], true);
-    elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv))  watch_wizard((isset($argv[2])?$argv[2]:''));
+    elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv))  watch_wizard((!empty($argv[2])?$argv[2]:''));
     elseif (in_array("-kb_total",$argv))  print "Diff
 #stat_up_error();
 #stat_up_error();to download Kb => " . kb_total($argv[2]) . "\n" ;
@@ -445,7 +445,7 @@
 }
 function is_updated ($up_vers,$debian_vers) {
     if ($up_vers=='') return 0;
-    passthru("dpkg --compare-versions '".escapeshellarg($up_vers)."' eq '" . escapeshellarg(vers_conv($debian_vers)) . "'",$great);
+    passthru("dpkg --compare-versions '".escapeshellarg($up_vers)."' le '" . escapeshellarg(vers_conv($debian_vers)) . "'",$great);
     if ($great!=0) return 1;
     else return 0;
 }
@@ -463,8 +463,11 @@
         print "\rVersion=>" . $uscan_res[3];
         if ($uscan_res[3]!=null) $version=$uscan_res[3];
         if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
-        #$updated=is_updated($uscan_res[0],$dversionmangled);
         $updated=$uscan_res[4];
+        if ($updated) {
+            $updated=is_updated($uscan_res[0],$dversionmangled);
+        }
+
         if (!$updated) {
             events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']);
         }
@@ -806,13 +809,18 @@
                     } else {
                         $keep_changes = 0;
                     }
+
+                    $dversionmangled = $res_array[version];
+                    if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
+
                     $updated=$uscan_res[4];
+                    if ($updated) {
+                        $updated=is_updated($uscan_res[0],$dversionmangled);
+                    }
 
                     if (!$updated) {
                         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]) . "',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] ."'");
                 }

Modified: trunk/www/no_watch.php
===================================================================
--- trunk/www/no_watch.php	2007-12-16 00:12:23 UTC (rev 75)
+++ trunk/www/no_watch.php	2007-12-16 00:49:38 UTC (rev 76)
@@ -122,17 +122,25 @@
 if ($up_vers=='') return 0;
 $up_vers = escapeshellarg($up_vers);
 $debian_vers = escapeshellarg(vers_conv($debian_vers));
-passthru("dpkg --compare-versions $up_vers gt $debian_vers",$great);
+passthru("dpkg --compare-versions $up_vers le $debian_vers",$great);
 if ($great==0) return 1;
 else return 0;
 }
 function vers_conv($debvers) {
-        preg_match("/(.+:)?([^-]+)(ds|dfsg|debian)/",$debvers,$matches);
-        if (!$matches[3]) {
-                unset($matches);
-                preg_match("/(.+:)?([^-]+)/",$debvers,$matches);
-        }
-        if (substr($matches[2],-1)=='.') $matches[2]=substr($matches[2],0,-1);
-        return $matches[2];
+    // Strip off the epoch
+    $pos = strpos($debvers, ':');
+    if ( $pos !== FALSE) {
+        $debvers = substr($debvers, $pos+1);
+    }
+
+    // strip off the Debian revision (look from the back of the string)
+    $pos = strrpos($debvers, '-');
+    if ( $pos !== FALSE) {
+        $debvers = substr($debvers, 0, $pos);
+    }
+
+    // strip off repacking indicators
+    $debvers = preg_replace("/[-.+~]?(ds|dfsg|debian)(.*)/i", "", $debvers);
+    return $debvers;
 }
 ?>




More information about the Dehs-devel mailing list