New server, FileBin instead of $ENV{BFConfDir}, and custom Captcha
authorKirill Miazine <km@krot.org>
Fri, 4 Nov 2016 22:33:07 +0000 (23:33 +0100)
committerKirill Miazine <km@krot.org>
Fri, 4 Nov 2016 22:33:07 +0000 (23:33 +0100)
The BuildFarm has migated to a new server, thus URLs needed updating.

$ENV{BFConfDir} in require have been replaced by $RealBin set by FileBin().

Google's reCAPTCHA replaced by home-written math challenge.

26 files changed:
bf-alerts.pl
cgi-bin/addnotes.pl
cgi-bin/envtest.pl
cgi-bin/eximstatus.pl
cgi-bin/get_bf_status_soap.pl
cgi-bin/register-form.pl
cgi-bin/register.pl
cgi-bin/show_failures.pl
cgi-bin/show_history.pl
cgi-bin/show_log.pl
cgi-bin/show_members.pl
cgi-bin/show_stage_log.pl
cgi-bin/show_status.pl
cgi-bin/show_status_soap.pl
cgi-bin/test.pl
cgi-bin/typedefs.pl
cgi-bin/upgrade.pl
schema/missing.sql
scripts/approve_system.pl
scripts/delete_host.pl
scripts/delete_unlisted_branches.pl
scripts/gen_alias_list.pl
scripts/list_buildsystems.pl
scripts/purge_old_logs.pl
scripts/rename_system.pl
scripts/show_passwords.pl

index 8c932103a9b3dcf6859a3d5c72b7c72ea2135670..c038f963b0b6fd76bdb1239e8be6104cb7017c01 100755 (executable)
@@ -23,7 +23,9 @@ use vars qw($dbhost $dbname $dbuser $dbpass $dbport
        $default_host
 );
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 11186ddc2bce9490516e0274a4a7fd9663dc4863..3a760a2683a9f571bfec6cf47c48380971a73789 100755 (executable)
@@ -29,7 +29,8 @@ my $sysnotes = $query->param('sysnotes');
 
 my $content = "animal=$animal\&sysnotes=$sysnotes";
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
@@ -119,6 +120,3 @@ $db->disconnect;
 
 print "Content-Type: text/plain\n\n";
 print "request was on:\n$content\n";
-
-
-
index f86621f4f8b419419ebaf61fb356fcbbdadcfcbe..998ff07ea3ed32ee98d26a86c384a707b5139936 100644 (file)
@@ -2,7 +2,7 @@
 
 print "Content-Type: text/plain\n\n";
 
-print "Conf: $ENV{BFConfDir}\n";
+print "Conf: /home/farm/server\n";
 
 print `pwd`;
 
index 9f68757451e8cfe5f57190243e0fb348171b5664..af68f109efb734f5347b57dff9eb0d0ec3290c7c 100755 (executable)
@@ -30,8 +30,10 @@ use Mail::Send;
 use Time::ParseDate;
 use Storable qw(thaw);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
-my $buildlogs = "$ENV{BFConfDir}/buildlogs";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
+
+my $buildlogs = "/home/farm/server/buildlogs";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 051f3f42b6e1cd046c261b4baf0fabd5f13f21ac..514de3b2f9e3adcd8b5bbb0d156b5456ff0cfb5f 100755 (executable)
@@ -11,8 +11,8 @@ See accompanying License file for license details
 use SOAP::Lite ;
 
 my $obj = SOAP::Lite
-    ->uri('http://eximbuild.mrball.net/EximBuildFarm')
-    ->proxy('http://eximbuild.mrball.net/cgi-bin/show_status_soap.pl')
+    ->uri('http://buildfarm.exim.org/EximBuildFarm')
+    ->proxy('http://buildfarm.exim.org/cgi-bin/show_status_soap.pl')
     ;
 
 my $data = $obj->get_status->result;
@@ -32,4 +32,3 @@ foreach my $datum (@$data)
     my $line = join (' | ', @{$datum}{@fields});
     print $line,"\n";
 }
-
index 91d0826a02d0b506a53b5bb1f9358bcf64f1299c..415277642d0919b208765903d3db1867dcf242d1 100755 (executable)
@@ -10,25 +10,21 @@ See accompanying License file for license details
 
 use strict;
 use Template;
-use Captcha::reCAPTCHA;
 
-use vars qw( $template_dir $captcha_pubkey );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use vars qw( $template_dir );
 
-
-my $c = Captcha::reCAPTCHA->new;
-
-my $captcha = $c->get_html($captcha_pubkey);
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $template_opts = { INCLUDE_PATH => $template_dir };
 my $template = new Template($template_opts);
 
 print "Content-Type: text/html\n\n";
 
+my $argop = '+';
+$argop = '-' if time % 2;
+my $arg1 = int(rand(100));
+$arg1 += 11 if $arg1 < 12;
+my $arg2 = int(rand(10) + 1);
 
-$template->process('register-form.tt',{captcha => $captcha});
-
-
-
-
-
+$template->process('register-form.tt', {arg1 => $arg1, arg2 => $arg2, argop => $argop});
index 1e3aba48ad382e7ab87ff138a5736d701f2a4527..80663b67aefb6ad09f9751bf7950ff38b2ce718a 100755 (executable)
@@ -13,12 +13,12 @@ use DBI;
 use Template;
 use CGI;
 use Template;
-use Captcha::reCAPTCHA;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $notifyapp 
-                       $captcha_pubkey $captcha_privkey $template_dir $default_host);
+                       $template_dir $default_host);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $dsn="dbi:Pg:dbname=$dbname";
 $dsn .= ";host=$dbhost" if $dbhost;
@@ -30,22 +30,18 @@ my $query = new CGI;
 
 my $params = $query->Vars;
 
-my ($os, $osv, $comp, $compv, $arch, $email, $owner, $challenge, $response ) = 
-  @{$params}{
-       qw(os osv comp compv arch email owner recaptcha_challenge_field 
-          recaptcha_response_field)};
-
-my $captcha = Captcha::reCAPTCHA->new;
-my $captcha_ok = $captcha->check_answer
-    (
-     $captcha_privkey, 
-     $ENV{'REMOTE_ADDR'},
-     $challenge, $response
-     );
+my ($os, $osv, $comp, $compv, $arch, $email, $owner, $arg1, $arg2, $argop, $res ) = 
+  @{$params}{qw(os osv comp compv arch email owner arg1 arg2 op res)};
 
+$argop = '-' if !$argop or $argop ne '+';
+$arg1 = int($arg1 || 0);
+$arg2 = int($arg2 || 0);
+$res = int($res || 0);
+my $captcha_ok = ($arg1 and $argop and $arg2 and $res
+                  and int(eval "$arg1 $argop $arg2") == $res) ? 1 : 0;
 
 unless ($os && $osv && $comp && $compv && $arch && $email && $owner && 
-               $captcha_ok->{is_valid})
+               $captcha_ok)
 {
     print "Content-Type: text/html\n\n";
     $template->process('register-incomplete.tt');
@@ -162,9 +158,3 @@ print $fh "\n\nName: $dummyname\n",
     "Comp: $comp: $compv\n",
     "Owner: $owner <$email>\n";
 $fh->close;
-
-
-
-
-
-
index bfa38e941548475cb07b95efaba94dbee099f76b..592ab4f6c49220aba1efa5ac00cf76aad8e07ffa 100755 (executable)
@@ -15,8 +15,8 @@ use CGI;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $template_dir);
 
-
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $query = new CGI;
 my @members = grep {$_ ne "" } $query->param('member');
@@ -149,4 +149,3 @@ $template->process('fstatus.tt',
                 qstages => \@stages} );
 
 exit;
-
index 2b822ca2c2d2735f3e49ae46785b7e535628cc87..c57a61793d4744f6ac4a09281f523d483e770489 100755 (executable)
@@ -15,9 +15,8 @@ use CGI;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $template_dir);
 
-
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
-#require "BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 7fea634bad0a3aef839a78217ce58c53aaf6a10f..ab3d3cdb00050140c1a6cbda0eeac81ef973f127 100755 (executable)
@@ -16,7 +16,8 @@ use CGI;
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport 
                        $template_dir @log_file_names $local_git_clone);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $template_opts = { INCLUDE_PATH => $template_dir, EVAL_PERL => 1};
 my $template = new Template($template_opts);
@@ -240,4 +241,3 @@ sub process_changed
        }
                return (\@changed_rows,\@commit_logs);
 }
-
index 6c7ea908a695b4555fe2e3bd23a3698c4ce8c33b..f35c66acae2656232828a17f9a6241b35e055bc8 100755 (executable)
@@ -15,8 +15,8 @@ use Template;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $template_dir $sort_by);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
-#require "BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $query = new CGI;
 my %sort_ok = ('name' => 'lower(name)' , 
@@ -99,4 +99,3 @@ $template->process('members.tt',
                {statrows=>$statrows});
 
 exit;
-
index fc40fa6f5f6841b9664cb7a5e97b661ff21757ae..38ccf89a3470e8168969c72b1efcf046487ef6a7 100755 (executable)
@@ -16,9 +16,8 @@ use File::Temp qw(tempfile);
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport @log_file_names);
 
-
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
-#require "BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
@@ -80,7 +79,7 @@ if ($system && $logdate && $stage)
 
     "-------------------------------------------------\n\n",
     "Hosting for the Exim BuildFarm is generously ",
-    "provided by: Todd Lyons";
+    "provided by: Host1";
 
 }
 
@@ -89,4 +88,3 @@ else
     print "Status: 460 bad parameters\n",
     "Content-Type: text/plain\n\n";
 }
-
index 04c918cd543c1824be0277a737ac2b8c7a5f4d1e..f371bdc9a186783b15c32fe3551fb4ca3eba0f48 100755 (executable)
@@ -15,8 +15,8 @@ use CGI;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $template_dir);
 
-
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $query = new CGI;
 my @members = $query->param('member');
index e44f8d1e611ba3d81a4f430c920cb4aea7522ee6..82a6dc795d4dc38d057e51a2b669136e0279e067 100755 (executable)
@@ -12,7 +12,8 @@ use strict;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 use SOAP::Transport::HTTP;
 
@@ -76,8 +77,3 @@ EOS
 }
 
 1;
-
-
-
-
-
index 9b179d2fa5c9eec8bcac113005c7c5757c5efccb..bc7a04f8bcb72d50c442f554213c2a08ad6b085f 100755 (executable)
@@ -20,5 +20,3 @@ url = $url
 base = $base
 
 EOF
-
-
index 63c0fc56bf86d6cc9fd087da07375066c000bd2a..b70a92e72c232f2b05182c2fae2fd65a2a78458a 100755 (executable)
@@ -16,7 +16,8 @@ my $query = new CGI;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport);
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $dsn="dbi:Pg:dbname=$dbname";
 $dsn .= ";host=$dbhost" if $dbhost;
index a34f4ed12b0caabbce378b0b461f453a19ebe0b1..e16fe8e720c5328bc0379551e469503066f2e612 100755 (executable)
@@ -33,7 +33,8 @@ my $content = "animal=$animal\&ts=$ts";
 $content .= "\&new_os=$os_version" if $os_version;
 $content .= "\&new_compiler=$compiler_version" if $compiler_version;
 
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
@@ -152,6 +153,3 @@ $db->disconnect;
 
 print "Content-Type: text/plain\n\n";
 print "request was on:\n$content\n";
-
-
-
index 23adcc40959960fccf82e4a3acb3dcd4fc05fcbd..e73998dfc1d0a9fa15123fa43855f5c3d3f16caa 100644 (file)
@@ -3,7 +3,7 @@
 --
 
 CREATE VIEW build_status_recent_500 AS
-    SELECT bs.sysname, bs.status, bs.snapshot, bs.stage, bs.conf_sum, bs.branch, bs.changed_this_run, bs.changed_since_success, bs.log_archive_filenames, bs.build_flags, bs.report_time, bs.log FROM build_status AS bs WHERE ((build_status.snapshot + '3 mons'::interval) > ('now'::text)::timestamp(6) with time zone);
+    SELECT bs.sysname, bs.status, bs.snapshot, bs.stage, bs.conf_sum, bs.branch, bs.changed_this_run, bs.changed_since_success, bs.log_archive_filenames, bs.build_flags, bs.report_time, bs.log FROM build_status AS bs WHERE ((bs.snapshot + '3 mons'::interval) > ('now'::text)::timestamp(6) with time zone);
 
 ALTER TABLE public.build_status_recent_500 OWNER TO eximbuild;
 
index 55424c9d8ff7381d706d9b7c25f4d3dca993f940..330fad027f253618ef5f8181d0b8e2828d2aed3c 100755 (executable)
@@ -12,7 +12,9 @@ use vars qw($dbhost $dbname $dbuser $dbpass $dbport
             $user_list_format
             $default_host $mail_from
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 1c1baad33cd9a4c7f13bd60a596ba201e2a413ae..0a77e0f9ca08ab3bed92be5305b5da3ce804f7bc 100755 (executable)
@@ -10,7 +10,9 @@ die "Must pass one and only one sysname to delete\n"
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index fd37fd2337a8781d2c4256202b1a1525c7392c83..2dba66ce6c95146a8d3d7192656ed35c6005ca1d 100755 (executable)
@@ -7,7 +7,9 @@ use Data::Dumper;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
@@ -21,7 +23,7 @@ my $db = DBI->connect($dsn,$dbuser,$dbpass);
 die $DBI::errstr unless $db;
 
 my ($brhandle,@branches_of_interest);
-if (open($brhandle,"$ENV{BFConfDir}/htdocs/branches_of_interest.txt"))
+if (open($brhandle,"/home/farm/server/htdocs/branches_of_interest.txt"))
 {
     @branches_of_interest = <$brhandle>;
     close($brhandle);
index 477c0588799c7d360b7015548159bb29f661412d..46fca5b12bba1ce559903908a6f756a504399c77 100755 (executable)
@@ -9,7 +9,9 @@ use Getopt::Long;
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
             $user_list_format
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index f64bdbc599e6f45f0dec09f8286def1aedea3493..69df1fb8e9906e5798de3baef66a6a9e7be2de40 100755 (executable)
@@ -8,7 +8,9 @@ use Data::Dumper;
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
             $user_list_format
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 7182f0dadeed692d22df78ba58decf6a5757f36a..ad267bdd0be4528c828c46b4c9e3d6e1556c62f8 100755 (executable)
@@ -10,7 +10,9 @@ use Data::Dumper;
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
@@ -35,7 +37,7 @@ my $del_recent_sth = $db->prepare(q[
 $del_sth->execute();
 $del_recent_sth->execute();
 
-my $buildlogs = "$ENV{BFConfDir}/buildlogs";
+my $buildlogs = "/home/farm/server/buildlogs";
 
 my @dirs = `find $buildlogs -mindepth 1 -type d -ctime +95`;
 foreach my $dir (@dirs) {
index 9e320cb8c25295872fbae60b34a8b6db723aec01..9cee13fc635dba98530be37a8ff5fbd891201416 100755 (executable)
@@ -10,7 +10,9 @@ die "Must pass current and new sysnames\n" unless scalar @ARGV == 2;
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
             $user_list_format
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;
index 687896f3ad19cb430f497805ccaf5b664ac0e053..073d2482e73389273a6fc6ae607c6736e10712c4 100755 (executable)
@@ -8,7 +8,9 @@ use Data::Dumper;
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
             $user_list_format
 );
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
+
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 die "no dbname" unless $dbname;
 die "no dbuser" unless $dbuser;