Skip to content
Snippets Groups Projects
Verified Commit f44ff5c4 authored by Richard Pospesel's avatar Richard Pospesel Committed by Pier Angelo Vendrame
Browse files

Bug 41089: Add tor-browser build scripts + Makefile to tor-browser

parent b9d7dd40
Branches
Tags
1 merge request!768Bug 42090: Rebase release release onto 102.15.1esr
......@@ -193,3 +193,6 @@ config/external/icu4x
# Ignore Storybook generated files
browser/components/storybook/node_modules/
browser/components/storybook/storybook-static/
# Ignore binary base of tor browser
.binaries
.DEFAULT_GOAL := all
# https://stackoverflow.com/questions/18136918/how-to-get-current-relative-directory-of-your-makefile
mkfile_path := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
DEV_ROOT = $(mkfile_path)/../..
BINARIES = $(DEV_ROOT)/.binaries
BUILD_OUTPUT = $(DEV_ROOT)/obj-x86_64-pc-linux-gnu
config:
./config.sh $(DEV_ROOT)
ide-vscode:
./ide.sh vscode $(DEV_ROOT)
ide-eclipse:
./ide.sh eclipse $(DEV_ROOT)
ide-visualstudio:
./ide.sh visualstudio $(DEV_ROOT)
fetch:
./fetch.sh $(BINARIES)
build:
./build.sh $(DEV_ROOT)
deploy:
./deploy.sh $(BINARIES) $(BUILD_OUTPUT)
fat-aar:
./fataar.py $(DEV_ROOT) $(ARCHS)
all: build deploy
run:
$(BINARIES)/dev/Browser/start-tor-browser -v $(ARGS)
jslint:
./jslint.sh $(DEV_ROOT) $(JS)
clobber:
./clobber.sh $(DEV_ROOT)
clean:
rm -rf $(BUILD_OUTPUT)
pref("extensions.torlauncher.default_bridge_recommended_type", "obfs4");
// Default bridges.
pref(
"extensions.torlauncher.default_bridge.obfs4.1",
"obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.2",
"obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.3",
"obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.4",
"obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.5",
"obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.6",
"obfs4 193.11.166.194:27020 86AC7B8D430DAC4117E9F42C9EAED18133863AAF cert=0LDeJH4JzMDtkJJrFphJCiPqKx7loozKN7VNfuukMGfHO0Z8OGdzHVkhVAOfo1mUdv9cMg iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.7",
"obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.8",
"obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.9",
"obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.10",
"obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.obfs4.11",
"obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0"
);
pref(
"extensions.torlauncher.default_bridge.meek-azure.1",
"meek_lite 192.0.2.18:80 BE776A53492E1E044A26F17306E1BC46A55A1625 url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com"
);
pref(
"extensions.torlauncher.default_bridge.snowflake.1",
"snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn"
);
pref(
"extensions.torlauncher.default_bridge.snowflake.2",
"snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.net:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn"
);
#!/bin/bash
set -e
DEV_ROOT=$1
cd $DEV_ROOT
./mach build
./mach build stage-package
#!/bin/bash
set -e
DEV_ROOT=$1
cd $DEV_ROOT
./mach clobber
#!/bin/bash
set -e
DEV_ROOT=$1
cd $DEV_ROOT
./mach configure
#!/bin/bash
set -e
BINARIES=$1
BUILD_OUTPUT=$2
SCRIPT_DIR=$(realpath "$(dirname "$0")")
# Add built-in bridges
mkdir -p $BUILD_OUTPUT/_omni/defaults/preferences
cat $BUILD_OUTPUT/dist/bin/browser/defaults/preferences/000-tor-browser.js $SCRIPT_DIR/bridges.js >> $BUILD_OUTPUT/_omni/defaults/preferences/000-tor-browser.js
cd $BUILD_OUTPUT/_omni && zip -Xmr $BUILD_OUTPUT/dist/firefox/browser/omni.ja defaults/preferences/000-tor-browser.js
rm -rf $BUILD_OUTPUT/_omni
# Repackage the manual
# rm -rf $BUILD_OUTPUT/_omni
# mkdir $BUILD_OUTPUT/_omni
# unzip $BINARIES/dev/Browser/browser/omni.ja -d $BUILD_OUTPUT/_omni
# cd $BUILD_OUTPUT/_omni && zip -Xmr $BUILD_OUTPUT/dist/firefox/browser/omni.ja chrome/browser/content/browser/manual
# rm -rf $BUILD_OUTPUT/_omni
# backup the startup script
mv $BINARIES/dev/Browser/firefox $BINARIES/dev/Browser/firefox.bak
# copy binaries
cp -r $BUILD_OUTPUT/dist/firefox/* $BINARIES/dev/Browser
rm -rf $BINARIES/dev/Browser/TorBrowser/Data/Browser/profile.default/startupCache
# shuffle firefox bin around and restore script to match a real deployment
mv $BINARIES/dev/Browser/firefox $BINARIES/dev/Browser/firefox.real
mv $BINARIES/dev/Browser/firefox.bak $BINARIES/dev/Browser/firefox
#!/usr/bin/env python3
import os
import re
import subprocess
import sys
dev_root = sys.argv[1]
archs_in = re.split("\s+|,", sys.argv[2]) if len(sys.argv) >= 3 else []
archs_out = []
env = dict(os.environ)
env["MOZCONFIG"] = "mozconfig-android-all"
if "armv7" in archs_in:
env["MOZ_ANDROID_FAT_AAR_ARMEABI_V7A"] = (
dev_root
+ "/obj-arm-linux-androideabi/gradle/build/mobile/android/geckoview/outputs/aar/geckoview-withGeckoBinaries-debug.aar"
)
archs_out.append("armeabi-v7a")
if "aarch64" in archs_in:
env["MOZ_ANDROID_FAT_AAR_ARM64_V8A"] = (
dev_root
+ "/obj-aarch64-linux-android/gradle/build/mobile/android/geckoview/outputs/aar/geckoview-withGeckoBinaries-debug.aar"
)
archs_out.append("arm64-v8a")
if "x86" in archs_in or "i686" in archs_in:
env["MOZ_ANDROID_FAT_AAR_X86"] = (
dev_root
+ "/obj-i386-linux-android/gradle/build/mobile/android/geckoview/outputs/aar/geckoview-withGeckoBinaries-debug.aar"
)
archs_out.append("x86")
if "x86_64" in archs_in or "x86-64" in archs_in:
env["MOZ_ANDROID_FAT_AAR_X86_64"] = (
dev_root
+ "/obj-x86_64-linux-android/gradle/build/mobile/android/geckoview/outputs/aar/geckoview-withGeckoBinaries-debug.aar"
)
archs_out.append("x86_64")
env["MOZ_ANDROID_FAT_AAR_ARCHITECTURES"] = ",".join(archs_out)
if not archs_out:
print(
"The architectures have not specified or are not valid.",
file=sys.stderr,
)
print('Usage: make fat-aar ARCHS="$archs"', file=sys.stderr)
print(
"Valid architectures are armv7 aarch64 x86 x86_64, and must be separated with a space.",
file=sys.stderr,
)
sys.exit(1)
subprocess.run(["./mach", "configure"], cwd=dev_root, env=env, check=True)
subprocess.run(["./mach", "build"], cwd=dev_root, env=env, check=True)
#!/bin/sh
set -e
BINARIES_DIR=$1
# download the current downloads.json
wget https://aus1.torproject.org/torbrowser/update_3/alpha/downloads.json
# get url for latest alpha linux en_US package
TOR_BROWSER_VERSION=$(grep -Eo "\"version\":\"[0-9.a]+\"" downloads.json | grep -Eo "[0-9.a]+")
TOR_BROWSER_PACKAGE="tor-browser-linux64-${TOR_BROWSER_VERSION}_ALL.tar.xz"
TOR_BROWSER_PACKAGE_URL="https://dist.torproject.org/torbrowser/${TOR_BROWSER_VERSION}/${TOR_BROWSER_PACKAGE}"
# remove download manifest
rm downloads.json
# clear out previous tor-browser and previous package
rm -rf "${BINARIES_DIR}/dev"
rm -f "${TOR_BROWSER_PACKAGE}"
# download
rm -f "${TOR_BROWSER_PACKAGE}"
wget "${TOR_BROWSER_PACKAGE_URL}"
mkdir -p "${BINARIES_DIR}"
# and extract
tar -xf ${TOR_BROWSER_PACKAGE} -C "${BINARIES_DIR}"
mv "${BINARIES_DIR}/tor-browser" "${BINARIES_DIR}/dev"
# cleanup
rm -f "${TOR_BROWSER_PACKAGE}"
#!/bin/bash
set -e
IDE=$1
DEV_ROOT=$2
cd $DEV_ROOT
./mach ide $IDE
#!/bin/bash
set -e
DEV_ROOT=$1
JS_FILE=$2
cd $DEV_ROOT
./mach lint -l eslint --fix $JS_FILE
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment