# of the release process (namely, Porting\corelist.pl and generating the commit
# statistics for the perlXYZdelta.pod file respectively). Finally, ensure that
# the 'awk' and 'shasum' commands are copies of gawk.exe and sha1sum.exe
-# respectively, rather the links to them that only work in a Cygwin bash shell
-# which they are by default.
+# respectively, rather than the links to them that only work in a Cygwin bash
+# shell which they are by default.
#
# No matter how automated this gets, you'll always need to read
# and re-read pumpkin.pod and release_managers_guide.pod to
-r rootdir directory under which to create the build dir and tarball
defaults to '..'
-s suffix suffix to append to to the perl-x.y.z dir and tarball name
- defaults to the concatenaion of the local_patches entry
+ defaults to the concatenation of the local_patches entry
in patchlevel.h (or blank, if none)
-b make a .bz2 file in addtion to a .gz file
-n do not make any tarballs, just the directory
# fetch list of local patches
my (@local_patches, @lpatch_tags, $lpatch_tags);
-@local_patches = grep { /^static.*local_patches/../^};/ } @patchlevel_h;
-@local_patches = grep { !/^\s*,?NULL/ } @local_patches;
+@local_patches = grep { !/^\s*,?NULL/ && ! /,"uncommitted-changes"/ }
+ grep { /^static.*local_patches/../^};/ }
+ @patchlevel_h;
@lpatch_tags = map { /^\s*,"(\w+)/ } @local_patches;
$lpatch_tags = join "-", @lpatch_tags;
my @writables = qw(
NetWare/config_H.wc
NetWare/Makefile
+ feature.h
+ lib/feature.pm
keywords.h
+ keywords.c
opcode.h
opnames.h
pp_proto.h
- pp.sym
proto.h
embed.h
embedvar.h
- global.sym
overload.c
overload.h
+ mg_vtable.h
perlapi.h
perlapi.c
cpan/Devel-PPPort/module2.c
win32/Makefile
win32/Makefile.ce
win32/makefile.mk
- win32/config_H.bc
+ win32/config_H.ce
win32/config_H.gc
+ win32/config_H.gc64
+ win32/config_H.gc64nox
win32/config_H.vc
+ win32/config_H.vc64
utils/Makefile
uconfig.h
);
-system("chmod +w @writables") == 0
+system("chmod u+w @writables") == 0
or die "system: $!";
chdir ".." or die $!;
my $src = (-e $perl) ? $perl : 'perl'; # 'perl' in maint branch
-print "Creating and compressing the tar.gz file...\n";
-$cmd = "tar cf - $reldir | gzip --best > $reldir.tar.gz";
-system($cmd) == 0 or die "$cmd failed";
+print "Checking if you have 7z...\n";
+my $output_7z = `7z 2>&1`;
+my $have_7z = defined $output_7z && $output_7z =~ /7-Zip/;
-if ($opts{b}) {
- print "Creating and compressing the tar.bz2 file...\n";
- $cmd = "tar cf - $reldir | bzip2 > $reldir.tar.bz2";
+print "Checking if you have advdef...\n";
+my $output_advdef = `advdef --version 2>&1`;
+my $have_advdef = defined $output_advdef && $output_advdef =~ /advancecomp/;
+
+if ($have_7z) {
+ print "Creating and compressing the tar.gz file with 7z...\n";
+ $cmd = "tar cf - $reldir | 7z a -tgzip -mx9 -bd -si $reldir.tar.gz";
system($cmd) == 0 or die "$cmd failed";
+} else {
+ print "Creating and compressing the tar.gz file...\n";
+ $cmd = "tar cf - $reldir | gzip --best > $reldir.tar.gz";
+ system($cmd) == 0 or die "$cmd failed";
+ if ($have_advdef) {
+ print "Recompressing the tar.gz file with advdef...\n";
+ $cmd = "advdef -z -4 $reldir.tar.gz";
+ system($cmd) == 0 or die "$cmd failed";
+ }
+}
+
+if ($opts{b}) {
+ if ($have_7z) {
+ print "Creating and compressing the tar.bz2 file with 7z...\n";
+ $cmd = "tar cf - $reldir | 7z a -tbzip2 -mx9 -bd -si $reldir.tar.bz2";
+ system($cmd) == 0 or die "$cmd failed";
+ } else {
+ print "Creating and compressing the tar.bz2 file...\n";
+ $cmd = "tar cf - $reldir | bzip2 > $reldir.tar.bz2";
+ system($cmd) == 0 or die "$cmd failed";
+ }
}
print "\n";