summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Golden <dagolden@cpan.org>2010-07-24 00:44:40 -0700
committerDavid Golden <dagolden@cpan.org>2010-07-24 01:54:33 -0700
commitff906f87ce1519416ddfff76ae8e1d8fa42ed082 (patch)
tree2a65f8a9197fb1f04777cc1f63b0f21379d67662
parent2a6dc37471bea77f0c24fd1fe90c598a270c9968 (diff)
downloadperl-ff906f87ce1519416ddfff76ae8e1d8fa42ed082.tar.gz
Global executable bit cleanup
When porting/makerel runs, all files copied into the directory for the tarball have the executable bit stripped and then only a specific set of files have the executable bit restored. There are many files in the repo that have the executable bit set in the repo that will be stripped. So that the state of files in the repo is as close as possible to the state of files in the release tarball, the executable bit has been stripped from such files. In one recent case, a file added from a dual-life module needed the executable bit set. Because it had the bit in the repo but was not listed in makerel to get an executable bit, tests using it passed in the repo and failed in the tarball. This commit refactors the list into a new file, Porting/exec-bit.txt and add tests to detect a mismatch between files listed there and actual executable bits in the repo.
-rw-r--r--[-rwxr-xr-x]Cross/Makefile-cross-SH0
-rw-r--r--[-rwxr-xr-x]Cross/build-arm-n770-sh0
-rw-r--r--[-rwxr-xr-x]Cross/cflags-cross-arm0
-rw-r--r--MANIFEST4
-rw-r--r--[-rwxr-xr-x]Porting/GitUtils.pm0
-rw-r--r--[-rwxr-xr-x]Porting/Maintainers.pl0
-rw-r--r--[-rwxr-xr-x]Porting/bump-perl-version0
-rw-r--r--[-rwxr-xr-x]Porting/cherrymaint0
-rw-r--r--[-rwxr-xr-x]Porting/config_h.pl0
-rw-r--r--[-rwxr-xr-x]Porting/core-cpan-diff0
-rw-r--r--[-rwxr-xr-x]Porting/corelist-perldelta.pl0
-rw-r--r--Porting/exec-bit.txt26
-rwxr-xr-x[-rw-r--r--]Porting/findrfuncs0
-rw-r--r--[-rwxr-xr-x]Porting/findvars0
-rw-r--r--[-rwxr-xr-x]Porting/fixCORE0
-rw-r--r--[-rwxr-xr-x]Porting/fixvars0
-rw-r--r--[-rwxr-xr-x]Porting/git-deltatool0
-rw-r--r--[-rwxr-xr-x]Porting/git-find-p4-change0
-rw-r--r--[-rwxr-xr-x]Porting/make_dot_patch.pl0
-rw-r--r--[-rwxr-xr-x]Porting/make_snapshot.pl0
-rwxr-xr-x[-rw-r--r--]Porting/makerel28
-rw-r--r--[-rwxr-xr-x]Porting/rt_list_patches0
-rw-r--r--[-rwxr-xr-x]cflags.SH0
-rw-r--r--[-rwxr-xr-x]config_h.SH0
-rw-r--r--[-rwxr-xr-x]cpan/CGI/examples/make_links.pl0
-rw-r--r--[-rwxr-xr-x]cpan/CGI/examples/nph-clock.cgi0
-rw-r--r--[-rwxr-xr-x]cpan/CGI/examples/nph-multipart.cgi0
-rw-r--r--[-rwxr-xr-x]cpan/CPAN/scripts/cpan0
-rw-r--r--[-rwxr-xr-x]cpan/Compress-Raw-Zlib/config.in0
-rw-r--r--[-rwxr-xr-x]cpan/Compress-Raw-Zlib/examples/filtdef0
-rw-r--r--[-rwxr-xr-x]cpan/Compress-Raw-Zlib/examples/filtinf0
-rw-r--r--[-rwxr-xr-x]cpan/DB_File/config.in0
-rw-r--r--[-rwxr-xr-x]cpan/Digest-SHA/shasum0
-rw-r--r--[-rwxr-xr-x]cpan/Encode/bin/enc2xs0
-rw-r--r--[-rwxr-xr-x]cpan/Encode/bin/piconv0
-rw-r--r--[-rwxr-xr-x]cpan/Encode/bin/ucm2table0
-rw-r--r--[-rwxr-xr-x]cpan/Encode/bin/ucmsort0
-rw-r--r--[-rwxr-xr-x]cpan/Encode/bin/unidump0
-rw-r--r--[-rwxr-xr-x]cpan/ExtUtils-MakeMaker/bin/instmodsh0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/compress-zlib/filtdef0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/compress-zlib/filtinf0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/compress-zlib/gzcat0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/compress-zlib/gzgrep0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/compress-zlib/gzstream0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/anycat0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/bzip2/bzcat0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/bzip2/bzgrep0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/bzip2/bzstream0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/gzip/gzcat0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/gzip/gzgrep0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/examples/io/gzip/gzstream0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/t/compress/oneshot.pl0
-rw-r--r--[-rwxr-xr-x]cpan/IO-Compress/t/cz-03zlib-v1.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/alias_code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/code2country.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/code2currency.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/code2language.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/code2script.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/country.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/country2code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/country_code2code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/currency2code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/language.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/language2code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Codes/t/script2code.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Maketext-Simple/t/1-basic.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t0
-rw-r--r--[-rwxr-xr-x]cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t0
-rw-r--r--[-rwxr-xr-x]cpan/Module-Build/scripts/config_data0
-rw-r--r--[-rwxr-xr-x]cpan/Module-Build/t/compat/exit.t0
-rw-r--r--[-rwxr-xr-x]cpan/Term-ANSIColor/t/basic.t0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/bin/prove0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/bailout.t0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/nofork.t0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/parse.t0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/source.t0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/source_tests/psql0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/source_tests/psql.bat0
-rw-r--r--[-rwxr-xr-x]cpan/Test-Harness/t/streams.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/lib/Fatal.pm0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/00-load.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/Fatal.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/autodie.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/backcompat.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/basic_exceptions.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/binmode.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/blog_hints.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/caller.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/context.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/context_lexical.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/crickey.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/dbmopen.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/eval_error.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/exception_class.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/exceptions.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/exec.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/filehandles.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/fileno.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/flock.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/format-clobber.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints_insist.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints_pod_examples.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints_provider_does.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints_provider_easy_does_it.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/hints_provider_isa.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/internal-backcompat.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/internal.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/lethal.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/mkdir.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/open.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/recv.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/repeat.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/scope_leak.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/string-eval-basic.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/string-eval-leak.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/sysopen.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/truncate.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/unlink.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/user-context.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/usersub.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/version.t0
-rw-r--r--[-rwxr-xr-x]cpan/autodie/t/version_tag.t0
-rw-r--r--[-rwxr-xr-x]cpan/libnet/demos/ftp0
-rw-r--r--[-rwxr-xr-x]cpan/libnet/demos/nntp0
-rw-r--r--[-rwxr-xr-x]cpan/libnet/demos/smtp.self0
-rw-r--r--[-rwxr-xr-x]cpan/podlators/t/devise-date.t0
-rw-r--r--[-rwxr-xr-x]cpan/podlators/t/man-heading.t0
-rw-r--r--[-rwxr-xr-x]cpan/podlators/t/overstrike.t0
-rw-r--r--[-rwxr-xr-x]dist/threads/threads.xs0
-rw-r--r--[-rwxr-xr-x]ext/SDBM_File/sdbm/grind0
-rw-r--r--[-rwxr-xr-x]ext/VMS-Stdio/t/vms_stdio.t0
-rw-r--r--[-rwxr-xr-x]genpacksizetables.pl0
-rw-r--r--[-rwxr-xr-x]hints/aix_4.sh0
-rw-r--r--[-rwxr-xr-x]installhtml0
-rw-r--r--[-rwxr-xr-x]mad/p550
-rw-r--r--[-rwxr-xr-x]makedepend.SH0
-rw-r--r--[-rwxr-xr-x]pod/buildtoc0
-rw-r--r--[-rwxr-xr-x]pod/pod2man.PL0
-rw-r--r--[-rwxr-xr-x]pod/pod2text.PL0
-rw-r--r--[-rwxr-xr-x]pod/rofftoc0
-rw-r--r--[-rwxr-xr-x]pod/splitman0
-rw-r--r--[-rwxr-xr-x]pod/splitpod0
-rw-r--r--[-rwxr-xr-x]qnx/ar0
-rw-r--r--[-rwxr-xr-x]qnx/cpp0
-rw-r--r--[-rwxr-xr-x]t/comp/use.t0
-rw-r--r--[-rwxr-xr-x]t/io/openpid.t0
-rw-r--r--[-rwxr-xr-x]t/op/filetest_t.t0
-rw-r--r--[-rwxr-xr-x]t/op/sigdispatch.t0
-rw-r--r--[-rwxr-xr-x]t/porting/diag.t0
-rw-r--r--t/porting/exec-bit.t43
-rw-r--r--[-rwxr-xr-x]t/test.pl0
-rw-r--r--[-rwxr-xr-x]uconfig.sh0
-rwxr-xr-x[-rw-r--r--]vms/ext/filespec.t0
-rw-r--r--[-rwxr-xr-x]win32/distclean.bat0
-rw-r--r--[-rwxr-xr-x]win32/perlexe.manifest0
-rw-r--r--[-rwxr-xr-x]x2p/Makefile.SH0
-rw-r--r--[-rwxr-xr-x]x2p/cflags.SH0
160 files changed, 77 insertions, 24 deletions
diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH
index 79bd165924..79bd165924 100755..100644
--- a/Cross/Makefile-cross-SH
+++ b/Cross/Makefile-cross-SH
diff --git a/Cross/build-arm-n770-sh b/Cross/build-arm-n770-sh
index b3e6a67ca3..b3e6a67ca3 100755..100644
--- a/Cross/build-arm-n770-sh
+++ b/Cross/build-arm-n770-sh
diff --git a/Cross/cflags-cross-arm b/Cross/cflags-cross-arm
index acec8cc80f..acec8cc80f 100755..100644
--- a/Cross/cflags-cross-arm
+++ b/Cross/cflags-cross-arm
diff --git a/MANIFEST b/MANIFEST
index 89b3f968bf..f4ddd0e5d0 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4059,6 +4059,7 @@ Porting/corelist-perldelta.pl Generates data perldelta from Module::CoreList
Porting/corelist.pl Generates data for Module::CoreList
Porting/curliff.pl Curliff or liff your curliffable files.
Porting/epigraphs.pod the release epigraphs used over the years
+Porting/exec-bit.txt List of files that get +x in release tarball
Porting/expand-macro.pl A tool to expand C macro definitions in the Perl source
Porting/findrfuncs Find reentrant variants of functions used in an executable
Porting/findvars Find occurrences of words
@@ -4572,7 +4573,8 @@ t/porting/args_assert.t Check that all PERL_ARGS_ASSERT* macros are used
t/porting/authors.t Check that all authors have been acknowledged
t/porting/checkcase.t Check whether we are case-insensitive-fs-friendly
t/porting/diag.t Test completeness of perldiag.pod
-t/porting/dual-life.t Check that dual-life bins are in utils
+t/porting/dual-life.t Check that dual-life bins are in utils/
+t/porting/exec-bit.t Check that exec-bit bins are identified
t/porting/maintainers.t Test that Porting/Maintaners.pl is up to date
t/porting/manifest.t Test that this MANIFEST file is well formed
t/porting/podcheck.t Test the POD of shipped modules is well formed
diff --git a/Porting/GitUtils.pm b/Porting/GitUtils.pm
index 9ee6ca58e3..9ee6ca58e3 100755..100644
--- a/Porting/GitUtils.pm
+++ b/Porting/GitUtils.pm
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 09a2408738..09a2408738 100755..100644
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
diff --git a/Porting/bump-perl-version b/Porting/bump-perl-version
index d7aabbab06..d7aabbab06 100755..100644
--- a/Porting/bump-perl-version
+++ b/Porting/bump-perl-version
diff --git a/Porting/cherrymaint b/Porting/cherrymaint
index d1df73c0e0..d1df73c0e0 100755..100644
--- a/Porting/cherrymaint
+++ b/Porting/cherrymaint
diff --git a/Porting/config_h.pl b/Porting/config_h.pl
index cf69b2ad32..cf69b2ad32 100755..100644
--- a/Porting/config_h.pl
+++ b/Porting/config_h.pl
diff --git a/Porting/core-cpan-diff b/Porting/core-cpan-diff
index 75946185bb..75946185bb 100755..100644
--- a/Porting/core-cpan-diff
+++ b/Porting/core-cpan-diff
diff --git a/Porting/corelist-perldelta.pl b/Porting/corelist-perldelta.pl
index d7bcd2ad61..d7bcd2ad61 100755..100644
--- a/Porting/corelist-perldelta.pl
+++ b/Porting/corelist-perldelta.pl
diff --git a/Porting/exec-bit.txt b/Porting/exec-bit.txt
new file mode 100644
index 0000000000..b50517dd33
--- /dev/null
+++ b/Porting/exec-bit.txt
@@ -0,0 +1,26 @@
+# This file contains a list of files that makerel will
+# ensure get an executable bit
+#
+# List files (or glob patterns) one per line relative to the repo root
+# Lines starting with a pound and empty lines will be ignored
+Configure
+configpm
+configure.gnu
+cpan/Test-Harness/t/source_tests/source.sh
+embed.pl
+installperl
+installman
+keywords.pl
+opcode.pl
+t/TEST
+*.SH
+vms/ext/filespec.t
+x2p/*.SH
+Porting/findrfuncs
+Porting/genlog
+Porting/makerel
+Porting/*.pl
+mpeix/nm
+mpeix/relink
+Cross/generate_config_sh
+Cross/warp
diff --git a/Porting/findrfuncs b/Porting/findrfuncs
index c9a7ff80a7..c9a7ff80a7 100644..100755
--- a/Porting/findrfuncs
+++ b/Porting/findrfuncs
diff --git a/Porting/findvars b/Porting/findvars
index b2914f5652..b2914f5652 100755..100644
--- a/Porting/findvars
+++ b/Porting/findvars
diff --git a/Porting/fixCORE b/Porting/fixCORE
index f7f4539fd6..f7f4539fd6 100755..100644
--- a/Porting/fixCORE
+++ b/Porting/fixCORE
diff --git a/Porting/fixvars b/Porting/fixvars
index 201c37f3ad..201c37f3ad 100755..100644
--- a/Porting/fixvars
+++ b/Porting/fixvars
diff --git a/Porting/git-deltatool b/Porting/git-deltatool
index c3946eeb12..c3946eeb12 100755..100644
--- a/Porting/git-deltatool
+++ b/Porting/git-deltatool
diff --git a/Porting/git-find-p4-change b/Porting/git-find-p4-change
index 6363ae29ad..6363ae29ad 100755..100644
--- a/Porting/git-find-p4-change
+++ b/Porting/git-find-p4-change
diff --git a/Porting/make_dot_patch.pl b/Porting/make_dot_patch.pl
index b50fd85a48..b50fd85a48 100755..100644
--- a/Porting/make_dot_patch.pl
+++ b/Porting/make_dot_patch.pl
diff --git a/Porting/make_snapshot.pl b/Porting/make_snapshot.pl
index 70a4c3d66d..70a4c3d66d 100755..100644
--- a/Porting/make_snapshot.pl
+++ b/Porting/make_snapshot.pl
diff --git a/Porting/makerel b/Porting/makerel
index a0ce67beeb..41e757bb56 100644..100755
--- a/Porting/makerel
+++ b/Porting/makerel
@@ -124,29 +124,11 @@ system("find . -type f -print | xargs chmod 0444");
system("find . -type d -print | xargs chmod 0755");
system("find $SEARCH_ROOTS -name '*.t' -print | xargs chmod +x");
system("find $SEARCH_ROOTS -name 'test.pl' -print | xargs chmod +x");
-my @exe = qw(
- Configure
- configpm
- configure.gnu
- cpan/Test-Harness/t/source_tests/source.sh
- embed.pl
- installperl
- installman
- keywords.pl
- opcode.pl
- t/TEST
- *.SH
- vms/ext/filespec.t
- x2p/*.SH
- Porting/findrfuncs
- Porting/genlog
- Porting/makerel
- Porting/*.pl
- mpeix/nm
- mpeix/relink
- Cross/generate_config_sh
- Cross/warp
-);
+my @exe = map { my ($f) = split; glob($f) }
+ grep { $_ !~ /\A#/ && $_ !~ /\A\s*\z/ }
+ map { split "\n" }
+ do { local (@ARGV, $/) = 'Porting/exec-bit.txt'; <> };
+
system("chmod +x @exe") == 0
or die "system: $!";
diff --git a/Porting/rt_list_patches b/Porting/rt_list_patches
index 71145d4f6f..71145d4f6f 100755..100644
--- a/Porting/rt_list_patches
+++ b/Porting/rt_list_patches
diff --git a/cflags.SH b/cflags.SH
index a5d71b928c..a5d71b928c 100755..100644
--- a/cflags.SH
+++ b/cflags.SH
diff --git a/config_h.SH b/config_h.SH
index 0e4c3a7c8d..0e4c3a7c8d 100755..100644
--- a/config_h.SH
+++ b/config_h.SH
diff --git a/cpan/CGI/examples/make_links.pl b/cpan/CGI/examples/make_links.pl
index a0aa824556..a0aa824556 100755..100644
--- a/cpan/CGI/examples/make_links.pl
+++ b/cpan/CGI/examples/make_links.pl
diff --git a/cpan/CGI/examples/nph-clock.cgi b/cpan/CGI/examples/nph-clock.cgi
index f34fde27e9..f34fde27e9 100755..100644
--- a/cpan/CGI/examples/nph-clock.cgi
+++ b/cpan/CGI/examples/nph-clock.cgi
diff --git a/cpan/CGI/examples/nph-multipart.cgi b/cpan/CGI/examples/nph-multipart.cgi
index f8cea59a87..f8cea59a87 100755..100644
--- a/cpan/CGI/examples/nph-multipart.cgi
+++ b/cpan/CGI/examples/nph-multipart.cgi
diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan
index 5e5609555f..5e5609555f 100755..100644
--- a/cpan/CPAN/scripts/cpan
+++ b/cpan/CPAN/scripts/cpan
diff --git a/cpan/Compress-Raw-Zlib/config.in b/cpan/Compress-Raw-Zlib/config.in
index c56cc03099..c56cc03099 100755..100644
--- a/cpan/Compress-Raw-Zlib/config.in
+++ b/cpan/Compress-Raw-Zlib/config.in
diff --git a/cpan/Compress-Raw-Zlib/examples/filtdef b/cpan/Compress-Raw-Zlib/examples/filtdef
index 3c6565042f..3c6565042f 100755..100644
--- a/cpan/Compress-Raw-Zlib/examples/filtdef
+++ b/cpan/Compress-Raw-Zlib/examples/filtdef
diff --git a/cpan/Compress-Raw-Zlib/examples/filtinf b/cpan/Compress-Raw-Zlib/examples/filtinf
index 1a99e885b0..1a99e885b0 100755..100644
--- a/cpan/Compress-Raw-Zlib/examples/filtinf
+++ b/cpan/Compress-Raw-Zlib/examples/filtinf
diff --git a/cpan/DB_File/config.in b/cpan/DB_File/config.in
index 292b09a5fb..292b09a5fb 100755..100644
--- a/cpan/DB_File/config.in
+++ b/cpan/DB_File/config.in
diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum
index 3c0185892f..3c0185892f 100755..100644
--- a/cpan/Digest-SHA/shasum
+++ b/cpan/Digest-SHA/shasum
diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
index 773c0a09fb..773c0a09fb 100755..100644
--- a/cpan/Encode/bin/enc2xs
+++ b/cpan/Encode/bin/enc2xs
diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv
index 9fdebd193c..9fdebd193c 100755..100644
--- a/cpan/Encode/bin/piconv
+++ b/cpan/Encode/bin/piconv
diff --git a/cpan/Encode/bin/ucm2table b/cpan/Encode/bin/ucm2table
index 66e63fcdb9..66e63fcdb9 100755..100644
--- a/cpan/Encode/bin/ucm2table
+++ b/cpan/Encode/bin/ucm2table
diff --git a/cpan/Encode/bin/ucmsort b/cpan/Encode/bin/ucmsort
index 3e037dc02b..3e037dc02b 100755..100644
--- a/cpan/Encode/bin/ucmsort
+++ b/cpan/Encode/bin/ucmsort
diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump
index ae0da30852..ae0da30852 100755..100644
--- a/cpan/Encode/bin/unidump
+++ b/cpan/Encode/bin/unidump
diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh
index 5874aa61c7..5874aa61c7 100755..100644
--- a/cpan/ExtUtils-MakeMaker/bin/instmodsh
+++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh
diff --git a/cpan/IO-Compress/examples/compress-zlib/filtdef b/cpan/IO-Compress/examples/compress-zlib/filtdef
index 57dfeb9068..57dfeb9068 100755..100644
--- a/cpan/IO-Compress/examples/compress-zlib/filtdef
+++ b/cpan/IO-Compress/examples/compress-zlib/filtdef
diff --git a/cpan/IO-Compress/examples/compress-zlib/filtinf b/cpan/IO-Compress/examples/compress-zlib/filtinf
index 1df202b1d7..1df202b1d7 100755..100644
--- a/cpan/IO-Compress/examples/compress-zlib/filtinf
+++ b/cpan/IO-Compress/examples/compress-zlib/filtinf
diff --git a/cpan/IO-Compress/examples/compress-zlib/gzcat b/cpan/IO-Compress/examples/compress-zlib/gzcat
index 5241a5a11f..5241a5a11f 100755..100644
--- a/cpan/IO-Compress/examples/compress-zlib/gzcat
+++ b/cpan/IO-Compress/examples/compress-zlib/gzcat
diff --git a/cpan/IO-Compress/examples/compress-zlib/gzgrep b/cpan/IO-Compress/examples/compress-zlib/gzgrep
index 324d3e615f..324d3e615f 100755..100644
--- a/cpan/IO-Compress/examples/compress-zlib/gzgrep
+++ b/cpan/IO-Compress/examples/compress-zlib/gzgrep
diff --git a/cpan/IO-Compress/examples/compress-zlib/gzstream b/cpan/IO-Compress/examples/compress-zlib/gzstream
index faacb0a0dd..faacb0a0dd 100755..100644
--- a/cpan/IO-Compress/examples/compress-zlib/gzstream
+++ b/cpan/IO-Compress/examples/compress-zlib/gzstream
diff --git a/cpan/IO-Compress/examples/io/anycat b/cpan/IO-Compress/examples/io/anycat
index b7f7001b5e..b7f7001b5e 100755..100644
--- a/cpan/IO-Compress/examples/io/anycat
+++ b/cpan/IO-Compress/examples/io/anycat
diff --git a/cpan/IO-Compress/examples/io/bzip2/bzcat b/cpan/IO-Compress/examples/io/bzip2/bzcat
index 81123200c5..81123200c5 100755..100644
--- a/cpan/IO-Compress/examples/io/bzip2/bzcat
+++ b/cpan/IO-Compress/examples/io/bzip2/bzcat
diff --git a/cpan/IO-Compress/examples/io/bzip2/bzgrep b/cpan/IO-Compress/examples/io/bzip2/bzgrep
index ceb4e8412b..ceb4e8412b 100755..100644
--- a/cpan/IO-Compress/examples/io/bzip2/bzgrep
+++ b/cpan/IO-Compress/examples/io/bzip2/bzgrep
diff --git a/cpan/IO-Compress/examples/io/bzip2/bzstream b/cpan/IO-Compress/examples/io/bzip2/bzstream
index 3e88d68258..3e88d68258 100755..100644
--- a/cpan/IO-Compress/examples/io/bzip2/bzstream
+++ b/cpan/IO-Compress/examples/io/bzip2/bzstream
diff --git a/cpan/IO-Compress/examples/io/gzip/gzcat b/cpan/IO-Compress/examples/io/gzip/gzcat
index 5572bae959..5572bae959 100755..100644
--- a/cpan/IO-Compress/examples/io/gzip/gzcat
+++ b/cpan/IO-Compress/examples/io/gzip/gzcat
diff --git a/cpan/IO-Compress/examples/io/gzip/gzgrep b/cpan/IO-Compress/examples/io/gzip/gzgrep
index 33820ba064..33820ba064 100755..100644
--- a/cpan/IO-Compress/examples/io/gzip/gzgrep
+++ b/cpan/IO-Compress/examples/io/gzip/gzgrep
diff --git a/cpan/IO-Compress/examples/io/gzip/gzstream b/cpan/IO-Compress/examples/io/gzip/gzstream
index 9d03bc5749..9d03bc5749 100755..100644
--- a/cpan/IO-Compress/examples/io/gzip/gzstream
+++ b/cpan/IO-Compress/examples/io/gzip/gzstream
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
index 2ba1a6266f..2ba1a6266f 100755..100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
index 609928fd4e..609928fd4e 100755..100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
diff --git a/cpan/IO-Compress/t/compress/oneshot.pl b/cpan/IO-Compress/t/compress/oneshot.pl
index 78d17275b7..78d17275b7 100755..100644
--- a/cpan/IO-Compress/t/compress/oneshot.pl
+++ b/cpan/IO-Compress/t/compress/oneshot.pl
diff --git a/cpan/IO-Compress/t/cz-03zlib-v1.t b/cpan/IO-Compress/t/cz-03zlib-v1.t
index cb9ff1fcb5..cb9ff1fcb5 100755..100644
--- a/cpan/IO-Compress/t/cz-03zlib-v1.t
+++ b/cpan/IO-Compress/t/cz-03zlib-v1.t
diff --git a/cpan/Locale-Codes/t/alias_code.t b/cpan/Locale-Codes/t/alias_code.t
index b763372100..b763372100 100755..100644
--- a/cpan/Locale-Codes/t/alias_code.t
+++ b/cpan/Locale-Codes/t/alias_code.t
diff --git a/cpan/Locale-Codes/t/code2country.t b/cpan/Locale-Codes/t/code2country.t
index 43c06a03a5..43c06a03a5 100755..100644
--- a/cpan/Locale-Codes/t/code2country.t
+++ b/cpan/Locale-Codes/t/code2country.t
diff --git a/cpan/Locale-Codes/t/code2currency.t b/cpan/Locale-Codes/t/code2currency.t
index 6b32b311e7..6b32b311e7 100755..100644
--- a/cpan/Locale-Codes/t/code2currency.t
+++ b/cpan/Locale-Codes/t/code2currency.t
diff --git a/cpan/Locale-Codes/t/code2language.t b/cpan/Locale-Codes/t/code2language.t
index a0308d4e5b..a0308d4e5b 100755..100644
--- a/cpan/Locale-Codes/t/code2language.t
+++ b/cpan/Locale-Codes/t/code2language.t
diff --git a/cpan/Locale-Codes/t/code2script.t b/cpan/Locale-Codes/t/code2script.t
index ba700f956f..ba700f956f 100755..100644
--- a/cpan/Locale-Codes/t/code2script.t
+++ b/cpan/Locale-Codes/t/code2script.t
diff --git a/cpan/Locale-Codes/t/country.t b/cpan/Locale-Codes/t/country.t
index 830fa55392..830fa55392 100755..100644
--- a/cpan/Locale-Codes/t/country.t
+++ b/cpan/Locale-Codes/t/country.t
diff --git a/cpan/Locale-Codes/t/country2code.t b/cpan/Locale-Codes/t/country2code.t
index 1eacf466ee..1eacf466ee 100755..100644
--- a/cpan/Locale-Codes/t/country2code.t
+++ b/cpan/Locale-Codes/t/country2code.t
diff --git a/cpan/Locale-Codes/t/country_code2code.t b/cpan/Locale-Codes/t/country_code2code.t
index 5ec8117fe4..5ec8117fe4 100755..100644
--- a/cpan/Locale-Codes/t/country_code2code.t
+++ b/cpan/Locale-Codes/t/country_code2code.t
diff --git a/cpan/Locale-Codes/t/currency2code.t b/cpan/Locale-Codes/t/currency2code.t
index 6df23cd7c3..6df23cd7c3 100755..100644
--- a/cpan/Locale-Codes/t/currency2code.t
+++ b/cpan/Locale-Codes/t/currency2code.t
diff --git a/cpan/Locale-Codes/t/language.t b/cpan/Locale-Codes/t/language.t
index 14364e7245..14364e7245 100755..100644
--- a/cpan/Locale-Codes/t/language.t
+++ b/cpan/Locale-Codes/t/language.t
diff --git a/cpan/Locale-Codes/t/language2code.t b/cpan/Locale-Codes/t/language2code.t
index 2e5bb23dc1..2e5bb23dc1 100755..100644
--- a/cpan/Locale-Codes/t/language2code.t
+++ b/cpan/Locale-Codes/t/language2code.t
diff --git a/cpan/Locale-Codes/t/script2code.t b/cpan/Locale-Codes/t/script2code.t
index 415e1a6c53..415e1a6c53 100755..100644
--- a/cpan/Locale-Codes/t/script2code.t
+++ b/cpan/Locale-Codes/t/script2code.t
diff --git a/cpan/Locale-Maketext-Simple/t/1-basic.t b/cpan/Locale-Maketext-Simple/t/1-basic.t
index 91d033b795..91d033b795 100755..100644
--- a/cpan/Locale-Maketext-Simple/t/1-basic.t
+++ b/cpan/Locale-Maketext-Simple/t/1-basic.t
diff --git a/cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t b/cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t
index 47a982307e..47a982307e 100755..100644
--- a/cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t
+++ b/cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t
diff --git a/cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t b/cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t
index a8807106dd..a8807106dd 100755..100644
--- a/cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t
+++ b/cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t
diff --git a/cpan/Module-Build/scripts/config_data b/cpan/Module-Build/scripts/config_data
index d08a5f3b1f..d08a5f3b1f 100755..100644
--- a/cpan/Module-Build/scripts/config_data
+++ b/cpan/Module-Build/scripts/config_data
diff --git a/cpan/Module-Build/t/compat/exit.t b/cpan/Module-Build/t/compat/exit.t
index 3672c938c3..3672c938c3 100755..100644
--- a/cpan/Module-Build/t/compat/exit.t
+++ b/cpan/Module-Build/t/compat/exit.t
diff --git a/cpan/Term-ANSIColor/t/basic.t b/cpan/Term-ANSIColor/t/basic.t
index c6fed3e54c..c6fed3e54c 100755..100644
--- a/cpan/Term-ANSIColor/t/basic.t
+++ b/cpan/Term-ANSIColor/t/basic.t
diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove
index 8264171431..8264171431 100755..100644
--- a/cpan/Test-Harness/bin/prove
+++ b/cpan/Test-Harness/bin/prove
diff --git a/cpan/Test-Harness/t/bailout.t b/cpan/Test-Harness/t/bailout.t
index e10b133e0f..e10b133e0f 100755..100644
--- a/cpan/Test-Harness/t/bailout.t
+++ b/cpan/Test-Harness/t/bailout.t
diff --git a/cpan/Test-Harness/t/nofork.t b/cpan/Test-Harness/t/nofork.t
index 00b8dd6dd5..00b8dd6dd5 100755..100644
--- a/cpan/Test-Harness/t/nofork.t
+++ b/cpan/Test-Harness/t/nofork.t
diff --git a/cpan/Test-Harness/t/parse.t b/cpan/Test-Harness/t/parse.t
index 68c1df53db..68c1df53db 100755..100644
--- a/cpan/Test-Harness/t/parse.t
+++ b/cpan/Test-Harness/t/parse.t
diff --git a/cpan/Test-Harness/t/source.t b/cpan/Test-Harness/t/source.t
index 3950143e0d..3950143e0d 100755..100644
--- a/cpan/Test-Harness/t/source.t
+++ b/cpan/Test-Harness/t/source.t
diff --git a/cpan/Test-Harness/t/source_tests/psql b/cpan/Test-Harness/t/source_tests/psql
index f32e6a7ff6..f32e6a7ff6 100755..100644
--- a/cpan/Test-Harness/t/source_tests/psql
+++ b/cpan/Test-Harness/t/source_tests/psql
diff --git a/cpan/Test-Harness/t/source_tests/psql.bat b/cpan/Test-Harness/t/source_tests/psql.bat
index 8f43ddd768..8f43ddd768 100755..100644
--- a/cpan/Test-Harness/t/source_tests/psql.bat
+++ b/cpan/Test-Harness/t/source_tests/psql.bat
diff --git a/cpan/Test-Harness/t/streams.t b/cpan/Test-Harness/t/streams.t
index f4e97671e8..f4e97671e8 100755..100644
--- a/cpan/Test-Harness/t/streams.t
+++ b/cpan/Test-Harness/t/streams.t
diff --git a/cpan/autodie/lib/Fatal.pm b/cpan/autodie/lib/Fatal.pm
index aabdf781de..aabdf781de 100755..100644
--- a/cpan/autodie/lib/Fatal.pm
+++ b/cpan/autodie/lib/Fatal.pm
diff --git a/cpan/autodie/t/00-load.t b/cpan/autodie/t/00-load.t
index d07fcaefbe..d07fcaefbe 100755..100644
--- a/cpan/autodie/t/00-load.t
+++ b/cpan/autodie/t/00-load.t
diff --git a/cpan/autodie/t/Fatal.t b/cpan/autodie/t/Fatal.t
index a291837d13..a291837d13 100755..100644
--- a/cpan/autodie/t/Fatal.t
+++ b/cpan/autodie/t/Fatal.t
diff --git a/cpan/autodie/t/autodie.t b/cpan/autodie/t/autodie.t
index c528a160a4..c528a160a4 100755..100644
--- a/cpan/autodie/t/autodie.t
+++ b/cpan/autodie/t/autodie.t
diff --git a/cpan/autodie/t/backcompat.t b/cpan/autodie/t/backcompat.t
index acb81245b8..acb81245b8 100755..100644
--- a/cpan/autodie/t/backcompat.t
+++ b/cpan/autodie/t/backcompat.t
diff --git a/cpan/autodie/t/basic_exceptions.t b/cpan/autodie/t/basic_exceptions.t
index c732dd587d..c732dd587d 100755..100644
--- a/cpan/autodie/t/basic_exceptions.t
+++ b/cpan/autodie/t/basic_exceptions.t
diff --git a/cpan/autodie/t/binmode.t b/cpan/autodie/t/binmode.t
index 317a41303c..317a41303c 100755..100644
--- a/cpan/autodie/t/binmode.t
+++ b/cpan/autodie/t/binmode.t
diff --git a/cpan/autodie/t/blog_hints.t b/cpan/autodie/t/blog_hints.t
index 395cb14342..395cb14342 100755..100644
--- a/cpan/autodie/t/blog_hints.t
+++ b/cpan/autodie/t/blog_hints.t
diff --git a/cpan/autodie/t/caller.t b/cpan/autodie/t/caller.t
index 1874353627..1874353627 100755..100644
--- a/cpan/autodie/t/caller.t
+++ b/cpan/autodie/t/caller.t
diff --git a/cpan/autodie/t/context.t b/cpan/autodie/t/context.t
index 39b86497c6..39b86497c6 100755..100644
--- a/cpan/autodie/t/context.t
+++ b/cpan/autodie/t/context.t
diff --git a/cpan/autodie/t/context_lexical.t b/cpan/autodie/t/context_lexical.t
index ce50b75c4b..ce50b75c4b 100755..100644
--- a/cpan/autodie/t/context_lexical.t
+++ b/cpan/autodie/t/context_lexical.t
diff --git a/cpan/autodie/t/crickey.t b/cpan/autodie/t/crickey.t
index 91a7d7837a..91a7d7837a 100755..100644
--- a/cpan/autodie/t/crickey.t
+++ b/cpan/autodie/t/crickey.t
diff --git a/cpan/autodie/t/dbmopen.t b/cpan/autodie/t/dbmopen.t
index 31698e65be..31698e65be 100755..100644
--- a/cpan/autodie/t/dbmopen.t
+++ b/cpan/autodie/t/dbmopen.t
diff --git a/cpan/autodie/t/eval_error.t b/cpan/autodie/t/eval_error.t
index a2aa8939a0..a2aa8939a0 100755..100644
--- a/cpan/autodie/t/eval_error.t
+++ b/cpan/autodie/t/eval_error.t
diff --git a/cpan/autodie/t/exception_class.t b/cpan/autodie/t/exception_class.t
index 127893bcbf..127893bcbf 100755..100644
--- a/cpan/autodie/t/exception_class.t
+++ b/cpan/autodie/t/exception_class.t
diff --git a/cpan/autodie/t/exceptions.t b/cpan/autodie/t/exceptions.t
index 2f8c2382fc..2f8c2382fc 100755..100644
--- a/cpan/autodie/t/exceptions.t
+++ b/cpan/autodie/t/exceptions.t
diff --git a/cpan/autodie/t/exec.t b/cpan/autodie/t/exec.t
index 0d4439a8c1..0d4439a8c1 100755..100644
--- a/cpan/autodie/t/exec.t
+++ b/cpan/autodie/t/exec.t
diff --git a/cpan/autodie/t/filehandles.t b/cpan/autodie/t/filehandles.t
index 5bdf732e2c..5bdf732e2c 100755..100644
--- a/cpan/autodie/t/filehandles.t
+++ b/cpan/autodie/t/filehandles.t
diff --git a/cpan/autodie/t/fileno.t b/cpan/autodie/t/fileno.t
index 2b9c2598e7..2b9c2598e7 100755..100644
--- a/cpan/autodie/t/fileno.t
+++ b/cpan/autodie/t/fileno.t
diff --git a/cpan/autodie/t/flock.t b/cpan/autodie/t/flock.t
index 6421a56aac..6421a56aac 100755..100644
--- a/cpan/autodie/t/flock.t
+++ b/cpan/autodie/t/flock.t
diff --git a/cpan/autodie/t/format-clobber.t b/cpan/autodie/t/format-clobber.t
index ee8e8bd5c8..ee8e8bd5c8 100755..100644
--- a/cpan/autodie/t/format-clobber.t
+++ b/cpan/autodie/t/format-clobber.t
diff --git a/cpan/autodie/t/hints.t b/cpan/autodie/t/hints.t
index b508fee235..b508fee235 100755..100644
--- a/cpan/autodie/t/hints.t
+++ b/cpan/autodie/t/hints.t
diff --git a/cpan/autodie/t/hints_insist.t b/cpan/autodie/t/hints_insist.t
index ab618d2325..ab618d2325 100755..100644
--- a/cpan/autodie/t/hints_insist.t
+++ b/cpan/autodie/t/hints_insist.t
diff --git a/cpan/autodie/t/hints_pod_examples.t b/cpan/autodie/t/hints_pod_examples.t
index a3c6f0f553..a3c6f0f553 100755..100644
--- a/cpan/autodie/t/hints_pod_examples.t
+++ b/cpan/autodie/t/hints_pod_examples.t
diff --git a/cpan/autodie/t/hints_provider_does.t b/cpan/autodie/t/hints_provider_does.t
index a671b73e13..a671b73e13 100755..100644
--- a/cpan/autodie/t/hints_provider_does.t
+++ b/cpan/autodie/t/hints_provider_does.t
diff --git a/cpan/autodie/t/hints_provider_easy_does_it.t b/cpan/autodie/t/hints_provider_easy_does_it.t
index 2606ff8cb3..2606ff8cb3 100755..100644
--- a/cpan/autodie/t/hints_provider_easy_does_it.t
+++ b/cpan/autodie/t/hints_provider_easy_does_it.t
diff --git a/cpan/autodie/t/hints_provider_isa.t b/cpan/autodie/t/hints_provider_isa.t
index 022b34f525..022b34f525 100755..100644
--- a/cpan/autodie/t/hints_provider_isa.t
+++ b/cpan/autodie/t/hints_provider_isa.t
diff --git a/cpan/autodie/t/internal-backcompat.t b/cpan/autodie/t/internal-backcompat.t
index 59898366c0..59898366c0 100755..100644
--- a/cpan/autodie/t/internal-backcompat.t
+++ b/cpan/autodie/t/internal-backcompat.t
diff --git a/cpan/autodie/t/internal.t b/cpan/autodie/t/internal.t
index c1189444cb..c1189444cb 100755..100644
--- a/cpan/autodie/t/internal.t
+++ b/cpan/autodie/t/internal.t
diff --git a/cpan/autodie/t/lethal.t b/cpan/autodie/t/lethal.t
index 244d2f82b2..244d2f82b2 100755..100644
--- a/cpan/autodie/t/lethal.t
+++ b/cpan/autodie/t/lethal.t
diff --git a/cpan/autodie/t/mkdir.t b/cpan/autodie/t/mkdir.t
index 7bd6529086..7bd6529086 100755..100644
--- a/cpan/autodie/t/mkdir.t
+++ b/cpan/autodie/t/mkdir.t
diff --git a/cpan/autodie/t/open.t b/cpan/autodie/t/open.t
index 359eb9a9f2..359eb9a9f2 100755..100644
--- a/cpan/autodie/t/open.t
+++ b/cpan/autodie/t/open.t
diff --git a/cpan/autodie/t/recv.t b/cpan/autodie/t/recv.t
index cfaa679144..cfaa679144 100755..100644
--- a/cpan/autodie/t/recv.t
+++ b/cpan/autodie/t/recv.t
diff --git a/cpan/autodie/t/repeat.t b/cpan/autodie/t/repeat.t
index 5f85f1218c..5f85f1218c 100755..100644
--- a/cpan/autodie/t/repeat.t
+++ b/cpan/autodie/t/repeat.t
diff --git a/cpan/autodie/t/scope_leak.t b/cpan/autodie/t/scope_leak.t
index 529daa3ecd..529daa3ecd 100755..100644
--- a/cpan/autodie/t/scope_leak.t
+++ b/cpan/autodie/t/scope_leak.t
diff --git a/cpan/autodie/t/string-eval-basic.t b/cpan/autodie/t/string-eval-basic.t
index 62e55006ea..62e55006ea 100755..100644
--- a/cpan/autodie/t/string-eval-basic.t
+++ b/cpan/autodie/t/string-eval-basic.t
diff --git a/cpan/autodie/t/string-eval-leak.t b/cpan/autodie/t/string-eval-leak.t
index 329bcfa40e..329bcfa40e 100755..100644
--- a/cpan/autodie/t/string-eval-leak.t
+++ b/cpan/autodie/t/string-eval-leak.t
diff --git a/cpan/autodie/t/sysopen.t b/cpan/autodie/t/sysopen.t
index ab489b7830..ab489b7830 100755..100644
--- a/cpan/autodie/t/sysopen.t
+++ b/cpan/autodie/t/sysopen.t
diff --git a/cpan/autodie/t/truncate.t b/cpan/autodie/t/truncate.t
index e69ee32d2e..e69ee32d2e 100755..100644
--- a/cpan/autodie/t/truncate.t
+++ b/cpan/autodie/t/truncate.t
diff --git a/cpan/autodie/t/unlink.t b/cpan/autodie/t/unlink.t
index f301500fda..f301500fda 100755..100644
--- a/cpan/autodie/t/unlink.t
+++ b/cpan/autodie/t/unlink.t
diff --git a/cpan/autodie/t/user-context.t b/cpan/autodie/t/user-context.t
index 65b6a8876a..65b6a8876a 100755..100644
--- a/cpan/autodie/t/user-context.t
+++ b/cpan/autodie/t/user-context.t
diff --git a/cpan/autodie/t/usersub.t b/cpan/autodie/t/usersub.t
index 4266804ca9..4266804ca9 100755..100644
--- a/cpan/autodie/t/usersub.t
+++ b/cpan/autodie/t/usersub.t
diff --git a/cpan/autodie/t/version.t b/cpan/autodie/t/version.t
index a729129e88..a729129e88 100755..100644
--- a/cpan/autodie/t/version.t
+++ b/cpan/autodie/t/version.t
diff --git a/cpan/autodie/t/version_tag.t b/cpan/autodie/t/version_tag.t
index 89e1412e47..89e1412e47 100755..100644
--- a/cpan/autodie/t/version_tag.t
+++ b/cpan/autodie/t/version_tag.t
diff --git a/cpan/libnet/demos/ftp b/cpan/libnet/demos/ftp
index 610e102999..610e102999 100755..100644
--- a/cpan/libnet/demos/ftp
+++ b/cpan/libnet/demos/ftp
diff --git a/cpan/libnet/demos/nntp b/cpan/libnet/demos/nntp
index 7753fbc299..7753fbc299 100755..100644
--- a/cpan/libnet/demos/nntp
+++ b/cpan/libnet/demos/nntp
diff --git a/cpan/libnet/demos/smtp.self b/cpan/libnet/demos/smtp.self
index 5cfbc2b824..5cfbc2b824 100755..100644
--- a/cpan/libnet/demos/smtp.self
+++ b/cpan/libnet/demos/smtp.self
diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t
index 3cce9f5b01..3cce9f5b01 100755..100644
--- a/cpan/podlators/t/devise-date.t
+++ b/cpan/podlators/t/devise-date.t
diff --git a/cpan/podlators/t/man-heading.t b/cpan/podlators/t/man-heading.t
index f7e470e3c0..f7e470e3c0 100755..100644
--- a/cpan/podlators/t/man-heading.t
+++ b/cpan/podlators/t/man-heading.t
diff --git a/cpan/podlators/t/overstrike.t b/cpan/podlators/t/overstrike.t
index bbfa0db9fb..bbfa0db9fb 100755..100644
--- a/cpan/podlators/t/overstrike.t
+++ b/cpan/podlators/t/overstrike.t
diff --git a/dist/threads/threads.xs b/dist/threads/threads.xs
index f4e6946e35..f4e6946e35 100755..100644
--- a/dist/threads/threads.xs
+++ b/dist/threads/threads.xs
diff --git a/ext/SDBM_File/sdbm/grind b/ext/SDBM_File/sdbm/grind
index 23728b7d49..23728b7d49 100755..100644
--- a/ext/SDBM_File/sdbm/grind
+++ b/ext/SDBM_File/sdbm/grind
diff --git a/ext/VMS-Stdio/t/vms_stdio.t b/ext/VMS-Stdio/t/vms_stdio.t
index 77505d8fac..77505d8fac 100755..100644
--- a/ext/VMS-Stdio/t/vms_stdio.t
+++ b/ext/VMS-Stdio/t/vms_stdio.t
diff --git a/genpacksizetables.pl b/genpacksizetables.pl
index 9dffc2c6ca..9dffc2c6ca 100755..100644
--- a/genpacksizetables.pl
+++ b/genpacksizetables.pl
diff --git a/hints/aix_4.sh b/hints/aix_4.sh
index 08a689480a..08a689480a 100755..100644
--- a/hints/aix_4.sh
+++ b/hints/aix_4.sh
diff --git a/installhtml b/installhtml
index b243df7d96..b243df7d96 100755..100644
--- a/installhtml
+++ b/installhtml
diff --git a/mad/p55 b/mad/p55
index 20b879bbd2..20b879bbd2 100755..100644
--- a/mad/p55
+++ b/mad/p55
diff --git a/makedepend.SH b/makedepend.SH
index 445ccfa667..445ccfa667 100755..100644
--- a/makedepend.SH
+++ b/makedepend.SH
diff --git a/pod/buildtoc b/pod/buildtoc
index 12cbc94592..12cbc94592 100755..100644
--- a/pod/buildtoc
+++ b/pod/buildtoc
diff --git a/pod/pod2man.PL b/pod/pod2man.PL
index 7d7d68f46b..7d7d68f46b 100755..100644
--- a/pod/pod2man.PL
+++ b/pod/pod2man.PL
diff --git a/pod/pod2text.PL b/pod/pod2text.PL
index ede0fe76b0..ede0fe76b0 100755..100644
--- a/pod/pod2text.PL
+++ b/pod/pod2text.PL
diff --git a/pod/rofftoc b/pod/rofftoc
index a2d0e7ba20..a2d0e7ba20 100755..100644
--- a/pod/rofftoc
+++ b/pod/rofftoc
diff --git a/pod/splitman b/pod/splitman
index 9fe404a061..9fe404a061 100755..100644
--- a/pod/splitman
+++ b/pod/splitman
diff --git a/pod/splitpod b/pod/splitpod
index 10fd6afb11..10fd6afb11 100755..100644
--- a/pod/splitpod
+++ b/pod/splitpod
diff --git a/qnx/ar b/qnx/ar
index 21a6709bf6..21a6709bf6 100755..100644
--- a/qnx/ar
+++ b/qnx/ar
diff --git a/qnx/cpp b/qnx/cpp
index 6459af249f..6459af249f 100755..100644
--- a/qnx/cpp
+++ b/qnx/cpp
diff --git a/t/comp/use.t b/t/comp/use.t
index c9b76d79a4..c9b76d79a4 100755..100644
--- a/t/comp/use.t
+++ b/t/comp/use.t
diff --git a/t/io/openpid.t b/t/io/openpid.t
index 946fa5e3c2..946fa5e3c2 100755..100644
--- a/t/io/openpid.t
+++ b/t/io/openpid.t
diff --git a/t/op/filetest_t.t b/t/op/filetest_t.t
index 350856411d..350856411d 100755..100644
--- a/t/op/filetest_t.t
+++ b/t/op/filetest_t.t
diff --git a/t/op/sigdispatch.t b/t/op/sigdispatch.t
index 5d9908e6ed..5d9908e6ed 100755..100644
--- a/t/op/sigdispatch.t
+++ b/t/op/sigdispatch.t
diff --git a/t/porting/diag.t b/t/porting/diag.t
index 7c051721cb..7c051721cb 100755..100644
--- a/t/porting/diag.t
+++ b/t/porting/diag.t
diff --git a/t/porting/exec-bit.t b/t/porting/exec-bit.t
new file mode 100644
index 0000000000..7971ed7c27
--- /dev/null
+++ b/t/porting/exec-bit.t
@@ -0,0 +1,43 @@
+#!/perl -w
+use 5.010;
+use strict;
+
+# This test checks that anything with an executable bit is
+# identified in Porting/exec-bit.txt to makerel will set
+# the exe bit in the release tarball
+
+require './test.pl';
+
+plan('no_plan');
+
+use ExtUtils::Manifest qw(maniread);
+use File::Basename;
+use File::Find;
+use File::Spec::Functions;
+
+# Copied from Porting/makerel - these will get +x in the tarball
+# XXX refactor? -- dagolden, 2010-07-23
+my %exe_list =
+ map { $_ => 1 }
+ map { my ($f) = split; glob($f) }
+ grep { $_ !~ /\A#/ && $_ !~ /\A\s*\z/ }
+ map { split "\n" }
+ do { local (@ARGV, $/) = '../Porting/exec-bit.txt'; <> };
+
+# Get MANIFEST
+$ExtUtils::Manifest::Quiet = 1;
+my @manifest = sort keys %{ maniread("../MANIFEST") };
+
+# Check that +x files in repo get +x from makerel
+for my $f ( @manifest ) {
+ next unless -x "../$f";
+
+ ok( $exe_list{$f}, "tarball will chmod +x $f" )
+ or diag( "Remove the exec bit or add to Porting/exec-bit.txt" );
+
+ delete $exe_list{$f}; # seen it
+}
+
+ok( ! %exe_list, "Everything in Porting/exec-bit.txt has +x in repo" )
+ or diag( "Files missing exec bit:\n " . join("\n ", sort keys %exe_list) . "\n");
+
diff --git a/t/test.pl b/t/test.pl
index 2bf429c11c..2bf429c11c 100755..100644
--- a/t/test.pl
+++ b/t/test.pl
diff --git a/uconfig.sh b/uconfig.sh
index 378c129828..378c129828 100755..100644
--- a/uconfig.sh
+++ b/uconfig.sh
diff --git a/vms/ext/filespec.t b/vms/ext/filespec.t
index b40cc816f3..b40cc816f3 100644..100755
--- a/vms/ext/filespec.t
+++ b/vms/ext/filespec.t
diff --git a/win32/distclean.bat b/win32/distclean.bat
index 18b94b0cec..18b94b0cec 100755..100644
--- a/win32/distclean.bat
+++ b/win32/distclean.bat
diff --git a/win32/perlexe.manifest b/win32/perlexe.manifest
index 24ee19dca4..24ee19dca4 100755..100644
--- a/win32/perlexe.manifest
+++ b/win32/perlexe.manifest
diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH
index 296fdc8efc..296fdc8efc 100755..100644
--- a/x2p/Makefile.SH
+++ b/x2p/Makefile.SH
diff --git a/x2p/cflags.SH b/x2p/cflags.SH
index 255f586f24..255f586f24 100755..100644
--- a/x2p/cflags.SH
+++ b/x2p/cflags.SH