make-release: Remove unused optional version argument
[openafs.git] / build-tools / make-release
index e2b235b..34a23ea 100755 (executable)
@@ -1,29 +1,36 @@
 #!/usr/bin/perl
+use warnings;
+use strict;
 
 use Getopt::Long;
 use Pod::Usage;
 use File::Path;
 use File::Temp;
 
-my $tag;
-my $last;
+my $help;
+my $man;
 my $tagPoint;
 my $last;
 my $outDir = ".";
 
-GetOptions("help|?" => \$help,
-          "man" => \$man,
-          "tagpoint=s" => \$tagPoint,
-          "last=s" => \$last,
-          "dir=s" => \$outDir) or pod2usage(2);
+GetOptions(
+    "help|?" => \$help,
+    "man" => \$man,
+    "tagpoint=s" => \$tagPoint,
+    "last=s" => \$last,
+    "dir=s" => \$outDir,
+) or pod2usage(2);
 
 pod2usage(1) if $help;
 pod2usage(-exitstatus => 0, -verbose => 2) if $man;
 
 my $tagName = shift;
-my $version = shift;
+my $notused = shift;  # Used to be "version".
 
 pod2usage(2) if !defined($tagName);
+if (defined $notused) {
+    warn "Warning: argument '$notused' is ignored.\n";
+}
 
 # Tag the repository
 
@@ -33,10 +40,10 @@ if ($tagPoint) {
 
     # Push the tag upstream
     system ("git push ssh://gerrit.openafs.org:29418/openafs tag $tagName") == 0
-       or die "git push failed with : $!";
+        or die "git push failed with : $!";
 }
 
-$version = `git describe --abbrev=4 $tagName`;
+my $version = `git describe --abbrev=4 $tagName`;
 chomp $version;
 $version=~s/openafs-[^-]*-//;
 $version=~s/_/./g;
@@ -47,7 +54,7 @@ my $name = "openafs-".$version;
 
 my $tempDir = File::Temp::tempdir();
 system ("git archive --format=tar --prefix=$name/ $tagName ".
-       " | tar -C $tempDir -x") == 0
+        " | tar -C $tempDir -x") == 0
     or die "Git archive failed with: $?";
 
 # Construct the ChangeLog
@@ -64,6 +71,9 @@ system("git describe --abbrev=4 $tagName > $tempDir/$name/.version");
 system ("cd $tempDir/$name && ./regen.sh") == 0
     or die $!;
 
+# A list of files to compress
+my @toCompress;
+
 # Create the documentation tarball
 system("tar -cf $outDir/$name-doc.tar -C $tempDir $name/doc") == 0
     or die "Unable to create documentation tarball : $!";
@@ -74,7 +84,7 @@ File::Path::rmtree("$tempDir/$name/doc");
 
 # Create the source tarball (both .gz and .bz2)
 system("tar -cf $outDir/$name-src.tar -C $tempDir $name") == 0
-    or die "Unable to create documentation tarball : $!";
+    or die "Unable to create source code tarball : $!";
 push @toCompress, "$outDir/$name-src.tar";
 
 # Construct the diffs, and zip them
@@ -84,53 +94,62 @@ if ($last) {
     push @toCompress, "$outDir/$name.diff";
 }
 
-my @toMD5 = @toCompress;
+my @toMD5;
 
-# Compress everything that needs squashing 
+# Compress everything that needs squashing,
+# and also set up a list for md5 checksumming.
 foreach my $file (@toCompress) {
     system("gzip < $file > $file.gz") == 0
-       or die "Unable to create gzip file of '$file' : $!";
+        or die "Unable to create gzip file of '$file' : $!";
     push @toMD5, "$file.gz";
 
     system("bzip2 < $file > $file.bz2") == 0
-       or die "Unable to create bzip file of '$file' : $!";
+        or die "Unable to create bzip file of '$file' : $!";
     push @toMD5, "$file.bz2";
+
+    # Delete the uncompressed tar files.
+    if ($file =~ /\.tar$/) {
+      unlink($file);
+    } else {
+      # Otherwise, queue this file for md5 checksumming.
+      push @toMD5, $file;
+    }
 }
 
 foreach my $file (@toMD5) {
     if (-x "/sbin/md5") {
-       system("/sbin/md5 -q $file > $file.md5");
+        system("/sbin/md5 -q $file > $file.md5");
     } elsif (-x "/usr/bin/md5sum") {
-       system("/usr/bin/md5sum $file > $file.md5");
+        system("/usr/bin/md5sum $file > $file.md5");
     } else {
-       print STDERR "No md5 utiltiy found. Not producing checksums\n";
+        print STDERR "No md5 utility found. Not producing checksums\n";
     }
 }
+
 
 __END__
 
 =head1 NAME
 
-make_release - Make an OpenAFS release from git
+make-release - Make an OpenAFS release from git
 
 =head1 SYNOPSIS
 
-make_release [options] <tag> [<version>]
+make-release [options] <tag>
 
  Options:
-    --help              brief help message
-    --man               full documentation
+    --help               brief help message
+    --man                full documentation
     --tagpoint <object>  create new tag
     --last <object>      generate changelog and diffs from this point
     --dir <dir>          output results into this directory
 
 =head1 DESCRIPTION
 
-make_release constructs an OpenAFS release from a local git clone. If run
+make-release constructs an OpenAFS release from a local git clone. If run
 with just the standard arguments, it will extract the contents of the
 specified tag into the current directory, creating src and doc tarballs,
-gziping and bziping them, and generating md5 hashes. It will also create a
+gzipping and bzipping them, and generating md5 hashes. It will also create a
 ChangeLog file, listing all of the changes in that release.
 
 This standard behaviour may be modified by the following options
@@ -141,7 +160,7 @@ This standard behaviour may be modified by the following options
 
 =item B<--last> I<object>
 
-Generate the ChangeLog starting from I<object>. Also generate a 
+Generate the ChangeLog starting from I<object>. Also generate a
 openafs-$version.diff file in the output directory containing all of the
 changes between I<object> and the current tag
 
@@ -156,4 +175,6 @@ Rather than using an existing tag, create a new one on the specified commit,
 or on the tip of the specified branch. This will GPG sign the new tag, and
 push it into gerrit.
 
+=back
+
 =cut