Unverified Commit 0553b695 authored by boklm's avatar boklm
Browse files

Bug 40439: Add option for macos single-arch non-universal testbuild

`make torbrowser-testbuild-macos-x86_64`
  and
`make torbrowser-testbuild-macos-aarch64` can be used to do non-universal
testbuilds for a single arch.
parent 985480eb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -171,6 +171,12 @@ torbrowser-testbuild-windows-i686: submodule-update
torbrowser-testbuild-macos: submodule-update
	$(rbm) build release --target testbuild --target browser-macos --target torbrowser

torbrowser-testbuild-macos-x86_64: submodule-update
	$(rbm) build release --target testbuild --target browser-macos-x86_64 --target torbrowser

torbrowser-testbuild-macos-aarch64: submodule-update
	$(rbm) build release --target testbuild --target browser-macos-aarch64 --target torbrowser

torbrowser-testbuild-src: submodule-update
	$(rbm) build release --target testbuild --target browser-src-testbuild --target torbrowser

+13 −0
Original line number Diff line number Diff line
@@ -49,6 +49,19 @@ By default it is based on the alpha channel, but you can change that by
editing rbm.local.conf. The resulting build can be found in directory
testbuild.

torbrowser-testbuild-{linux-x86_64,linux-i686,windows-i686,macos,
                    android-armv7,android-x86,android-x86_64,
                    android-aarch64,desktop,android}
-----------------------------------------------------------------
Same as torbrowser-testbuild, for the selected platform only.


torbrowser-testbuild-macos-{x86_64,aarch64}
-------------------------------------------
By default, macos builds are universal (targeting x86_64 and aarch64).
With this special testbuild target, you can do a build for a specific
arch only.

torbrowser-{release,alpha,nightly,testbuild}-linux-x86_64-asan
--------------------------------------------------------------
Create a build for Linux x86_64 with Address Sanitizer enabled.
+14 −10
Original line number Diff line number Diff line
@@ -21,8 +21,12 @@ touch "$GENERATEDPREFSPATH"

[% IF c("var/macos") %]
  TBDIR="$TB_STAGE_DIR/[% c("var/Project_Name") %].app"
  [% IF c("var/macos_universal") %]
    TBDIR_AARCH64="$TB_STAGE_DIR/[% c("var/Project_Name") %]-aarch64.app"
    TBDIRS=("$TBDIR" "$TBDIR_AARCH64")
  [% ELSE -%]
    TBDIRS=("$TBDIR")
  [% END -%]

  DOCSPATH=Contents/Resources/[% c('var/ProjectName') %]/Docs
  EXTSPATH=Contents/Resources/distribution/extensions
@@ -60,7 +64,7 @@ mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b
    local dest="${args[-1]}"
    unset args[-1]
    mv ${args[@]} "$TBDIR/$dest"
    [% IF c("var/macos") -%]
    [% IF c("var/macos_universal") -%]
      for src in ${args[@]}
      do
        mv "aarch64/$src" "$TBDIR_AARCH64/$dest"
@@ -69,27 +73,27 @@ mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b
  }

  tar -xvf [% c('input_files_by_name/tor-expert-bundle') %]
  [% IF c("var/macos") -%]
  [% IF c("var/macos_universal") -%]
    mkdir aarch64
    tar -C aarch64 -xf [% c('input_files_by_name/tor-expert-bundle-aarch64') %]
  [% END -%]

  # geoip(6) and anything else that belongs in the data dir from the expert bundle
  mkdir -p "$TBDIR/$TORCONFIGPATH" [% IF c("var/macos") %]"$TBDIR_AARCH64/$TORCONFIGPATH"[% END %]
  mkdir -p "$TBDIR/$TORCONFIGPATH" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$TORCONFIGPATH"[% END %]
  mv_tbdir data/{geoip,geoip6} "$TORCONFIGPATH"

  # Bridge lists will be consumed later in `bridges_conf`
  mv tor/pluggable_transports/bridges_list.*.txt $rootdir
  [% IF c("var/macos") %]
  [% IF c("var/macos_universal") %]
    rm -f aarch64/tor/pluggable_transports/bridges_list.*.txt
  [% END -%]

  # Snowflake's README is the only documentation shipped in tor-expert-bundle
  mkdir -p "$TBDIR/$DOCSPATH/snowflake" [% IF c("var/macos") %]"$TBDIR_AARCH64/$DOCSPATH/snowflake"[% END %]
  mkdir -p "$TBDIR/$DOCSPATH/snowflake" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/snowflake"[% END %]
  mv_tbdir tor/pluggable_transports/README.SNOWFLAKE.md "$DOCSPATH/snowflake/README.md"

  # Move the PTs to where TB expects them
  mkdir -p "$TBDIR/$TORBINPATH" [% IF c("var/macos") %]"$TBDIR_AARCH64/$TORBINPATH"[% END %]
  mkdir -p "$TBDIR/$TORBINPATH" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$TORBINPATH"[% END %]
  mv_tbdir tor/pluggable_transports "$TORBINPATH/PluggableTransports"

  # Move tor and dependencies to where TB expects them
@@ -145,7 +149,7 @@ RBM_TB_EOF

tar -C ${TB_STAGE_DIR} -xf [% c('input_files_by_name/firefox') %]/browser.tar.gz

[% IF c("var/macos") -%]
[% IF c("var/macos_universal") -%]
  # Use symlink in tmp dir to extract "Tor Browser.app" to "Tor Browser-aarch64.app"
  ff_aarch64=$(mktemp -d)
  ln -s "$TBDIR_AARCH64" "$ff_aarch64/[% c("var/Project_Name") %].app"
@@ -284,7 +288,7 @@ done
  mv $distdir/windows-installer ${TB_STAGE_DIR}
[% END %]

[% IF c("var/macos") -%]
[% IF c("var/macos_universal") -%]
  # unify.py requires lipo, so we need to add cctools in the PATH
  tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/macosx-toolchain') %]
  export PATH="/var/tmp/dist/macosx-toolchain/cctools/bin:$PATH"
+11 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ targets:
      mar_osname: linux64
  macos:
    var:
      mar_osname: macos
      arch_deps:
        - genisoimage
        - faketime
@@ -36,6 +35,15 @@ targets:
        - python3-pip
        - python3-distutils-extra
        - python3-psutil
  macos-universal:
    var:
      mar_osname: macos
  macos-aarch64:
    var:
      mar_osname: macos-aarch64
  macos-x86_64:
    var:
      mar_osname: macos-x86_64
  windows:
    var:
      arch_deps:
@@ -66,7 +74,7 @@ input_files:
    enable: '[% ! c("var/android") %]'
  - project: firefox
    name: firefox-aarch64
    enable: '[% c("var/macos") %]'
    enable: '[% c("var/macos_universal") %]'
    target_prepend:
      - macos-aarch64
  - project: firefox
@@ -81,7 +89,7 @@ input_files:
    enable: '[% c("var/tor-browser") %]'
  - project: tor-expert-bundle
    name: tor-expert-bundle-aarch64
    enable: '[% c("var/macos") && c("var/tor-browser") %]'
    enable: '[% c("var/macos_universal") && c("var/tor-browser") %]'
    target_prepend:
      - macos-aarch64
  - project: fonts
+6 −0
Original line number Diff line number Diff line
@@ -25,6 +25,12 @@ mkdir -p "$destdir"
[% IF c("var/browser-macos") -%]
  mv [% c('input_files_by_name/macos') %]/* "$destdir"/
[% END -%]
[% IF c("var/browser-macos-x86_64") -%]
  mv [% c('input_files_by_name/macos-x86_64') %]/* "$destdir"/
[% END -%]
[% IF c("var/browser-macos-aarch64") -%]
  mv [% c('input_files_by_name/macos-aarch64') %]/* "$destdir"/
[% END -%]
[% IF c("var/browser-linux-i686") -%]
  mv [% c('input_files_by_name/linux-i686') %]/* "$destdir"/
[% END -%]
Loading