You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.1 KiB
131 lines
4.1 KiB
6 years ago
|
From 14ecca4632b44461d3c23344027ec30eedba1b0a Mon Sep 17 00:00:00 2001
|
||
|
From: Kent Fredric <kentnl@gentoo.org>
|
||
|
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 <kane[at]cpan.org>',
|
||
|
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
|
||
|
|