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
-
c8f30851
by Pier Angelo Vendrame at 2023-01-26T17:36:04+01:00
-
8b16afc6
by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
-
87db400a
by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
-
ba13fa7f
by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
19 changed files:
- .gitignore
- Makefile
- README
- doc/MAKEFILE.txt
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.DS_Store
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.VolumeIcon.icns
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.background/background.png
- projects/browser/RelativeLink/start-browser
- projects/browser/build
- projects/browser/config
- projects/browser/windows-installer/basebrowser.nsi
- + projects/browser/windows-installer/privacybrowser.ico
- + projects/browser/windows-installer/privacybrowser.nsi
- projects/browser/windows-installer/torbrowser.nsi
- projects/firefox/build
- projects/firefox/config
- projects/firefox/start-firefox
- projects/release/config
- rbm.conf
Changes:
... | ... | @@ -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 |
... | ... | @@ -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 |
... | ... | @@ -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
|
... | ... | @@ -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
|
... | ... | @@ -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 |
... | ... | @@ -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
|
... | ... | @@ -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
|
... | ... | @@ -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
|
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 | + |
... | ... | @@ -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
|
... | ... | @@ -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
|
... | ... | @@ -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
|
... | ... | @@ -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" "$@" |
... | ... | @@ -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:
|
... | ... | @@ -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
|