X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=blobdiff_plain;f=build-pspp;h=6c5a4b5eb9782e94752234879ccd509f852dd374;hp=f151cc1f881135bf6019ce6d657eec40967418d5;hb=0a04c891c69cc5851b657208c958c68d1336b977;hpb=74ae36997616cea29a3ef91bce382fea62ac5948 diff --git a/build-pspp b/build-pspp index f151cc1f88..6c5a4b5eb9 100755 --- a/build-pspp +++ b/build-pspp @@ -112,17 +112,17 @@ if (@ARGV == 2) { # Fetch branch start_step ("Fetch $repo, branch $branch"); - run ("git fetch $repo +$branch:buildtmp/$$/pspp"); + run ("git fetch $repo +$branch:refs/builds/$build_number/pspp"); # Get revision number. - my $revision = `git rev-parse buildtmp/$$/pspp`; + my $revision = `git rev-parse refs/builds/$build_number/pspp`; chomp $revision; set_var ("pspp_commit", $revision); my $abbrev_commit = substr ($revision, 0, 6); # Extract source. - start_step ("Extract branch into $builddir/pspp$build_number"); - run ("git archive --format=tar --prefix=pspp$build_number/ buildtmp/$$/pspp | (cd $builddir && tar xf -)"); + start_step ("Extract branch into source directory"); + run ("git archive --format=tar --prefix=pspp$build_number/ refs/builds/$build_number/pspp | (cd $builddir && tar xf -)"); run ("git branch -D buildtmp/$$/pspp"); # Extract version number. @@ -176,6 +176,19 @@ if (@ARGV == 2) { rename ("$fullname.new", $fullname) or die "rename $fullname.new to $fullname failed: $!\n"; + # Get Gnulib commit number. + start_step ("Reading README.Git to find Gnulib commit number"); + my $gnulib_commit; + $fullname = "$builddir/pspp$build_number/README.Git"; + open (README_GIT, '<', $fullname) + or die "opening $fullname failed: $!\n"; + while () { + ($gnulib_commit) = /^\s+commit ([0-9a-fA-F]{8,})/ and last; + } + die "$fullname does not specify a Git commit number\n" + if !defined ($gnulib_commit); + set_var ("gnulib_commit", $gnulib_commit); + # Add note to beginning of NEWS (otherwise "make dist" fails). start_step ("Updating NEWS"); $fullname = "$builddir/pspp$build_number/NEWS"; @@ -190,8 +203,10 @@ if (@ARGV == 2) { print NEWFILE <) { - ($gnulib_commit) = /^\s+commit ([0-9a-fA-F]{8,})/ and last; - } - die "$fullname does not specify a Git commit number\n" - if !defined ($gnulib_commit); - set_var ("gnulib_commit", $gnulib_commit); - # If we don't already have that Gnulib commit, update Gnulib. - `git rev-parse $gnulib_commit`; + system ("git rev-parse --verify --quiet $gnulib_commit"); if ($? != 0) { start_step ("Updating Gnulib to obtain commit"); run ("git fetch gnulib"); } + run ("git update-ref refs/builds/$build_number/gnulib $gnulib_commit"); # Extract gnulib source. start_step ("Extract Gnulib source"); @@ -260,14 +263,14 @@ if ($build_binary) { my ($tarball_dir) = $sample_filename =~ m%^(?:[./])*([^/]+)/%; set_var ("dist_dir", $tarball_dir); - start_step ("Extracting $tarball into $builddir/$tarball_dir"); + start_step ("Extracting source tarball"); run ("zcat $tarball | (cd $builddir && tar xf -)"); start_step ("Extracting tar version"); my ($version) = `cd $builddir/$tarball_dir && ./configure --version | head -1` =~ /configure (\S+)$/; set_var ("dist_version", $version); - my ($binary_version) = "$version-$builder-build$build_number"; + my ($binary_version) = "$version-$build_host-build$build_number"; set_var ("binary_version", $binary_version); start_step ("Configuring");