| 53 |
elseif (in_array("-db_upstream",$argv)) db_upstream($argv[2]); |
elseif (in_array("-db_upstream",$argv)) db_upstream($argv[2]); |
| 54 |
elseif (in_array("-update_all",$argv)) update_all(); |
elseif (in_array("-update_all",$argv)) update_all(); |
| 55 |
elseif (in_array("-check_db",$argv)) check_db(); |
elseif (in_array("-check_db",$argv)) check_db(); |
| 56 |
|
elseif (in_array("-dehsqa_db",$argv)) dehsqa_db(); |
| 57 |
elseif (in_array("-clear_db",$argv)) clear_db(); |
elseif (in_array("-clear_db",$argv)) clear_db(); |
| 58 |
elseif (in_array("-db_up_error",$argv)) db_up_error(); |
elseif (in_array("-db_up_error",$argv)) db_up_error(); |
| 59 |
elseif (in_array("-up_changes",$argv)) up_changes($argv[2]); |
elseif (in_array("-up_changes",$argv)) up_changes($argv[2]); |
| 206 |
gzclose($zp) ; |
gzclose($zp) ; |
| 207 |
} |
} |
| 208 |
} |
} |
|
clear_db(); |
|
| 209 |
pg_close($db); |
pg_close($db); |
| 210 |
|
clear_db(); |
| 211 |
} |
} |
| 212 |
function db_query($pkg,$dist) { |
function db_query($pkg,$dist) { |
| 213 |
global $dirs,$dbconn; |
global $dirs,$dbconn; |
| 278 |
} |
} |
| 279 |
|
|
| 280 |
function vers_conv($debvers) { |
function vers_conv($debvers) { |
| 281 |
preg_match("/(.+)(ds-|-)/",$debvers,$matches); |
preg_match("/(.+:)?(.+)(ds-|-)/",$debvers,$matches); |
| 282 |
return $matches[1]; |
return $matches[2]; |
| 283 |
} |
} |
| 284 |
function check_db() { |
function check_db() { |
| 285 |
global $dirs,$dbconn; |
global $dirs,$dbconn; |
| 405 |
} |
} |
| 406 |
function is_updated ($up_vers,$debian_vers) { |
function is_updated ($up_vers,$debian_vers) { |
| 407 |
if ($up_vers=='') return 0; |
if ($up_vers=='') return 0; |
| 408 |
passthru("dpkg --compare-versions '$up_vers' gt '" . vers_conv($debian_vers) . "'",$great); |
passthru("dpkg --compare-versions '$up_vers' eq '" . vers_conv($debian_vers) . "'",$great); |
| 409 |
if ($great==0) return 1; |
if ($great!=0) return 1; |
| 410 |
else return 0; |
else return 0; |
| 411 |
} |
} |
| 412 |
function db_upstream($initial='%') { |
function db_upstream($initial='%') { |
| 580 |
$contents=@file_get_contents($url) or ''; |
$contents=@file_get_contents($url) or ''; |
| 581 |
$space=''; |
$space=''; |
| 582 |
if (!$contents) { |
if (!$contents) { |
| 583 |
|
$url="http://packages.debian.org/changelogs/pool/" . |
| 584 |
|
$res_array["section"] . "/" . |
| 585 |
|
$initial . "/" . |
| 586 |
|
$res_array["name"] ."/" . |
| 587 |
|
$res_array["name"] . "_" . |
| 588 |
|
$res_array["version"] . "/" . $res_array["name"] . ".copyright"; |
| 589 |
|
$contents=@file_get_contents($url) or ''; |
| 590 |
|
} |
| 591 |
|
if (!$contents) { |
| 592 |
$notfound++; |
$notfound++; |
| 593 |
pg_exec($db, "UPDATE pkgs SET wwiz_type='no_cright' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
pg_exec($db, "UPDATE pkgs SET wwiz_version=NULL, wwiz_type='no_cright' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
| 594 |
} |
} |
| 595 |
else { |
else { |
| 596 |
$res=preg_match ('/(sf\.net|sourceforge\.net)/',$contents,$matches); |
$res=preg_match ('/(sf\.net|sourceforge\.net)/',$contents,$matches); |
| 614 |
if (!$res) { |
if (!$res) { |
| 615 |
$notmatch++; |
$notmatch++; |
| 616 |
$contents=iconv("ISO-8859-1","UTF-8",$contents); |
$contents=iconv("ISO-8859-1","UTF-8",$contents); |
| 617 |
pg_exec($db, "UPDATE pkgs SET wwiz='" . addslashes($contents) . "', wwiz_type='notmatch', up_url='', up_changes='',keep_changes='f' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
pg_exec($db, "UPDATE pkgs SET wwiz_version=NULL, wwiz='" . addslashes($contents) . "', wwiz_type='notmatch', up_url='', up_changes='',keep_changes='f' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
| 618 |
} |
} |
| 619 |
else { |
else { |
| 620 |
if (!preg_match("/$res_array[name]/",$matches[1])) { |
if (!preg_match("/$res_array[name]/",$matches[1])) { |
| 623 |
} |
} |
| 624 |
else $depured_debian_name=$res_array[name]; |
else $depured_debian_name=$res_array[name]; |
| 625 |
$watch="version=2\n" . |
$watch="version=2\n" . |
| 626 |
$matches[1] . $space . $depured_debian_name . "-([\d+\.]+|\d+)(\.tar|\.tgz)(\.gz|\.bz2|) debian uupdate"; |
$matches[1] . $space . $depured_debian_name . "-?_?([\d+\.]+|\d+)(\.tar|\.tgz)(\.gz|\.bz2|) debian uupdate"; |
| 627 |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch); |
$uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch); |
| 628 |
if ($uscan_res[1] AND !$uscan_res[0]) { |
if ($uscan_res[1] AND !$uscan_res[0]) { |
| 629 |
pg_exec($db, "UPDATE pkgs SET wwiz='" . addslashes($uscan_res[1]) . "', wwiz_type='error', up_url='', up_changes='', keep_changes='f' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
pg_exec($db, "UPDATE pkgs SET wwiz_version=NULL, wwiz='" . addslashes($uscan_res[1]) . "', wwiz_type='error', up_url='', up_changes='', keep_changes='f' where name='" . $res_array[name] . "' AND dist='" . $res_array[dist] ."'"); |
| 630 |
$errors++; |
$errors++; |
| 631 |
} |
} |
| 632 |
else { |
else { |
| 644 |
print "Automatic genereted watch file failure: $errors\n"; |
print "Automatic genereted watch file failure: $errors\n"; |
| 645 |
pg_close($db); |
pg_close($db); |
| 646 |
} |
} |
| 647 |
|
function dbqa_conn ($dbname,$mode) { |
| 648 |
|
$id = dba_open($dbname, $mode, "db2"); |
| 649 |
|
if (!$id) { |
| 650 |
|
echo "dba_open failed\n"; |
| 651 |
|
exit; |
| 652 |
|
} |
| 653 |
|
return $id; |
| 654 |
|
} |
| 655 |
|
function dehsqa_db () { |
| 656 |
|
#to complete!!! |
| 657 |
|
#print phpinfo(); |
| 658 |
|
global $dirs,$dbconn; |
| 659 |
|
$dir1='/org/alioth.debian.org/chroot/home/groups/dehs/htdocs/'; |
| 660 |
|
$dir2="/org/qa.debian.org/data/dehs/"; |
| 661 |
|
$dists=array("unstable","experimental"); |
| 662 |
|
foreach ($dists as $dist) { |
| 663 |
|
$id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n'); |
| 664 |
|
$db = pg_pconnect($dbconn) or DIE ("Db error"); |
| 665 |
|
$sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, updated FROM pkgs WHERE dist='$dist'"; |
| 666 |
|
$rsql=pg_exec($db, $sql); |
| 667 |
|
while($res_array=pg_fetch_array($rsql)) { |
| 668 |
|
if (!$res_array[watch]) $version="N/A"; |
| 669 |
|
elseif (!$res_array[up_version]) $version="Error"; |
| 670 |
|
else $version=$res_array[up_version]; |
| 671 |
|
if ($res_array[wwiz_type]=="watch") $wwiz=$res_array[wwiz_version]; |
| 672 |
|
else $wwiz=$res_array[wwiz_type]; |
| 673 |
|
$xml="<data><id>$res_array[id]</id>" . |
| 674 |
|
"<up_version>$version</up_version>" . |
| 675 |
|
"<wwiz>$wwiz</wwiz>" . |
| 676 |
|
"</data>"; |
| 677 |
|
$value=addslashes($xml); |
| 678 |
|
dba_replace($res_array[name],$xml,$id); |
| 679 |
|
} |
| 680 |
|
dba_optimize($id); |
| 681 |
|
dba_close($id); |
| 682 |
|
pg_close($db); |
| 683 |
|
} |
| 684 |
|
} |
| 685 |
|
function md5_of_file($inFile) { |
| 686 |
|
if (file_exists($inFile)) { |
| 687 |
|
$fd = fopen($inFile, 'r'); |
| 688 |
|
$fileContents = fread($fd, filesize($inFile)); |
| 689 |
|
fclose ($fd); |
| 690 |
|
return md5($fileContents); |
| 691 |
|
} else { |
| 692 |
|
return false; |
| 693 |
|
} |
| 694 |
|
} |
| 695 |
function update_all() { |
function update_all() { |
| 696 |
global $email; |
global $email; |
| 697 |
$intime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2); |
$intime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2); |
| 703 |
db_upstream(); |
db_upstream(); |
| 704 |
watch_fill(); |
watch_fill(); |
| 705 |
up_changes(); |
up_changes(); |
| 706 |
|
dehsqa_db(); |
| 707 |
$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); |
| 708 |
$messaggio="Dehs executed successful\nBegin: $intime\nEnd: $endtime"; |
$messaggio="Dehs executed successful\nBegin: $intime\nEnd: $endtime"; |
| 709 |
mail($email, "DEHS report", $messaggio, |
mail($email, "DEHS report", $messaggio, |
| 711 |
"Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
"Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" . |
| 712 |
"X-Mailer: PHP/" . phpversion()); |
"X-Mailer: PHP/" . phpversion()); |
| 713 |
} |
} |
|
function md5_of_file($inFile) { |
|
|
if (file_exists($inFile)) { |
|
|
$fd = fopen($inFile, 'r'); |
|
|
$fileContents = fread($fd, filesize($inFile)); |
|
|
fclose ($fd); |
|
|
return md5($fileContents); |
|
|
} else { |
|
|
return false; |
|
|
} |
|
|
} |
|
| 714 |
?> |
?> |