From ff906f87ce1519416ddfff76ae8e1d8fa42ed082 Mon Sep 17 00:00:00 2001 From: David Golden Date: Sat, 24 Jul 2010 00:44:40 -0700 Subject: [PATCH] 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. --- Cross/Makefile-cross-SH | 0 Cross/build-arm-n770-sh | 0 Cross/cflags-cross-arm | 0 MANIFEST | 4 +- Porting/GitUtils.pm | 0 Porting/Maintainers.pl | 0 Porting/bump-perl-version | 0 Porting/cherrymaint | 0 Porting/config_h.pl | 0 Porting/core-cpan-diff | 0 Porting/corelist-perldelta.pl | 0 Porting/exec-bit.txt | 26 +++++++++++++ Porting/findrfuncs | 0 Porting/findvars | 0 Porting/fixCORE | 0 Porting/fixvars | 0 Porting/git-deltatool | 0 Porting/git-find-p4-change | 0 Porting/make_dot_patch.pl | 0 Porting/make_snapshot.pl | 0 Porting/makerel | 28 +++----------- Porting/rt_list_patches | 0 cflags.SH | 0 config_h.SH | 0 cpan/CGI/examples/make_links.pl | 0 cpan/CGI/examples/nph-clock.cgi | 0 cpan/CGI/examples/nph-multipart.cgi | 0 cpan/CPAN/scripts/cpan | 0 cpan/Compress-Raw-Zlib/config.in | 0 cpan/Compress-Raw-Zlib/examples/filtdef | 0 cpan/Compress-Raw-Zlib/examples/filtinf | 0 cpan/DB_File/config.in | 0 cpan/Digest-SHA/shasum | 0 cpan/Encode/bin/enc2xs | 0 cpan/Encode/bin/piconv | 0 cpan/Encode/bin/ucm2table | 0 cpan/Encode/bin/ucmsort | 0 cpan/Encode/bin/unidump | 0 cpan/ExtUtils-MakeMaker/bin/instmodsh | 0 cpan/IO-Compress/examples/compress-zlib/filtdef | 0 cpan/IO-Compress/examples/compress-zlib/filtinf | 0 cpan/IO-Compress/examples/compress-zlib/gzcat | 0 cpan/IO-Compress/examples/compress-zlib/gzgrep | 0 cpan/IO-Compress/examples/compress-zlib/gzstream | 0 cpan/IO-Compress/examples/io/anycat | 0 cpan/IO-Compress/examples/io/bzip2/bzcat | 0 cpan/IO-Compress/examples/io/bzip2/bzgrep | 0 cpan/IO-Compress/examples/io/bzip2/bzstream | 0 cpan/IO-Compress/examples/io/gzip/gzcat | 0 cpan/IO-Compress/examples/io/gzip/gzgrep | 0 cpan/IO-Compress/examples/io/gzip/gzstream | 0 .../lib/IO/Uncompress/Adapter/Identity.pm | 0 cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm | 0 cpan/IO-Compress/t/compress/oneshot.pl | 0 cpan/IO-Compress/t/cz-03zlib-v1.t | 0 cpan/Locale-Codes/t/alias_code.t | 0 cpan/Locale-Codes/t/code2country.t | 0 cpan/Locale-Codes/t/code2currency.t | 0 cpan/Locale-Codes/t/code2language.t | 0 cpan/Locale-Codes/t/code2script.t | 0 cpan/Locale-Codes/t/country.t | 0 cpan/Locale-Codes/t/country2code.t | 0 cpan/Locale-Codes/t/country_code2code.t | 0 cpan/Locale-Codes/t/currency2code.t | 0 cpan/Locale-Codes/t/language.t | 0 cpan/Locale-Codes/t/language2code.t | 0 cpan/Locale-Codes/t/script2code.t | 0 cpan/Locale-Maketext-Simple/t/1-basic.t | 0 .../t/2-load_po_without_i_default.t | 0 .../t/3-load_po_with_i_default.t | 0 cpan/Module-Build/scripts/config_data | 0 cpan/Module-Build/t/compat/exit.t | 0 cpan/Term-ANSIColor/t/basic.t | 0 cpan/Test-Harness/bin/prove | 0 cpan/Test-Harness/t/bailout.t | 0 cpan/Test-Harness/t/nofork.t | 0 cpan/Test-Harness/t/parse.t | 0 cpan/Test-Harness/t/source.t | 0 cpan/Test-Harness/t/source_tests/psql | 0 cpan/Test-Harness/t/source_tests/psql.bat | 0 cpan/Test-Harness/t/streams.t | 0 cpan/autodie/lib/Fatal.pm | 0 cpan/autodie/t/00-load.t | 0 cpan/autodie/t/Fatal.t | 0 cpan/autodie/t/autodie.t | 0 cpan/autodie/t/backcompat.t | 0 cpan/autodie/t/basic_exceptions.t | 0 cpan/autodie/t/binmode.t | 0 cpan/autodie/t/blog_hints.t | 0 cpan/autodie/t/caller.t | 0 cpan/autodie/t/context.t | 0 cpan/autodie/t/context_lexical.t | 0 cpan/autodie/t/crickey.t | 0 cpan/autodie/t/dbmopen.t | 0 cpan/autodie/t/eval_error.t | 0 cpan/autodie/t/exception_class.t | 0 cpan/autodie/t/exceptions.t | 0 cpan/autodie/t/exec.t | 0 cpan/autodie/t/filehandles.t | 0 cpan/autodie/t/fileno.t | 0 cpan/autodie/t/flock.t | 0 cpan/autodie/t/format-clobber.t | 0 cpan/autodie/t/hints.t | 0 cpan/autodie/t/hints_insist.t | 0 cpan/autodie/t/hints_pod_examples.t | 0 cpan/autodie/t/hints_provider_does.t | 0 cpan/autodie/t/hints_provider_easy_does_it.t | 0 cpan/autodie/t/hints_provider_isa.t | 0 cpan/autodie/t/internal-backcompat.t | 0 cpan/autodie/t/internal.t | 0 cpan/autodie/t/lethal.t | 0 cpan/autodie/t/mkdir.t | 0 cpan/autodie/t/open.t | 0 cpan/autodie/t/recv.t | 0 cpan/autodie/t/repeat.t | 0 cpan/autodie/t/scope_leak.t | 0 cpan/autodie/t/string-eval-basic.t | 0 cpan/autodie/t/string-eval-leak.t | 0 cpan/autodie/t/sysopen.t | 0 cpan/autodie/t/truncate.t | 0 cpan/autodie/t/unlink.t | 0 cpan/autodie/t/user-context.t | 0 cpan/autodie/t/usersub.t | 0 cpan/autodie/t/version.t | 0 cpan/autodie/t/version_tag.t | 0 cpan/libnet/demos/ftp | 0 cpan/libnet/demos/nntp | 0 cpan/libnet/demos/smtp.self | 0 cpan/podlators/t/devise-date.t | 0 cpan/podlators/t/man-heading.t | 0 cpan/podlators/t/overstrike.t | 0 dist/threads/threads.xs | 0 ext/SDBM_File/sdbm/grind | 0 ext/VMS-Stdio/t/vms_stdio.t | 0 genpacksizetables.pl | 0 hints/aix_4.sh | 0 installhtml | 0 mad/p55 | 0 makedepend.SH | 0 pod/buildtoc | 0 pod/pod2man.PL | 0 pod/pod2text.PL | 0 pod/rofftoc | 0 pod/splitman | 0 pod/splitpod | 0 qnx/ar | 0 qnx/cpp | 0 t/comp/use.t | 0 t/io/openpid.t | 0 t/op/filetest_t.t | 0 t/op/sigdispatch.t | 0 t/porting/diag.t | 0 t/porting/exec-bit.t | 43 ++++++++++++++++++++++ t/test.pl | 0 uconfig.sh | 0 vms/ext/filespec.t | 0 win32/distclean.bat | 0 win32/perlexe.manifest | 0 x2p/Makefile.SH | 0 x2p/cflags.SH | 0 160 files changed, 77 insertions(+), 24 deletions(-) mode change 100755 => 100644 Cross/Makefile-cross-SH mode change 100755 => 100644 Cross/build-arm-n770-sh mode change 100755 => 100644 Cross/cflags-cross-arm mode change 100755 => 100644 Porting/GitUtils.pm mode change 100755 => 100644 Porting/Maintainers.pl mode change 100755 => 100644 Porting/bump-perl-version mode change 100755 => 100644 Porting/cherrymaint mode change 100755 => 100644 Porting/config_h.pl mode change 100755 => 100644 Porting/core-cpan-diff mode change 100755 => 100644 Porting/corelist-perldelta.pl create mode 100644 Porting/exec-bit.txt mode change 100644 => 100755 Porting/findrfuncs mode change 100755 => 100644 Porting/findvars mode change 100755 => 100644 Porting/fixCORE mode change 100755 => 100644 Porting/fixvars mode change 100755 => 100644 Porting/git-deltatool mode change 100755 => 100644 Porting/git-find-p4-change mode change 100755 => 100644 Porting/make_dot_patch.pl mode change 100755 => 100644 Porting/make_snapshot.pl mode change 100644 => 100755 Porting/makerel mode change 100755 => 100644 Porting/rt_list_patches mode change 100755 => 100644 cflags.SH mode change 100755 => 100644 config_h.SH mode change 100755 => 100644 cpan/CGI/examples/make_links.pl mode change 100755 => 100644 cpan/CGI/examples/nph-clock.cgi mode change 100755 => 100644 cpan/CGI/examples/nph-multipart.cgi mode change 100755 => 100644 cpan/CPAN/scripts/cpan mode change 100755 => 100644 cpan/Compress-Raw-Zlib/config.in mode change 100755 => 100644 cpan/Compress-Raw-Zlib/examples/filtdef mode change 100755 => 100644 cpan/Compress-Raw-Zlib/examples/filtinf mode change 100755 => 100644 cpan/DB_File/config.in mode change 100755 => 100644 cpan/Digest-SHA/shasum mode change 100755 => 100644 cpan/Encode/bin/enc2xs mode change 100755 => 100644 cpan/Encode/bin/piconv mode change 100755 => 100644 cpan/Encode/bin/ucm2table mode change 100755 => 100644 cpan/Encode/bin/ucmsort mode change 100755 => 100644 cpan/Encode/bin/unidump mode change 100755 => 100644 cpan/ExtUtils-MakeMaker/bin/instmodsh mode change 100755 => 100644 cpan/IO-Compress/examples/compress-zlib/filtdef mode change 100755 => 100644 cpan/IO-Compress/examples/compress-zlib/filtinf mode change 100755 => 100644 cpan/IO-Compress/examples/compress-zlib/gzcat mode change 100755 => 100644 cpan/IO-Compress/examples/compress-zlib/gzgrep mode change 100755 => 100644 cpan/IO-Compress/examples/compress-zlib/gzstream mode change 100755 => 100644 cpan/IO-Compress/examples/io/anycat mode change 100755 => 100644 cpan/IO-Compress/examples/io/bzip2/bzcat mode change 100755 => 100644 cpan/IO-Compress/examples/io/bzip2/bzgrep mode change 100755 => 100644 cpan/IO-Compress/examples/io/bzip2/bzstream mode change 100755 => 100644 cpan/IO-Compress/examples/io/gzip/gzcat mode change 100755 => 100644 cpan/IO-Compress/examples/io/gzip/gzgrep mode change 100755 => 100644 cpan/IO-Compress/examples/io/gzip/gzstream mode change 100755 => 100644 cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm mode change 100755 => 100644 cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm mode change 100755 => 100644 cpan/IO-Compress/t/compress/oneshot.pl mode change 100755 => 100644 cpan/IO-Compress/t/cz-03zlib-v1.t mode change 100755 => 100644 cpan/Locale-Codes/t/alias_code.t mode change 100755 => 100644 cpan/Locale-Codes/t/code2country.t mode change 100755 => 100644 cpan/Locale-Codes/t/code2currency.t mode change 100755 => 100644 cpan/Locale-Codes/t/code2language.t mode change 100755 => 100644 cpan/Locale-Codes/t/code2script.t mode change 100755 => 100644 cpan/Locale-Codes/t/country.t mode change 100755 => 100644 cpan/Locale-Codes/t/country2code.t mode change 100755 => 100644 cpan/Locale-Codes/t/country_code2code.t mode change 100755 => 100644 cpan/Locale-Codes/t/currency2code.t mode change 100755 => 100644 cpan/Locale-Codes/t/language.t mode change 100755 => 100644 cpan/Locale-Codes/t/language2code.t mode change 100755 => 100644 cpan/Locale-Codes/t/script2code.t mode change 100755 => 100644 cpan/Locale-Maketext-Simple/t/1-basic.t mode change 100755 => 100644 cpan/Locale-Maketext-Simple/t/2-load_po_without_i_default.t mode change 100755 => 100644 cpan/Locale-Maketext-Simple/t/3-load_po_with_i_default.t mode change 100755 => 100644 cpan/Module-Build/scripts/config_data mode change 100755 => 100644 cpan/Module-Build/t/compat/exit.t mode change 100755 => 100644 cpan/Term-ANSIColor/t/basic.t mode change 100755 => 100644 cpan/Test-Harness/bin/prove mode change 100755 => 100644 cpan/Test-Harness/t/bailout.t mode change 100755 => 100644 cpan/Test-Harness/t/nofork.t mode change 100755 => 100644 cpan/Test-Harness/t/parse.t mode change 100755 => 100644 cpan/Test-Harness/t/source.t mode change 100755 => 100644 cpan/Test-Harness/t/source_tests/psql mode change 100755 => 100644 cpan/Test-Harness/t/source_tests/psql.bat mode change 100755 => 100644 cpan/Test-Harness/t/streams.t mode change 100755 => 100644 cpan/autodie/lib/Fatal.pm mode change 100755 => 100644 cpan/autodie/t/00-load.t mode change 100755 => 100644 cpan/autodie/t/Fatal.t mode change 100755 => 100644 cpan/autodie/t/autodie.t mode change 100755 => 100644 cpan/autodie/t/backcompat.t mode change 100755 => 100644 cpan/autodie/t/basic_exceptions.t mode change 100755 => 100644 cpan/autodie/t/binmode.t mode change 100755 => 100644 cpan/autodie/t/blog_hints.t mode change 100755 => 100644 cpan/autodie/t/caller.t mode change 100755 => 100644 cpan/autodie/t/context.t mode change 100755 => 100644 cpan/autodie/t/context_lexical.t mode change 100755 => 100644 cpan/autodie/t/crickey.t mode change 100755 => 100644 cpan/autodie/t/dbmopen.t mode change 100755 => 100644 cpan/autodie/t/eval_error.t mode change 100755 => 100644 cpan/autodie/t/exception_class.t mode change 100755 => 100644 cpan/autodie/t/exceptions.t mode change 100755 => 100644 cpan/autodie/t/exec.t mode change 100755 => 100644 cpan/autodie/t/filehandles.t mode change 100755 => 100644 cpan/autodie/t/fileno.t mode change 100755 => 100644 cpan/autodie/t/flock.t mode change 100755 => 100644 cpan/autodie/t/format-clobber.t mode change 100755 => 100644 cpan/autodie/t/hints.t mode change 100755 => 100644 cpan/autodie/t/hints_insist.t mode change 100755 => 100644 cpan/autodie/t/hints_pod_examples.t mode change 100755 => 100644 cpan/autodie/t/hints_provider_does.t mode change 100755 => 100644 cpan/autodie/t/hints_provider_easy_does_it.t mode change 100755 => 100644 cpan/autodie/t/hints_provider_isa.t mode change 100755 => 100644 cpan/autodie/t/internal-backcompat.t mode change 100755 => 100644 cpan/autodie/t/internal.t mode change 100755 => 100644 cpan/autodie/t/lethal.t mode change 100755 => 100644 cpan/autodie/t/mkdir.t mode change 100755 => 100644 cpan/autodie/t/open.t mode change 100755 => 100644 cpan/autodie/t/recv.t mode change 100755 => 100644 cpan/autodie/t/repeat.t mode change 100755 => 100644 cpan/autodie/t/scope_leak.t mode change 100755 => 100644 cpan/autodie/t/string-eval-basic.t mode change 100755 => 100644 cpan/autodie/t/string-eval-leak.t mode change 100755 => 100644 cpan/autodie/t/sysopen.t mode change 100755 => 100644 cpan/autodie/t/truncate.t mode change 100755 => 100644 cpan/autodie/t/unlink.t mode change 100755 => 100644 cpan/autodie/t/user-context.t mode change 100755 => 100644 cpan/autodie/t/usersub.t mode change 100755 => 100644 cpan/autodie/t/version.t mode change 100755 => 100644 cpan/autodie/t/version_tag.t mode change 100755 => 100644 cpan/libnet/demos/ftp mode change 100755 => 100644 cpan/libnet/demos/nntp mode change 100755 => 100644 cpan/libnet/demos/smtp.self mode change 100755 => 100644 cpan/podlators/t/devise-date.t mode change 100755 => 100644 cpan/podlators/t/man-heading.t mode change 100755 => 100644 cpan/podlators/t/overstrike.t mode change 100755 => 100644 dist/threads/threads.xs mode change 100755 => 100644 ext/SDBM_File/sdbm/grind mode change 100755 => 100644 ext/VMS-Stdio/t/vms_stdio.t mode change 100755 => 100644 genpacksizetables.pl mode change 100755 => 100644 hints/aix_4.sh mode change 100755 => 100644 installhtml mode change 100755 => 100644 mad/p55 mode change 100755 => 100644 makedepend.SH mode change 100755 => 100644 pod/buildtoc mode change 100755 => 100644 pod/pod2man.PL mode change 100755 => 100644 pod/pod2text.PL mode change 100755 => 100644 pod/rofftoc mode change 100755 => 100644 pod/splitman mode change 100755 => 100644 pod/splitpod mode change 100755 => 100644 qnx/ar mode change 100755 => 100644 qnx/cpp mode change 100755 => 100644 t/comp/use.t mode change 100755 => 100644 t/io/openpid.t mode change 100755 => 100644 t/op/filetest_t.t mode change 100755 => 100644 t/op/sigdispatch.t mode change 100755 => 100644 t/porting/diag.t create mode 100644 t/porting/exec-bit.t mode change 100755 => 100644 t/test.pl mode change 100755 => 100644 uconfig.sh mode change 100644 => 100755 vms/ext/filespec.t mode change 100755 => 100644 win32/distclean.bat mode change 100755 => 100644 win32/perlexe.manifest mode change 100755 => 100644 x2p/Makefile.SH mode change 100755 => 100644 x2p/cflags.SH diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH old mode 100755 new mode 100644 diff --git a/Cross/build-arm-n770-sh b/Cross/build-arm-n770-sh old mode 100755 new mode 100644 diff --git a/Cross/cflags-cross-arm b/Cross/cflags-cross-arm old mode 100755 new mode 100644 diff --git a/MANIFEST b/MANIFEST index 89b3f96..f4ddd0e 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 old mode 100755 new mode 100644 diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl old mode 100755 new mode 100644 diff --git a/Porting/bump-perl-version b/Porting/bump-perl-version old mode 100755 new mode 100644 diff --git a/Porting/cherrymaint b/Porting/cherrymaint old mode 100755 new mode 100644 diff --git a/Porting/config_h.pl b/Porting/config_h.pl old mode 100755 new mode 100644 diff --git a/Porting/core-cpan-diff b/Porting/core-cpan-diff old mode 100755 new mode 100644 diff --git a/Porting/corelist-perldelta.pl b/Porting/corelist-perldelta.pl old mode 100755 new mode 100644 diff --git a/Porting/exec-bit.txt b/Porting/exec-bit.txt new file mode 100644 index 0000000..b50517d --- /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 old mode 100644 new mode 100755 diff --git a/Porting/findvars b/Porting/findvars old mode 100755 new mode 100644 diff --git a/Porting/fixCORE b/Porting/fixCORE old mode 100755 new mode 100644 diff --git a/Porting/fixvars b/Porting/fixvars old mode 100755 new mode 100644 diff --git a/Porting/git-deltatool b/Porting/git-deltatool old mode 100755 new mode 100644 diff --git a/Porting/git-find-p4-change b/Porting/git-find-p4-change old mode 100755 new mode 100644 diff --git a/Porting/make_dot_patch.pl b/Porting/make_dot_patch.pl old mode 100755 new mode 100644 diff --git a/Porting/make_snapshot.pl b/Porting/make_snapshot.pl old mode 100755 new mode 100644 diff --git a/Porting/makerel b/Porting/makerel old mode 100644 new mode 100755 index a0ce67b..41e757b --- 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 old mode 100755 new mode 100644 diff --git a/cflags.SH b/cflags.SH old mode 100755 new mode 100644 diff --git a/config_h.SH b/config_h.SH old mode 100755 new mode 100644 diff --git a/cpan/CGI/examples/make_links.pl b/cpan/CGI/examples/make_links.pl old mode 100755 new mode 100644 diff --git a/cpan/CGI/examples/nph-clock.cgi b/cpan/CGI/examples/nph-clock.cgi old mode 100755 new mode 100644 diff --git a/cpan/CGI/examples/nph-multipart.cgi b/cpan/CGI/examples/nph-multipart.cgi old mode 100755 new mode 100644 diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan old mode 100755 new mode 100644 diff --git a/cpan/Compress-Raw-Zlib/config.in b/cpan/Compress-Raw-Zlib/config.in old mode 100755 new mode 100644 diff --git a/cpan/Compress-Raw-Zlib/examples/filtdef b/cpan/Compress-Raw-Zlib/examples/filtdef old mode 100755 new mode 100644 diff --git a/cpan/Compress-Raw-Zlib/examples/filtinf b/cpan/Compress-Raw-Zlib/examples/filtinf old mode 100755 new mode 100644 diff --git a/cpan/DB_File/config.in b/cpan/DB_File/config.in old mode 100755 new mode 100644 diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum old mode 100755 new mode 100644 diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs old mode 100755 new mode 100644 diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv old mode 100755 new mode 100644 diff --git a/cpan/Encode/bin/ucm2table b/cpan/Encode/bin/ucm2table old mode 100755 new mode 100644 diff --git a/cpan/Encode/bin/ucmsort b/cpan/Encode/bin/ucmsort old mode 100755 new mode 100644 diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump old mode 100755 new mode 100644 diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/compress-zlib/filtdef b/cpan/IO-Compress/examples/compress-zlib/filtdef old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/compress-zlib/filtinf b/cpan/IO-Compress/examples/compress-zlib/filtinf old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/compress-zlib/gzcat b/cpan/IO-Compress/examples/compress-zlib/gzcat old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/compress-zlib/gzgrep b/cpan/IO-Compress/examples/compress-zlib/gzgrep old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/compress-zlib/gzstream b/cpan/IO-Compress/examples/compress-zlib/gzstream old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/anycat b/cpan/IO-Compress/examples/io/anycat old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/bzip2/bzcat b/cpan/IO-Compress/examples/io/bzip2/bzcat old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/bzip2/bzgrep b/cpan/IO-Compress/examples/io/bzip2/bzgrep old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/bzip2/bzstream b/cpan/IO-Compress/examples/io/bzip2/bzstream old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/gzip/gzcat b/cpan/IO-Compress/examples/io/gzip/gzcat old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/gzip/gzgrep b/cpan/IO-Compress/examples/io/gzip/gzgrep old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/examples/io/gzip/gzstream b/cpan/IO-Compress/examples/io/gzip/gzstream old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/t/compress/oneshot.pl b/cpan/IO-Compress/t/compress/oneshot.pl old mode 100755 new mode 100644 diff --git a/cpan/IO-Compress/t/cz-03zlib-v1.t b/cpan/IO-Compress/t/cz-03zlib-v1.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/alias_code.t b/cpan/Locale-Codes/t/alias_code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/code2country.t b/cpan/Locale-Codes/t/code2country.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/code2currency.t b/cpan/Locale-Codes/t/code2currency.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/code2language.t b/cpan/Locale-Codes/t/code2language.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/code2script.t b/cpan/Locale-Codes/t/code2script.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/country.t b/cpan/Locale-Codes/t/country.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/country2code.t b/cpan/Locale-Codes/t/country2code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/country_code2code.t b/cpan/Locale-Codes/t/country_code2code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/currency2code.t b/cpan/Locale-Codes/t/currency2code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/language.t b/cpan/Locale-Codes/t/language.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/language2code.t b/cpan/Locale-Codes/t/language2code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Codes/t/script2code.t b/cpan/Locale-Codes/t/script2code.t old mode 100755 new mode 100644 diff --git a/cpan/Locale-Maketext-Simple/t/1-basic.t b/cpan/Locale-Maketext-Simple/t/1-basic.t old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 diff --git a/cpan/Module-Build/scripts/config_data b/cpan/Module-Build/scripts/config_data old mode 100755 new mode 100644 diff --git a/cpan/Module-Build/t/compat/exit.t b/cpan/Module-Build/t/compat/exit.t old mode 100755 new mode 100644 diff --git a/cpan/Term-ANSIColor/t/basic.t b/cpan/Term-ANSIColor/t/basic.t old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/bailout.t b/cpan/Test-Harness/t/bailout.t old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/nofork.t b/cpan/Test-Harness/t/nofork.t old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/parse.t b/cpan/Test-Harness/t/parse.t old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/source.t b/cpan/Test-Harness/t/source.t old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/source_tests/psql b/cpan/Test-Harness/t/source_tests/psql old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/source_tests/psql.bat b/cpan/Test-Harness/t/source_tests/psql.bat old mode 100755 new mode 100644 diff --git a/cpan/Test-Harness/t/streams.t b/cpan/Test-Harness/t/streams.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/lib/Fatal.pm b/cpan/autodie/lib/Fatal.pm old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/00-load.t b/cpan/autodie/t/00-load.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/Fatal.t b/cpan/autodie/t/Fatal.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/autodie.t b/cpan/autodie/t/autodie.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/backcompat.t b/cpan/autodie/t/backcompat.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/basic_exceptions.t b/cpan/autodie/t/basic_exceptions.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/binmode.t b/cpan/autodie/t/binmode.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/blog_hints.t b/cpan/autodie/t/blog_hints.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/caller.t b/cpan/autodie/t/caller.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/context.t b/cpan/autodie/t/context.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/context_lexical.t b/cpan/autodie/t/context_lexical.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/crickey.t b/cpan/autodie/t/crickey.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/dbmopen.t b/cpan/autodie/t/dbmopen.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/eval_error.t b/cpan/autodie/t/eval_error.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/exception_class.t b/cpan/autodie/t/exception_class.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/exceptions.t b/cpan/autodie/t/exceptions.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/exec.t b/cpan/autodie/t/exec.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/filehandles.t b/cpan/autodie/t/filehandles.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/fileno.t b/cpan/autodie/t/fileno.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/flock.t b/cpan/autodie/t/flock.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/format-clobber.t b/cpan/autodie/t/format-clobber.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints.t b/cpan/autodie/t/hints.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints_insist.t b/cpan/autodie/t/hints_insist.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints_pod_examples.t b/cpan/autodie/t/hints_pod_examples.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints_provider_does.t b/cpan/autodie/t/hints_provider_does.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints_provider_easy_does_it.t b/cpan/autodie/t/hints_provider_easy_does_it.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/hints_provider_isa.t b/cpan/autodie/t/hints_provider_isa.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/internal-backcompat.t b/cpan/autodie/t/internal-backcompat.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/internal.t b/cpan/autodie/t/internal.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/lethal.t b/cpan/autodie/t/lethal.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/mkdir.t b/cpan/autodie/t/mkdir.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/open.t b/cpan/autodie/t/open.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/recv.t b/cpan/autodie/t/recv.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/repeat.t b/cpan/autodie/t/repeat.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/scope_leak.t b/cpan/autodie/t/scope_leak.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/string-eval-basic.t b/cpan/autodie/t/string-eval-basic.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/string-eval-leak.t b/cpan/autodie/t/string-eval-leak.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/sysopen.t b/cpan/autodie/t/sysopen.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/truncate.t b/cpan/autodie/t/truncate.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/unlink.t b/cpan/autodie/t/unlink.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/user-context.t b/cpan/autodie/t/user-context.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/usersub.t b/cpan/autodie/t/usersub.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/version.t b/cpan/autodie/t/version.t old mode 100755 new mode 100644 diff --git a/cpan/autodie/t/version_tag.t b/cpan/autodie/t/version_tag.t old mode 100755 new mode 100644 diff --git a/cpan/libnet/demos/ftp b/cpan/libnet/demos/ftp old mode 100755 new mode 100644 diff --git a/cpan/libnet/demos/nntp b/cpan/libnet/demos/nntp old mode 100755 new mode 100644 diff --git a/cpan/libnet/demos/smtp.self b/cpan/libnet/demos/smtp.self old mode 100755 new mode 100644 diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t old mode 100755 new mode 100644 diff --git a/cpan/podlators/t/man-heading.t b/cpan/podlators/t/man-heading.t old mode 100755 new mode 100644 diff --git a/cpan/podlators/t/overstrike.t b/cpan/podlators/t/overstrike.t old mode 100755 new mode 100644 diff --git a/dist/threads/threads.xs b/dist/threads/threads.xs old mode 100755 new mode 100644 diff --git a/ext/SDBM_File/sdbm/grind b/ext/SDBM_File/sdbm/grind old mode 100755 new mode 100644 diff --git a/ext/VMS-Stdio/t/vms_stdio.t b/ext/VMS-Stdio/t/vms_stdio.t old mode 100755 new mode 100644 diff --git a/genpacksizetables.pl b/genpacksizetables.pl old mode 100755 new mode 100644 diff --git a/hints/aix_4.sh b/hints/aix_4.sh old mode 100755 new mode 100644 diff --git a/installhtml b/installhtml old mode 100755 new mode 100644 diff --git a/mad/p55 b/mad/p55 old mode 100755 new mode 100644 diff --git a/makedepend.SH b/makedepend.SH old mode 100755 new mode 100644 diff --git a/pod/buildtoc b/pod/buildtoc old mode 100755 new mode 100644 diff --git a/pod/pod2man.PL b/pod/pod2man.PL old mode 100755 new mode 100644 diff --git a/pod/pod2text.PL b/pod/pod2text.PL old mode 100755 new mode 100644 diff --git a/pod/rofftoc b/pod/rofftoc old mode 100755 new mode 100644 diff --git a/pod/splitman b/pod/splitman old mode 100755 new mode 100644 diff --git a/pod/splitpod b/pod/splitpod old mode 100755 new mode 100644 diff --git a/qnx/ar b/qnx/ar old mode 100755 new mode 100644 diff --git a/qnx/cpp b/qnx/cpp old mode 100755 new mode 100644 diff --git a/t/comp/use.t b/t/comp/use.t old mode 100755 new mode 100644 diff --git a/t/io/openpid.t b/t/io/openpid.t old mode 100755 new mode 100644 diff --git a/t/op/filetest_t.t b/t/op/filetest_t.t old mode 100755 new mode 100644 diff --git a/t/op/sigdispatch.t b/t/op/sigdispatch.t old mode 100755 new mode 100644 diff --git a/t/porting/diag.t b/t/porting/diag.t old mode 100755 new mode 100644 diff --git a/t/porting/exec-bit.t b/t/porting/exec-bit.t new file mode 100644 index 0000000..7971ed7 --- /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 old mode 100755 new mode 100644 diff --git a/uconfig.sh b/uconfig.sh old mode 100755 new mode 100644 diff --git a/vms/ext/filespec.t b/vms/ext/filespec.t old mode 100644 new mode 100755 diff --git a/win32/distclean.bat b/win32/distclean.bat old mode 100755 new mode 100644 diff --git a/win32/perlexe.manifest b/win32/perlexe.manifest old mode 100755 new mode 100644 diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH old mode 100755 new mode 100644 diff --git a/x2p/cflags.SH b/x2p/cflags.SH old mode 100755 new mode 100644 -- 2.7.4