[libmoosex-has-sugar-perl] 48/120: Make tree sterilization not run on <=5.10, with big pretty coloured messages

Intrigeri intrigeri at moszumanska.debian.org
Wed Aug 27 21:35:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to annotated tag 0.05070422-source
in repository libmoosex-has-sugar-perl.

commit 51f17b8aaf46758b780639a9f374925fa331e0de
Author: Kent Fredric <kentfredric at gmail.com>
Date:   Thu Oct 24 17:45:59 2013 +1300

    Make tree sterilization not run on <=5.10, with big pretty coloured messages
---
 sterilize_env.pl | 50 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 36 insertions(+), 14 deletions(-)

diff --git a/sterilize_env.pl b/sterilize_env.pl
index 168af1d..34bca35 100644
--- a/sterilize_env.pl
+++ b/sterilize_env.pl
@@ -3,12 +3,12 @@ use strict;
 use warnings;
 use utf8;
 
-sub diag {
-  print STDERR @_;
-  print STDERR "\n";
-}
+sub diag { print STDERR @_; print STDERR "\n" }
+sub env_exists { return exists $ENV{ $_[0] } }
+sub env_true   { return ( env_exists( $_[0] ) and $ENV{ $_[0] } ) }
+sub env_is     { return ( env_exists( $_[0] ) and $ENV{ $_[0] } eq $_[1] ) }
 
-sub safe_exec {
+sub safe_exec_nonfatal {
   my ( $command, @params ) = @_;
   diag("running $command @params");
   my $exit = system( $command, @params );
@@ -17,27 +17,49 @@ sub safe_exec {
     my $high = $exit >> 8;
     warn "$command failed: $? $! and exit = $high , flags = $low";
     if ( $high != 0 ) {
-      exit $high;
+      return $high;
     }
     else {
-      exit 1;
+      return 1;
     }
+
   }
-  return 1;
+  return 0;
 }
 
-if ( not exists $ENV{STERILIZE_ENV} ) {
-  diag('STERILIZE_ENV unset');
-  exit 0;
+sub safe_exec {
+  my ( $command, @params ) = @_;
+  my $exit_code = safe_exec_nonfatal( $command, @params );
+  if ( $exit_code != 0 ) {
+    exit $exit_code;
+  }
+  return 1;
 }
-if ( $ENV{STERILIZE_ENV} < 1 ) {
-  diag('STERLIZIE_ENV < 1, Not Sterilizing');
+
+if ( not env_true('STERILIZE_ENV') ) {
+  diag('STERILIZE_ENV unset or false, not sterilizing');
   exit 0;
 }
-if ( not exists $ENV{TRAVIS} ) {
+
+if ( not env_true('TRAVIS') ) {
   diag('Is not running under travis!');
   exit 1;
 }
+if ( env_is( 'TRAVIS_PERL_VERSION', '5.8' ) or env_is( 'TRAVIS_PERL_VERSION', '5.10' ) ) {
+  diag("\e[31m TREE STERILIZATION IMPOSSIBLE <= 5.10\e[0m");
+  diag("\e[32m ... because prior to 5.11.*, dual-life installed to \e[33mprivlib\e[0m");
+  diag("\e[32m ... because prior to 5.11.*, \e[33m\@INC\e[32m order was \e[33mprivlib,sitelib\e[0m");
+  diag("\e[32m ... whereas after to 5.11.*, \e[33m\@INC\e[32m order is \e[33msitelib,privlib\e[0m");
+  diag("\e[32m ... and now most dual-life things simply install to \e[33msitelib\e[0m");
+  diag("\e[34m ( However, there are still a few naughty CPAN modules that install to \e[33mprivlib\e[34m )");
+  diag(
+    "\e[32m but the net effect of this is that installing \e[33mModule::Build 0.4007\e[32m which pulls \e[33mPerl::OSType\e[0m");
+  diag("\e[32m and results in  \e[33mPerl::OSType\e[32m being later removed \e[0m");
+  diag("\e[32m leaving behind a broken  \e[33mModule::Build 0.4007\e[32m\e[0m");
+  diag("\e[34m Set \e[35m MAYBE_BREAK_MODULE_BUILD=1\e[34m if this is ok\e[0m");
+  exit 0 unless env_true('MAYBE_BREAK_MODULE_BUILD');
+  diag("\e[35m PROCEEDING\e[0m");
+}
 use Config;
 for my $libdir ( grep { $_ =~ /site(lib|arch)exp$/ } keys %Config ) {
   safe_exec( 'find', $Config{$libdir}, '-type', 'f', '-delete' );

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmoosex-has-sugar-perl.git



More information about the Pkg-perl-cvs-commits mailing list