[libmoosex-has-sugar-perl] 51/120: Further attempts at getting a sterile tree on 5.8
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 4b932294bc9e6c3582a1e149d97a8a6ebe781c97
Author: Kent Fredric <kentfredric at gmail.com>
Date: Fri Oct 25 08:38:07 2013 +1300
Further attempts at getting a sterile tree on 5.8
---
sterilize_env.pl | 76 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 61 insertions(+), 15 deletions(-)
diff --git a/sterilize_env.pl b/sterilize_env.pl
index 34bca35..91fb325 100644
--- a/sterilize_env.pl
+++ b/sterilize_env.pl
@@ -36,33 +36,79 @@ sub safe_exec {
return 1;
}
+sub cpanm {
+ my (@params) = @_;
+ my $exit_code = safe_exec_nonfatal( 'cpanm', @params );
+ if ( $exit_code != 0 ) {
+ safe_exec( 'tail', '-n', '200', '/home/travis/.cpanm/build.log' );
+ exit $exit_code;
+ }
+ return 1;
+}
+
+sub no_sterile_warning {
+ 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");
+ }
+
+}
+
if ( not env_true('STERILIZE_ENV') ) {
diag('STERILIZE_ENV unset or false, not sterilizing');
exit 0;
}
+my $extra_sterile = {
+ '5.8' => {
+ remove => [ 'Module/Build.pm', 'Module/Build/Base.pm', 'Module/Build/Compat.pm', 'Module/Build/Cookbook.pm', 'autobox.pm' ],
+ },
+ '5.10' => {
+ remove => [ 'autobox.pm' ],
+ install => ['Module::Build~<0.340201'],
+ },
+};
+
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");
+
+for my $perl_ver ( keys %{$extra_sterile} ) {
+ if ( env_is( 'TRAVIS_PERL_VERSION', $perl_ver ) ) {
+ diag("Running custom sterilization fixups");
+ my $fixups = $extra_sterile->{$perl_ver};
+ if ( $fixups->{install} ) {
+ cpanm( '--quiet', '--notest', '--no-man-pages', $_ ) for @{ $fixups->{install} };
+ }
+ if ( $fixups->{remove} ) {
+ diag("Removing Bad things from all Config paths");
+ for my $libdir ( grep { $_ =~ /(lib|arch)exp$/ keys %Config } ) {
+ for my $removal ( @{ $fixups->{remove} } ) {
+ my $path = $libdir . '/' . $removal;
+ if ( -e -f $path ) {
+ unlink $path;
+ diag("Removed $path");
+ }
+ }
+ }
+ }
+ }
}
use Config;
for my $libdir ( grep { $_ =~ /site(lib|arch)exp$/ } keys %Config ) {
safe_exec( 'find', $Config{$libdir}, '-type', 'f', '-delete' );
safe_exec( 'find', $Config{$libdir}, '-depth', '-type', 'd', '-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