[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/tor-browser-build][main] 5 commits: Bug 40745: Allow customizing MOZ_APP_BASENAME



Title: GitLab

Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build

Commits:

  • 499e5d26
    by Pier Angelo Vendrame at 2023-01-26T17:35:56+01:00
    Bug 40745: Allow customizing MOZ_APP_BASENAME
    
    MOZ_APP_BASENAME has direct effects on directory and file names, too.
    So, we need to adjust the firefox project to use the custom names.
    
  • c8f30851
    by Pier Angelo Vendrame at 2023-01-26T17:36:04+01:00
    Bug 40742: Create placeholder files for Privacy Browser installers
    
    Create placeholder files for the NSIS installer and for the DMG.
    
  • 8b16afc6
    by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
    Bug 40742: Add Privacy Browser targets
    
    Add the needed targets needed to build privacy browser.
    
  • 87db400a
    by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
    Bug 40753: Do not copy mar tools when the updater is disabled
    
    In tor-browser#41587 we have disabled the updater for Base Browser.
    However, this also disable the compilation of mar tools, so we should
    make their copy conditional, which this commit does.
    
  • ba13fa7f
    by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
    Bug 40754: Provide uBlock Origin to Privacy Browser
    

19 changed files:

Changes:

  • .gitignore
    ... ... @@ -4,7 +4,13 @@
    4 4
     /out
    
    5 5
     /torbrowser
    
    6 6
     /basebrowser
    
    7
    +/privacybrowser
    
    7 8
     /testbuild
    
    8 9
     /rbm.local.conf
    
    9 10
     /logs
    
    10 11
     /tmp
    
    12
    +
    
    13
    +# Old build directories, let's keep them anyway
    
    14
    +/release
    
    15
    +/alpha
    
    16
    +/nightly

  • Makefile
    ... ... @@ -180,103 +180,43 @@ torbrowser-testbuild-macos-aarch64: submodule-update
    180 180
     torbrowser-testbuild-src: submodule-update
    
    181 181
     	$(rbm) build release --target testbuild --target browser-src-testbuild --target torbrowser
    
    182 182
     
    
    183
    -signtag-release: submodule-update
    
    184
    -	$(rbm) build release --step signtag --target release --target torbrowser
    
    185
    -
    
    186
    -signtag-alpha: submodule-update
    
    187
    -	$(rbm) build release --step signtag --target alpha --target torbrowser
    
    188
    -
    
    189
    -incrementals-release: submodule-update
    
    183
    +torbrowser-incrementals-release: submodule-update
    
    190 184
     	$(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target torbrowser
    
    191 185
     	tools/update-responses/download_missing_versions release
    
    192 186
     	tools/update-responses/gen_incrementals release
    
    193 187
     	$(rbm) build release --step hash_incrementals --target release --target torbrowser
    
    194 188
     
    
    195
    -incrementals-alpha: submodule-update
    
    189
    +torbrowser-incrementals-alpha: submodule-update
    
    196 190
     	$(rbm) build release --step update_responses_config --target alpha --target create_unsigned_incrementals --target torbrowser
    
    197 191
     	tools/update-responses/download_missing_versions alpha
    
    198 192
     	tools/update-responses/gen_incrementals alpha
    
    199 193
     	$(rbm) build release --step hash_incrementals --target alpha --target torbrowser
    
    200 194
     
    
    201
    -incrementals-nightly: submodule-update
    
    195
    +torbrowser-incrementals-nightly: submodule-update
    
    202 196
     	$(rbm) build release --step update_responses_config --target nightly --target torbrowser
    
    203 197
     	NO_CODESIGNATURE=1 tools/update-responses/gen_incrementals nightly
    
    204 198
     	$(rbm) build release --step hash_incrementals --target nightly --target torbrowser
    
    205 199
     
    
    206
    -update_responses-release: submodule-update
    
    200
    +torbrowser-update_responses-release: submodule-update
    
    207 201
     	$(rbm) build release --step update_responses_config --target release --target signed --target torbrowser
    
    208 202
     	$(rbm) build release --step create_update_responses_tar --target release --target signed --target torbrowser
    
    209 203
     
    
    210
    -update_responses-alpha: submodule-update
    
    204
    +torbrowser-update_responses-alpha: submodule-update
    
    211 205
     	$(rbm) build release --step update_responses_config --target alpha --target signed --target torbrowser
    
    212 206
     	$(rbm) build release --step create_update_responses_tar --target alpha --target signed --target torbrowser
    
    213 207
     
    
    214
    -dmg2mar-release: submodule-update
    
    208
    +torbrowser-dmg2mar-release: submodule-update
    
    215 209
     	$(rbm) build release --step update_responses_config --target release --target signed --target torbrowser
    
    216 210
     	$(rbm) build release --step dmg2mar --target release --target signed --target torbrowser
    
    217 211
     	tools/update-responses/download_missing_versions release
    
    218 212
     	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals release
    
    219 213
     
    
    220
    -dmg2mar-alpha: submodule-update
    
    214
    +torbrowser-dmg2mar-alpha: submodule-update
    
    221 215
     	$(rbm) build release --step update_responses_config --target alpha --target signed --target torbrowser
    
    222 216
     	$(rbm) build release --step dmg2mar --target alpha --target signed --target torbrowser
    
    223 217
     	tools/update-responses/download_missing_versions alpha
    
    224 218
     	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals alpha
    
    225 219
     
    
    226
    -list_translation_updates-release:
    
    227
    -	$(rbm) showconf --target release --step list_updates translation list_updates
    
    228
    -
    
    229
    -list_translation_updates-alpha:
    
    230
    -	$(rbm) showconf --target alpha --step list_updates translation list_updates
    
    231
    -
    
    232
    -list_toolchain_updates-fenix: submodule-update
    
    233
    -	$(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    234
    -
    
    235
    -list_toolchain_updates-firefox-linux: submodule-update
    
    236
    -	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64
    
    237
    -
    
    238
    -list_toolchain_updates-firefox-windows: submodule-update
    
    239
    -	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-windows-x86_64
    
    240
    -
    
    241
    -list_toolchain_updates-firefox-macos: submodule-update
    
    242
    -	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-macos
    
    243
    -
    
    244
    -list_toolchain_updates-android-components: submodule-update
    
    245
    -	$(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    246
    -
    
    247
    -list_toolchain_updates-application-services: submodule-update
    
    248
    -	$(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    249
    -
    
    250
    -list_toolchain_updates-geckoview: submodule-update
    
    251
    -	$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    252
    -
    
    253
    -create_glean_deps_tarball: submodule-update
    
    254
    -	 $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7
    
    255
    -
    
    256
    -create_glean_deps_tarball-with_torsocks: submodule-update
    
    257
    -	$(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
    
    258
    -
    
    259
    -get_gradle_dependencies_list-fenix: submodule-update
    
    260
    -	$(rbm) build fenix --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    261
    -
    
    262
    -get_gradle_dependencies_list-application-services: submodule-update
    
    263
    -	$(rbm) build application-services --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    264
    -
    
    265
    -get_gradle_dependencies_list-android-components: submodule-update
    
    266
    -	$(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    267
    -
    
    268
    -cargo_vendor-application-services: submodule-update
    
    269
    -	$(rbm) build application-services --step cargo_vendor --target nightly --target torbrowser-android-armv7
    
    270
    -
    
    271
    -cargo_vendor-cbindgen-android: submodule-update
    
    272
    -	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-android-armv7
    
    273
    -
    
    274
    -cargo_vendor-cbindgen: submodule-update
    
    275
    -	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
    
    276
    -
    
    277
    -cargo_vendor-uniffi-rs: submodule-update
    
    278
    -	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
    
    279
    -
    
    280 220
     
    
    281 221
     ########################
    
    282 222
     # Base Browser Targets #
    
    ... ... @@ -457,6 +397,197 @@ basebrowser-testbuild-src: submodule-update
    457 397
     	$(rbm) build release --target testbuild --target browser-src-testbuild --target basebrowser
    
    458 398
     
    
    459 399
     
    
    400
    +###########################
    
    401
    +# Privacy Browser Targets #
    
    402
    +###########################
    
    403
    +
    
    404
    +privacybrowser-release: submodule-update
    
    405
    +	$(rbm) build release --target release --target browser-all-desktop --target privacybrowser
    
    406
    +
    
    407
    +privacybrowser-release-desktop: submodule-update
    
    408
    +	$(rbm) build release --target release --target browser-all-desktop --target privacybrowser
    
    409
    +
    
    410
    +privacybrowser-release-linux-x86_64: submodule-update
    
    411
    +	$(rbm) build release --target release --target browser-linux-x86_64 --target privacybrowser
    
    412
    +
    
    413
    +privacybrowser-release-linux-x86_64-asan: submodule-update
    
    414
    +	$(rbm) build release --target release --target browser-linux-x86_64-asan --target privacybrowser
    
    415
    +
    
    416
    +privacybrowser-release-windows-x86_64: submodule-update
    
    417
    +	$(rbm) build release --target release --target browser-windows-x86_64 --target privacybrowser
    
    418
    +
    
    419
    +privacybrowser-release-macos: submodule-update
    
    420
    +	$(rbm) build release --target release --target browser-macos --target privacybrowser
    
    421
    +
    
    422
    +privacybrowser-release-src: submodule-update
    
    423
    +	$(rbm) build release --target release --target browser-src --target privacybrowser
    
    424
    +
    
    425
    +privacybrowser-alpha: submodule-update
    
    426
    +	$(rbm) build release --target alpha --target browser-all-desktop --target privacybrowser
    
    427
    +
    
    428
    +privacybrowser-alpha-desktop: submodule-update
    
    429
    +	$(rbm) build release --target alpha --target browser-all-desktop --target privacybrowser
    
    430
    +
    
    431
    +privacybrowser-alpha-linux-x86_64: submodule-update
    
    432
    +	$(rbm) build release --target alpha --target browser-linux-x86_64 --target privacybrowser
    
    433
    +
    
    434
    +privacybrowser-alpha-linux-x86_64-asan: submodule-update
    
    435
    +	$(rbm) build release --target alpha --target browser-linux-x86_64-asan --target privacybrowser
    
    436
    +
    
    437
    +privacybrowser-alpha-windows-x86_64: submodule-update
    
    438
    +	$(rbm) build release --target alpha --target browser-windows-x86_64 --target privacybrowser
    
    439
    +
    
    440
    +privacybrowser-alpha-macos: submodule-update
    
    441
    +	$(rbm) build release --target alpha --target browser-macos --target privacybrowser
    
    442
    +
    
    443
    +privacybrowser-alpha-src: submodule-update
    
    444
    +	$(rbm) build release --target alpha --target browser-src --target privacybrowser
    
    445
    +
    
    446
    +privacybrowser-nightly: submodule-update
    
    447
    +	$(rbm) build release --target nightly --target browser-all-desktop --target privacybrowser
    
    448
    +
    
    449
    +privacybrowser-nightly-desktop: submodule-update
    
    450
    +	$(rbm) build release --target nightly --target browser-all-desktop --target privacybrowser
    
    451
    +
    
    452
    +privacybrowser-nightly-linux-x86_64: submodule-update
    
    453
    +	$(rbm) build release --target nightly --target browser-linux-x86_64 --target privacybrowser
    
    454
    +
    
    455
    +privacybrowser-nightly-linux-x86_64-asan: submodule-update
    
    456
    +	$(rbm) build release --target nightly --target browser-linux-x86_64-asan --target privacybrowser
    
    457
    +
    
    458
    +privacybrowser-nightly-windows-x86_64: submodule-update
    
    459
    +	$(rbm) build release --target nightly --target browser-windows-x86_64 --target privacybrowser
    
    460
    +
    
    461
    +privacybrowser-nightly-macos: submodule-update
    
    462
    +	$(rbm) build release --target nightly --target browser-macos --target privacybrowser
    
    463
    +
    
    464
    +privacybrowser-nightly-src: submodule-update
    
    465
    +	$(rbm) build release --target nightly --target browser-src --target privacybrowser
    
    466
    +
    
    467
    +privacybrowser-testbuild: submodule-update
    
    468
    +	$(rbm) build release --target testbuild --target browser-all-desktop --target privacybrowser
    
    469
    +
    
    470
    +privacybrowser-testbuild-desktop: submodule-update
    
    471
    +	$(rbm) build release --target testbuild --target browser-all-desktop --target privacybrowser
    
    472
    +
    
    473
    +privacybrowser-testbuild-linux-x86_64: submodule-update
    
    474
    +	$(rbm) build release --target testbuild --target browser-linux-x86_64 --target privacybrowser
    
    475
    +
    
    476
    +privacybrowser-testbuild-linux-x86_64-asan: submodule-update
    
    477
    +	$(rbm) build release --target testbuild --target browser-linux-x86_64-asan --target privacybrowser
    
    478
    +
    
    479
    +privacybrowser-testbuild-windows-x86_64: submodule-update
    
    480
    +	$(rbm) build release --target testbuild --target browser-windows-x86_64 --target privacybrowser
    
    481
    +
    
    482
    +privacybrowser-testbuild-macos: submodule-update
    
    483
    +	$(rbm) build release --target testbuild --target browser-macos --target privacybrowser
    
    484
    +
    
    485
    +privacybrowser-testbuild-macos-x86_64: submodule-update
    
    486
    +	$(rbm) build release --target testbuild --target browser-macos-x86_64 --target privacybrowser
    
    487
    +
    
    488
    +privacybrowser-testbuild-macos-aarch64: submodule-update
    
    489
    +	$(rbm) build release --target testbuild --target browser-macos-aarch64 --target privacybrowser
    
    490
    +
    
    491
    +privacybrowser-testbuild-src: submodule-update
    
    492
    +	$(rbm) build release --target testbuild --target browser-src-testbuild --target privacybrowser
    
    493
    +
    
    494
    +privacybrowser-incrementals-release: submodule-update
    
    495
    +	$(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target privacybrowser
    
    496
    +	tools/update-responses/download_missing_versions release
    
    497
    +	tools/update-responses/gen_incrementals release
    
    498
    +	$(rbm) build release --step hash_incrementals --target release --target privacybrowser
    
    499
    +
    
    500
    +privacybrowser-incrementals-alpha: submodule-update
    
    501
    +	$(rbm) build release --step update_responses_config --target alpha --target create_unsigned_incrementals --target privacybrowser
    
    502
    +	tools/update-responses/download_missing_versions alpha
    
    503
    +	tools/update-responses/gen_incrementals alpha
    
    504
    +	$(rbm) build release --step hash_incrementals --target alpha --target privacybrowser
    
    505
    +
    
    506
    +privacybrowser-incrementals-nightly: submodule-update
    
    507
    +	$(rbm) build release --step update_responses_config --target nightly --target privacybrowser
    
    508
    +	NO_CODESIGNATURE=1 tools/update-responses/gen_incrementals nightly
    
    509
    +	$(rbm) build release --step hash_incrementals --target nightly --target privacybrowser
    
    510
    +
    
    511
    +privacybrowser-update_responses-release: submodule-update
    
    512
    +	$(rbm) build release --step update_responses_config --target release --target signed --target privacybrowser
    
    513
    +	$(rbm) build release --step create_update_responses_tar --target release --target signed --target privacybrowser
    
    514
    +
    
    515
    +privacybrowser-update_responses-alpha: submodule-update
    
    516
    +	$(rbm) build release --step update_responses_config --target alpha --target signed --target privacybrowser
    
    517
    +	$(rbm) build release --step create_update_responses_tar --target alpha --target signed --target privacybrowser
    
    518
    +
    
    519
    +privacybrowser-dmg2mar-release: submodule-update
    
    520
    +	$(rbm) build release --step update_responses_config --target release --target signed --target privacybrowser
    
    521
    +	$(rbm) build release --step dmg2mar --target release --target signed --target privacybrowser
    
    522
    +	tools/update-responses/download_missing_versions release
    
    523
    +	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals release
    
    524
    +
    
    525
    +privacybrowser-dmg2mar-alpha: submodule-update
    
    526
    +	$(rbm) build release --step update_responses_config --target alpha --target signed --target privacybrowser
    
    527
    +	$(rbm) build release --step dmg2mar --target alpha --target signed --target privacybrowser
    
    528
    +	tools/update-responses/download_missing_versions alpha
    
    529
    +	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals alpha
    
    530
    +
    
    531
    +
    
    532
    +############################
    
    533
    +# Toolchain Update Targets #
    
    534
    +############################
    
    535
    +
    
    536
    +list_translation_updates-release:
    
    537
    +	$(rbm) showconf --target release --step list_updates translation list_updates
    
    538
    +
    
    539
    +list_translation_updates-alpha:
    
    540
    +	$(rbm) showconf --target alpha --step list_updates translation list_updates
    
    541
    +
    
    542
    +list_toolchain_updates-fenix: submodule-update
    
    543
    +	$(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    544
    +
    
    545
    +list_toolchain_updates-firefox-linux: submodule-update
    
    546
    +	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64
    
    547
    +
    
    548
    +list_toolchain_updates-firefox-windows: submodule-update
    
    549
    +	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-windows-x86_64
    
    550
    +
    
    551
    +list_toolchain_updates-firefox-macos: submodule-update
    
    552
    +	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-macos
    
    553
    +
    
    554
    +list_toolchain_updates-android-components: submodule-update
    
    555
    +	$(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    556
    +
    
    557
    +list_toolchain_updates-application-services: submodule-update
    
    558
    +	$(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    559
    +
    
    560
    +list_toolchain_updates-geckoview: submodule-update
    
    561
    +	$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
    
    562
    +
    
    563
    +create_glean_deps_tarball: submodule-update
    
    564
    +	 $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7
    
    565
    +
    
    566
    +create_glean_deps_tarball-with_torsocks: submodule-update
    
    567
    +	$(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
    
    568
    +
    
    569
    +get_gradle_dependencies_list-fenix: submodule-update
    
    570
    +	$(rbm) build fenix --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    571
    +
    
    572
    +get_gradle_dependencies_list-application-services: submodule-update
    
    573
    +	$(rbm) build application-services --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    574
    +
    
    575
    +get_gradle_dependencies_list-android-components: submodule-update
    
    576
    +	$(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
    
    577
    +
    
    578
    +cargo_vendor-application-services: submodule-update
    
    579
    +	$(rbm) build application-services --step cargo_vendor --target nightly --target torbrowser-android-armv7
    
    580
    +
    
    581
    +cargo_vendor-cbindgen-android: submodule-update
    
    582
    +	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-android-armv7
    
    583
    +
    
    584
    +cargo_vendor-cbindgen: submodule-update
    
    585
    +	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
    
    586
    +
    
    587
    +cargo_vendor-uniffi-rs: submodule-update
    
    588
    +	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
    
    589
    +
    
    590
    +
    
    460 591
     ##################
    
    461 592
     # Common Targets #
    
    462 593
     ##################
    
    ... ... @@ -464,6 +595,12 @@ basebrowser-testbuild-src: submodule-update
    464 595
     submodule-update:
    
    465 596
     	git submodule update --init
    
    466 597
     
    
    598
    +signtag-release: submodule-update
    
    599
    +	$(rbm) build release --step signtag --target release --target torbrowser
    
    600
    +
    
    601
    +signtag-alpha: submodule-update
    
    602
    +	$(rbm) build release --step signtag --target alpha --target torbrowser
    
    603
    +
    
    467 604
     fetch: submodule-update
    
    468 605
     	$(rbm) fetch
    
    469 606
     
    

  • README
    ... ... @@ -96,9 +96,9 @@ mar file will be created. If you want to base your testbuild on the latest
    96 96
     nightly code insted, rename rbm.local.conf.example to rbm.local.conf
    
    97 97
     and adapt the torbrowser-testbuild option accordingly.
    
    98 98
     
    
    99
    -Similar makefile targets exist for building Base Browser instead of
    
    100
    -Tor Browser. To build Base Browser, replace `torbrowser` by `basebrowser`
    
    101
    -in the target name.
    
    99
    +Similar makefile targets exist for building Base Browser and Privacy Browser
    
    100
    +instead of Tor Browser. To build Base Browser, replace `torbrowser` by
    
    101
    +`basebrowser` in the target name. For Privacy Browser, use `privacybrowser`.
    
    102 102
     
    
    103 103
     
    
    104 104
     Updating git sources
    

  • doc/MAKEFILE.txt
    ... ... @@ -75,6 +75,11 @@ basebrowser-*
    75 75
     The same rules for building Tor Browser also exist for building
    
    76 76
     Base Browser.
    
    77 77
     
    
    78
    +privacybrowser-*
    
    79
    +----------------
    
    80
    +The same rules for building Tor Browser also exist for building
    
    81
    +Privacy Browser.
    
    82
    +
    
    78 83
     fetch
    
    79 84
     -----
    
    80 85
     Fetch new commits from all components. This is useful when you want to
    

  • projects/browser/Bundle-Data/PrivacyBrowser.dmg/.DS_Store
    No preview for this file type
  • projects/browser/Bundle-Data/PrivacyBrowser.dmg/.VolumeIcon.icns
    No preview for this file type
  • projects/browser/Bundle-Data/PrivacyBrowser.dmg/.background/background.png
    No preview for this file type
  • projects/browser/RelativeLink/start-browser
    ... ... @@ -94,8 +94,8 @@ fi
    94 94
     
    
    95 95
     print_usage () {
    
    96 96
         printf "\n[% c('var/Project_Name') %] Script Options\n"
    
    97
    -    printf "  --verbose         Display Tor and Firefox output in the terminal\n"
    
    98
    -    printf "  --log [file]      Record Tor and Firefox output in file (default: [% c('var/project-name') %].log)\n"
    
    97
    +    printf "  --verbose         Display [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in the terminal\n"
    
    98
    +    printf "  --log [file]      Record [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in file (default: [% c('var/project-name') %].log)\n"
    
    99 99
         printf "  --detach          Detach from terminal and run [% c('var/Project_Name') %] in the background.\n"
    
    100 100
         printf "  --register-app    Register [% c('var/Project_Name') %] as a desktop app for this user\n"
    
    101 101
         printf "  --unregister-app  Unregister [% c('var/Project_Name') %] as a desktop app for this user\n"
    
    ... ... @@ -356,22 +356,22 @@ cd "${HOME}"
    356 356
     
    
    357 357
     if [ "$show_usage" -eq 1 ]; then
    
    358 358
         # Display Firefox help, then our help
    
    359
    -    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
    
    359
    +    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
    
    360 360
             --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" --help 2>/dev/null
    
    361 361
         print_usage
    
    362 362
     elif [ "$detach" -eq 1 ] ; then
    
    363
    -    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
    
    363
    +    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
    
    364 364
             --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" > "$logfile" 2>&1 </dev/null &
    
    365 365
         disown "$!"
    
    366 366
     elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then
    
    367
    -    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
    
    367
    +    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
    
    368 368
             --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" 2>&1 </dev/null | \
    
    369 369
             tee "$logfile"
    
    370 370
     elif [ "$show_output" -eq 1 ]; then
    
    371
    -    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
    
    371
    +    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
    
    372 372
             --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" < /dev/null
    
    373 373
     else
    
    374
    -    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
    
    374
    +    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
    
    375 375
             --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" > "$logfile" 2>&1 </dev/null
    
    376 376
     fi
    
    377 377
     
    

  • projects/browser/build
    ... ... @@ -56,12 +56,17 @@ do
    56 56
       mkdir -p "$tbdir/$EXTSPATH"
    
    57 57
     done
    
    58 58
     
    
    59
    -# Extract the MAR tools.
    
    60
    -unzip -d $rootdir $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip
    
    61
    -MARTOOLS=$rootdir/mar-tools
    
    59
    +[% IF c("var/updater_enabled") -%]
    
    60
    +  # Extract the MAR tools.
    
    61
    +  unzip -d $rootdir $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip
    
    62
    +  MARTOOLS=$rootdir/mar-tools
    
    63
    +[% END -%]
    
    62 64
     
    
    63 65
     mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
    
    64
    -[% IF !c("var/macos") -%]
    
    66
    +[% IF c("var/privacy-browser") -%]
    
    67
    +  mv [% c('input_files_by_name/ublock-origin') %] "$TBDIR/$EXTSPATH/uBlock0@xxxxxxxxxxxxxxxxxxx"
    
    68
    +[% END -%]
    
    69
    +[% IF !c("var/macos") && c("var/tor-browser") -%]
    
    65 70
       cp "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" "$TBDIR/$PROFILEPATH/"
    
    66 71
     [% END %]
    
    67 72
     
    
    ... ... @@ -291,10 +296,11 @@ done
    291 296
       # mozpack.mozjar.JarReaderError: Central directory and file header mismatch. Corrupted archive?
    
    292 297
       #
    
    293 298
       # See https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40439#note_2838724
    
    294
    -  mv "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" $rootdir/ns.xpi
    
    299
    +  mkdir $rootdir/extensions
    
    300
    +  mv "$TBDIR/$EXTSPATH/"* $rootdir/extensions
    
    295 301
       MOZ_AUTOMATION=1 $firefox_src/mach python $firefox_src/toolkit/mozapps/installer/unify.py "$TBDIR" "$TBDIR_AARCH64"
    
    296 302
       mkdir -p "$TBDIR/$EXTSPATH"
    
    297
    -  mv $rootdir/ns.xpi "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
    
    303
    +  mv $rootdir/extensions/* "$TBDIR/$EXTSPATH/"
    
    298 304
       rm -Rf "$TBDIR_AARCH64"
    
    299 305
     [% END -%]
    
    300 306
     
    
    ... ... @@ -311,14 +317,15 @@ cat > "$scripts_dir/create-$PKG_DIR" << SCRIPT_EOF
    311 317
     set -e
    
    312 318
     cp -a ${TB_STAGE_DIR} $distdir/$PKG_DIR
    
    313 319
     
    
    314
    -pushd "$TBDIR[% IF c("var/macos") %]/Contents/Resources/[% END %]"
    
    315
    -rm -f precomplete
    
    316
    -python $MARTOOLS/createprecomplete.py
    
    317
    -popd
    
    318
    -
    
    320
    +[% IF c("var/updater_enabled") -%]
    
    321
    +  pushd "$TBDIR[% IF c("var/macos") %]/Contents/Resources/[% END %]"
    
    322
    +  rm -f precomplete
    
    323
    +  python $MARTOOLS/createprecomplete.py
    
    324
    +  popd
    
    325
    +[% END -%]
    
    319 326
     cd $distdir
    
    320 327
     
    
    321
    -[% IF c("var/build_mar") -%]
    
    328
    +[% IF c("var/build_mar") && c("var/updater_enabled") -%]
    
    322 329
       # Create full MAR file and compressed package.
    
    323 330
       [% SET mar_file = c("var/project-name") _ '-' _ c("var/mar_osname") _ '-' _ c("var/torbrowser_version") _ '_${PKG_LOCALE}.mar' %]
    
    324 331
       MAR=$MARTOOLS/mar \
    
    ... ... @@ -352,7 +359,9 @@ cd $distdir
    352 359
     rm -rf $distdir/${PKG_DIR}
    
    353 360
     SCRIPT_EOF
    
    354 361
     
    
    355
    -cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/
    
    362
    +[% IF c("var/updater_enabled") -%]
    
    363
    +  cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/
    
    364
    +[% END -%]
    
    356 365
     [% IF c("var/linux-x86_64") -%]
    
    357 366
       [% IF c("var/tor-browser") -%]
    
    358 367
         cp $rootdir/[% c('input_files_by_name/firefox') %]/browser-debug.tar.xz "$OUTDIR"/[% c("var/project-name") %]-[% c("var/mar_osname") %]-debug.tar.xz
    

  • projects/browser/config
    ... ... @@ -67,6 +67,9 @@ targets:
    67 67
       basebrowser:
    
    68 68
         var:
    
    69 69
           prefs_file: 001-base-profile.js
    
    70
    +  privacybrowser:
    
    71
    +    var:
    
    72
    +      prefs_file: 001-base-profile.js
    
    70 73
     
    
    71 74
     input_files:
    
    72 75
       - project: container-image
    
    ... ... @@ -103,6 +106,10 @@ input_files:
    103 106
       - URL: https://addons.mozilla.org/firefox/downloads/file/4050735/noscript-11.4.14.xpi
    
    104 107
         name: noscript
    
    105 108
         sha256sum: 14af6a3cbc269c045f2d950e1e4f7c29981b35a7abc61d2413f5bb8bd7311857
    
    109
    +  - URL: https://addons.mozilla.org/firefox/downloads/file/4047353/ublock_origin-1.46.0.xpi
    
    110
    +    name: ublock-origin
    
    111
    +    sha256sum: 6bf8af5266353fab5eabdc7476de026e01edfb7901b0430c5e539f6791f1edc8
    
    112
    +    enable: '[% c("var/privacy-browser") %]'
    
    106 113
       - filename: 'gtk3-settings.ini'
    
    107 114
         enable: '[% c("var/linux") %]'
    
    108 115
       - project: hfsplus-tools
    

  • projects/browser/windows-installer/basebrowser.nsi
    ... ... @@ -3,7 +3,7 @@
    3 3
     ;released under Public Domain
    
    4 4
     
    
    5 5
     ;--------------------------------
    
    6
    -;Modern" UI
    
    6
    +;Modern UI
    
    7 7
     
    
    8 8
       !include "MUI2.nsh"
    
    9 9
       !include "LogicLib.nsh"
    
    ... ... @@ -11,16 +11,16 @@
    11 11
     
    
    12 12
     ;--------------------------------
    
    13 13
     ;General
    
    14
    - 
    
    14
    +
    
    15 15
       ; location of Base Browser bundle to put into installer
    
    16
    -  !define TBBSOURCE ".\Base Browser\"  
    
    16
    +  !define TBBSOURCE ".\Base Browser\"
    
    17 17
     
    
    18 18
       Name "Base Browser"
    
    19 19
       OutFile "basebrowser-install.exe"
    
    20 20
     
    
    21 21
       ;Default installation folder
    
    22 22
       InstallDir "$DESKTOP\Base Browser"
    
    23
    -  
    
    23
    +
    
    24 24
       ;Best (but slowest) compression
    
    25 25
       SetCompressor /SOLID lzma
    
    26 26
       SetCompressorDictSize 32
    
    ... ... @@ -117,11 +117,11 @@
    117 117
     
    
    118 118
     ;--------------------------------
    
    119 119
     ;Reserve Files
    
    120
    -  
    
    120
    +
    
    121 121
       ;If you are using solid compression, files that are required before
    
    122 122
       ;the actual installation should be stored first in the data block,
    
    123 123
       ;because this will make your installer start faster.
    
    124
    -  
    
    124
    +
    
    125 125
       !insertmacro MUI_RESERVEFILE_LANGDLL
    
    126 126
     
    
    127 127
     ;--------------------------------
    
    ... ... @@ -138,7 +138,7 @@ SectionEnd
    138 138
     
    
    139 139
     Function CreateShortcuts
    
    140 140
     
    
    141
    -  CreateShortCut "$SMPROGRAMS\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe" 
    
    141
    +  CreateShortCut "$SMPROGRAMS\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe"
    
    142 142
       CreateShortCut "$DESKTOP\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe"
    
    143 143
     
    
    144 144
     FunctionEnd
    

  • projects/browser/windows-installer/privacybrowser.ico
    No preview for this file type
  • projects/browser/windows-installer/privacybrowser.nsi
    1
    +;NSIS Installer for Privacy Browser
    
    2
    +;Written by Moritz Bartl
    
    3
    +;released under Public Domain
    
    4
    +
    
    5
    +;--------------------------------
    
    6
    +;Modern UI
    
    7
    +
    
    8
    +  !include "MUI2.nsh"
    
    9
    +  !include "LogicLib.nsh"
    
    10
    +  !include "WinVer.nsh"
    
    11
    +
    
    12
    +;--------------------------------
    
    13
    +;General
    
    14
    +
    
    15
    +  ; location of Privacy Browser bundle to put into installer
    
    16
    +  !define TBBSOURCE ".\Privacy Browser\"
    
    17
    +
    
    18
    +  Name "Privacy Browser"
    
    19
    +  OutFile "privacybrowser-install.exe"
    
    20
    +
    
    21
    +  ;Default installation folder
    
    22
    +  InstallDir "$DESKTOP\Privacy Browser"
    
    23
    +
    
    24
    +  ;Best (but slowest) compression
    
    25
    +  SetCompressor /SOLID lzma
    
    26
    +  SetCompressorDictSize 32
    
    27
    +
    
    28
    +  ;Request application privileges for Windows Vista
    
    29
    +  RequestExecutionLevel user
    
    30
    +
    
    31
    +;--------------------------------
    
    32
    +;Interface Configuration
    
    33
    +
    
    34
    +  !define MUI_ICON   "privacybrowser.ico"
    
    35
    +  !define MUI_ABORTWARNING
    
    36
    +
    
    37
    +;--------------------------------
    
    38
    +;Modern UI settings
    
    39
    +  !define MUI_FINISHPAGE_NOREBOOTSUPPORT     ; we don't require a reboot
    
    40
    +  !define MUI_FINISHPAGE_RUN
    
    41
    +  !define MUI_FINISHPAGE_RUN_FUNCTION "StartPrivacyBrowser"
    
    42
    +  !define MUI_FINISHPAGE_SHOWREADME ; misuse for option to create shortcut; less ugly than MUI_PAGE_COMPONENTS
    
    43
    +  !define MUI_FINISHPAGE_SHOWREADME_TEXT "&Add Start Menu && Desktop shortcuts"
    
    44
    +  !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CreateShortCuts"
    
    45
    +;--------------------------------
    
    46
    +;Pages
    
    47
    +
    
    48
    +  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckIfTargetDirectoryExists
    
    49
    +  !insertmacro MUI_PAGE_DIRECTORY
    
    50
    +  !insertmacro MUI_PAGE_INSTFILES
    
    51
    +  !insertmacro MUI_PAGE_FINISH
    
    52
    +
    
    53
    +;--------------------------------
    
    54
    +;Languages
    
    55
    +
    
    56
    +  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
    
    57
    +  !insertmacro MUI_LANGUAGE "French"
    
    58
    +  !insertmacro MUI_LANGUAGE "German"
    
    59
    +  !insertmacro MUI_LANGUAGE "Spanish"
    
    60
    +  !insertmacro MUI_LANGUAGE "SpanishInternational"
    
    61
    +  !insertmacro MUI_LANGUAGE "SimpChinese"
    
    62
    +  !insertmacro MUI_LANGUAGE "TradChinese"
    
    63
    +  !insertmacro MUI_LANGUAGE "Japanese"
    
    64
    +  !insertmacro MUI_LANGUAGE "Korean"
    
    65
    +  !insertmacro MUI_LANGUAGE "Italian"
    
    66
    +  !insertmacro MUI_LANGUAGE "Dutch"
    
    67
    +  !insertmacro MUI_LANGUAGE "Danish"
    
    68
    +  !insertmacro MUI_LANGUAGE "Swedish"
    
    69
    +  !insertmacro MUI_LANGUAGE "Norwegian"
    
    70
    +  !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
    
    71
    +  !insertmacro MUI_LANGUAGE "Finnish"
    
    72
    +  !insertmacro MUI_LANGUAGE "Greek"
    
    73
    +  !insertmacro MUI_LANGUAGE "Russian"
    
    74
    +  !insertmacro MUI_LANGUAGE "Portuguese"
    
    75
    +  !insertmacro MUI_LANGUAGE "PortugueseBR"
    
    76
    +  !insertmacro MUI_LANGUAGE "Polish"
    
    77
    +  !insertmacro MUI_LANGUAGE "Ukrainian"
    
    78
    +  !insertmacro MUI_LANGUAGE "Czech"
    
    79
    +  !insertmacro MUI_LANGUAGE "Slovak"
    
    80
    +  !insertmacro MUI_LANGUAGE "Croatian"
    
    81
    +  !insertmacro MUI_LANGUAGE "Bulgarian"
    
    82
    +  !insertmacro MUI_LANGUAGE "Hungarian"
    
    83
    +  !insertmacro MUI_LANGUAGE "Thai"
    
    84
    +  !insertmacro MUI_LANGUAGE "Romanian"
    
    85
    +  !insertmacro MUI_LANGUAGE "Latvian"
    
    86
    +  !insertmacro MUI_LANGUAGE "Macedonian"
    
    87
    +  !insertmacro MUI_LANGUAGE "Estonian"
    
    88
    +  !insertmacro MUI_LANGUAGE "Turkish"
    
    89
    +  !insertmacro MUI_LANGUAGE "Lithuanian"
    
    90
    +  !insertmacro MUI_LANGUAGE "Slovenian"
    
    91
    +  !insertmacro MUI_LANGUAGE "Serbian"
    
    92
    +  !insertmacro MUI_LANGUAGE "SerbianLatin"
    
    93
    +  !insertmacro MUI_LANGUAGE "Arabic"
    
    94
    +  !insertmacro MUI_LANGUAGE "Farsi"
    
    95
    +  !insertmacro MUI_LANGUAGE "Hebrew"
    
    96
    +  !insertmacro MUI_LANGUAGE "Indonesian"
    
    97
    +  !insertmacro MUI_LANGUAGE "Mongolian"
    
    98
    +  !insertmacro MUI_LANGUAGE "Luxembourgish"
    
    99
    +  !insertmacro MUI_LANGUAGE "Albanian"
    
    100
    +  !insertmacro MUI_LANGUAGE "Breton"
    
    101
    +  !insertmacro MUI_LANGUAGE "Belarusian"
    
    102
    +  !insertmacro MUI_LANGUAGE "Icelandic"
    
    103
    +  !insertmacro MUI_LANGUAGE "Malay"
    
    104
    +  !insertmacro MUI_LANGUAGE "Bosnian"
    
    105
    +  !insertmacro MUI_LANGUAGE "Kurdish"
    
    106
    +  !insertmacro MUI_LANGUAGE "Irish"
    
    107
    +  !insertmacro MUI_LANGUAGE "Uzbek"
    
    108
    +  !insertmacro MUI_LANGUAGE "Galician"
    
    109
    +  !insertmacro MUI_LANGUAGE "Afrikaans"
    
    110
    +  !insertmacro MUI_LANGUAGE "Catalan"
    
    111
    +  !insertmacro MUI_LANGUAGE "Esperanto"
    
    112
    +
    
    113
    +;--------------------------------
    
    114
    +;Reserve Files
    
    115
    +
    
    116
    +  ;If you are using solid compression, files that are required before
    
    117
    +  ;the actual installation should be stored first in the data block,
    
    118
    +  ;because this will make your installer start faster.
    
    119
    +
    
    120
    +  !insertmacro MUI_RESERVEFILE_LANGDLL
    
    121
    +
    
    122
    +;--------------------------------
    
    123
    +;Installer Sections
    
    124
    +
    
    125
    +Section "Privacy Browser" SecPB
    
    126
    +
    
    127
    +  SetOutPath "$INSTDIR"
    
    128
    +  File /r "${TBBSOURCE}\*.*"
    
    129
    +  SetOutPath "$INSTDIR\Browser"
    
    130
    +  CreateShortCut "$INSTDIR\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
    
    131
    +
    
    132
    +SectionEnd
    
    133
    +
    
    134
    +Function CreateShortcuts
    
    135
    +
    
    136
    +  CreateShortCut "$SMPROGRAMS\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
    
    137
    +  CreateShortCut "$DESKTOP\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
    
    138
    +
    
    139
    +FunctionEnd
    
    140
    +;--------------------------------
    
    141
    +;Installer Functions
    
    142
    +
    
    143
    +Function .onInit
    
    144
    +
    
    145
    +  ${IfNot} ${AtLeastWin7}
    
    146
    +    MessageBox MB_USERICON|MB_OK "Privacy Browser requires at least Windows 7"
    
    147
    +    SetErrorLevel 1
    
    148
    +    Quit
    
    149
    +  ${EndIf}
    
    150
    +
    
    151
    +  ; Don't install on systems that don't support SSE2. The parameter value of
    
    152
    +  ; 10 is for PF_XMMI64_INSTRUCTIONS_AVAILABLE which will check whether the
    
    153
    +  ; SSE2 instruction set is available.
    
    154
    +  System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
    
    155
    +
    
    156
    +  ${If} "$R7" == "0"
    
    157
    +    MessageBox MB_OK|MB_ICONSTOP "Sorry, Privacy Browser can't be installed. This version of Privacy Browser requires a processor with SSE2 support."
    
    158
    +    Abort
    
    159
    +  ${EndIf}
    
    160
    +
    
    161
    +  !insertmacro MUI_LANGDLL_DISPLAY
    
    162
    +
    
    163
    +FunctionEnd
    
    164
    +
    
    165
    +;--------------------------------
    
    166
    +;Helper Functions
    
    167
    +
    
    168
    +Function CheckIfTargetDirectoryExists
    
    169
    +${If} ${FileExists} "$INSTDIR\*.*"
    
    170
    +  MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade Privacy Browser, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort
    
    171
    +    Abort
    
    172
    +  NoAbort:
    
    173
    +${EndIf}
    
    174
    +FunctionEnd
    
    175
    +
    
    176
    +
    
    177
    +Function StartPrivacyBrowser
    
    178
    +ExecShell "open" "$INSTDIR/Start Privacy Browser.lnk"
    
    179
    +FunctionEnd
    
    180
    +

  • projects/browser/windows-installer/torbrowser.nsi
    ... ... @@ -3,7 +3,7 @@
    3 3
     ;released under Public Domain
    
    4 4
     
    
    5 5
     ;--------------------------------
    
    6
    -;Modern" UI
    
    6
    +;Modern UI
    
    7 7
     
    
    8 8
       !include "MUI2.nsh"
    
    9 9
       !include "LogicLib.nsh"
    
    ... ... @@ -11,16 +11,16 @@
    11 11
     
    
    12 12
     ;--------------------------------
    
    13 13
     ;General
    
    14
    - 
    
    14
    +
    
    15 15
       ; location of Tor Browser bundle to put into installer
    
    16
    -  !define TBBSOURCE ".\Tor Browser\"  
    
    16
    +  !define TBBSOURCE ".\Tor Browser\"
    
    17 17
     
    
    18 18
       Name "Tor Browser"
    
    19 19
       OutFile "torbrowser-install.exe"
    
    20 20
     
    
    21 21
       ;Default installation folder
    
    22 22
       InstallDir "$DESKTOP\Tor Browser"
    
    23
    -  
    
    23
    +
    
    24 24
       ;Best (but slowest) compression
    
    25 25
       SetCompressor /SOLID lzma
    
    26 26
       SetCompressorDictSize 32
    
    ... ... @@ -117,11 +117,11 @@
    117 117
     
    
    118 118
     ;--------------------------------
    
    119 119
     ;Reserve Files
    
    120
    -  
    
    120
    +
    
    121 121
       ;If you are using solid compression, files that are required before
    
    122 122
       ;the actual installation should be stored first in the data block,
    
    123 123
       ;because this will make your installer start faster.
    
    124
    -  
    
    124
    +
    
    125 125
       !insertmacro MUI_RESERVEFILE_LANGDLL
    
    126 126
     
    
    127 127
     ;--------------------------------
    
    ... ... @@ -138,7 +138,7 @@ SectionEnd
    138 138
     
    
    139 139
     Function CreateShortcuts
    
    140 140
     
    
    141
    -  CreateShortCut "$SMPROGRAMS\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe" 
    
    141
    +  CreateShortCut "$SMPROGRAMS\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe"
    
    142 142
       CreateShortCut "$DESKTOP\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe"
    
    143 143
     
    
    144 144
     FunctionEnd
    

  • projects/firefox/build
    ... ... @@ -175,8 +175,8 @@ export LANG=C.UTF-8
    175 175
       [% IF c("var/tor-browser") -%]
    
    176 176
             --with-tor-browser-version=[% c("var/torbrowser_version") %] \
    
    177 177
             --enable-update-channel=[% c("var/channel") %] \
    
    178
    -        --with-branding=[% c("var/branding_directory") %] \
    
    179 178
       [% END %] \
    
    179
    +  [% IF !c("var/base-browser") -%]--with-branding=browser/branding/[% c("var/branding_directory_prefix") %]-[% c("var/channel") %][% END %] \
    
    180 180
       [% IF !c("var/rlbox") -%]--without-wasm-sandboxed-libraries[% END %]
    
    181 181
     
    
    182 182
     ./mach build --verbose
    
    ... ... @@ -190,12 +190,12 @@ export LANG=C.UTF-8
    190 190
     [% END %]
    
    191 191
     
    
    192 192
     [% IF c("var/macos") %]
    
    193
    -  cp -a obj-*/dist/firefox/* $distdir
    
    193
    +  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir
    
    194 194
       [% IF c("var/base-browser") -%]
    
    195 195
         mv "$distdir/Firefox.app" "$distdir/[% c('var/Project_Name') %].app"
    
    196 196
       [% END -%]
    
    197 197
       # Remove firefox-bin (we don't use it, see ticket #10126)
    
    198
    -  rm -f "$distdir/[% c('var/Project_Name') %].app/Contents/MacOS/firefox-bin"
    
    198
    +  rm -f "$distdir/[% c('var/Project_Name') %].app/Contents/MacOS/[% c('var/exe_name') %]-bin"
    
    199 199
     
    
    200 200
       # Adjust the Info.plist file
    
    201 201
       INFO_PLIST="$distdir/[% c('var/Project_Name') %].app/Contents/Info.plist"
    
    ... ... @@ -208,21 +208,23 @@ export LANG=C.UTF-8
    208 208
       [% IF c("var/linux-x86_64") && !c("var/asan") %]
    
    209 209
         cp obj-*/testing/geckodriver/x86_64-unknown-linux-gnu/release/geckodriver $distdir
    
    210 210
       [% END %]
    
    211
    -  cp -a obj-*/dist/firefox/* $distdir/Browser/
    
    211
    +  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir/Browser/
    
    212 212
       # Remove firefox-bin (we don't use it, see ticket #10126)
    
    213
    -  rm -f $distdir/Browser/firefox-bin
    
    213
    +  rm -f "$distdir/Browser/[% c('var/exe_name') %]-bin"
    
    214 214
       # TODO: There goes FIPS-140.. We could upload these somewhere unique and
    
    215 215
       # subsequent builds could test to see if they've been uploaded before...
    
    216 216
       # But let's find out if it actually matters first..
    
    217 217
       rm -f $distdir/Browser/*.chk
    
    218
    -  # Replace firefox by a wrapper script (#25485)
    
    219
    -  mv $distdir/Browser/firefox $distdir/Browser/firefox.real
    
    220
    -  mv $rootdir/start-firefox $distdir/Browser/firefox
    
    221
    -  chmod 755 $distdir/Browser/firefox
    
    218
    +  # Replace $exe_name by a wrapper script (#25485)
    
    219
    +  mv "$distdir/Browser/[% c('var/exe_name') %]" "$distdir/Browser/[% c('var/exe_name') %].real"
    
    220
    +  cat > "$distdir/Browser/[% c('var/exe_name') %]" << 'RBM_TB_EOF'
    
    221
    +[% INCLUDE 'start-firefox' -%]
    
    222
    +RBM_TB_EOF
    
    223
    +  chmod 755 "$distdir/Browser/[% c('var/exe_name') %]"
    
    222 224
     [% END %]
    
    223 225
     
    
    224 226
     [% IF c("var/windows") %]
    
    225
    -  cp -a obj-*/dist/firefox/* $distdir/Browser/
    
    227
    +  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir/Browser/
    
    226 228
       [% IF c("var/windows-i686") %]
    
    227 229
         cp -a /var/tmp/dist/fxc2/bin/d3dcompiler_47_32.dll $distdir/Browser/d3dcompiler_47.dll
    
    228 230
       [% ELSE %]
    
    ... ... @@ -230,46 +232,48 @@ export LANG=C.UTF-8
    230 232
       [% END %]
    
    231 233
     [% END %]
    
    232 234
     
    
    233
    -# Make MAR-based update tools available for use during the bundle phase.
    
    234
    -# Note that mar and mbsdiff are standalone tools, compiled for the build
    
    235
    -# host's architecture.  We also include signmar, certutil, and the libraries
    
    236
    -# they require; these utilities and libraries are built for the target
    
    237
    -# architecture.
    
    238
    -MARTOOLS=$distdir/mar-tools
    
    239
    -mkdir -p $MARTOOLS
    
    240
    -cp -p config/createprecomplete.py $MARTOOLS/
    
    241
    -cp -p tools/update-packaging/*.sh $MARTOOLS/
    
    242
    -cp -p obj-*/dist/host/bin/mar $MARTOOLS/
    
    243
    -cp -p obj-*/dist/host/bin/mbsdiff $MARTOOLS/
    
    244
    -[% IF c("var/linux") || c("var/macos") %]
    
    245
    -  cp -p obj-*/dist/bin/signmar $MARTOOLS/
    
    246
    -  cp -p obj-*/dist/bin/certutil $MARTOOLS/
    
    247
    -  cp -p obj-*/dist/bin/modutil $MARTOOLS/
    
    248
    -  cp -p obj-*/dist/bin/pk12util $MARTOOLS/
    
    249
    -  cp -p obj-*/dist/bin/shlibsign $MARTOOLS/
    
    250
    -  [% IF c("var/linux") %]
    
    251
    -    NSS_LIBS="libfreeblpriv3.so libmozsqlite3.so libnss3.so libnssckbi.so libnssutil3.so libsmime3.so libsoftokn3.so libssl3.so"
    
    252
    -    NSPR_LIBS="libnspr4.so libplc4.so libplds4.so"
    
    253
    -  [% ELSE %]
    
    254
    -    NSS_LIBS="libfreebl3.dylib libmozglue.dylib libnss3.dylib libnssckbi.dylib libsoftokn3.dylib"
    
    255
    -    # No NSPR_LIBS for macOS
    
    256
    -    NSPR_LIBS=""
    
    257
    -  [% END %]
    
    258
    -  for LIB in $NSS_LIBS $NSPR_LIBS; do
    
    259
    -    cp -p obj-*/dist/bin/$LIB $MARTOOLS/
    
    260
    -  done
    
    261
    -[% END %]
    
    262
    -[% IF c("var/windows") %]
    
    263
    -  cp -p obj-*/dist/bin/signmar.exe $MARTOOLS/
    
    264
    -  cp -p obj-*/dist/bin/certutil.exe $MARTOOLS/
    
    265
    -  cp -p obj-*/dist/bin/modutil.exe $MARTOOLS/
    
    266
    -  cp -p obj-*/dist/bin/pk12util.exe $MARTOOLS/
    
    267
    -  cp -p obj-*/dist/bin/shlibsign.exe $MARTOOLS/
    
    268
    -  NSS_LIBS="freebl3.dll mozglue.dll nss3.dll nssckbi.dll softokn3.dll"
    
    269
    -  for LIB in $NSS_LIBS; do
    
    235
    +[% IF c("var/updater_enabled") -%]
    
    236
    +  # Make MAR-based update tools available for use during the bundle phase.
    
    237
    +  # Note that mar and mbsdiff are standalone tools, compiled for the build
    
    238
    +  # host's architecture.  We also include signmar, certutil, and the libraries
    
    239
    +  # they require; these utilities and libraries are built for the target
    
    240
    +  # architecture.
    
    241
    +  MARTOOLS=$distdir/mar-tools
    
    242
    +  mkdir -p $MARTOOLS
    
    243
    +  cp -p config/createprecomplete.py $MARTOOLS/
    
    244
    +  cp -p tools/update-packaging/*.sh $MARTOOLS/
    
    245
    +  cp -p obj-*/dist/host/bin/mar $MARTOOLS/
    
    246
    +  cp -p obj-*/dist/host/bin/mbsdiff $MARTOOLS/
    
    247
    +  [% IF c("var/linux") || c("var/macos") %]
    
    248
    +    cp -p obj-*/dist/bin/signmar $MARTOOLS/
    
    249
    +    cp -p obj-*/dist/bin/certutil $MARTOOLS/
    
    250
    +    cp -p obj-*/dist/bin/modutil $MARTOOLS/
    
    251
    +    cp -p obj-*/dist/bin/pk12util $MARTOOLS/
    
    252
    +    cp -p obj-*/dist/bin/shlibsign $MARTOOLS/
    
    253
    +    [% IF c("var/linux") %]
    
    254
    +      NSS_LIBS="libfreeblpriv3.so libmozsqlite3.so libnss3.so libnssckbi.so libnssutil3.so libsmime3.so libsoftokn3.so libssl3.so"
    
    255
    +      NSPR_LIBS="libnspr4.so libplc4.so libplds4.so"
    
    256
    +    [% ELSE %]
    
    257
    +      NSS_LIBS="libfreebl3.dylib libmozglue.dylib libnss3.dylib libnssckbi.dylib libsoftokn3.dylib"
    
    258
    +      # No NSPR_LIBS for macOS
    
    259
    +      NSPR_LIBS=""
    
    260
    +    [% END %]
    
    261
    +    for LIB in $NSS_LIBS $NSPR_LIBS; do
    
    270 262
           cp -p obj-*/dist/bin/$LIB $MARTOOLS/
    
    271
    -  done
    
    272
    -[% END %]
    
    263
    +    done
    
    264
    +  [% END %]
    
    265
    +  [% IF c("var/windows") %]
    
    266
    +    cp -p obj-*/dist/bin/signmar.exe $MARTOOLS/
    
    267
    +    cp -p obj-*/dist/bin/certutil.exe $MARTOOLS/
    
    268
    +    cp -p obj-*/dist/bin/modutil.exe $MARTOOLS/
    
    269
    +    cp -p obj-*/dist/bin/pk12util.exe $MARTOOLS/
    
    270
    +    cp -p obj-*/dist/bin/shlibsign.exe $MARTOOLS/
    
    271
    +    NSS_LIBS="freebl3.dll mozglue.dll nss3.dll nssckbi.dll softokn3.dll"
    
    272
    +    for LIB in $NSS_LIBS; do
    
    273
    +        cp -p obj-*/dist/bin/$LIB $MARTOOLS/
    
    274
    +    done
    
    275
    +  [% END %]
    
    276
    +[% END -%]
    
    273 277
     
    
    274 278
     cd $distdir
    
    275 279
     
    
    ... ... @@ -281,7 +285,7 @@ cd $distdir
    281 285
       mkdir -p $distdir/Debug/Browser
    
    282 286
       # Strip and generate debuginfo for the firefox binary that we keep, all *.so
    
    283 287
       # files, the plugin-container, and the updater (see ticket #10126)
    
    284
    -  for LIB in Browser/*.so Browser/firefox.real Browser/plugin-container Browser/updater
    
    288
    +  for LIB in Browser/*.so "Browser/[% c('var/exe_name') %].real" Browser/plugin-container [% IF c("var/updater_enabled") -%]Browser/updater[% END %]
    
    285 289
       do
    
    286 290
           objcopy --only-keep-debug $LIB Debug/$LIB
    
    287 291
           strip $LIB
    
    ... ... @@ -311,6 +315,16 @@ END;
    311 315
     
    
    312 316
     [% IF c("var/linux") %]
    
    313 317
       /var/tmp/dist/gcc/bin/g++ $rootdir/abicheck.cc -o Browser/abicheck -std=c++17
    
    318
    +  [% IF !c("var/torbrowser") %]
    
    319
    +    libdest=Browser/libstdc++
    
    320
    +    mkdir -p "$libdest"
    
    321
    +    # FIXME: tor-browser-build#40749
    
    322
    +    cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libstdc++.so.* "$libdest"
    
    323
    +    [% IF c("var/asan") -%]
    
    324
    +      cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libasan.so.* "$libdest"
    
    325
    +      cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libubsan.so.* "$libdest"
    
    326
    +    [% END -%]
    
    327
    +  [% END %]
    
    314 328
     [% END %]
    
    315 329
     
    
    316 330
     [% c('tar', {
    
    ... ... @@ -331,10 +345,12 @@ END;
    331 345
       [% END %]
    
    332 346
     [% END %]
    
    333 347
     
    
    334
    -[% c('zip', {
    
    335
    -        zip_src => [ 'mar-tools' ],
    
    336
    -        zip_args => dest_dir _ '/' _ c('filename') _ '/' _ c('var/martools_filename'),
    
    337
    -    }) %]
    
    348
    +[% IF c("var/updater_enabled") -%]
    
    349
    +  [% c('zip', {
    
    350
    +          zip_src => [ 'mar-tools' ],
    
    351
    +          zip_args => dest_dir _ '/' _ c('filename') _ '/' _ c('var/martools_filename'),
    
    352
    +      }) %]
    
    353
    +[% END -%]
    
    338 354
     
    
    339 355
     [% IF c("var/build_infos_json") -%]
    
    340 356
       cat > "[% dest_dir _ '/' _ c('filename') _ '/build-infos.json' %]" << EOF_BUILDINFOS
    

  • projects/firefox/config
    ... ... @@ -15,7 +15,7 @@ var:
    15 15
       firefox_version: '[% c("var/firefox_platform_version") %]esr'
    
    16 16
       browser_branch: '12.5-1'
    
    17 17
       browser_build: 1
    
    18
    -  branding_directory: 'browser/branding/tb-alpha'
    
    18
    +  branding_directory_prefix: 'tb'
    
    19 19
       copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
    
    20 20
       nightly_updates_osname: '[% c("var/osname") %]'
    
    21 21
       deps:
    
    ... ... @@ -65,15 +65,15 @@ targets:
    65 65
         # basebrowser tag always has a -build1 suffix
    
    66 66
         git_hash: '[% c("var/project-name") %]-[% c("var/firefox_version") %]-[% c("var/browser_branch") %]-build1'
    
    67 67
     
    
    68
    -  release:
    
    69
    -    var:
    
    70
    -      branding_directory: 'browser/branding/tb-release'
    
    71
    -
    
    72 68
       nightly:
    
    73 69
         git_hash: '[% c("var/project-name") %]-[% c("var/firefox_version") %]-[% c("var/browser_branch") %]'
    
    74 70
         tag_gpg_id: 0
    
    71
    +
    
    72
    +  privacybrowser:
    
    73
    +    git_url: git@xxxxxxxxxxxxxxxxxxxxx:tpo/applications/privacy-browser.git
    
    75 74
         var:
    
    76
    -      branding_directory: 'browser/branding/tb-nightly'
    
    75
    +      branding_directory_prefix: 'pb'
    
    76
    +      browser_branch: '12.0-1'
    
    77 77
     
    
    78 78
       linux-x86_64:
    
    79 79
         var:
    
    ... ... @@ -92,6 +92,7 @@ targets:
    92 92
             - libasound2-dev
    
    93 93
             # To support Wayland mode
    
    94 94
             - libdrm-dev
    
    95
    +      libdir: lib64
    
    95 96
     
    
    96 97
       linux-i686:
    
    97 98
         var:
    
    ... ... @@ -111,6 +112,7 @@ targets:
    111 112
             - libasound2-dev:i386
    
    112 113
             # To support Wayland mode
    
    113 114
             - libdrm-dev:i386
    
    115
    +      libdir: lib32
    
    114 116
     
    
    115 117
       macos:
    
    116 118
         var:
    
    ... ... @@ -175,8 +177,6 @@ input_files:
    175 177
           - torbrowser-windows-x86_64
    
    176 178
       - filename: abicheck.cc
    
    177 179
         enable: '[% c("var/linux") %]'
    
    178
    -  - filename: start-firefox
    
    179
    -    enable: '[% c("var/linux") %]'
    
    180 180
       - project: translation
    
    181 181
         name: translation-base-browser
    
    182 182
         pkg_type: base-browser
    

  • projects/firefox/start-firefox
    ... ... @@ -15,9 +15,11 @@ add_LD_LIBRARY_PATH() {
    15 15
     # that instead of the bundled version.
    
    16 16
     "$basedir/abicheck" >/dev/null 2>&1
    
    17 17
     if [ $? -ne 0 ]; then
    
    18
    -  add_LD_LIBRARY_PATH "$basedir/TorBrowser/Tor/libstdc++/"
    
    18
    +  add_LD_LIBRARY_PATH "$basedir/[% IF c("var/tor-browser") -%]TorBrowser/Tor/[% END -%]libstdc++/"
    
    19 19
     fi
    
    20
    +[% IF c("var/tor-browser") -%]
    
    20 21
     add_LD_LIBRARY_PATH "$basedir/TorBrowser/Tor/"
    
    22
    +[% END -%]
    
    21 23
     export LD_LIBRARY_PATH
    
    22 24
     
    
    23
    -exec "$basedir/firefox.real" "$@"
    25
    +exec "$basedir/[% c("var/exe_name") %].real" "$@"

  • projects/release/config
    ... ... @@ -53,10 +53,10 @@ targets:
    53 53
           asan-build: '-asan'
    
    54 54
       browser-linux-i686:
    
    55 55
         var:
    
    56
    -      browser-linux-i686: 1
    
    56
    +      browser-linux-i686: '[% c("var/browser_type") != "privacybrowser" %]'
    
    57 57
       browser-windows-i686:
    
    58 58
         var:
    
    59
    -      browser-windows-i686: 1
    
    59
    +      browser-windows-i686: '[% c("var/browser_type") != "privacybrowser" %]'
    
    60 60
       browser-windows-x86_64:
    
    61 61
         var:
    
    62 62
           browser-windows-x86_64: 1
    
    ... ... @@ -93,6 +93,9 @@ targets:
    93 93
       basebrowser:
    
    94 94
         var:
    
    95 95
           browser_type: basebrowser
    
    96
    +  privacybrowser:
    
    97
    +    var:
    
    98
    +      browser_type: privacybrowser
    
    96 99
     
    
    97 100
       release:
    
    98 101
         var:
    

  • rbm.conf
    ... ... @@ -75,6 +75,7 @@ var:
    75 75
       torbrowser_build: 'build1'
    
    76 76
       torbrowser_incremental_from:
    
    77 77
         - 12.5a1
    
    78
    +  updater_enabled: 1
    
    78 79
       build_mar: 1
    
    79 80
       # By default, we sort the list of installed packages. This allows sharing
    
    80 81
       # containers with identical list of packages, even if they are not listed
    
    ... ... @@ -94,6 +95,7 @@ var:
    94 95
         [% SET step = c("step") -%]
    
    95 96
         [% c(step, { filename => 'f', output_dir => '/out', norec => {} }) %]
    
    96 97
     
    
    98
    +  exe_name: firefox
    
    97 99
       locale_ja: ja
    
    98 100
       locales:
    
    99 101
         - ar
    
    ... ... @@ -234,6 +236,17 @@ targets:
    234 236
           projectname: basebrowser
    
    235 237
           Project_Name: 'Base Browser'
    
    236 238
           ProjectName: BaseBrowser
    
    239
    +      updater_enabled: 0
    
    240
    +
    
    241
    +  privacybrowser:
    
    242
    +    var:
    
    243
    +      privacy-browser: 1
    
    244
    +      project-name: privacy-browser
    
    245
    +      projectname: privacybrowser
    
    246
    +      Project_Name: 'Privacy Browser'
    
    247
    +      ProjectName: PrivacyBrowser
    
    248
    +      exe_name: privacybrowser
    
    249
    +      updater_enabled: 0
    
    237 250
     
    
    238 251
       torbrowser-testbuild:
    
    239 252
         - testbuild
    
    ... ... @@ -243,6 +256,10 @@ targets:
    243 256
         - testbuild
    
    244 257
         - alpha
    
    245 258
         - basebrowser
    
    259
    +  privacybrowser-testbuild:
    
    260
    +    - testbuild
    
    261
    +    - alpha
    
    262
    +    - privacybrowser
    
    246 263
       testbuild:
    
    247 264
         var:
    
    248 265
           testbuild: 1
    
    ... ... @@ -368,6 +385,10 @@ targets:
    368 385
         - linux-x86_64
    
    369 386
         - linux
    
    370 387
         - basebrowser
    
    388
    +  privacybrowser-linux-x86_64:
    
    389
    +    - linux-x86_64
    
    390
    +    - linux
    
    391
    +    - privacybrowser
    
    371 392
       torbrowser-linux-x86_64-asan:
    
    372 393
         - linux-asan
    
    373 394
         - linux-x86_64
    
    ... ... @@ -378,6 +399,11 @@ targets:
    378 399
         - linux-x86_64
    
    379 400
         - linux
    
    380 401
         - basebrowser
    
    402
    +  privacybrowser-linux-x86_64-asan:
    
    403
    +    - linux-asan
    
    404
    +    - linux-x86_64
    
    405
    +    - linux
    
    406
    +    - privacybrowser
    
    381 407
       torbrowser-linux-i686:
    
    382 408
         - linux-i686
    
    383 409
         - linux
    
    ... ... @@ -474,6 +500,10 @@ targets:
    474 500
         - windows-x86_64
    
    475 501
         - windows
    
    476 502
         - basebrowser
    
    503
    +  privacybrowser-windows-x86_64:
    
    504
    +    - windows-x86_64
    
    505
    +    - windows
    
    506
    +    - privacybrowser
    
    477 507
       windows-x86_64:
    
    478 508
         arch: x86_64
    
    479 509
         var:
    
    ... ... @@ -537,6 +567,19 @@ targets:
    537 567
         - macos-aarch64
    
    538 568
         - macos
    
    539 569
         - basebrowser
    
    570
    +  privacybrowser-macos:
    
    571
    +    - macos-universal
    
    572
    +    - macos-x86_64
    
    573
    +    - macos
    
    574
    +    - privacybrowser
    
    575
    +  privacybrowser-macos-x86_64:
    
    576
    +    - macos-x86_64
    
    577
    +    - macos
    
    578
    +    - privacybrowser
    
    579
    +  privacybrowser-macos-aarch64:
    
    580
    +    - macos-aarch64
    
    581
    +    - macos
    
    582
    +    - privacybrowser
    
    540 583
       macos-universal:
    
    541 584
         var:
    
    542 585
           macos_universal: 1
    

  • _______________________________________________
    tor-commits mailing list
    tor-commits@xxxxxxxxxxxxxxxxxxxx
    https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits