• Complete the Tor Messenger build (make tor-messenger-release)
  • Code sign the DMG and EXE and copy them back to the release/$VERSION directory
  • Bump to the corresponding version in tools/update-responses/config.yml (releases)
    • Also add the new version to versions key
  • Create a signed directory in release/tor-messenger if it is not already there
  • Symlink the version to the corresponding directory in signed
  • Go to tools/update-responses/ and run ./gen_incrementals and then ./update_responses
  • The output MAR files will be in the signed/$VERSION directory
  • Calculate the sha256sum (sha256sum * > sha256sums-unsigned-build.txt)
  • Sign the MAR files (see below)
  • Publish the blog first before the next step (set the URL in config.yml)
  • Copy the htdocs/release directory to ( This step copies only the XML files for the updates.
  • Copy all the release files to (
  • Finally run ssh static-update-component and ssh static-update-component to finalize the changes

Manual MAR Generation

  • Assume that old/ refers to the older version (say 0.3.0b1) and new/ refers to the newer one (0.3.0b2).
  • Run MAR=./mar MBSDIFF=./mbsdiff ./ mar.mar old/Browser/ new/Browser/ for Linux and substitute old and new accordingly for OS X and Windows

Signing MAR

  • Assume NSSDB in ~
  • export NSS_DB_DIR=~/nssdb/
  • Run LD_LIBRARY_PATH=. ./signmar -d "$NSS_DB_DIR" -n "marsigner" -s mar.mar partial.mar (substitute marsigner with marsigner1 for the secondary key)
Last modified 3 years ago Last modified on Dec 25, 2016, 12:28:04 PM