| 58 |
} |
} |
| 59 |
} |
} |
| 60 |
|
|
| 61 |
if (in_array("-db_add",$argv)) db_add((isset($argv[2])?$argv[2]:''), false); |
if (in_array("-db_add",$argv)) db_add((!empty($argv[2])?$argv[2]:''), false); |
| 62 |
elseif (in_array("-db_query",$argv)) db_query($argv[2],$argv[3] ); |
elseif (in_array("-db_query",$argv)) db_query($argv[2],(!empty($argv[3])?$argv[3]:'%') ); |
| 63 |
elseif (in_array("-dl_diffs",$argv) || in_array("-keep_diff",$argv)) dl_diffs($argv[2]); |
elseif (in_array("-dl_diffs",$argv) || in_array("-keep_diff",$argv)) dl_diffs($argv[2]); |
| 64 |
elseif (in_array("-keep_sources",$argv) || in_array("-download_sources",$argv)) download_sources(); |
elseif (in_array("-keep_sources",$argv) || in_array("-download_sources",$argv)) download_sources(); |
| 65 |
elseif (in_array("-db_popcon",$argv)) db_popcon($argv[2]); |
elseif (in_array("-db_popcon",$argv)) db_popcon($argv[2]); |
| 73 |
elseif (in_array("-clear_db",$argv)) clear_db(); |
elseif (in_array("-clear_db",$argv)) clear_db(); |
| 74 |
elseif (in_array("-db_up_error",$argv)) db_up_error(); |
elseif (in_array("-db_up_error",$argv)) db_up_error(); |
| 75 |
elseif (in_array("-up_changes",$argv)) up_changes($argv[2], true); |
elseif (in_array("-up_changes",$argv)) up_changes($argv[2], true); |
| 76 |
elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv)) watch_wizard($argv[2]); |
elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv)) watch_wizard((!empty($argv[2])?$argv[2]:'')); |
| 77 |
elseif (in_array("-kb_total",$argv)) print "Diff |
elseif (in_array("-kb_total",$argv)) print "Diff |
| 78 |
#stat_up_error(); |
#stat_up_error(); |
| 79 |
#stat_up_error();to download Kb => " . kb_total($argv[2]) . "\n" ; |
#stat_up_error();to download Kb => " . kb_total($argv[2]) . "\n" ; |
| 207 |
$matches[10]=pg_escape_string($matches[10]); |
$matches[10]=pg_escape_string($matches[10]); |
| 208 |
} |
} |
| 209 |
@pg_exec($db,"INSERT INTO pkgs_atsrc (name,dist) VALUES ('$matches[1]','$dist')") OR die_status("Temp table pkgs_atsrc query error"); |
@pg_exec($db,"INSERT INTO pkgs_atsrc (name,dist) VALUES ('$matches[1]','$dist')") OR die_status("Temp table pkgs_atsrc query error"); |
| 210 |
$rst=@pg_exec($db, "INSERT INTO pkgs (name,version,maint,dir,md5_atsource,bytes,dist,section,uploaders) VALUES ('$matches[1]','$matches[4]','$matches[5]','$matches[6]','$matches[7]','$matches[8]','$dist','$section','$matches[10]')") ; |
$rst=@pg_exec($db, "INSERT INTO pkgs (name,version,dversionmangled,maint,dir,md5_atsource,bytes,dist,section,uploaders) VALUES ('$matches[1]','$matches[4]','$matches[4]','$matches[5]','$matches[6]','$matches[7]','$matches[8]','$dist','$section','$matches[10]')") ; |
| 211 |
if (!$rst) { |
if (!$rst) { |
| 212 |
$rst=@pg_exec($db, "UPDATE pkgs SET name='$matches[1]',version='$matches[4]',maint='$matches[5]',dir='$matches[6]',md5_atsource='$matches[7]',bytes='$matches[8]',dist='$dist',section='$section',uploaders='$matches[10]' WHERE name='$matches[1]' AND dist='$dist'") OR die_status("\nDb adding error =>" . pg_last_error() . "\n"); |
$rst=@pg_exec($db, "UPDATE pkgs SET name='$matches[1]',version='$matches[4]',dversionmangled='$matches[4]',maint='$matches[5]',dir='$matches[6]',md5_atsource='$matches[7]',bytes='$matches[8]',dist='$dist',section='$section',uploaders='$matches[10]' WHERE name='$matches[1]' AND dist='$dist'") OR die_status("\nDb adding error =>" . pg_last_error() . "\n"); |
| 213 |
} |
} |
| 214 |
$bin_names=split(",", $matches[2]); |
$bin_names=split(",", $matches[2]); |
| 215 |
foreach ($bin_names as $bin_name) { |
foreach ($bin_names as $bin_name) { |
| 234 |
clear_db($db); |
clear_db($db); |
| 235 |
pg_close($db); |
pg_close($db); |
| 236 |
} |
} |
| 237 |
function db_query($pkg,$dist) { |
function db_query($pkg,$dist='%') { |
| 238 |
global $dirs,$dbconn; |
global $dirs,$dbconn; |
| 239 |
$db = pg_pconnect($dbconn ) or die_status(pg_last_error($db)); |
$db = pg_pconnect($dbconn ) or die_status(pg_last_error($db)); |
| 240 |
$rsql=pg_exec($db, "SELECT pkgs.* ,mpop_inst FROM (SELECT name,MAX(binpkgs.pop_inst) AS mpop_inst FROM binpkgs GROUP BY name) |
$rsql=pg_exec($db, "SELECT pkgs.* ,mpop_inst FROM (SELECT name,MAX(binpkgs.pop_inst) AS mpop_inst FROM binpkgs GROUP BY name) |
| 241 |
AS binpkgs INNER JOIN pkgs ON pkgs.name=binpkgs.name |
AS binpkgs INNER JOIN pkgs ON pkgs.name=binpkgs.name |
| 242 |
WHERE pkgs.name='$pkg' AND dist='$dist';"); |
WHERE pkgs.name='$pkg' AND dist='$dist';"); |
| 243 |
if (pg_numrows($rsql)==1) { |
while ($res_array=pg_fetch_array($rsql)) { |
|
$res_array=pg_fetch_array($rsql); |
|
| 244 |
print "Package=> " . $res_array['name'] . "\n"; |
print "Package=> " . $res_array['name'] . "\n"; |
| 245 |
print "Version => " . $res_array['version'] . "\n"; |
print "Version => " . $res_array['version'] . "\n"; |
| 246 |
|
print "Mangled version => " . $res_array['dversionmangled'] . "\n"; |
| 247 |
print "Diff MD5 Downloaded => " . $res_array['md5_diff'] . "\n"; |
print "Diff MD5 Downloaded => " . $res_array['md5_diff'] . "\n"; |
| 248 |
print "Diff MD5 at Sources => " . $res_array['md5_atsource'] . "\n"; |
print "Diff MD5 at Sources => " . $res_array['md5_atsource'] . "\n"; |
| 249 |
print "Distribution => " . $res_array['dist'] . "\n"; |
print "Distribution => " . $res_array['dist'] . "\n"; |
| 253 |
if ($res_array['watch']) { |
if ($res_array['watch']) { |
| 254 |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['watch']); |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['watch']); |
| 255 |
print "Version Upstream => " . $uscan_res[0] . "\n"; |
print "Version Upstream => " . $uscan_res[0] . "\n"; |
| 256 |
print "Watch => " . $res_array['watch']; |
print "Watch => " . trim($res_array['watch'])."\n"; |
| 257 |
print "Watch Warnings => " . $uscan_res[1]; |
print "Watch Warnings => " . $uscan_res[1]; |
| 258 |
} |
} |
| 259 |
else print "Watch => Not present" . "\n"; |
else print "Watch => Not present" . "\n"; |
| 260 |
if ($res_array['wwiz_type']) { |
if ($res_array['wwiz_type']) { |
| 261 |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['wwiz']); |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['wwiz']); |
| 262 |
print "WWiz Upstream => " . $uscan_res[0] . "\n"; |
print "WWiz Upstream => " . $uscan_res[0] . "\n"; |
| 263 |
print "WWiz => " . $res_array['wwiz']; |
print "WWiz => " . $res_array['wwiz']."\n"; |
| 264 |
print "WWiz Warings => " . $uscan_res[1]; |
print "WWiz Warings => " . $uscan_res[1]; |
| 265 |
} |
} |
| 266 |
print "\n"; |
print "\n"; |
| 267 |
} |
} |
| 268 |
else echo "Package=> " . $pkg . "\nNot found\n!!"; |
if (pg_numrows($rsql)==0) echo "Package=> " . $pkg . "\nNot found\n!!"; |
| 269 |
pg_close($db); |
pg_close($db); |
| 270 |
} |
} |
| 271 |
function byte_total(&$db,$initial) { |
function byte_total(&$db,$initial) { |
| 331 |
global $dirs,$dbconn; |
global $dirs,$dbconn; |
| 332 |
$db = pg_pconnect($dbconn) or die_status(1/*pg_last_notice($db)*/); |
$db = pg_pconnect($dbconn) or die_status(1/*pg_last_notice($db)*/); |
| 333 |
if (!pg_table_exists($db,"pkgs")){ |
if (!pg_table_exists($db,"pkgs")){ |
| 334 |
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'); |
| 335 |
pg_exec($db, "CREATE UNIQUE INDEX idxname on pkgs (name,dist)") or die_status('Errore creating index - ' . pg_last_error($db)); |
pg_exec($db, "CREATE UNIQUE INDEX idxname on pkgs (name,dist)") or die_status('Errore creating index - ' . pg_last_error($db)); |
| 336 |
$sw=true; |
$sw=true; |
| 337 |
} |
} |
| 445 |
} |
} |
| 446 |
function is_updated ($up_vers,$debian_vers) { |
function is_updated ($up_vers,$debian_vers) { |
| 447 |
if ($up_vers=='') return 0; |
if ($up_vers=='') return 0; |
| 448 |
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); |
| 449 |
if ($great!=0) return 1; |
if ($great!=0) return 1; |
| 450 |
else return 0; |
else return 0; |
| 451 |
} |
} |
| 459 |
$uscan_res=uscan_foo($res_array['name'],$res_array['version'],$res_array['watch']); |
$uscan_res=uscan_foo($res_array['name'],$res_array['version'],$res_array['watch']); |
| 460 |
#print $uscan_res[0] . "\n Name => $res_array[name]\n"; |
#print $uscan_res[0] . "\n Name => $res_array[name]\n"; |
| 461 |
$version=$res_array[version]; |
$version=$res_array[version]; |
| 462 |
|
$dversionmangled=$res_array['dversionmangled']; |
| 463 |
print "\rVersion=>" . $uscan_res[3]; |
print "\rVersion=>" . $uscan_res[3]; |
| 464 |
if ($uscan_res[3]!=null) $version=$uscan_res[3]; |
if ($uscan_res[3]!=null) $version=$uscan_res[3]; |
| 465 |
#$updated=is_updated($uscan_res[0],$res_array[version]); |
if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5]; |
| 466 |
$updated=$uscan_res[4]; |
$updated=$uscan_res[4]; |
| 467 |
|
if ($updated) { |
| 468 |
|
$updated=is_updated($uscan_res[0],$dversionmangled); |
| 469 |
|
} |
| 470 |
|
|
| 471 |
|
if (!$updated) { |
| 472 |
|
events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']); |
| 473 |
|
} |
| 474 |
|
|
| 475 |
if ($uscan_res[0]!=$res_array[up_version]) ($keep_changes=1); |
if ($uscan_res[0]!=$res_array[up_version]) ($keep_changes=1); |
| 476 |
else $keep_changes=0; |
else $keep_changes=0; |
| 477 |
$up_url=iconv("ISO-8859-1","UTF-8",$uscan_res[2]); |
$up_url=iconv("ISO-8859-1","UTF-8",$uscan_res[2]); |
| 480 |
if($uscan_res[1] != null) { |
if($uscan_res[1] != null) { |
| 481 |
$watch_warn=pg_escape_string(iconv("ISO-8859-1","UTF-8",$uscan_res[1])); |
$watch_warn=pg_escape_string(iconv("ISO-8859-1","UTF-8",$uscan_res[1])); |
| 482 |
} |
} |
| 483 |
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"); |
| 484 |
#print "\rUpdated " . $res_array['name'] . " => $updated Up Version => ". $uscan_res[0]; |
#print "\rUpdated " . $res_array['name'] . " => $updated Up Version => ". $uscan_res[0]; |
| 485 |
print "\tUpstream left => " . $tot --; |
print "\tUpstream left => " . $tot --; |
| 486 |
# } |
# } |
| 604 |
$upstream=$vals[$index['UPSTREAM-VERSION'][0]][value]; |
$upstream=$vals[$index['UPSTREAM-VERSION'][0]][value]; |
| 605 |
$up_url=$vals[$index['UPSTREAM-URL'][0]][value]; |
$up_url=$vals[$index['UPSTREAM-URL'][0]][value]; |
| 606 |
$deb_vers=$vals[$index['DEBIAN-UVERSION'][0]][value]; |
$deb_vers=$vals[$index['DEBIAN-UVERSION'][0]][value]; |
| 607 |
|
$deb_mangled_vers=$vals[$index['DEBIAN-MANGLED-UVERSION'][0]][value]; |
| 608 |
$warnings=$vals[$index['WARNINGS'][0]][value]; |
$warnings=$vals[$index['WARNINGS'][0]][value]; |
| 609 |
$updated=$vals[$index['STATUS'][0]][value]; |
$updated=$vals[$index['STATUS'][0]][value]; |
| 610 |
|
|
| 615 |
if ($up_url=='') $up_url=null; |
if ($up_url=='') $up_url=null; |
| 616 |
if ($deb_vers=='') $deb_vers=null; |
if ($deb_vers=='') $deb_vers=null; |
| 617 |
if ($warnings=='') $warnings=null; |
if ($warnings=='') $warnings=null; |
| 618 |
|
if ($deb_mangled_vers=='') $deb_mangled_vers=null; |
| 619 |
|
|
| 620 |
return array($upstream,$warnings,$up_url,$deb_vers,$updated); |
return array($upstream, $warnings, $up_url, $deb_vers, $updated, $deb_mangled_vers); |
| 621 |
} |
} |
| 622 |
function db_up_error() { |
function db_up_error() { |
| 623 |
global $dbconn; |
global $dbconn; |
| 652 |
pg_close($db); |
pg_close($db); |
| 653 |
} |
} |
| 654 |
function watch_wizard($src_name='%'){ |
function watch_wizard($src_name='%'){ |
| 655 |
global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFormat; |
global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFileDversionMangle,$watchFormat; |
| 656 |
$db = pg_pconnect($dbconn) or die_status ("Db error"); |
$db = pg_pconnect($dbconn) or die_status ("Db error"); |
| 657 |
$checked=$errors=$notfound=$verok=$notmatch=0; |
$checked=$errors=$notfound=$verok=$notmatch=0; |
|
$sqlstring="SELECT mpop_inst,name,pkgs.version,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); |
|
| 658 |
|
|
| 659 |
// prepare some stuff that needs to be done once per run |
// prepare some stuff that needs to be done once per run |
| 660 |
$opts = ''; |
$opts = array(); |
| 661 |
$exts = '('; |
$exts = ''; |
| 662 |
|
$dvmanglers = ''; |
| 663 |
|
|
| 664 |
foreach ($watchFileExts as $ext) { |
foreach ($watchFileExts as $ext) { |
| 665 |
$exts .= $ext . '|'; |
$exts .= $ext . '|'; |
| 666 |
} |
} |
| 667 |
unset($ext); |
unset($ext); |
| 668 |
|
|
| 669 |
$exts = substr($exts, 0, -1) . ')'; |
if ($exts != '') { |
| 670 |
if ($exts == '()') { |
$opts[] = 'uversionmangle=s/\.(' . substr($exts, 0, -1) . ')$//i'; |
| 671 |
$exts = ''; |
} |
| 672 |
} else { |
|
| 673 |
$opts = 'opts=uversionmangle=s/\.' . $exts . '$// \\'; |
foreach ($watchFileDversionMangle as $dvmangler) { |
| 674 |
|
$dvmanglers .= $dvmangler . '|'; |
| 675 |
|
} |
| 676 |
|
unset($dvmangler); |
| 677 |
|
|
| 678 |
|
if ($dvmanglers != '') { |
| 679 |
|
$opts[] = 'dversionmangle=s/[-.+~]?(' . substr($dvmanglers, 0, -1) . ')(.*)$//i'; |
| 680 |
|
} |
| 681 |
|
|
| 682 |
|
if (is_array($opts)) { |
| 683 |
|
$_opts = ''; |
| 684 |
|
foreach ($opts as $opt) { |
| 685 |
|
$_opts .= $opt . ','; |
| 686 |
|
} |
| 687 |
|
$opts = ''; |
| 688 |
|
if ($_opts != ',') { |
| 689 |
|
$opts = 'opts=' . substr($_opts, 0, -1) . ' \\'; |
| 690 |
|
} |
| 691 |
} |
} |
| 692 |
|
|
| 693 |
|
$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 |
| 694 |
|
(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) |
| 695 |
|
WHERE (watch IS NULL OR watch='') AND name LIKE '$src_name%' ORDER BY mpop_inst DESC"; |
| 696 |
|
$rsql=pg_exec($db, $sqlstring); |
| 697 |
|
|
| 698 |
while ($res_array=pg_fetch_array($rsql)) { |
while ($res_array=pg_fetch_array($rsql)) { |
| 699 |
|
|
| 700 |
if (substr($res_array["name"],0,3)=='lib') |
if (substr($res_array["name"],0,3)=='lib') |
| 721 |
$contents=@file_get_contents($url) or ''; |
$contents=@file_get_contents($url) or ''; |
| 722 |
} |
} |
| 723 |
|
|
| 724 |
|
if (!$contents) { |
| 725 |
|
$url="http://packages.debian.org/changelogs/pool/" . |
| 726 |
|
$res_array["section"] . "/" . |
| 727 |
|
$initial . "/" . |
| 728 |
|
$res_array["name"] ."/" . |
| 729 |
|
"current/copyright"; |
| 730 |
|
$contents=@file_get_contents($url) or ''; |
| 731 |
|
} |
| 732 |
|
|
| 733 |
if ($contents) { |
if ($contents) { |
| 734 |
|
|
| 735 |
if (preg_match ('/(sf\.net|sourceforge\.net)/i', $contents, $matches) || |
if (preg_match ('/(sf\.net|sourceforge\.net)/i', $contents, $matches) || |
| 743 |
|
|
| 744 |
} |
} |
| 745 |
|
|
| 746 |
if (preg_match ('#((ftp://|http://|https://)\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz))|[^>\s\)\a]+)))#i',$contents,$matches)) { |
if (preg_match ('#((ftp://|http://|https://)\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz|bz2))|[^>\s\)\a]+)))#i',$contents,$matches)) { |
| 747 |
$final=substr($matches[1],-1); |
$final=substr($matches[1],-1); |
| 748 |
if ($final=='.') { |
if ($final=='.') { |
| 749 |
$matches[1]=substr($matches[1],0,-1); |
$matches[1]=substr($matches[1],0,-1); |
| 757 |
$generatedWatches[]=array('url' => preg_replace("#((http|https|ftp)://.+):(.*)#i",'$1' . '$3', $matches[1],1), 'space' => $space); |
$generatedWatches[]=array('url' => preg_replace("#((http|https|ftp)://.+):(.*)#i",'$1' . '$3', $matches[1],1), 'space' => $space); |
| 758 |
} |
} |
| 759 |
|
|
| 760 |
if (preg_match ('#((ftp|http)\.\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz))|[^>\s\)\a]+)))#i',$contents,$matches)) { |
if (preg_match ('#((ftp|http)\.\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz|bz2))|[^>\s\)\a]+)))#i',$contents,$matches)) { |
| 761 |
$final=substr($matches[1],-1); |
$final=substr($matches[1],-1); |
| 762 |
if ($final=='.') { |
if ($final=='.') { |
| 763 |
$matches[1]=substr($matches[1],0,-1); |
$matches[1]=substr($matches[1],0,-1); |
| 795 |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch); |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch); |
| 796 |
|
|
| 797 |
if ($uscan_res[0]) { |
if ($uscan_res[0]) { |
| 798 |
break 2; |
break; |
| 799 |
} |
} |
| 800 |
} |
} |
| 801 |
|
|
| 809 |
} else { |
} else { |
| 810 |
$keep_changes = 0; |
$keep_changes = 0; |
| 811 |
} |
} |
| 812 |
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' where name='" . pg_escape_string($res_array[name]) . "' AND dist='" . $res_array[dist] ."'"); |
|
| 813 |
|
$dversionmangled = $res_array[version]; |
| 814 |
|
if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5]; |
| 815 |
|
|
| 816 |
|
$updated=$uscan_res[4]; |
| 817 |
|
if ($updated) { |
| 818 |
|
$updated=is_updated($uscan_res[0],$dversionmangled); |
| 819 |
|
} |
| 820 |
|
|
| 821 |
|
if (!$updated) { |
| 822 |
|
events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']); |
| 823 |
|
} |
| 824 |
|
|
| 825 |
|
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] ."'"); |
| 826 |
} |
} |
| 827 |
} |
} |
| 828 |
} else { |
} else { |
| 851 |
foreach ($dists as $dist) { |
foreach ($dists as $dist) { |
| 852 |
$id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n'); |
$id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n'); |
| 853 |
$db = pg_pconnect($dbconn) or die_status ("Db error"); |
$db = pg_pconnect($dbconn) or die_status ("Db error"); |
| 854 |
$sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, updated FROM pkgs WHERE dist='$dist'"; |
$sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, version, dversionmangled FROM pkgs WHERE dist='$dist'"; |
| 855 |
$rsql=pg_exec($db, $sql); |
$rsql=pg_exec($db, $sql); |
| 856 |
while($res_array=pg_fetch_array($rsql)) { |
while($res_array=pg_fetch_array($rsql)) { |
| 857 |
|
|
| 864 |
|
|
| 865 |
$xml="<data><id>$res_array[id]</id>" . |
$xml="<data><id>$res_array[id]</id>" . |
| 866 |
"<up_version>$version</up_version>" . |
"<up_version>$version</up_version>" . |
| 867 |
|
"<dversion>$res_array[version]</dversion>" . |
| 868 |
|
"<dversionmangled>$res_array[dversionmangled]</dversionmangled>" . |
| 869 |
"<wwiz>$wwiz</wwiz>" . |
"<wwiz>$wwiz</wwiz>" . |
| 870 |
"</data>"; |
"</data>"; |
| 871 |
$value=addslashes($xml); |
$value=addslashes($xml); |
| 923 |
foreach ($res_array as $entry) { |
foreach ($res_array as $entry) { |
| 924 |
db_upstream($entry['name']); |
db_upstream($entry['name']); |
| 925 |
up_changes($entry['name']); |
up_changes($entry['name']); |
| 926 |
|
watch_wizard($entry['name']); |
| 927 |
} |
} |
| 928 |
dehsqa_db(); |
dehsqa_db(); |
| 929 |
} |
} |
| 942 |
$sql="SELECT name FROM pkgs WHERE up_version='' AND watch!=''"; |
$sql="SELECT name FROM pkgs WHERE up_version='' AND watch!=''"; |
| 943 |
$rsql=pg_exec($db, $sql); |
$rsql=pg_exec($db, $sql); |
| 944 |
$res_array=pg_fetch_all($rsql); |
$res_array=pg_fetch_all($rsql); |
| 945 |
pg_close($db); |
$orig_count = ((!is_array($res_array))?0:count($res_array)); |
| 946 |
if ($res_array !== false) { |
if ($res_array !== false) { |
| 947 |
foreach ($res_array as $entry) { |
foreach ($res_array as $entry) { |
| 948 |
db_upstream($entry['name']); |
db_upstream($entry['name']); |
| 950 |
} |
} |
| 951 |
dehsqa_db(); |
dehsqa_db(); |
| 952 |
} |
} |
| 953 |
|
$sql="SELECT COUNT(name) FROM pkgs WHERE up_version='' AND watch!=''"; |
| 954 |
|
$rsql=pg_exec($db, $sql); |
| 955 |
|
$res_array=pg_fetch_array($rsql); |
| 956 |
|
$new_count = (int)$res_array[0]; |
| 957 |
|
pg_close($db); |
| 958 |
$endtime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2); |
$endtime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2); |
| 959 |
$messaggio="Dehs executed successful\nBegin: $intime\nPackages processed: ".((!is_array($res_array))?'none':count($res_array))."\nEnd: $endtime"; |
$messaggio="Dehs executed successful\nBegin: $intime\n". |
| 960 |
|
"Packages processed: $orig_count\n" . |
| 961 |
|
"New bogus watches count: $new_count\nEnd: $endtime"; |
| 962 |
mail($email_all, "DEHS update_bogus report", $messaggio, |
mail($email_all, "DEHS update_bogus report", $messaggio, |
| 963 |
"From: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
"From: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
| 964 |
"Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
"Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
| 974 |
die($status); |
die($status); |
| 975 |
} |
} |
| 976 |
} |
} |
| 977 |
|
|
| 978 |
|
class events |
| 979 |
|
{ |
| 980 |
|
function newVersion($sourcePackage, $currentVersion, $newVersion, $distribution, $downloadLink = '') |
| 981 |
|
{ |
| 982 |
|
global $base, $sendNotifications; |
| 983 |
|
|
| 984 |
|
if (!$sendNotifications) { |
| 985 |
|
return null; |
| 986 |
|
} |
| 987 |
|
|
| 988 |
|
$tpl = file_get_contents($base . '/tpls/new_version.mail.tpl'); |
| 989 |
|
|
| 990 |
|
$search = array(); |
| 991 |
|
$replace = array(); |
| 992 |
|
|
| 993 |
|
$search [] = '#PACKAGE#'; |
| 994 |
|
$replace[] = $sourcePackage; |
| 995 |
|
$search [] = '#DVERSION#'; |
| 996 |
|
$replace[] = $currentVersion; |
| 997 |
|
$search [] = '#UVERSION#'; |
| 998 |
|
$replace[] = $newVersion; |
| 999 |
|
$search [] = '#DISTRO#'; |
| 1000 |
|
$replace[] = $distribution; |
| 1001 |
|
|
| 1002 |
|
$message = str_replace($search, $replace, $tpl); |
| 1003 |
|
$subject = events::_extractHeader('subject', $message); |
| 1004 |
|
$to = events::_extractHeader('to', $message); |
| 1005 |
|
|
| 1006 |
|
$extraHeaders = events::_getTefaultExtraHeaders(); |
| 1007 |
|
$extraHeaders[] = 'X-DEHS-UVERSION: ' . $newVersion; |
| 1008 |
|
|
| 1009 |
|
return mail($to, $subject, $message, implode("\r\n", $extraHeaders)); |
| 1010 |
|
} |
| 1011 |
|
|
| 1012 |
|
function _extractHeader($header, &$message) |
| 1013 |
|
{ |
| 1014 |
|
$regex = '/^' . preg_quote($header, '/') . ':([ \t]*)(.*)$/i'; |
| 1015 |
|
|
| 1016 |
|
$matches = array(); |
| 1017 |
|
|
| 1018 |
|
if (preg_match($regex, $message, $matches)) { |
| 1019 |
|
|
| 1020 |
|
$spacer = $matches[1]; |
| 1021 |
|
$value = $matches[2]; |
| 1022 |
|
|
| 1023 |
|
$message = ltrim(preg_replace($regex, '', $message)); |
| 1024 |
|
|
| 1025 |
|
return $value; |
| 1026 |
|
|
| 1027 |
|
} |
| 1028 |
|
return false; |
| 1029 |
|
} |
| 1030 |
|
|
| 1031 |
|
function _getTefaultExtraHeaders() |
| 1032 |
|
{ |
| 1033 |
|
global $notificationsMailFrom; |
| 1034 |
|
$headers = array(); |
| 1035 |
|
|
| 1036 |
|
$headers[] = 'From: ' . $notificationsMailFrom; |
| 1037 |
|
$headers[] = 'X-PTS-Approved: sure'; |
| 1038 |
|
$headers[] = 'X-BY-DEHS: sure'; |
| 1039 |
|
|
| 1040 |
|
return $headers; |
| 1041 |
|
} |
| 1042 |
|
|
| 1043 |
|
} |
| 1044 |
|
|
| 1045 |
?> |
?> |