summaryrefslogtreecommitdiff
path: root/Porting
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 /Porting
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.
Diffstat (limited to 'Porting')
-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
18 files changed, 31 insertions, 23 deletions
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