From 14ecca4632b44461d3c23344027ec30eedba1b0a Mon Sep 17 00:00:00 2001 From: Kent Fredric Date: Fri, 6 Jul 2018 17:20:30 +1200 Subject: Patch ptardiff support out conditional on ENV - Toggle installation and testing of ptardiff functionality to only trigger when requested - Toggle testing of bzip2 support only when requested - Disable mechanics intended for user-perl environments where installation is to somewhere that may fall outside PATH --- Makefile.PL | 46 +++++++++------------------------------------- t/07_ptardiff.t | 11 +++++++++-- 2 files changed, 18 insertions(+), 39 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index fe093bd..0289409 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -9,19 +9,12 @@ unless( $] >= 5.005_03 ) { die qq[Archive::Tar requires perl version 5.005_03 or higher to run\n]; } -if( !eval { require IO::Compress::Bzip2; 1 } and !$opt->{n} ) { - warn qq[You do not have IO::Compress::Bzip2 installed. This means you can ]. - qq[not read or write bzip2 compressed archives!\n] . - qq[Note: you can disable this warning (and the prerequisite) ]. - qq[by invoking Makefile.PL with '-n'\n]; +if( $ENV{GENTOO_TAR_BZIP2} ) { + require IO::Compress::Bzip2; } -if( !$opt->{d} and not eval { require Text::Diff; 1 } ) { - print qq[\nArchive::Tar comes with a utility called 'ptardiff' which ]. - qq[lets you run diffs against tar archives.\n\nHowever, this ]. - qq[utility requires you to have Text::Diff installed.\n\n]. - qq[To add Text::Diff as a prerequisite, please supply the ]. - qq['-d' option when invoking this Makefile.PL.\n\n]; +if ( $ENV{GENTOO_TAR_PTARDIFF} ) { + require Text::Diff; } my $prereqs = { @@ -45,10 +38,10 @@ unless ($Config{useperlio}) { } ### ok, you didn't want IO::Zlib ### -delete $prereqs->{'IO::Compress::Bzip2'} if $opt->{n}; +delete $prereqs->{'IO::Compress::Bzip2'} unless $ENV{GENTOO_TAR_BZIP2}; ### so you want text::diff ### -$prereqs->{'Text::Diff'} = 0 if $opt->{d}; +$prereqs->{'Text::Diff'} = 0 if $ENV{GENTOO_TAR_PTARDIFF}; WriteMakefile1( @@ -68,7 +61,6 @@ WriteMakefile1( #EXE_FILES => ['bin/ptar', 'bin/ptardiff'], EXE_FILES => [ _scripts() ], PREREQ_PM => $prereqs, - INSTALLDIRS => ( $] >= 5.009003 && $] < 5.012 ? 'perl' : 'site' ), AUTHOR => 'Jos Boumans ', ABSTRACT => 'Manipulates TAR archives', ); @@ -84,29 +76,9 @@ sub _scripts { File::Copy::copy( $_, "$_$version" ) for @scripts; @scripts = glob("bin/*$version"); } - if ( $] >= 5.012 && $Config::Config{installscript} ne $Config::Config{installsitescript} ) { - my $script = $Config::Config{installscript}; - my $site = $Config::Config{installsitescript}; - warn <<"WARNING"; -############################################################### -## -## Hi! Your script and sitescript locations are different -## -## As your perl is v5.12.0 or greater the script included -## in this distribution will be installed into sitescript -## -## You might want to check that the following location is -## in your PATH environment variable: -## -## '$site' -## -## Many thanks. -## -############################################################### - -WARNING - sleep 10; - } + } + if ( not $ENV{GENTOO_TAR_PTARDIFF} ) { + @scripts = grep { $_ !~ /ptardiff/ } @scripts; } return @scripts; } diff --git a/t/07_ptardiff.t b/t/07_ptardiff.t index 6935fc6..da4ea29 100644 --- a/t/07_ptardiff.t +++ b/t/07_ptardiff.t @@ -1,5 +1,13 @@ use strict; use warnings; + +BEGIN { + unless ( $ENV{GENTOO_TAR_PTARDIFF} ) { + print "1..0 # SKIP this test requires GENTOO_TAR_PTARDIFF set"; + exit + } +} + use Test::More; use File::Spec; @@ -14,8 +22,7 @@ my $tarfile = File::Spec->catfile("t", "ptardiff.tar"); my $ptardiff = File::Spec->catfile($Bin, "..", "bin", "ptardiff"); my $cmd = "$^X $ptardiff $tarfile"; -eval { require Text::Diff; }; -plan skip_all => 'Text::Diff required to test ptardiff' if $@; +require Text::Diff; plan tests => 1; # create directory/files -- 2.17.1