add -b option to makerel to make a .bz2 file
David Mitchell [Sat, 25 Jul 2009 10:54:16 +0000 (11:54 +0100)]
Porting/makerel
Porting/release_managers_guide.pod

index b126164..8c9e9c1 100644 (file)
@@ -16,16 +16,17 @@ use Getopt::Std;
 $|=1;
 
 sub usage { die <<EOF; }
-usage: $0 [ -r rootdir ] [-s suffix ]
+usage: $0 [ -r rootdir ] [-s suffix ] [ -b ]
     -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
                 in patchlevel.h (or blank, if none)
+    -b           make a .bz2 file in addtion to a .gz file
 EOF
 
 my %opts;
-getopts('r:s:', \%opts) or usage;
+getopts('br:s:', \%opts) or usage;
 @ARGV && usage;
 
 $relroot = defined $opts{r} ? $opts{r} : "..";
@@ -186,11 +187,17 @@ print "\n";
 
 chdir ".." or die $!;
 
-print "Creating and compressing the tar file...\n";
 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 "\n";
+system($cmd) == 0 or die "$cmd failed";
 
+if ($opts{b}) {
+    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";
 system("ls -ld $perl*");
index daf62e0..1c11a87 100644 (file)
@@ -102,26 +102,27 @@ the tarball and directory name:
     $ cd root/of/perl/tree
     $ git clean -xdf           #  make sure perl and git agree on files
 
-    $ perl Porting/makerel -s `git describe` # for a snapshot
-    $ perl Porting/makerel -s RC1           # for a release candidate
-    $ perl Porting/makerel                  # for a final release
+    $ perl Porting/makerel -b -s `git describe` # for a snapshot
+    $ perl Porting/makerel -b -s RC1            # for a release candidate
+    $ perl Porting/makerel -b                   # for a final release
 
 This creates the  directory F<../perl-x.y.z-RC1> or similar, copies all
 the MANIFEST files into it, sets the correct permissions on them,
 adds DOS line endings to some, then tars it up as
-F<../perl-x.y.z-RC1.tar.gz>.
+F<../perl-x.y.z-RC1.tar.gz>. With C<-b>, it also creates a C<tar.bz2> file.
 
 XXX if we go for extra tags and branches stuff, then add the extra details
 here
 
 =item *
 
-Copy the tarball to a web server somewhere you have access to.
+Copy the tarballs (.gz and possibly .bz2) to a web server somewhere you
+have access to.
 
 =item *
 
-Download the tarball to some other machine (for a release candidate, to two or
-more servers: IRC is good for this).
+Download the tarball to some other machine (for a release candidate, to
+two or more servers: IRC is good for this).
 
 =item *
 
@@ -157,7 +158,7 @@ Install an XS module.
 
 =item *
 
-If all is well, announce the snaphot to p5p. (For a release candidate,
+If all is well, announce the snapshot to p5p. (For a release candidate,
 instead follow the further steps described later.)
 
 =back