X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/20c7d7fd698d4cb705aef04fabd20432c7e38580..bc065415b07081e2f0634dab13ff4813a8f7025d:/packaging/nightly-rsync diff --git a/packaging/nightly-rsync b/packaging/nightly-rsync index 1a5d0d00..6ea48d44 100755 --- a/packaging/nightly-rsync +++ b/packaging/nightly-rsync @@ -29,31 +29,38 @@ our($make_tar, $upload, $help_opt); our $name = time2str('rsync-HEAD-%Y%m%d-%H%M%Z', time, 'GMT'); our $ztoday = time2str('%d %b %Y', time); our $today = $ztoday; +our $gen_target = $upload ? 'gensend' : 'gen'; die "$dest does not exist\n" unless -d $dest; die "There is no .git dir in the current directory.\n" unless -d '.git'; die "There is no rsync checkout in the current directory.\n" unless -f 'rsyncd.conf.yo'; if ($make_tar) { - open(IN, '-|', 'git-status') or die $!; + open(IN, '-|', 'git status') or die $!; my $status = join('', ); close IN; die "The checkout is not clean:\n", $status unless $status =~ /\nnothing to commit \(working directory clean\)/; die "The checkout is not on the master branch.\n" unless $status =~ /^# On branch master\n/; - open(IN, '<', 'prepare-source.mak') or die "Couldn't open prepare-source.mak: $!\n"; - $_ = join('', ); + my @extra_files; + open(IN, '<', 'Makefile.in') or die "Couldn't open Makefile.in: $!\n"; + while () { + if (s/^GENFILES=//) { + while (s/\\$//) { + $_ .= ; + } + @extra_files = split(' ', $_); + last; + } + } close IN; - my @extra_files = m{\n([^\s:]+):.*\n\t\S}g; - map { s#^#$name/# } @extra_files; - print "Creating $name.tar.gz\n"; - system "./prepare-source && touch proto.h"; - symlink('.', $name); - system "git-archive --format=tar --prefix=$name/ HEAD >$dest/$name.tar"; - system "fakeroot tar rf $dest/$name.tar @extra_files; gzip -9 $dest/$name.tar"; - unlink($name); + system "make $gen_target; rsync -a @extra_files $name/"; + system "git archive --format=tar --prefix=$name/ HEAD | tar xf -"; + system "support/git-set-file-times --prefix=$name/"; + system "fakeroot tar czf $dest/$name.tar.gz $name; rm -rf $name"; + unlink($nightly_symlink); symlink("$name.tar.gz", $nightly_symlink); }