diff --git a/README-maintainer.md b/README-maintainer.md index 5291856a..98ee2ecc 100644 --- a/README-maintainer.md +++ b/README-maintainer.md @@ -53,7 +53,7 @@ Example: rm -rf /tmp/qpdf-x.y.z git archive --prefix=qpdf-x.y.z/ HEAD . | (cd /tmp; tar xf -) ``` - From the parent of that directory, run `make_dist` with the directory as an argument. Remember to have fop in your path. For internally testing releases, you can run make_dist with the `--no-tests` option. + From the parent of that directory, run `qpdf-x.y.z/make_dist`. Remember to have fop in your path. For internally testing releases, you can run make_dist with the `--no-tests` option. * To create a source release of external libs, do an export from the version control system into a directory called `qpdf-external-libs` and just make a zip file of the result called `qpdf-external-libs-src.zip`. See the README.txt file there for information on creating binary external libs releases. Run this from the external-libs repository: ``` git archive --prefix=external-libs/ HEAD . | (cd /tmp; tar xf -) diff --git a/make_dist b/make_dist index 8cca6085..eff0d81c 100755 --- a/make_dist +++ b/make_dist @@ -9,16 +9,18 @@ use warnings; use strict; use File::Basename; use Cwd; +use Cwd 'abs_path'; use IO::File; my $whoami = basename($0); +my $srcdir = basename(dirname($0)); +my $pwd = getcwd(); +usage() unless $pwd eq abs_path(dirname(dirname($0))); -usage() unless @ARGV >= 1; -my $srcdir = shift(@ARGV); my $run_tests = 1; -if (@ARGV) +foreach my $arg (@ARGV) { - if ($ARGV[0] eq '--no-tests') + if ($arg eq '--no-tests') { $run_tests = 0; } @@ -27,12 +29,9 @@ if (@ARGV) usage(); } } -$srcdir =~ s,/$,,; + usage() unless $srcdir =~ m/^qpdf-(\d+\.\d+(?:\.(a|b|rc)?\d+)?)$/; my $version = $1; -usage() unless -d $srcdir; - -my $pwd = getcwd(); cd($srcdir); # Check versions @@ -139,12 +138,12 @@ sub cd sub usage { die " -Usage: $whoami qpdf-version [ --no-tests ] +Usage: $whoami [ --no-tests ] -qpdf-version must be a directory containing a pristine export of that -version of qpdf from the version control system. Use of --no-tests -can be used for internally testing releases, but do not use it for a -real release. +$whoami must be run from the parent of a directory called +qpdf- which must contain a pristine export of that version of +qpdf from the version control system. Use of --no-tests can be used +for internally testing releases, but do not use it for a real release. "; }