Remove some antique scripts (pre-CVS area).

This commit is contained in:
Sylvain Pion 2006-02-19 23:46:17 +00:00
parent 216c62b83e
commit e2b46846b1
12 changed files with 0 additions and 1599 deletions

View File

@ -1,205 +0,0 @@
#! /sw/bin/perl -T
use strict;
#--------------------------------------------------------------#
# This script scans through the mail box $MAIL_IN, using formail.
# It handles requests automatically.
# This script deals with reading the mail box and dispatching the separate
# mails to the program that treats one mail.
# It takes care that there is only one program doing so, by means of locking.
#--------------------------------------------------------------#
# the mail boxes
my $Scripts_directory='/projects/CGAL/admin_scripts';
my $Data_directory='/projects/CGAL/submissions/autohandle/data';
my $LOCKFILE="$Data_directory/collect_submission.lock";
my $Mail_directory='/users/geert/PUBLIC/CGAL-submit';
my $MAIL_IN="$Mail_directory/incoming-mail";
#my $MAIL_OUT="$Mail_directory/handled-mail";
my $MAIL_TMP="$Mail_directory/temp-mail";
my $SCRIPT="$Scripts_directory/collect_submissions";
my $MAIL_PROG="$Scripts_directory/send_cgal_mail";
my $treat_one_mail_program="$Scripts_directory/treat_submit_mail";
# program locations
my $FORMAIL="/sw/bin/formail";
my $LOCKCMD="/sw/bin/lockfile";
# the log file
my $LOGFILE="$Data_directory/collect_submissions.log";
#
my $seconds_between_invocations=300;
my $max_tries_between_warning= int 21600/$seconds_between_invocations;
$ENV{PATH}='/sbin:/usr/sbin:/usr/bsd:/bin:/usr/bin';
# variable that is set when there is an attempt to kill this process.
my $please_die=0;
my $invoker = $ENV{USER};
if ($invoker =~ /^\s*([-\@\w]+)\s*$/) {
$invoker = "$1\@cs.uu.nl";
} else {
print STDERR <<"TOTHIER";
The script $SCRIPT did not start because
the USER environment value has a strange value.
TOTHIER
exit 1;
}
my $hostname = $ENV{HOST};
if ($hostname =~ /^\s*([-\@\w.]+)\s*$/) {
$hostname = $1;
} else {
print STDERR <<"TOTHIER";
The script $SCRIPT did not start because
the HOST environment value has a strange value ($hostname).
TOTHIER
exit 1;
}
sub termination_signal_handler {
$please_die=1;
}
sub initialisation()
{
#
# Disable signals that kill this process.
#
$SIG{INT} = \&termination_signal_handler;
$SIG{TERM} = \&termination_signal_handler;
#
# Try to acquire the lock.
# Quit with a message if it fails.
#
if ( system("$LOCKCMD", "-r", '10', "$LOCKFILE") != 0) {
open NOTICE, "|$MAIL_PROG \"collect_submissions notice\" $invoker";
print NOTICE <<"TOTHIER";
The script $SCRIPT could not proceed because
it could not acquire the needed lock on file $LOCKFILE.
TOTHIER
close NOTICE;
exit 1;
}
#
# Now that you have the lock, check to see if there is another process
# executing this program. If so, quit.
#
my $logline = `tail -1 $LOGFILE`;
if ($logline !~ /stopped/) {
unlink $LOCKFILE;
open NOTICE, "|$MAIL_PROG \"collect_submissions notice\" $invoker";
print NOTICE <<"TOTHIER";
The script $SCRIPT did not proceed because
there seems to be another process collecting the mail messages.
The file $LOGFILE says:
$logline
TOTHIER
close NOTICE;
exit 1;
}
#
# We can proceed. Record a message to the log file that this process
# takes control of dealing with the mail box.
#
open LOGFILE, ">>$LOGFILE";
print LOGFILE "$hostname $$: started executing on ", `date`;
close LOGFILE;
unlink $LOCKFILE;
}
sub new_untreated_mail_file()
{
my $filename;
my $n=1;
for ($n=1; $n<1000; ++$n) {
$filename="$Mail_directory/untreated_mail_$n";
last if (! -f $filename);
}
return $filename;
}
sub treat_current_mail()
{
if ( -f $MAIL_IN ) {
if ( system("$LOCKCMD", "-r", '10', "$MAIL_IN.lock") == 0) {
rename($MAIL_IN, $MAIL_TMP);
unlink "$MAIL_IN.lock";
if (system("$FORMAIL -ns $treat_one_mail_program < $MAIL_TMP")== 0 )
{
unlink $MAIL_TMP;
} else {
my $Save_file = new_untreated_mail_file();
rename($MAIL_TMP, $Save_file) or die;
open NOTICE,
"|$MAIL_PROG \"collect_submissions notice\" $invoker";
print NOTICE <<"TOTHIER";
The script $SCRIPT could not treat incoming mail.
This mail was saved in $Save_file.
TOTHIER
}
}
}
}
sub main_loop()
{
my $tries_to_go = $max_tries_between_warning;
while (! $please_die) {
if ( system("$LOCKCMD", "-r", '10', "$LOCKFILE") != 0) {
--$tries_to_go;
if ($tries_to_go < 0) {
open NOTICE,
"|$MAIL_PROG \"collect_submissions notice\" $invoker";
print NOTICE <<"TOTHIER";
The script $SCRIPT could not proceed because
it could not acquire the needed lock on file $LOCKFILE.
TOTHIER
close NOTICE;
$tries_to_go = $max_tries_between_warning;
}
} else {
$tries_to_go = $max_tries_between_warning;
if ( -f $MAIL_TMP ) {
open NOTICE,
"|$MAIL_PROG \"collect_submissions notice\" $invoker";
print NOTICE <<"TOTHIER";
The script $SCRIPT has been stopped,
because the temporary mail box $MAIL_TMP was not emptied.
TOTHIER
close NOTICE;
unlink $LOCKFILE;
$please_die = 1;
} else {
treat_current_mail;
}
unlink $LOCKFILE;
}
sleep $seconds_between_invocations unless $please_die;
}
}
sub finalisation()
{
open LOGFILE, ">>$LOGFILE";
print LOGFILE "$hostname $$: stopped executing at ", `date`;
close LOGFILE;
}
initialisation();
main_loop();
finalisation();
exit 0;

View File

@ -1,581 +0,0 @@
#!/sw/bin/perl -w
use strict;
use File::Find;
use Cwd;
# install_submission <url1> <url2> ...
my $testing=0;
my $MAIL_PROG='/projects/CGAL/admin_scripts/send_cgal_mail';
my ($submission, $packagedir, $oldpackagedir, $download_dir,
$console_output,
$tempdir, $check_source_file_prog, @reply_list);
my $WGET;
my $LOCKCMD="/sw/bin/lockfile";
umask 002;
sub init_variables()
{
if ($testing) {
$packagedir='/users/geert/tmp/inst_www/packages';
$oldpackagedir='/users/geert/tmp/inst_www/old_packages';
$download_dir='/users/geert/tmp/inst_www/download';
$console_output=1;
$check_source_file_prog=
'/users/geert/CGAL/Geert/maintenance/package_handling/check_headers';
} else {
$packagedir='/users/www/CGAL/Members/Develop/updates/packages';
$oldpackagedir='/projects/CGAL/old_packages';
$download_dir='/projects/CGAL/submissions/download';
$console_output=0;
$check_source_file_prog= '/projects/CGAL/admin_scripts/check_headers';
}
@reply_list = ('geert@cs.uu.nl');
$WGET="/projects/CGAL/admin_scripts/get_cgal_html";
}
$ENV{PATH}=
'/sw/bin:/sbin:/usr/sbin:/usr/bsd:/bin:/usr/bin:/usr/bin/X11';
my $ACTUAL_LOGFILE="/tmp/install_www_submission.log.$$";
# write to logfile
#
sub log_header($)
{
if ( $console_output ) {
print "$_[0]\n";
}
print LOGFILE "-------------------------------------------------------\n";
print LOGFILE " $_[0]\n";
print LOGFILE "-------------------------------------------------------\n";
}
sub log_msg($)
{
if ( $console_output ) {
print "$0: $_[0]\n";
}
print LOGFILE " $_[0]\n";
}
sub log_done()
{
if ( $console_output ) {
print " done\n-------------------------------------------------------\n"
}
print LOGFILE "-------------------------------------------------------\n";
print LOGFILE " DONE\n";
print LOGFILE "-------------------------------------------------------\n";
}
sub print_usage()
{
print STDERR "usage: $0 <url1> \n";
}
sub make_package_name($)
{
$_ = $_[0];
# remove the directory path
s|.*/||;
# remove trailing blanks
s|\s*$||;
# remove suffixes
s|\.gz$||;
s|\.tar$||;
s|\.zip$||;
s|\.tgz$||;
# remove version
# s|([-\.\d]+)+[a-zA-Z]?$||;
# or should that be
s|([-\.]\d+)+[a-zA-Z]?$||;
return $_;
}
sub belongs_to_release($)
# parameter 1 is the name of the package
{
open PACKAGES_TO_INCLUDE, "$packagedir/include_in_release" or die;
while (<PACKAGES_TO_INCLUDE>) {
chomp;
if (/^\s*$_[0]\s*$/) {
close PACKAGES_TO_INCLUDE;
return 1;
}
}
close PACKAGES_TO_INCLUDE;
return 0;
}
sub create_package_dir()
{
$tempdir="$packagedir/TMP$$";
mkdir($tempdir, 0775) ;
}
sub unpack_package($)
{
my ($full_file_name);
$full_file_name = shift;
chdir $tempdir;
if ( $full_file_name =~ /\.tar\s*$/) {
system 'gtar', 'xf', "$full_file_name";
} elsif ($full_file_name =~ /\.zip\s*$/) {
system('unzip', '-oqq', "$full_file_name");
} elsif ($full_file_name =~ /\.tgz\s*$/ or $full_file_name =~ /\.tar.gz\s*$/) {
system("gunzip -c $full_file_name | gtar xf -");
} else {
return 0;
}
return !$?;
}
sub gzip_if_psfile
{
if ($_ =~ /\.ps\s*$/ and -f $_) {
system('gzip',"$_");
}
}
sub compress_psfiles()
{
if (-d 'doc_ps') {
find(\&gzip_if_psfile, "doc_ps");
}
}
sub get_version($)
{
my ($version_string, $date);
open VERSION, $_[0] or return ();
while (<VERSION>) {
next if (/^\s*$/);
if ( /^\s*(\d+(?:[\.]\d+)*)\s*\((.*)\)\s*$/ ) {
$version_string = $1;
$date = $2;
$_ = <VERSION>;
close VERSION;
if (/^\s*[Mm]aintainer\s*:\s*(.*)$/ ) {
return ($version_string,$date, $1);
} else {
return ($version_string,$date);
}
}
close VERSION;
return ();
}
close VERSION;
return ();
}
sub check_version($)
{
my $package_name = shift;
my ($new_version_string, $new_date, $package_maintainer,
$old_version_string, $old_date, $old_package_maintainer,
@nversion, @oversion);
($new_version_string, $new_date,$package_maintainer) = get_version('version');
if (!defined($new_version_string)) {
log_msg "Failed to parse version file";
return ();
}
if (!defined($package_maintainer)) {
log_msg "Version file does not contain a maintainer line!";
return ();
}
($old_version_string, $old_date, $old_package_maintainer) =
get_version("$packagedir/$package_name/version");
if (!defined($old_version_string)) {
return ($new_version_string, $old_version_string, $package_maintainer);
}
my ($new_nr,$old_nr);
@nversion = split /\./, $new_version_string;
@oversion = split /\./, $old_version_string;
my $version_ok = 0;
while (@nversion) {
$new_nr = shift @nversion;
$old_nr = shift @oversion;
$old_nr = 0 if !defined($old_nr);
if ($new_nr < $old_nr) {
last;
}
if ($new_nr > $old_nr) {
$version_ok = 1;
last;
}
}
if (defined($old_package_maintainer)) {
if ($old_package_maintainer =~ /\<(.*)\>/) {
push(@reply_list, $1);
}
}
if ( $package_maintainer ne $old_package_maintainer) {
log_msg "Alert: Maintainer changed from '$old_package_maintainer'" .
" to '$package_maintainer'";
}
if ($version_ok ) {
return ($new_version_string,$old_version_string, $package_maintainer);
} else {
log_msg
"Version $new_version_string is not bigger than $old_version_string";
return ();
}
}
my @source_files_to_check;
sub add_codefiles
{
if ( $_ =~ /\.(C|h)\s*$/ and -f $_) {
push @source_files_to_check, $File::Find::name;
}
}
sub check_codefiles($$)
{
my $package_name = $_[0];
my $package_maintainer = $_[1];
@source_files_to_check = ();
if (-d 'include') {
find(\&add_codefiles, "include");
}
if (-d 'src') {
find(\&add_codefiles, "src");
}
if (-d 'config') {
find(\&add_codefiles, "config");
}
my $source_file;
foreach $source_file (@source_files_to_check) {
system("$check_source_file_prog -u -d \"\" -p \"$package_name\" -m \"$package_maintainer\" $source_file >tmpmsg.$$");
open CHECK_MSGS, "<tmpmsg.$$";
while (<CHECK_MSGS>) {
chomp;
log_msg($_);
}
close CHECK_MSGS;
unlink "tmpmsg.$$";
}
}
sub append_maintainer_file_to_version_file()
{
open(MAINTAINER,'maintainer') or return;
$_ = <MAINTAINER>;
if (/^\s*$/) {
close(MAINTAINER);
return;
}
open(VERSION,'>>version');
if ($_ !~ /^maintainer\s*:/) {
print VERSION "maintainer: ";
}
print VERSION $_;
close(VERSION);
while (<MAINTAINER>) {
if ($_ =~ /\<(.*@.*)\>/) {
push(@reply_list, $1);
}
}
close(MAINTAINER);
}
sub filenames_of_package_ok($)
{
my $rc;
$rc = system("/projects/CGAL/admin_scripts/check_filenames_of_package \"$_[0]\" . >tmpmsg.$$");
open CHECK_MSGS, "<tmpmsg.$$";
while (<CHECK_MSGS>) {
chomp;
log_msg($_);
}
close CHECK_MSGS;
unlink "tmpmsg.$$";
$rc >>= 8;
if ($rc == 1) {
log_msg("ERROR: sorry, there was an internal error at Utrecht.")
}
if ($rc == 2) {
log_msg("ERROR: Your submissions contains files that are in use in another package")
}
return ($rc == 0);
}
sub check_for_ignored_files()
{
my %expected_names;
my @expected_names = ("include", "test", "examples", "demo", "src",
"version","doc_tex","stlport","winutils","auxiliary",
"developer_scripts","scripts","cgal_config.bat",
"install.txt","INSTALL.win32",
"submission_info","maintainer","description.txt",
"changes.txt","long_description.txt","doc_ps");
my @files_in_directory;
opendir THISDIR, "." or die "Cannot open current directory: $!";
@files_in_directory = grep !/^\.\.?$/, readdir THISDIR;
closedir THISDIR;
for (@expected_names) {
$expected_names{$_}++;
}
for (@files_in_directory) {
if (!$expected_names{$_}) {
log_msg "WARNING: toplevel file $_ will not go into releases!";
}
}
}
sub check_package($)
{
my ($version, $prev_version, $package_maintainer);
if ( ! -f 'version' ) {
log_msg "ERROR: File version is missing!";
return 0;
}
if (-f 'maintainer') {
append_maintainer_file_to_version_file();
}
if ( ! (($version, $prev_version, $package_maintainer) =
check_version($_[0])) ) {
log_msg "ERROR: version file does not pass the checks!";
return 0;
}
if ( ! -f 'description.txt' ) {
log_msg "WARNING: File description.txt is missing!";
} else {
my $word_count;
$word_count = `cat description.txt| wc -w`;
if ($word_count > 50) {
log_msg "WARNING: File description.txt contains more than 50 words!";
}
my $rc;
$rc = system("sed -e 's/</\\&lt;/g' -e 's/>/\\&gt;/g' < description.txt > descr");
if ($rc == 0) {
rename 'descr', 'description.txt';
} else {
unlink 'descr';
}
}
# if ( ! -f 'changes.txt' ) {
# log_msg "WARNING: File changes.txt is missing!";
# }
check_for_ignored_files();
if ( ! filenames_of_package_ok($_[0])) {
return 0;
}
check_codefiles("$_[0] ($version)", "$package_maintainer");
if (defined($prev_version)) {
log_msg "Version $version will replace $prev_version";
} else {
log_msg "Version $version will be installed";
}
return 1;
}
sub compress_package($)
{
my $package_name = shift;
compress_psfiles;
system 'zip', '-q', '-r', $package_name, glob("*");
return !$?;
}
sub remove_files()
{
my ($file);
opendir THISDIR, "." or die;
foreach $file (readdir THISDIR) {
if (-d $file) {
next if $file eq '.';
next if $file eq '..';
next if $file eq 'doc_ps';
system 'rm', '-rf', "$file";
} elsif (-f $file) {
next if $file =~ /\.zip$/;
next if $file eq 'version';
next if $file eq 'description.txt';
next if $file eq 'long_description.txt';
next if $file eq 'changes.txt';
next if $file eq 'submission_info';
unlink $file;
}
}
closedir THISDIR;
}
sub move_packagedir($)
{
my $package_name = shift;
# first remove the earlier version (if it exists)
if ( -d "$oldpackagedir/$package_name" ) {
# log_msg "removing directory $oldpackagedir/$package_name"
system('rm', '-rf', "$oldpackagedir/$package_name");
}
# move existing version to old packages
if ( -d "$packagedir/$package_name" ) {
# log_msg "moving directory $packagedir/$package_name to $oldpackagedir/$package_name"
print STDERR 'cp',' -r'," $packagedir/$package_name ", $oldpackagedir ,"\n";
(system('cp','-r',"$packagedir/$package_name", $oldpackagedir)==0) or die;
(system('rm','-r',"$packagedir/$package_name")==0) or die;
}
# log_msg "moving directory $tempdir to $packagedir/$package_name"
rename($tempdir, "$packagedir/$package_name") or die;
system 'chgrp', '-R', 'cgal', "$packagedir/$package_name";
system 'chmod', '-R', 'ug+w,a+r', "$packagedir/$package_name" ;
}
sub install_submission($$)
{
my ($file_name, $file_pathname, $package_name);
$file_name = shift;
$package_name = shift;
$file_pathname = "$download_dir/$file_name";
if (! unpack_package( $file_pathname) ) {
log_msg("Failed to unpack $file_pathname");
return 0;
}
if (!check_package($package_name)) {
return 0;
}
if (!compress_package($package_name)) {
log_msg "ERROR: Failed to compress $file_name";
return 0;
}
remove_files;
move_packagedir($package_name);
return 1;
}
sub do_submission($)
{
my ($url, $cur_dir,$file_name,$package_name);
$url = shift;
($file_name) = ($url =~ m|^.*/(.*?)\s*$|);
$package_name = make_package_name($file_name);
if ($package_name !~ /^[a-zA-Z_]\w*$/) {
log_header
"ERROR: Filename $file_name was turned into the illegal package name $package_name";
return 0;
}
if (!belongs_to_release($package_name) ) {
log_msg "WARNING: package $package_name will not go into releases";
log_msg "Send a separate mail to cgal_submit if you want that";
}
unlink glob("$download_dir/*") if (! $testing);
log_header "downloading $url";
# my $logfileno = fileno(LOGFILE);
# die "Log file not open" if ! defined($logfileno);
$cur_dir =cwd();
my $lockfile = "$download_dir/$package_name.lock";
if ( system("$LOCKCMD", "-r", '10', $lockfile) != 0) {
log_msg "ERROR: could not acquire lock on file $lockfile!";
return 0;
}
if (chdir "$download_dir") {
system("$WGET $url");
chdir $cur_dir;
}
if ( ! -f "$download_dir/$file_name" ) {
log_msg "ERROR: download failed!";
return 0;
}
chdir($tempdir);
open SUBMISSION_INFO, ">submission_info";
print SUBMISSION_INFO "URL: $url.\n";
close SUBMISSION_INFO;
if (install_submission("$file_name",$package_name) ) {
log_header "Package was successfully installed!";
} else {
log_header "ERROR: Installation of the package failed!";
unlink $lockfile;
return 0;
}
unlink $lockfile;
return 1;
}
#-----------------------------------
#
# main loop
#
#-----------------------------------
if ($#ARGV < 0) {
print "Too few arguments:",$#ARGV,"\n";
print_usage;
exit 1;
}
my $starting_directory = cwd();
if ($starting_directory =~ m'CGAL/Geert/maintenance') {
$testing=1;
}
init_variables();
$SIG{INT}='IGNORE';
$SIG{QUIT} = 'IGNORE';
$SIG{TERM} = 'IGNORE';
unlink $ACTUAL_LOGFILE;
system("echo >$ACTUAL_LOGFILE");
open LOGFILE, ">$ACTUAL_LOGFILE";
foreach $submission ( @ARGV) {
if (!create_package_dir) {
log_msg "Failed to create temporary directory $tempdir";
exit 1;
}
do_submission($submission);
chdir($starting_directory);
if (-d "$tempdir") {
system('rm', '-rf', "$tempdir");
}
}
close LOGFILE;
@reply_list = sort(@reply_list);
my $prev = "";
my @rlist;
foreach (@reply_list) {
if ($_ ne $prev) {
$prev = $_;
push(@rlist, $prev);
}
}
$ARGV[0] =~ s|.*/||;
system "cat $ACTUAL_LOGFILE | $MAIL_PROG \"CGAL submission $ARGV[0]\" @rlist";
unlink $ACTUAL_LOGFILE;
exit 0;

View File

@ -1,273 +0,0 @@
#!/sw/bin/perl -w
use strict;
my $treated_messages_log =
'/projects/CGAL/submissions/autohandle/data/treated_submit_messages';
my $install_submission_program =
'/projects/CGAL/admin_scripts/install_www_submission';
my $scripts_dir= '/projects/CGAL/admin_scripts';
my $receive_testresult_program =
'/users/geert/tmp/echo_to_log';
my $update_submissions_www_page_program = "$scripts_dir/create_packages_page";
my $receive_result_collection_program = "$scripts_dir/treat_result_collection";
my $MAIL_PROG="$scripts_dir/send_cgal_mail";
#my $MAIL_PROG='/usr/sbin/Mail';
my $Sender;
my $maintainer= 'geert@cs.uu.nl';
my $no_of_succesful_submissions = 0;
my @trusted_hosts = (
'cgal.org',
'cs.uu.nl',
'inria.fr',
'informatik.uni-halle.de',
'inf.ethz.ch',
'math.ethz.ch',
'mpi-sb.mpg.de',
'inf.fu-berlin.de',
'uni-trier.de',
'clipper.ens.fr',
'schtroumpf.ens.fr',
'eleves.ens.fr',
'cs.unc.edu',
'twi.tudelft.nl',
'tau.ac.il');
sub get_url()
{
my $html_address="";
while (<>) {
chomp;
if (/^\s*$/) {
return $html_address;
}
s/\s//g;
$html_address .= $_;
if ($html_address =~ /\.tar\.gz$/) {
return $html_address;
}
if ($html_address =~ /\.tgz$/) {
return $html_address;
}
if ($html_address =~ /\.zip$/) {
return $html_address;
}
}
return "";
}
sub is_trusted_url($)
{
my $URL = shift;
foreach (@trusted_hosts) {
if ($URL =~ m|^\s*http://[\.\w-]+\.$_[/:]|) {
return 1;
}
}
return 0;
}
sub is_trusted_sender($)
{
my $sender = shift;
foreach (@trusted_hosts) {
if ($sender =~ m|$_\s*$|) {
return 1;
}
}
return 0;
}
sub treat_submission($)
{
my ($URL,$option);
$option = shift;
$URL = get_url;
if ($URL eq "") {
# mail $Sender that something went wrong.
# do the same to maintainer.
open NOTICE, "|$MAIL_PROG \"CGAL autohandle failure!\" $Sender
$maintainer";
print NOTICE <<"TOTHIER";
Your submission (or one of your submissions) had an unrecognized URL.
The URL should be on a separate line, directly following the line
with the submission keyword, e.g as in:
submission::
http://www.mysite.mycountry/mypackage.zip
Please resend your request or send a message to cgal-submit asking for more
information.
TOTHIER
close NOTICE;
return;
}
if (! is_trusted_url($URL)) {
open NOTICE, "|$MAIL_PROG \"Untrusted URL!\" $maintainer";
print NOTICE <<"TOTHIER";
The submission by $Sender with URL
$URL
is not trusted and did not proceed.
Please take manual action.
TOTHIER
close NOTICE;
return;
}
if (system("$install_submission_program", "$URL") == 0)
{ ++$no_of_succesful_submissions; }
}
sub treat_result_collection()
{
my ($URL);
$URL = get_url;
if (!$URL) {
# mail $Sender that something went wrong.
# do the same to maintainer.
return;
}
if (! is_trusted_url($URL)) {
open NOTICE, "|$MAIL_PROG \"Untrusted URL!\" $maintainer";
print NOTICE <<"TOTHIER";
The Testresult with URL
$URL
is not trusted and did not proceed.
Please take manual action.
TOTHIER
close NOTICE;
return;
}
system("$receive_result_collection_program", $URL);
}
sub treat_testresult($)
{
my ($URL,$release);
$release = shift;
$URL = get_url;
if (!$URL) {
# mail $Sender that something went wrong.
# do the same to maintainer.
return;
}
if (! is_trusted_url($URL)) {
open NOTICE, "|$MAIL_PROG \"Untrusted URL!\" $maintainer";
print NOTICE <<"TOTHIER";
The Testresult with URL
$URL
is not trusted and did not proceed.
Please take manual action.
TOTHIER
close NOTICE;
return;
}
system("$receive_testresult_program", "$release", "$Sender", "$URL");
}
sub message_processed($)
{
my $message_id = shift;
open(TREATED_MESSAGES, "<$treated_messages_log");
while (<TREATED_MESSAGES>) {
chomp;
if ($message_id eq $_) {
close TREATED_MESSAGES;
return 1;
}
}
close TREATED_MESSAGES;
open(TREATED_MESSAGES, ">>$treated_messages_log");
print TREATED_MESSAGES "$message_id\n";
close TREATED_MESSAGES;
return 0;
}
sub main()
{
my ($from);
my $command_found = 0;
$_ = <>;
chomp;
($from, $Sender) = split;
if ($from ne "From") {
exit 1;
}
$Sender =~ s/\s*//g;
if ( $Sender eq 'daemon@cs.uu.nl') {
while(<>) {
if (/^\s*Sender\s*:\s*(.+)$/) {
$Sender = $1;
last;
}
}
}
if (!is_trusted_sender($Sender)) {
open NOTICE, "|$MAIL_PROG \"Untrusted sender!\" $maintainer";
print NOTICE <<"TOTHIER";
The submission with sender
$Sender
is not trusted and did not proceed.
-------------- start of message --------------
TOTHIER
while(<>) {
print NOTICE $_;
}
print NOTICE "-------------- end of message --------------\n";
close NOTICE;
exit 0;
}
while(<>) {
if (/^\s*message-id\s*:\s*(.*?)\s*$/i) {
last if message_processed($1);
}
elsif (/^\s*submission\s*:\s*([^:]*?)\s*:\s*$/) {
$command_found = 1;
treat_submission($1);
}
elsif (/^\s*result[\s_-]?collection\s*:\s*:\s*$/){
$command_found = 1;
treat_result_collection();
}
elsif (/^\s*testresult\s*:\s*([^:]*?)\s*:\s*$/){
$command_found = 1;
treat_testresult($1);
} else {
}
}
if ($no_of_succesful_submissions > 0) {
system($update_submissions_www_page_program);
}
if (!$command_found) {
open NOTICE, "|$MAIL_PROG \"CGAL autohandle warning\" $Sender";
print NOTICE <<"TOTHIER";
Your submission did not contain any command.
A command is e.g.
submission::
Note the two colons (and note that it is on a separate line).
TOTHIER
close NOTICE;
}
}
# don't break off processing of a message
$SIG{INT}='IGNORE';
$SIG{QUIT} = 'IGNORE';
$SIG{TERM} = 'IGNORE';
main;
exit 0;

View File

@ -1,185 +0,0 @@
#!/sw/bin/perl -w
#use strict
#Checking for correct usage
sub usage()
{
print STDERR "usage: $0 versionfile1 versionfile2\n";
print STDERR "where versionfile1 and versionfile2 are filenames like\n";
print STDERR "directory/versions_CGAL-3.4-I-28.\n";
print STDERR "The order of the two version files is not important.\n\n";
}
if ($#ARGV != 1) {
usage();
die "\n";
}
my @testers = (
'geert',
# 'd.pasechnik@twi.tudelft.nl',
'hert@mpi-sb.mpg.de',
# 'stschirr@mpi-sb.mpg.de',
'hoffmann@inf.ethz.ch',
'rineau@clipper.ens.fr',
# 'Francois.Rebufat@sophia.inria.fr',
'Mariette.Yvinec@sophia.inria.fr',
'Sylvain.Pion@sophia.inria.fr',
'Andreas.Fabri@sophia.inria.fr',
'Radu.Ursu@sophia.inria.fr',
);
my $scripts_dir= "/projects/CGAL/admin_scripts/";
my $data_dir= "${scripts_dir}DATA/";
my $testsuite_dir = '/users/www/CGAL/Members/Develop/testsuite';
my $diff_dir = "/tmp/CGAL/diffs";
my $release_dir = "/users/www/CGAL/Members/Develop/updates";
my $new_version;
my $old_version;
my ($v1,$v2,$v3,$u1,$u2,$u3);
my $versionv=shift or die;
if ( !(($v1,$v2,$v3)= ($versionv =~ /versions_CGAL-(\d+)\.(\d+)-I-(\d+)$/)) ) {
usage();
die "Invalid first version file with name $versionv\n";
}
my $versionu=shift or die;
if ( !(($u1,$u2,$u3)= ($versionu =~ /versions_CGAL-(\d+)\.(\d+)-I-(\d+)$/) ) ) {
usage();
die "Invalid second version file with name $versionu\n";
}
my $swap_versions = 0;
if ($v1 == $u1 && $v2 == $u2 && $v3 == $u3) {
die "Versions are the same ($v1-$v2-$v3\n)";
}
if ($u1 > $v1 || ($u1 == $v1 && ($u2 > $v2 || ($u2 == $v2 && $u3 > $v3))) ) {
$swap_versions = 1;
}
die "File $versionv does not exist or is not readable" if (! -r $versionv );
die "File $versionu does not exist or is not readable" if (! -r $versionu );
die "No write permission in $data_dir" if (! -w $data_dir);
umask(02);
# end of checking of input
my %new_versions;
my %old_versions;
unlink "${data_dir}version_info",
"${data_dir}new_versions",
"${data_dir}new_packages",
"${data_dir}removed_packages",
"${data_dir}latest_versions",
"${data_dir}version_info";
open(VERSION_INFO, ">${data_dir}version_info");
if ($swap_versions) {
$new_version = "CGAL-${u1}.${u2}-I-${u3}";
$old_version = "CGAL-${v1}.${v2}-I-${v3}";
print VERSION_INFO "CGAL-${u1}.${u2}-I-${u3} ";
print VERSION_INFO "CGAL-${v1}.${v2}-I-${v3}\n";
open(NEW_VERSIONS,"<${versionu}") or die;
open(OLD_VERSIONS,"<$versionv") or die;
} else {
$old_version = "CGAL-${u1}.${u2}-I-${u3}";
$new_version = "CGAL-${v1}.${v2}-I-${v3}";
print VERSION_INFO "CGAL-${v1}.${v2}-I-${v3} ";
print VERSION_INFO "CGAL-${u1}.${u2}-I-${u3}\n";
open(NEW_VERSIONS,"<$versionv") or die;
open(OLD_VERSIONS,"<$versionu") or die;
}
close VERSION_INFO or die;
open(UPDATED,">${data_dir}new_versions") or die;
system('chgrp','cgal',"${data_dir}new_versions");
open(NEW_PACKAGES,">${data_dir}new_packages") or die;
system('chgrp','cgal',"${data_dir}new_packages");
open(DELETED,">${data_dir}removed_packages") or die;
system('chgrp','cgal',"${data_dir}removed_packages");
open(FORMATTED_VERSIONS,">${data_dir}latest_versions") or die;
system('chgrp','cgal',"${data_dir}latest_versions");
while(<OLD_VERSIONS>) {
if (m/^\s*(.*?)\s*:\s*(.*?)\s*$/) {
$old_versions{$1}=$2;
}
}
close OLD_VERSIONS or die;
my $pckge='aapje';
my $vrsion;
format FORMATTED_VERSIONS=
@<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<
$pckge, $vrsion
.
while(<NEW_VERSIONS>) {
if (m/^\s*(.*?)\s*:\s*(.*?)\s*$/) {
($pckge,$vrsion) = ($1,$2);
write FORMATTED_VERSIONS;
$new_versions{$1}=$2;
}
}
close NEW_VERSIONS or die;
my ($key, $value);
while (($key,$value) = each %new_versions) {
if (exists $old_versions{$key} ) {
if ( $value ne $old_versions{$key} ) {
print UPDATED "$key\n";
}
} else {
print NEW_PACKAGES "$key\n";
}
}
while (($key,$value) = each %old_versions) {
if (!exists $new_versions{$key} ) {
print DELETED "$key\n";
}
}
close(UPDATED) or die;
close(NEW_PACKAGES) or die;
close(DELETED) or die;
close(FORMATTED_VERSIONS) or die;
#make_diffs();
system("${scripts_dir}print_release_page");
chdir($testsuite_dir);
system("echo","./create_testresult_page", '-p', $old_version, $new_version);
system("./create_testresult_page", '-p', $old_version, $new_version);
sub make_diffs()
{
system('mkdir','-p',"$diff_dir");
chdir $diff_dir;
system("gunzip -c $release_dir/$old_version.tar.gz | gtar xf - ");
system("gunzip -c $release_dir/$new_version.tar.gz | gtar xf -" );
system("diff -urPN $old_version $new_version > diffs_$new_version");
system('rm','-r',$old_version,$new_version);
system('gzip', "diffs_$new_version");
system('cp',"diffs_$new_version.gz","$testsuite_dir/$new_version");
system('cp',"diffs_$new_version.gz","$release_dir");
system('rm',"diffs_$new_version.gz");
}
open (TEST_REQUEST, "| ${scripts_dir}send_cgal_mail -s 'CGAL autotest request' @testers") or die;
print TEST_REQUEST <<"EOM"
release: $new_version
EOM

View File

@ -1,22 +0,0 @@
#!/sw/bin/perl
#use strict
my $pckge='aapje';
my $vrsion;
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<
$pckge, $vrsion
.
#$~ = "Nice_Output";
while(<STDIN>) {
if (m/^\s*(.*?)\s*:\s*(.*?)\s*$/) {
($pckge,$vrsion) = ($1,$2);
#print STDERR $pckge, $vrsion,"\n";
write;
}
}

View File

@ -1,111 +0,0 @@
#!/sw/bin/perl -w
use strict;
my (
$last_version_file,
$Version_A,
$Version_B,
$Version_C,
$New_C,
$Version,
$VersionsDir,
$ReleasesDir,
$TestresultDir,
@versions,
$creation_succ,
);
sub make_version($$$)
{
return "CGAL-$_[0].$_[1]-I-$_[2]";
}
sub start_local_testsuite($)
{
my $host = shift;
open (START_LOCAL_TEST,">/users/geert/tmp/start_cgal_testsuite_${host}");
print START_LOCAL_TEST "${Version}\n";
close(START_LOCAL_TEST);
}
sub remove_old_releases(@)
{
my $c = $#_ + 1;
chdir $ReleasesDir;
my $old_versions;
while ($c > 6) {
$c -= 3;
$old_versions = make_version($_[$c],$_[$c+1],$_[$c+2]);
unlink("${old_versions}.tar.gz");
}
}
sub remove_old_testresults(@)
{
chdir $TestresultDir;
my @old_versions;
while ((${Version_A},${Version_B},${Version_C}) = splice(@_,0,3)) {
push(@old_versions, make_version(${Version_A},${Version_B},${Version_C}));
}
if (@old_versions) {
system("./empty_dir",@old_versions);
}
}
$ENV{PATH} = '/projects/CGAL/admin_scripts:/projects/CGAL/bin:/users/geert/bin:/sw/bin:/usr/bin:/usr/ucb:/usr/ccs/bin:/usr/openwin/bin:/ust/dt/bin:/users/geert/PUBLIC/bin';
$last_version_file = '/projects/CGAL/lib/last_internal_release';
$VersionsDir = '/projects/CGAL/Releases/Versions';
$ReleasesDir = '/users/www/CGAL/Members/Develop/updates';
$TestresultDir = '/users/www/CGAL/Members/Develop/testsuite';
# get current version
open (VERSIONS, "$last_version_file") || die;
while($_ = <VERSIONS>) {
if ( ($Version_A,$Version_B,$Version_C)=
($_ =~ /^\s*(\d+)\s+(\d+)\s+(\d+)\s*$/) ) {
push(@versions,$Version_A,$Version_B,$Version_C);
}
}
close VERSIONS;
($Version_A,$Version_B,$Version_C)= @versions;
if (! -d '/tmp/CGAL') {
mkdir('/tmp/CGAL',0775);
}
chdir '/tmp/CGAL';
$New_C = $Version_C +1;
$Version = make_version(${Version_A},${Version_B},${New_C});
if (system('create_release',"${Version_A}-${Version_B}-${New_C}")==0) {
unshift(@versions,${Version_A},${Version_B},${New_C});
chdir $VersionsDir;
system('finish_release',
"versions_CGAL-${Version_A}.${Version_B}-I-${Version_C}",
"versions_${Version}");
start_local_testsuite("denebola");
start_local_testsuite("liguria");
remove_old_releases(@versions);
remove_old_testresults(splice(@versions, 4*3));
} else {
# rollback_release(${Version_A},${Version_B},${New_C});
}
# recreate last_release_file
open(OUTVERSIONS, ">$last_version_file") or die "Could not write versions ";
while ((${Version_A},${Version_B},${Version_C}) = splice(@versions,0,3)) {
print OUTVERSIONS "${Version_A} ${Version_B} ${Version_C}\n";
}
close OUTVERSIONS;

View File

@ -1,7 +0,0 @@
#!/bin/sh
WGETRC=/projects/CGAL/admin_scripts/DATA/wgetrc
export WGETRC
/sw/bin/wget $1

View File

@ -1,25 +0,0 @@
#! /sw/bin/perl5
use strict;
$ENV{PATH}="$ENV{PATH}:/sw/bin";
my $subject = shift;
if ($subject eq "-s") {
$subject = shift;
}
my $recipients = join(' ',@ARGV);
open NOTI, "| '/sw/sbin/sendmail' '-t'";
#open NOTI, "| '/usr/bin/cat'";
print NOTI <<"TOTHIER";
From: geert+cgal-submit\@cs.uu.nl
Subject: $subject
To: $recipients
TOTHIER
while ( <STDIN> ) {
print NOTI $_;
}
close NOTI;
exit 0;

View File

@ -1,42 +0,0 @@
#!/bin/sh
old_results_dir=/projects/CGAL/old_results
tempdir=/tmp
while [ $# -ge 1 ]
do
if [ -d "$1" ] ; then
if [ -d "$1/Polygon" -o -d "$1/src" ] ; then
echo "emptying $1" >&2
if [ -x "$1" ] ;
then
cp -r "$1" $tempdir
find "$tempdir/$1" -name '*.gz' | xargs gunzip
(cd $tempdir; tar cf $1.tar $1; gzip --best $1.tar; rm -r $1)
if mv $tempdir/$1.tar.gz $old_results_dir
then
chgrp cgal $old_results_dir/$1.tar.gz
chmod g+w $old_results_dir/$1.tar.gz
cd $1
rm */* ;
rm -f diffs*.gz
rmdir * 2>/dev/null
cd ..
echo "Moved $1 to $old_results_dir" >&2
else
echo "Could not mv $tempdir/$1.tar.gz $old_results_dir"
fi
else
echo "Could not cd to $1" >&2
fi
else
echo "$1 seems to be emptied already" >&2
fi
else
echo "$1 is not a directory" >&2
fi
shift
done

View File

@ -1,32 +0,0 @@
#!/sw/bin/perl5
use strict;
my $new_platform = "";
while (<>) {
if ( m/Build on\s+(\S+):\s/ ) {
$new_platform = $1;
print "Found ($new_platform)\n";
last;
}
}
if (! $new_platform ) {
print "No platform\n";
}
while ($new_platform) {
open PLATFORM_OUTPUT, ">$new_platform" or die;
$new_platform = "";
print PLATFORM_OUTPUT $_;
while (<>) {
if ( m/Build on\s+(\S+):\s/ ) {
$new_platform = $1;
print "Found ($new_platform)\n";
last;
} else {
print PLATFORM_OUTPUT $_;
}
}
}

View File

@ -1,22 +0,0 @@
#!/bin/sh
lockfile=/private/cgal_testannounce.lock
annoucements=/private/cgal_testannouncements
notify=/projects/CGAL/admin_scripts/send_cgal_mail
if /sw/bin/lockfile -60 -r 100 -l 600 $lockfile
then
if files=`ls /private/CGAL/testannouncements/* 2>/dev/null`
then
for file in $files
do
base=`basename $file`
if $notify -s "New test results (${base})" 'cgal-develop-l@postino.mpi-sb.mpg.de' < $file
then
rm -f $file
fi
done
fi
rm -f $lockfile
fi

View File

@ -1,94 +0,0 @@
#!/sw/bin/perl5 -w
use strict;
my $tmpdir;
sub usage {
print STDERR "$0: usage\n";
print STDERR "$0 result1.tar[.gz] ...\n";
}
sub make_tempdir()
{
my $dirno = 1;
$tmpdir = "TMP$dirno";
while ( -f $tmpdir or -d $tmpdir ) {
++$dirno;
$tmpdir = "TMP$dirno";
}
mkdir($tmpdir,0770) or die "Cannot create temporary directory $tmpdir\n";
}
sub one_archive($)
{
my $archive = shift;
make_tempdir();
if (! -f $archive) {
print STDERR "$archive is not a valid filename\n";
return 0;
}
if ( $archive =~ m/\.gz$/ ) {
system("/sw/bin/gunzip", "$archive") == 0 or return 0;
$archive =~ s/\.gz$//;
}
if ( $archive =~ m/.*\.tgz$/ ) {
system("gunzip", "$archive") == 0 or return 0;
$archive =~ s/\.tgz$/.tar/;
}
if ( $archive !~ /\.tar$/) {
print STDERR "$0: $archive not a tar file\n";
return 0;
}
rename("$archive","$tmpdir/$archive") or die;
chdir("$tmpdir") or die;
system("tar", "xf", "$archive") == 0 or die;
unlink($archive);
system('gzip',glob("*/*"));
system('chmod','-R','a+r,og+w','.');
system('tar', 'cf', "../$archive", glob("*")) == 0 or die;
chdir('..') or die;
system('rm', '-rf', "$tmpdir")== 0 or die;
return 1;
}
sub all_archives() {
my $archive;
foreach $archive (@ARGV) {
if (one_archive($archive)) {
print STDERR "$archive succesfully reformatted.\n";
} else {
print STDERR "Could not reformat $archive\n";
}
}
}
if ($#ARGV < 0) {
usage;
exit 1;
}
all_archives();
#--------------------------
# parse_mail such that you get
# $test_url ==
# (http://)($host_and_directory)/($release_version)(-test)($number)(.tar.gz)
# make tmpdir under /private/CGAL and go there
# wget $test_url
# gunzip $name == ${release_version}-test${number}.tar.gz
# rm *.txt
# $unpack_dir = cwd
# $testresult_dir = $CGWW/testsuite/$release_version
# test if $testresult_dir exists.
# foreach $name.gz in result*gz {
# to_zipped_format $name.gz
# cd $testresult_dir
# tar xf $unpack_dir/$name
# cd $unpack_dir
# }
# cd $testresult_dir/..
# make_www_page ${release_version}