[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