update installed scripts with the configured perl
authorTony Cook <tony@develop-help.com>
Thu, 26 Jul 2012 11:14:07 +0000 (21:14 +1000)
committerTony Cook <tony@develop-help.com>
Thu, 26 Jul 2012 11:14:07 +0000 (21:14 +1000)
Also fixed deps to allow tests to run, and adjusted some
test scripts to skip if their deps aren't available.

Makefile
localinst.perl
site/cgi-bin/admin/bse_modules.pl
site/cgi-bin/modules/DevHelp/Tags/Iterate.pm
t/t15api.t
t/t60securepayxml.t
t/t61fastway.t
t/t63nabtransactxml.t
t/t64eway.t

index f9132cd..bb82d39 100755 (executable)
--- a/Makefile
+++ b/Makefile
@@ -4,11 +4,18 @@ DISTBUILD=$(DISTNAME)
 DISTTAR=../$(DISTNAME).tar
 DISTTGZ=$(DISTTAR).gz
 WEBBASE=/home/tony/www/bse
+PERL=$(shell perl -It -MBSE::Test -e 'print BSE::Test::test_perl()')
+PERLBIN=$(shell $(PERL) -MConfig -e 'print $Config{installbin}')
 
 BSEMODULES=site/cgi-bin/modules/BSE/Modules.pm
 
+NOOP=echo Nothing
+
 MODULES=$(shell grep cgi-bin/.*\.pm MANIFEST | sed -e '/^\#/d' -e 's/[ \t].*//' -e '/^site\/cgi-bin\/modules\/BSE\/\(Modules\|Version\)\.pm/d' )
-VERSIONDEPS=$(shell perl site/util/bse_versiondeps.pl MANIFEST)
+VERSIONDEPS=$(shell $(PERL) site/util/bse_versiondeps.pl MANIFEST)
+
+POD2TEXT=$(PERLBIN)/pod2text
+POD2HTML=$(PERLBIN)/pod2html
 
 help:
        @echo make dist - build the tar.gz file and copy to distribution directory
@@ -42,7 +49,7 @@ $(DISTTGZ): distdir
               exit 1 ; \
        fi
        tar cf $(DISTTAR) $(DISTBUILD)
-       -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
+       -$(PERL) -MExtUtils::Command -e rm_rf $(DISTBUILD)
        gzip $(DISTTAR)
 
 #      tar czf $(DISTFILE) -C .. bse --exclude '*~' --exclude '*,v' --exclude 'pod2html-*cache'
@@ -50,61 +57,53 @@ $(DISTTGZ): distdir
 # recent ExtUtils::Manifest don't copy the executable bit, fix that here
 
 distdir: docs dbinfo version
-       -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
-       perl -MExtUtils::Manifest=manicopy,maniread -e "manicopy(maniread(), '$(DISTBUILD)')"
-       perl site/util/make_versions.pl $(DISTBUILD)/$(BSEMODULES)
+       -$(PERL) -MExtUtils::Command -e rm_rf $(DISTBUILD)
+       $(PERL) -MExtUtils::Manifest=manicopy,maniread -e "manicopy(maniread(), '$(DISTBUILD)')"
+       $(PERL) site/util/make_versions.pl $(DISTBUILD)/$(BSEMODULES)
        mkdir $(DISTBUILD)/site/htdocs/shop
        find $(DISTBUILD) -type f | xargs chmod u+w
        for i in `cat MANIFEST` ; do if [ -x $$i ] ; then chmod a+x $(DISTBUILD)/$$i ; fi ; done
 
 clean:
-       -perl -MExtUtils::Command -e rm_f site/htdocs/index.html site/htdocs/shop/*.html site/htdocs/a/*.html
-       -cd site/htdocs/images ; \
-       for i in *.gif ; do \
-         if [ $$i != trans_pixel.gif ] ; then \
-           rm $$i ; \
-         fi ; \
-       done
-       -perl -MExtUtils::Command -e rm_f site/htdocs/images/*.jpg
-       -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
+       $(NOOP)
 
 docs: INSTALL.txt INSTALL.html otherdocs
 
 INSTALL.txt: INSTALL.pod
-       pod2text <INSTALL.pod >INSTALL.txt
+       $(POD2TEXT) <INSTALL.pod >INSTALL.txt
 
 INSTALL.html: INSTALL.pod
-       pod2html --infile=INSTALL.pod --outfile=INSTALL.html
+       $(POD2HTML) --infile=INSTALL.pod --outfile=INSTALL.html
        -rm pod2html-dircache pod2html-itemcache pod2htmd.tmp pod2htmi.tmp
 
 otherdocs:
-       cd site/docs ; make all
+       cd site/docs ; make all PERL=$(PERL)
 
 dbinfo: site/util/mysql.str
 
 site/util/mysql.str: schema/bse.sql schema/mysql_build.pl
-       perl schema/mysql_build.pl >site/util/mysql.str
+       $(PERL) schema/mysql_build.pl >site/util/mysql.str
 
 version: site/cgi-bin/modules/BSE/Version.pm
 
 site/cgi-bin/modules/BSE/Version.pm: $(VERSIONDEPS)
-       perl site/util/bse_mkgitversion.pl $(VERSION) site/cgi-bin/modules/BSE/Version.pm
+       $(PERL) site/util/bse_mkgitversion.pl $(VERSION) site/cgi-bin/modules/BSE/Version.pm
 
 modversion: $(BSEMODULES)
 
 $(BSEMODULES): $(MODULES) site/util/make_versions.pl
-       perl site/util/make_versions.pl $(BSEMODULES)
+       $(PERL) site/util/make_versions.pl $(BSEMODULES)
 
 # this is very rough
 testinst: distdir
-       perl localinst.perl $(DISTBUILD)
-       perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
-       cd `perl -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; perl loaddata.pl ../data/db
+       $(PERL) localinst.perl $(DISTBUILD)
+       $(PERL) -MExtUtils::Command -e rm_rf $(DISTBUILD)
+       cd `$(PERL) -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; $(PERL) loaddata.pl ../data/db
 
 testup: checkver distdir
-       perl localinst.perl $(DISTBUILD) leavedb
-       perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
-       cd `perl -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; perl upgrade_mysql.pl -b ; perl loaddata.pl ../data/db
+       $(PERL) localinst.perl $(DISTBUILD) leavedb
+       $(PERL) -MExtUtils::Command -e rm_rf $(DISTBUILD)
+       cd `$(PERL) -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; $(PERL) upgrade_mysql.pl -b ; $(PERL) loaddata.pl ../data/db
 
 checkver:
        if [ -d .git ] ; then perl site/util/check_versions.pl ; fi
@@ -113,13 +112,13 @@ TEST_FILES=t/*.t t/*/*.t
 TEST_VERBOSE=0
 
 test: testup
-       perl '-MTest::Harness=runtests,$$verbose' -Isite/cgi-bin/modules -It -e '$$verbose=$(TEST_VERBOSE); runtests @ARGV' $(TEST_FILES)
+       $(PERL) '-MTest::Harness=runtests,$$verbose' -Isite/cgi-bin/modules -It -e '$$verbose=$(TEST_VERBOSE); runtests @ARGV' $(TEST_FILES)
 
 manicheck:
-       perl -MExtUtils::Manifest=manicheck -e 'manicheck()'
+       $(PERL) -MExtUtils::Manifest=manicheck -e 'manicheck()'
 
 filecheck:
-       perl -MExtUtils::Manifest=filecheck -e 'filecheck()'
+       $(PERL) -MExtUtils::Manifest=filecheck -e 'filecheck()'
 
 manifest:
-       perl -MExtUtils::Manifest=mkmanifest -e mkmanifest
+       $(PERL) -MExtUtils::Manifest=mkmanifest -e mkmanifest
index 780d3c7..8aea931 100644 (file)
@@ -33,19 +33,21 @@ my $perl = BSE::Test::test_perl();
 if ($perl ne '/usr/bin/perl') {
   my $manifest = ExtUtils::Manifest::maniread();
 
-  for my $file (grep /\.pl$/, keys %$manifest) {
+  for my $file (keys %$manifest) {
     (my $work = $file) =~ s!^site!!;
-    next unless $work =~ /cgi-bin/;
     my $full = $instbase . $work;
-    open SCRIPT, "< $full" or die "Cannot open $full: $!";
-    binmode SCRIPT;
-    my @all = <SCRIPT>;
-    close SCRIPT;
-    $all[0] =~ s/^#!\S*perl\S*/#!$perl/;
-    open SCRIPT, "> $full" or die "Cannot create $full: $!";
-    binmode SCRIPT;
-    print SCRIPT @all;
-    close SCRIPT;
+    open my $script, "<", $full
+      or next;
+    binmode $script;
+    my $first = <$script>;
+    if ($first =~ s/^#!\S*perl\S*/#!$perl/) {
+      my @all = <$script>;
+      close $script;
+      open my $out_script, ">", $full or die "Cannot create $full: $!";
+      binmode $out_script;
+      print $out_script $first, @all;
+      close $out_script;
+    }
   }
 }
 
@@ -136,7 +138,7 @@ unless ($leavedb) {
     my $db = $1;
     system "$mysql -u$dbuser -p$dbpass $db <$dist/schema/bse.sql"
       and die "Cannot initialize database";
-    system "cd $instbase/util ; perl initial.pl"
+    system "cd $instbase/util ; $perl initial.pl"
       and die "Cannot load database";
   }
   else {
index 7b1ffb6..8097491 100755 (executable)
@@ -42,6 +42,9 @@ my @base_check =
       'MIME::Lite' => 0,
       'Date::Format' => 0,
       'Data::UUID' => '1.148',
+      'File::Slurp' => 0,
+      'Time::HiRes' => 0,
+      'WWW::Mechanize' => 0,
      }
    },
    {
@@ -62,14 +65,6 @@ my @base_check =
      'Crypt::SSLeay' => 0,
     },
    },
-   {
-    name => "Nport",
-    modules => 
-    {
-     'Time::HiRes' => 0,
-     'Date::Calc' => 0,
-    },
-   },
    {
     name => "Optional",
     modules =>
@@ -77,7 +72,6 @@ my @base_check =
      'Imager' => 0.44,
      'Log::Agent' => 0,
      'Net::Amazon::S3' => 0,
-     'Date::Format' => 0,
      'Captcha::reCAPTCHA' => 0,
      'FLV::Info' => 0,
      'DBM::Deep' => 2,
index 7124806..adb526d 100644 (file)
@@ -2,7 +2,7 @@ package DevHelp::Tags::Iterate;
 use strict;
 use Carp qw(confess);
 
-our $VERSION = "1.004";
+our $VERSION = "1.005";
 
 sub new {
   my ($class, %opts) = @_;
@@ -344,13 +344,13 @@ sub make_paged {
      "${single}_number" => [ _iter_number_paged=>$self, \%state ],
      "ifLast\u$single" => [ _iter_if_last=>$self, \%state ],
      "ifFirst\u$single" => [ _iter_if_first=>$self, \%state ],
-     "ifNext\u${plural}\EPage" => $page_num < $page_count,
-     "ifPrev\u${plural}\EPage" => $page_num > 1,
-     "ifFirst\u${plural}\EPage" => $page_num == 1,
-     "ifLast\u${plural}\EPage" => $page_num == $page_count,
-     "next\u${plural}\EPage" => 
+     "ifNext\u${plural}Page" => $page_num < $page_count,
+     "ifPrev\u${plural}Page" => $page_num > 1,
+     "ifFirst\u${plural}Page" => $page_num == 1,
+     "ifLast\u${plural}Page" => $page_num == $page_count,
+     "next\u${plural}Page" => 
      ( $page_num < $page_count ? $page_num + 1 : $page_num ),
-     "prev\u${plural}\EPage" =>
+     "prev\u${plural}Page" =>
      ( $page_num > 1 ? $page_num - 1 : 1 ),
      "${single}_count" => scalar(@data),
      "${plural}_pagenum" => $page_num,
index 39e4b4c..17463ea 100644 (file)
@@ -86,7 +86,9 @@ my $im2;
   is($imres->decoded_content, $orig, "check it matches");
 }
 
-{
+SKIP: {
+  eval { require Imager; }
+    or skip "No Imager", 2;
   # check thumbnailing
   my $thumb_url = base_url() . $im2->dynamic_thumb_url(geo => "editor");
   $thumb_url .= "&cache=0";
index b8ba74f..157dc7d 100644 (file)
@@ -1,6 +1,17 @@
 #!perl -w
 use strict;
-use Test::More tests => 27;
+use Test::More;
+
+BEGIN {
+  eval "use XML::Simple; 1"
+    or plan skip_all => "No XML::Simple";
+  eval { require LWP::UserAgent; 1 }
+    or plan skip_all => "No XML::LibXML";
+  eval { require Crypt::SSLeay; 1 }
+    or plan skip_all => "No Crypt::SSLeay";
+
+  plan tests => 27;
+}
 
 ++$|;
 
index 912a249..79ad005 100644 (file)
@@ -1,6 +1,13 @@
 #!perl -w
 use strict;
-use Test::More tests => 7;
+use Test::More;
+
+BEGIN {
+  eval "use XML::Simple; 1"
+    or plan skip_all => "No XML::Simple";
+
+  plan tests => 7;
+}
 
 use Courier::Fastway::Road;
 use BSE::Shipping;
index d6c1fd1..507c771 100644 (file)
@@ -1,6 +1,17 @@
 #!perl -w
 use strict;
-use Test::More tests => 14;
+use Test::More;
+
+BEGIN {
+  eval "use XML::Simple; 1"
+    or plan skip_all => "No XML::Simple";
+  eval { require LWP::UserAgent; 1 }
+    or plan skip_all => "No XML::LibXML";
+  eval { require Crypt::SSLeay; 1 }
+    or plan skip_all => "No Crypt::SSLeay";
+
+  plan tests => 14;
+}
 
 ++$|;
 
index a46ff8d..ba5c435 100644 (file)
@@ -1,6 +1,17 @@
 #!perl -w
 use strict;
-use Test::More tests => 17;
+use Test::More;
+
+BEGIN {
+  eval { require XML::LibXML; }
+    or plan skip_all => "No XML::LibXML";
+  eval { require LWP::UserAgent; }
+    or plan skip_all => "No XML::LibXML";
+  eval { require Crypt::SSLeay; }
+    or plan skip_all => "No Crypt::SSLeay";
+
+  plan tests => 17;
+}
 
 ++$|;