X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/800a4485f3148765bca7cbc5d3f61be2cc7af276..99ba99c74c9d761a502e9d3ed59f1ff72311471f:/packaging/release-rsync?ds=sidebyside diff --git a/packaging/release-rsync b/packaging/release-rsync index 5412426c..03ecdefe 100755 --- a/packaging/release-rsync +++ b/packaging/release-rsync @@ -87,24 +87,28 @@ chomp($_ = ); $lastversion = $_ if $_ ne ''; $lastversion =~ s/[-.]*pre[-.]*/pre/; -my $release = 1; +my $pre = $version =~ /(pre\d+)/ ? $1 : ''; + +my $release = $pre ? '0.1' : '1'; print "Please enter the RPM release number of this release: [$release] "; chomp($_ = ); $release = $_ if $_ ne ''; +$release .= ".$pre" if $pre; -my $diffdir; -my $skipping; +my($srcdir,$srcdiffdir,$lastsrcdir,$skipping); if ($lastversion =~ /pre/) { - if ($version !~ /pre/) { + if (!$pre) { die "You should not diff a release version against a pre-release version.\n"; } - $diffdir = "$dest/old-previews"; + $srcdir = $srcdiffdir = $lastsrcdir = 'src-previews'; $skipping = ' ** SKIPPING **'; -} elsif ($version =~ /pre/) { - $diffdir = $dest; +} elsif ($pre) { + $srcdir = $srcdiffdir = 'src-previews'; + $lastsrcdir = 'src'; $skipping = ' ** SKIPPING **'; } else { - $diffdir = "$dest/old-versions"; + $srcdir = $lastsrcdir = 'src'; + $srcdiffdir = 'src-diffs'; $skipping = ''; } @@ -113,7 +117,9 @@ print "\n", $break, < "; $_ = ; (my $finalversion = $version) =~ s/pre\d+//; -my %specvars = ( 'Version:' => $version, 'Release:' => $release, - 'Released' => "$version." ); +my %specvars = ( 'Version:' => $finalversion, 'Release:' => $release, + '%define fullversion' => "\%{version}$pre", 'Released' => "$version." ); my @tweak_files = ( glob('packaging/*.spec'), glob('packaging/*/*.spec'), glob('*.yo'), qw( configure.in rsync.h NEWS OLDNEWS options.c ) ); @@ -156,16 +162,16 @@ foreach my $fn (@tweak_files) { } elsif ($fn eq 'rsync.h') { s/(#define\s+SUBPROTOCOL_VERSION)\s+\d+/$1 0/ or die "Unable to find SUBPROTOCOL_VERSION define in $fn\n"; - next if $version =~ /pre/; + next if $pre; } elsif ($fn eq 'NEWS') { s/^(NEWS for rsync \Q$finalversion\E) \(UNRELEASED\)\s*\n/$1 ($today)\n/mi or die "The first line of $fn is not in the right format. It must be:\n" . "NEWS for rsync $finalversion (UNRELEASED)\n"; - next if $version =~ /pre/; + next if $pre; } elsif ($fn eq 'OLDNEWS') { s/^\t\S\S\s\S\S\S\s\d\d\d\d(\t\Q$finalversion\E)/\t$ztoday$1/m or die "Unable to find \"?? ??? $year\t$finalversion\" line in $fn\n"; - next if $version =~ /pre/; + next if $pre; } elsif ($fn eq 'options.c') { if (s/(Copyright \(C\) 2002-)(\d+)( Wayne Davison)/$1$year$3/ && $2 ne $year) { @@ -189,18 +195,18 @@ system "git diff --color | less -p '^diff .*'"; my $srctar_name = "rsync-$version.tar.gz"; my $pattar_name = "rsync-patches-$version.tar.gz"; my $diff_name = "rsync-$lastversion-$version.diffs.gz"; -my $srctar_file = "$dest/$srctar_name"; -my $pattar_file = "$dest/$pattar_name"; -my $diff_file = "$dest/$diff_name"; -my $lasttar_file = "$dest/rsync-$lastversion.tar.gz"; +my $srctar_file = "$dest/$srcdir/$srctar_name"; +my $pattar_file = "$dest/$srcdir/$pattar_name"; +my $diff_file = "$dest/$srcdiffdir/$diff_name"; +my $news_file = "$dest/$srcdir/rsync-$version-NEWS"; +my $lasttar_file = "$dest/$lastsrcdir/rsync-$lastversion.tar.gz"; print $break, <$dest/ChangeLog.gz"; system "yodl2html -o $dest/rsync.html rsync.yo"; system "yodl2html -o $dest/rsyncd.conf.html rsyncd.conf.yo"; -chdir($dest) or die $!; my $cnt = 0; -foreach my $fn ($srctar_name, $pattar_name, $diff_name) { +print "\n"; +foreach my $fn ($srctar_file, $pattar_file, $diff_file) { print ++$cnt, ". Sign file \"$fn\":"; system "gpg -ba $fn"; } + +if (!$pre) { + system "rm $dest/rsync-*{.tar.gz,.asc,-NEWS} $dest/src-preview/rsync-*diffs.gz"; + + foreach my $fn ($srctar_file, "$srctar_file.asc", + $pattar_file, "$pattar_file.asc", + $diff_file, "$diff_file.asc", $news_file) { + (my $top_fn = $fn) =~ s#/src(-\w+)?/#/#; + link($fn, $top_fn); + } +} + print $break, <<'EOT'; Local changes are done. When you're satisfied, push the git repository