Explanation of variables
$(BUILD_SERVER)
: the server the main builder is using to build a tor-browser release$(STAGING_SERVER)
: the server the signer is using to to run the signing process$(TOR_LAUNCHER_VERSION)
: version of tor-launcher
, used in tags
0.2.33
$(ESR_VERSION)
: the Mozilla defined ESR version, used in various places for building tor-browser tags, labels, etc
91.6.0
$(ESR_TAG)
: the Mozilla defined hg (Mercurial) tag associated with $(ESR_VERSION)
FIREFOX_91_7_0esr_BUILD2
$(ESR_TAG_PREV)
: the Mozilla defined hg (Mercurial) tag associated with the previous ESR version when rebasing (ie, the ESR version we are rebasing from)$(RR_VERSION)
: the Mozilla defined 'Rapid Relese' version, used in various places for building geckoview tags, labels, etc
96.0.3
$(RR_TAG)
: the Mozilla defined hg (Mercurial) tag associated with $(ESR_VERSION)
FIREFOX_96_0_3_RELEASE
$(RR_TAG_PREV)
: the Mozilla defined hg (Mercurial) tag associated with the previous ESR version when rebasing (ie, the ESR version we are rebasing from)$(TOR_BROWSER_MAJOR)
: the Tor Browser major version
11
$(TOR_BROWSER_MINOR)
: the Tor Browser minor version
0
or 5
; Alpha's is always (Stable + 5) % 10
$(FIREFOX_BUILD_N)
: the firefox build revision within a given tor-browser
branch; this is separate from the $(TOR_BROWSER_BUILD_N)
value
build1
$(GECKOVIEW_BUILD_N)
: like $(FIREFOX_BUILD_N)
but for geckoview branches$(FENIX_BUILD_N)
: like $(FIREFOX_BUILD_N)
but for fenix branches$(TOR_BROWSER_BUILD_N)
: the tor-browser build revision for a given Tor Browser release; used in tagging git commits
build2
$(FIREFOX_BUILD_N)
and $(TOR_BROWSER_BUILD_N)
typically are the same, but it is possible for them to diverge. For example :
$(FIREFOX_BUILD_N)
value will increase, while the $(TOR_BROWSER_BUILD_N)
value may stay at build1
(but the $(TOR_BROWSER_VERSION)
will increase)tor-browser
, the $(TOR_BROWSER_BUILD_N)
value will increase while the $(FIREFOX_BUILD_N)
will stay the same.$(TOR_BROWSER_VERSION)
: the published Tor Browser version
11.5a6
, 11.0.7
$(TOR_BROWSER_BRANCH)
: the full name of tor-browser branch
tor-browser-$(ESR_VERSION)esr-$(TOR_BROWSER_MAJOR).$(TOR-BROWSER_MINOR)-1
$(TOR_BROWSER_BRANCH_PREV)
: the full name of the previous tor-browser branch (when rebasing)$(GECKOVIEW_BRANCH)
: the full name of geckoview branch
tor-browser-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR-BROWSER_MINOR)-1
$(GECKOVIEW_BRANCH_PREV)
: the full name of the previous geckoview branch (when rebasing)
<summary>Desktop</summary>
./import-translations.sh
tor-browser
's Bug 10760 : Integrate TorButton to TorBrowser core
issue to point to updated torbutton
commitinstall.rdf
file with new version$(TOR_LAUNCHER_VERSION)
Tagging $(TOR_LAUNCHER_VERSION)
main
and tag to origin$(ESR_VERSION)
$(ESR_TAG)
: INSERT_TAG_HERE
gecko-dev
git commit (search by commit message)
gecko-dev
commit : INSERT_COMMIT_HASH_HERE
tor-browser
branch with the discovered gecko-dev
commit as HEAD
named tor-browser-$(ESR_VERSION)esr-$(TOR_BROWSER_MAJOR).$(TOR-BROWSER_MINOR)-1
$(ESR_TAG)
Hg tag $(ESR_TAG)
tor-browser
patchesgit range-diff $(ESR_TAG_PREV)..$(TOR_BROWSER_BRANCH_PREV) $(ESR_TAG)..$(TOR_BROWSER_BRANCH)
Backport
label and be linked to the associated Release Prep
issueBackport
issuestor-browser-$(ESR_VERSION)esr-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1-$(FIREFOX_BUILD_N)
Tagging $(FIREFOX_BUILD_N) for $(ESR_VERSION)esr-based (alpha|stable)
<summary>Android</summary>
$(RR_VERSION)
$(RR_TAG)
: INSERT_TAG_HERE
gecko-dev
git commit (search by commit message)
gecko-dev
commit : INSERT_COMMIT_HASH_HERE
geckoview
branch with the discovered gecko-dev
commit as HEAD
named geckoview-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR-BROWSER_MINOR)-1
$(RR_TAG)
Hg tag $(RR_TAG)
geckoview
patchesgit range-diff $(RR_TAG_PREV)..$(GECKOVIEW_BRANCH_PREV) $(RR_TAG)..$(GECKOVIEW_BRANCH)
Backport
label and be linked to the associated Release Prep
issueBackport
issuesgeckoview-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1-$(FIREFOX_BUILD_N)
Tagging $(FIREFOX_BUILD_N) for $(RR_VERSION)-based (alpha|stable)
fenix-torbrowserstringsxml
branch
origin/fenix-torbrowserstringsxml
: INSERT COMMIT HASH HERE
$(RR_VERSION)
mozilla-mobile
git tag to start fromv$(RR_VERSION)
(for example, v99.0.3
)android-components-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1
android-components
patchesBackport
label and be linked to the associated Release Prep
issueBackport
issuesandroid-components-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1-$(BUILD_N)
Tagging $(BUILD_N) for $(RR_VERSION)-based (alpha|stable)
master
branch
origin/master
: INSERT COMMIT HASH HERE
$(RR_VERSION)
mozilla-mobile
git tag to start fromv$(RR_VERSION)
(for example, v96.3.0
)tor-browser-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1
tor-browser
here rather than fenix
fenix
patchesBackport
label and be linked to the associated Release Prep
issueBackport
issuestor-browser-$(RR_VERSION)-$(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-1-$(BUILD_N)
Tagging $(BUILD_N) for $(RR_VERSION)-based (alpha|stable)
<summary>Build/Signing/Publishing</summary>
Tor Browser Alpha (and Nightly) are on the main
branch, while Stable lives in the various $(TOR_BROWSER_MAJOR).$(TOR_BROWSER_MINOR)-maint
(and possibly more specific) branches
rbm.conf
var/torbrowser_version
: update to next versionvar/torbrowser_build
: update to $(TOR_BROWSER_BUILD_N)
var/torbrowser_incremental_from
: update to previous version
make incrementals-*
step will failprojects/firefox/config
git_hash
: update the $(FIREFOX_BUILD_N)
section to match tor-browser
tagvar/firefox_platform_version
: update to latest $(ESR_VERSION) if rebasedprojects/geckoview/config
git_hash
: update the $(GECKOVIEW_BUILD_N)
section to match geckoview
tagvar/geckoview_version
: update to latest $(RR_VERSION)
if rebasedprojects/tba-translations/config
:
git_hash
: update with HEAD commit of project's fenix-torbrowserstringsxml
branchprojects/tor-android-service/config
git_hash
: update with HEAD commit of project's master
branchprojects/fenix/config
git_hash
: update the $(FENIX_BUILD_N)
section to match fenix
tagvar/fenix_version
: update to latest $(RR_VERSION)
if rebasedtor-browser-build
root)`./tools/fetch_allowed_addons.py > projects/tor-browser/allowed_addons.jsonnoscript
section of input_files
in projects/tor-browser/config
URL
sha256sum
projects/openssl/config
version
: update to next 1.X.Y release taginput_files/sha256sum
: update to sha256 sum of source tarball-alpha
tagged tor, while stable uses the stable series
projects/tor/config
version
: update to next release tagprojects/go/config
version
: update go versioninput_files/sha256sum
for go
: update sha256sum of archive (sha256 sums are displayed on the go download page)ChangeLog.txt
$(BUILD_SERVER)
make signtag-(alpha|release)
$(BUILD_SERVER)
$(BUILD_SERVER)
content/blog/new-release-tor-browser-$(TOR_BROWSER_VERSION)
and update with info on release :
tor-browser-build/tools/changelog-format-blog-post
databags/versions.ini
: Update the downloads versions
torbrowser-stable/version
: sort of a catch-all for latest stable versiontorbrowser-stable/win32
: tor version in the expert bundletorbrowser-*-stable/version
: platform-specific stable versionstorbrowser-*-alpha/version
: platform-specific alpha versionstor-stable
,tor-alpha
: set by tor devs, do not touch$(STAGING_SERVER)
, ensure updated:
tor-browser-build/tools/signing/set-config
NSS_DB_DIR
: location of the nssdb7
directorytor-browser-build/tools/signing/set-config.hosts
ssh_host_builder
: ssh hostname of machine with unsigned builds
tor-browser-build
is expected to be in the $HOME
directory)ssh_host_linux_signer
: ssh hostname of linux signing machinessh_host_macos_signer
: ssh hostname of macOS signing machinetor-browser-build/tools/signing/set-config.macos-notarization
macos_notarization_user
: the email login for a tor notariser Apple Developer accounttor-browser-build/tools/signing/set-config.tbb-version
tbb_version
: tor browser version string, same as var/torbrowser_version
in rbm.conf
(examples: 11.5a12
, 11.0.13
)tbb_version_build
: the tor-browser-build build number (if var/torbrowser_build
in rbm.conf
is buildN
then this value is N
)tbb_version_type
: either alpha
for alpha releases or release
for stable releases$(STAGING_SERVER)
in a separate screen
session, run the macOS proxy script:
cd tor-browser-build/tools/signing/
./macos-signer-proxy
$(STAGING_SERVER)
in a separate screen
session, ensure tor daemon is running with SOCKS5 proxy on the default port 9050cd tor-browser-build/tools/signing/
./do-all-signing.sh
staticiforme
staticiforme.torproject.org
:
screen
session on staticiforme.torproject.org
static-update-component cdn.torproject.org && static-update-component dist.torproject.org
./deploy_update_responses-alpha.sh
./deploy_update_responses-release.sh
Release > Production
and click Create new release
button*.multi.apk
APKsCopy from a previous release
/label ~"Release Prep"