[libmoosex-has-sugar-perl] 71/120: try an even crazier approach to sterilizing
Intrigeri
intrigeri at moszumanska.debian.org
Wed Aug 27 21:35:11 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 c4b7b7c17e51f9a1cc9231bf9b64fe2db69f9571
Author: Kent Fredric <kentfredric at gmail.com>
Date: Mon Nov 4 22:16:46 2013 +1300
try an even crazier approach to sterilizing
---
corelist-data/gen_modules.pl | 13 ++++----
corelist-data/gen_perl.pl | 6 ++--
sterilize_env.pl | 79 ++++++++++++++++++++++++++++++++++++--------
3 files changed, 75 insertions(+), 23 deletions(-)
diff --git a/corelist-data/gen_modules.pl b/corelist-data/gen_modules.pl
index 3b4b780..19d892c 100644
--- a/corelist-data/gen_modules.pl
+++ b/corelist-data/gen_modules.pl
@@ -7,15 +7,14 @@ open my $fh, '>', './modules.zsv';
use Module::CoreList;
-
my $seen_modules = {};
for my $version ( sort keys %Module::CoreList::version ) {
- my ($hash) = $Module::CoreList::version{$version};
- for my $module ( sort keys %{$hash} ) {
- next if exists $seen_modules->{$module};
- $fh->printf( "%s\0\n", $module );
- $seen_modules->{$module}++;
- }
+ my ($hash) = $Module::CoreList::version{$version};
+ for my $module ( sort keys %{$hash} ) {
+ next if exists $seen_modules->{$module};
+ $fh->printf( "%s\0\n", $module );
+ $seen_modules->{$module}++;
+ }
}
diff --git a/corelist-data/gen_perl.pl b/corelist-data/gen_perl.pl
index 4cd9c1c..d0678a4 100644
--- a/corelist-data/gen_perl.pl
+++ b/corelist-data/gen_perl.pl
@@ -6,7 +6,7 @@ use utf8;
use Module::CoreList;
if ( not $ARGV[0] ) {
- die "GIVE US A PERL VERSION";
+ die "GIVE US A PERL VERSION";
}
my $version = $ARGV[0];
@@ -14,14 +14,14 @@ my $version = $ARGV[0];
use Module::CoreList;
if ( not exists $Module::CoreList::version{$version} ) {
- die "Version $version not in corelist";
+ die "Version $version not in corelist";
}
my ($hash) = $Module::CoreList::version{$version};
open my $fh, '>', './' . $version . '.zsv';
for my $module ( sort keys %{$hash} ) {
- $fh->printf( "%s\0%s\0\n", $module, $hash->{$module} );
+ $fh->printf( "%s\0%s\0\n", $module, $hash->{$module} );
}
$fh->close;
diff --git a/sterilize_env.pl b/sterilize_env.pl
index fc66668..2301e58 100644
--- a/sterilize_env.pl
+++ b/sterilize_env.pl
@@ -6,26 +6,30 @@ use FindBin;
use lib "$FindBin::Bin/lib";
use tools;
+my $corelists = "$FindBin::Bin/corelist-data";
+
sub no_sterile_warning {
- if ( env_is( 'TRAVIS_PERL_VERSION', '5.8' ) or env_is( 'TRAVIS_PERL_VERSION', '5.10' ) ) {
+ 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 ... 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");
+ 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_exists('STERILIZE_ENV') ) {
- diag("\e[31STERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target");
+ diag( "\e[31STERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target" );
exit 0;
}
if ( not env_true('STERILIZE_ENV') ) {
@@ -55,7 +59,7 @@ my $extra_sterile = {
'Module::Build~<=0.3603', 'ExtUtils::MakeMaker~<=6.56', 'Test::Harness~<=3.17', 'ExtUtils::Liblist~<=6.56',
'ExtUtils::Manifest~<=1.57', 'ExtUtils::Mkbootstrap~<=6.56', 'ExtUtils::MM_OS2~<=6.56', 'ExtUtils::MM_Unix~<=6.56',
'ExtUtils::MM_VMS~<=6.56', 'ExtUtils::Mksymlists~<=6.56', 'ExtUtils::testlib~<=6.56', 'ExtUtils::MM_Win32~<=6.56',
- 'File::Spec~<=3.3101', 'File::Spec::Mac~<=3.30', 'File::Spec::OS2~<=3.30', 'File::Spec::Unix~<=3.30',
+ 'File::Spec~<=3.3101', 'File::Spec::Mac~<=3.30', 'File::Spec::OS2~<=3.30', 'File::Spec::Unix~<=3.30',
'File::Spec::VMS~<=3.30', 'File::Spec::Win32~<=3.30', 'Data::Dumper~<=2.125', 'File::Spec::Functions~<=3.30',
],
},
@@ -68,9 +72,58 @@ if ( not env_true('TRAVIS') ) {
use Config;
-my @all_libs = grep { defined and length and -e $_ } map { $Config{$_} } grep { $_ =~ /(lib|arch)exp$/ } keys %Config;
-my @site_libs = grep { defined and length and -e $_ } map { $Config{$_} } grep { $_ =~ /site(lib|arch)exp$/ } keys %Config;
+my @all_libs =
+ grep { defined and length and -e $_ }
+ map { $Config{$_} } grep { $_ =~ /(lib|arch)exp$/ } keys %Config;
+my @site_libs =
+ grep { defined and length and -e $_ }
+ map { $Config{$_} } grep { $_ =~ /site(lib|arch)exp$/ } keys %Config;
+
+my ($corelist_file) = $corelists . '/' . $] . '.zsv';
+my ($skiplist_file) = $corelists . '/' . $] . '_skip.zsv';
+
+my $skip = {};
+
+if ( -e $skiplist_file and -f $skiplist_file ) {
+ open my $fh, '<', $skiplist_file;
+ local $/ = "\0\n";
+ while ( my $line = <$fh> ) {
+ my ($module) = split /\0/, $line;
+ $skip->{$module} = 1;
+ }
+}
+my $protect = {};
+if ( -e $corelist_file and -f $corelist_file ) {
+ diag("\e[32m Found corelist file for this perl: $], sterilizing with\e[0m");
+ open my $fh, '<', $corelist_file;
+ local $/ = "\0\n";
+ while ( my $line = <$fh> ) {
+ my ( $module, $version ) = split /\0/, $line;
+ my $fn = $module;
+ $fn =~ s/::/\//g;
+ $fn .= '.pm';
+ $protect->{$fn} = 1;
+ next if $skip->{$module};
+ cpanm( '--skip-satisfied', '--dev', '--quiet', '--notest', '--no-man-pages', $module . '~<=' . $version );
+ }
+ diag("Removing Bad things from all Config paths");
+ safe_exec( 'find', $libdir, '-type', 'f', '-delete' );
+ safe_exec( 'find', $libdir, '-depth', '-type', 'd', '-delete' );
+ for my $libdir (@all_libs) {
+ open my $finder, '-|', 'find', $libdir, '-type', 'f', '-print0';
+ local $/ = "\0";
+ while ( my $file = <$finder> ) {
+ require File::Spec;
+ my $rel = File::Spec->abs2rel( $file, $libdir );
+ if ( not exists $protect->{$rel} ) {
+ diag("\e[33m Unprotected, Removed: $rel");
+ unlink $file;
+ }
+ }
+ }
+ exit 0;
+}
for my $perl_ver ( keys %{$extra_sterile} ) {
if ( env_is( 'TRAVIS_PERL_VERSION', $perl_ver ) ) {
diag("Running custom sterilization fixups");
--
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