commit 52cb62cd7bd24ba03f3939457c7c2309b3a746e8 Author: Mike Perry mikeperry-git@torproject.org Date: Wed Feb 18 18:47:48 2015 -0800
Bug 14422: Make incrementals by default.
Also create a "resume" rule to make it easier to resume a build, including remaking incrementals, and update the documentation.
Also remove the -beta rules, as we don't use those. --- gitian/Makefile | 41 ++++++++++------------------------------- gitian/README.build | 6 +++--- gitian/hash-bundles.sh | 23 +++++++++++++++++------ 3 files changed, 30 insertions(+), 40 deletions(-)
diff --git a/gitian/Makefile b/gitian/Makefile index 33403b5..ce362ff 100644 --- a/gitian/Makefile +++ b/gitian/Makefile @@ -1,18 +1,21 @@ TORSOCKS = torsocks
-all: clean prep build +all: clean resume
-nightly: clean prep-nightly build-nightly +nightly: clean resume-nightly
-alpha: clean prep-alpha build-alpha +alpha: clean resume-alpha
-beta: clean prep-beta build-beta +resume: prep build incrementals hash + +resume-nightly: prep-nightly build-nightly + +resume-alpha: prep-alpha build-alpha incrementals-alpha hash-alpha
build: ./mkbundle-linux.sh ./mkbundle-windows.sh ./mkbundle-mac.sh - ./hash-bundles.sh
build-nightly: ./mkbundle-linux.sh versions.nightly @@ -24,22 +27,12 @@ build-alpha: ./mkbundle-linux.sh versions.alpha ./mkbundle-windows.sh versions.alpha ./mkbundle-mac.sh versions.alpha - ./hash-bundles.sh versions.alpha - -build-beta: - ./mkbundle-linux.sh versions.beta - ./mkbundle-windows.sh versions.beta - ./mkbundle-mac.sh versions.beta - ./hash-bundles.sh versions.beta
incrementals: - ../tools/update-responses/gen_incrementals release + ../tools/update-responses/gen_incrementals release || echo 'Warning: could not generate incremental MARs.' >&2
incrementals-alpha: - ../tools/update-responses/gen_incrementals alpha - -incrementals-beta: - ../tools/update-responses/gen_incrementals beta + ../tools/update-responses/gen_incrementals alpha || echo 'Warning: could not generate incremental MARs.' >&2
update_responses: ../tools/update-responses/update_responses release @@ -47,8 +40,6 @@ update_responses: update_responses-alpha: ../tools/update-responses/update_responses alpha
-update_responses-beta: - ../tools/update-responses/update_responses beta
hash: ./hash-bundles.sh versions @@ -56,9 +47,6 @@ hash: hash-alpha: ./hash-bundles.sh versions.alpha
-hash-beta: - ./hash-bundles.sh versions.beta - hash-nightly: ./hash-bundles.sh versions.nightly
@@ -71,9 +59,6 @@ sign-alpha: sign-nightly: ./upload-signature.sh versions.nightly
-sign-beta: - $(TORSOCKS) ./upload-signature.sh versions.beta - match: $(TORSOCKS) ./check-match.sh versions
@@ -83,9 +68,6 @@ match-nightly: match-alpha: $(TORSOCKS) ./check-match.sh versions.alpha
-match-beta: - $(TORSOCKS) ./check-match.sh versions.beta - prep: ./check-prerequisites.sh $(TORSOCKS) ./fetch-inputs.sh ../../gitian-builder/inputs/ versions @@ -98,9 +80,6 @@ prep-alpha: ./check-prerequisites.sh $(TORSOCKS) ./fetch-inputs.sh ../../gitian-builder/inputs/ versions.alpha
-prep-beta: - ./check-prerequisites.sh - $(TORSOCKS) ./fetch-inputs.sh ../../gitian-builder/inputs/ versions.beta
clean: clean-utils clean-tor clean-browser clean-pt clean-bundle rm -f ../../gitian-builder/inputs/*.yml diff --git a/gitian/README.build b/gitian/README.build index b3e8be5..e4f5d58 100644 --- a/gitian/README.build +++ b/gitian/README.build @@ -143,13 +143,13 @@ Partial Rebuilds:
Each stage leaves build artifacts in ../../gitian-builder/inputs/ for use in later stages. If the artifact files for a given stage are present, that - stage is skipped by a 'make build'. + stage is skipped by a 'make resume'.
No other dependency checking on build stages is performed.
If you wish to rebuild only a given stage, there are several 'make clean-' targets to remove the artifacts for that stage. Running a subsequent - 'make build' after that will rebuild only those targets that have been + 'make resume' after that will rebuild only those targets that have been cleaned, and then re-package everything again as well.
Note that if any of the source inputs, or the Ubuntu buildchain tools, or @@ -165,7 +165,7 @@ Known Issues and Quirks:
1. Sometimes, fresh VM installs can fail. If your build hangs while trying to connect to the target or during the SSH banner, it might be worth - running 'make vmclean && make build' to clean your VM images, but still + running 'make vmclean && make resume' to clean your VM images, but still resume the build process as the component you left off at. Remember, 'make' by itself runs a clean rule that will wipe your previous builds by default. diff --git a/gitian/hash-bundles.sh b/gitian/hash-bundles.sh index 2684158..962630a 100755 --- a/gitian/hash-bundles.sh +++ b/gitian/hash-bundles.sh @@ -23,11 +23,22 @@ sha256sum `ls -1 | grep -v '.incremental.mar$' | sort` > sha256sums.txt if ls -1 | grep -q '.incremental.mar$' then sha256sum `ls -1 | grep '.incremental.mar$' | sort` > sha256sums.incrementals.txt + echo + echo "If this is an official build, you should now sign your result with: " + echo " make sign" + echo + echo "In either case, you can check against any official builds with: " + echo " make match" +else + echo + echo "It appears that this build did not generate any incremental update (.mar) files" + echo + echo "If your goal is to reproduce the entire release, you still need to download" + echo "the mar files from the previous release from the appropriate directory in: " + echo " https://archive.torproject.org/tor-package-archive/torbrowser/" + echo + echo "After that, you will need to make the incremental updates with: " + echo " make incrementals && make hash" fi
-echo -echo "If this is an official build, you should now sign your result with: " -echo " make sign" -echo -echo "In either case, you can check against any official builds with: " -echo " make match" +