commit de8b74299c2235cfe42d04df15b621b8807903e2 Author: Kathy Brade brade@pearlcrescent.com Date: Fri Mar 18 13:05:52 2016 -0400
Bug 13252: Do not store data in the app bundle
On Mac OS, set DATA_OUTSIDE_APP_DIR=1 for alpha builds. When this option is enabled, the package layout is altered to be compatible with Apple's Gatekeeper code signing. All user data will be created in a TorBrowser-Data directory which sits next to the app bundle and all code (and only code) is placed under Contents/MacOS.
Currently, FTE is not included when DATA_OUTSIDE_APP_DIR=1 because FTE needs to be repackaged to separate the Python scripts from the compiled libraries (see bug 18495). --- Bundle-Data/mac-tor.sh | 4 + gitian/descriptors/mac/gitian-bundle.yml | 100 ++++++++++++++------- .../mac/gitian-pluggable-transports.yml | 57 ++++++++---- gitian/descriptors/mac/gitian-tor.yml | 23 +++-- gitian/mkbundle-mac.sh | 40 +++++++-- gitian/versions.alpha | 3 + 6 files changed, 163 insertions(+), 64 deletions(-)
diff --git a/Bundle-Data/mac-tor.sh b/Bundle-Data/mac-tor.sh index 03d6f9d..78b3348 100755 --- a/Bundle-Data/mac-tor.sh +++ b/Bundle-Data/mac-tor.sh @@ -8,4 +8,8 @@ export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH # otherwise set to "/" when an application bundle is started from Finder. # https://trac.torproject.org/projects/tor/ticket/10030 cd "$(dirname "$0")" +if [ ! -f tor.real -a -d ../../../MacOS/Tor ]; then + # On newer releases of Tor Browser, tor.real is in Contents/MacOS/Tor/. + cd ../../../MacOS/Tor +fi exec ./tor.real "$@" diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml index 0199cca..aa6a09d 100644 --- a/gitian/descriptors/mac/gitian-bundle.yml +++ b/gitian/descriptors/mac/gitian-bundle.yml @@ -69,6 +69,22 @@ script: | export TORBROWSER_APP="TorBrowser" export TORBROWSER_NAME="TorBrowserBundle"
+ if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + DOCSPATH=Contents/Resources/TorBrowser/Docs + EXTSPATH=Contents/Resources/distribution/extensions + TORBINPATH=Contents/MacOS/Tor + TORCONFIGPATH=Contents/Resources/TorBrowser/Tor + EXTOVERRIDESPATH=Contents/Resources/distribution/preferences//extension-overrides.js + MEEKPROFILEPATH=Contents/Resources/TorBrowser/Tor/PluggableTransports/template-profile.meek-http-helper + else + DOCSPATH=TorBrowser/Docs + EXTSPATH=TorBrowser/Data/Browser/profile.default/extensions + TORBINPATH=TorBrowser/Tor + TORCONFIGPATH=TorBrowser/Data/Tor + EXTOVERRIDESPATH=TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js + MEEKPROFILEPATH=TorBrowser/Data/Browser/profile.meek-http-helper + fi + # Building libfaketime. cd faketime make @@ -83,10 +99,9 @@ script: | MARTOOLS=~/build/mar-tools # mkdir -p $OUTDIR/ - mkdir -p $TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/https-everywhere-eff@eff.org - mkdir -p $TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.meek-http-helper/extensions - mkdir -p $TORBROWSER_NAME.app/TorBrowser/Data/Browser/Caches - mkdir -p $TORBROWSER_NAME.app/TorBrowser/Docs/sources + mkdir -p $TORBROWSER_NAME.app/$EXTSPATH/https-everywhere-eff@eff.org + mkdir -p $TORBROWSER_NAME.app/$MEEKPROFILEPATH/extensions + mkdir -p $TORBROWSER_NAME.app/$DOCSPATH/sources mkdir -p $TORBROWSER_NAME.app/Contents/MacOS mkdir -p dmg # @@ -97,7 +112,7 @@ script: | mkdir pkg/tmp cd pkg/tmp unzip ../*.xpi - ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/tor-launcher@torproject.org.xpi . + ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/$EXTSPATH/tor-launcher@torproject.org.xpi . cd ../../../ # cd torbutton @@ -107,7 +122,7 @@ script: | mkdir pkg/tmp cd pkg/tmp unzip ../*.xpi - ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/torbutton@torproject.org.xpi . + ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/$EXTSPATH/torbutton@torproject.org.xpi . cd ../../../ # cd https-everywhere @@ -120,11 +135,11 @@ script: | ./makexpi.sh # Since 5.0.2 a .xpi for AMO is built, too. We don't need it. rm ./pkg/*-amo.xpi - cp pkg/*.xpi ../$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/https-everywhere@eff.org.xpi + cp pkg/*.xpi ../$TORBROWSER_NAME.app/$EXTSPATH/https-everywhere@eff.org.xpi cd .. # - cp *.xpi ./$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/ - cd $TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/ + cp *.xpi ./$TORBROWSER_NAME.app/$EXTSPATH/ + cd $TORBROWSER_NAME.app/$EXTSPATH/ mv noscript@noscript.net.xpi {73a6fe31-595d-460b-a920-fcc0f8843232}.xpi cd https-everywhere-eff@eff.org unzip ../https-everywhere@eff.org.xpi @@ -132,7 +147,7 @@ script: | cd ~/build/ # cd meek/firefox - ~/build/dzip.sh ../../$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.meek-http-helper/extensions/meek-http-helper@bamsoftware.com.xpi . + ~/build/dzip.sh ../../$TORBROWSER_NAME.app/$MEEKPROFILEPATH/extensions/meek-http-helper@bamsoftware.com.xpi . cd ~/build/ # # Install fonts. @@ -154,23 +169,30 @@ script: | fi cd $TORBROWSER_NAME.app unzip ~/build/mac-skeleton.zip - cd TorBrowser + if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + mv bookmarks.html ~/build + fi + cd $DOCSPATH/.. unzip ~/build/tbb-docs.zip + cd - if [ $BUILD_PT_BUNDLES ]; then - cat ~/build/torrc-defaults-appendix-mac >> Data/Tor/torrc-defaults - cat ~/build/bridge_prefs.js >> Data/Browser/profile.default/preferences/extension-overrides.js - cat ~/build/meek-http-helper-user.js >> Data/Browser/profile.meek-http-helper/user.js + cat ~/build/torrc-defaults-appendix-mac >> $TORCONFIGPATH/torrc-defaults + cat ~/build/bridge_prefs.js >> $EXTOVERRIDESPATH + cat ~/build/meek-http-helper-user.js >> $MEEKPROFILEPATH/user.js fi # Install a "tor" shim that sets the working directory. See #10030. - mv Tor/tor Tor/tor.real - cp ~/build/mac-tor.sh Tor/tor - cd .. + mv $TORBINPATH/tor $TORBINPATH/tor.real + if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + cp ~/build/mac-tor.sh $TORCONFIGPATH/tor + else + cp ~/build/mac-tor.sh $TORBINPATH/tor + fi unzip ~/build/tor-browser-mac$GBUILD_BITS-gbuilt.zip cd .. # # Copy reproducibility info - cp versions $TORBROWSER_NAME.app/TorBrowser/Docs/sources/ - cp bundle.inputs $TORBROWSER_NAME.app/TorBrowser/Docs/sources/ + cp versions $TORBROWSER_NAME.app/$DOCSPATH/sources/ + cp bundle.inputs $TORBROWSER_NAME.app/$DOCSPATH/sources/ # # Set up DMG skeleton cd libdmg-hfsplus @@ -186,20 +208,33 @@ script: | pushd $TORBROWSER_NAME.app/Contents/Resources/browser/ unzip omni.ja defaults/preferences/000-tor-browser.js cp defaults/preferences/000-tor-browser.js ~/build/ + if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + # Embed our default bookmarks. + mkdir -p defaults/profile/ + cp -p ~/build/bookmarks.html defaults/profile/ + zip -Xm omni.ja defaults/profile/bookmarks.html + fi # Set the locale of the bundle. echo "pref("general.useragent.locale", "en-US");" >> defaults/preferences/000-tor-browser.js zip -Xm omni.ja defaults/preferences/000-tor-browser.js rm -rf defaults popd - # Install a headless copy of TorBrowser.app, with a modified Info.plist so - # that it runs without a dock icon. See #11429. - pushd $TORBROWSER_NAME.app/TorBrowser/Tor/PluggableTransports - mkdir -p TorBrowser.app.meek-http-helper/Contents - (cd TorBrowser.app.meek-http-helper/Contents && ln -s ../../../../../Contents/* .) - rm -f TorBrowser.app.meek-http-helper/Contents/Info.plist - ~/build/background-plist.py ../../../Contents/Info.plist > TorBrowser.app.meek-http-helper/Contents/Info.plist - unzip ~/build/TorBrowser.app.meek-http-helper.zip - popd + if [ "z$DATA_OUTSIDE_APP_DIR" != "z1" ]; then + # Install a headless copy of TorBrowser.app, with a modified Info.plist so + # that it runs without a dock icon. See #11429. + # When DATA_OUTSIDE_APP_DIR is set, this approach is not used because it + # is incompatible with Apple's Gatekeeper signing process. Instead, + # firefox has been modified to accept an --invisible command line option + # that causes it to hide the dock icon when running as the meek http + # helper browser (meek-client-torbrowser invokes firefox with --invisible). + pushd $TORBROWSER_NAME.app/TorBrowser/Tor/PluggableTransports + mkdir -p TorBrowser.app.meek-http-helper/Contents + (cd TorBrowser.app.meek-http-helper/Contents && ln -s ../../../../../Contents/* .) + rm -f TorBrowser.app.meek-http-helper/Contents/Info.plist + ~/build/background-plist.py ../../../Contents/Info.plist > TorBrowser.app.meek-http-helper/Contents/Info.plist + unzip ~/build/TorBrowser.app.meek-http-helper.zip + popd + fi
unzip mac-langpacks.zip MAC_LOCALES="$BUNDLE_LOCALES $BUNDLE_LOCALES_MAC" @@ -212,7 +247,7 @@ script: | for LANG in $MAC_LOCALES do xpi=$LANG.xpi - cp $xpi ~/build/$TORBROWSER_NAME.app/TorBrowser/Data/Browser/profile.default/extensions/langpack-$LANG@firefox.mozilla.org.xpi + cp $xpi ~/build/$TORBROWSER_NAME.app/$EXTSPATH/langpack-$LANG@firefox.mozilla.org.xpi done popd
@@ -223,10 +258,7 @@ script: | zip -Xm omni.ja update.locale popd fi - # - # XXX: We need to insert these placeholders because otherwise mkisofs won't - # include these otherwise empty dirs: - touch ~/build/$TORBROWSER_NAME.app/TorBrowser/Data/Browser/Caches/placeholder.txt + # Recreate precomplete file (needs to be accurate for full MAR updates). pushd ~/build/$TORBROWSER_NAME.app/Contents/Resources/ rm -f precomplete @@ -249,7 +281,7 @@ script: | xpi=mac-langpacks/$LANG.xpi DEST=$TORBROWSER_APP cp -a ${TORBROWSER_NAME}_plain.app ~/build/dmg/$DEST.app - cp $xpi ~/build/dmg/$DEST.app/TorBrowser/Data/Browser/profile.default/extensions/langpack-$LANG@firefox.mozilla.org.xpi + cp $xpi ~/build/dmg/$DEST.app/$EXTSPATH/langpack-$LANG@firefox.mozilla.org.xpi
pushd ~/build/dmg/$DEST.app/Contents/Resources/browser/ mkdir -p defaults/preferences diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml index fd62919..5a578ba 100644 --- a/gitian/descriptors/mac/gitian-pluggable-transports.yml +++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml @@ -39,6 +39,7 @@ remotes: - "url": "https://git.torproject.org/pluggable-transports/obfs4.git" "dir": "obfs4" files: +- "versions" - "pycrypto.tar.gz" - "argparse.tar.gz" - "pyyaml.tar.gz" @@ -53,8 +54,20 @@ files: - "openssl-mac64-utils.zip" script: | INSTDIR="$HOME/install" - TBDIR="$INSTDIR/TorBrowserBundle.app/TorBrowser" - PTDIR="$TBDIR/Tor/PluggableTransports" + source versions + TBDIR="$INSTDIR/TorBrowserBundle.app" + if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + PTDIR="$TBDIR/Contents/MacOS/Tor/PluggableTransports" + DOCSDIR="$TBDIR/Contents/Resources/TorBrowser/Docs" + TORBINDIR="$TBDIR/Contents/MacOS/Tor" + # TODO: Fix packaging of fte so it can be included. See bug 18495. + INCLUDE_FTE=0 + else + PTDIR="$TBDIR/TorBrowser/Tor/PluggableTransports" + DOCSDIR="$TBDIR/TorBrowser/Docs" + TORBINDIR="$TBDIR/TorBrowser/Tor" + INCLUDE_FTE=1 + fi export LIBRARY_PATH="$INSTDIR/lib" export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME @@ -68,10 +81,15 @@ script: | sudo dpkg -i *.deb tar xaf multiarch-darwin*tar.xz export PATH="$PATH:$HOME/build/apple-osx/bin/" - unzip -d $INSTDIR gmp-mac64-utils.zip - unzip -d $INSTDIR openssl-mac64-utils.zip - # FTE only needs libgmp.10.dylib and no libgmpxx anymore. - cp $INSTDIR/gmp/lib/libgmp.10.dylib $TBDIR/Tor/ + if [ "z$INCLUDE_FTE" = "z1" ]; then + unzip -d $INSTDIR gmp-mac64-utils.zip + unzip -d $INSTDIR openssl-mac64-utils.zip + # FTE only needs libgmp.10.dylib and no libgmpxx anymore. + cp $INSTDIR/gmp/lib/libgmp.10.dylib $TORBINDIR/ + FTE_EXTRA_CFLAGS=" -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib" + else + FTE_EXTRA_CFLAGS="" + fi
# export AR=$HOME/build/apple-osx/bin/i686-apple-darwin11-ar @@ -80,8 +98,8 @@ script: | # http://bugs.python.org/issue9437 export LDSHARED="$CC -pthread -shared" # XXX Clean up these flags? - export CFLAGS="-m64 -I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib" - export CXXFLAGS="-m64 -I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib" + export CFLAGS="-m64 -I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1$FTE_EXTRA_CFLAGS" + export CXXFLAGS="-m64 -I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1$FTE_EXTRA_CFLAGS" export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5"
# Building go @@ -100,6 +118,8 @@ script: | cd ../.. export PATH="$PATH:$PWD/go/bin"
+ if [ "z$INCLUDE_FTE" = "z1" ]; then + # Building pyptlib cd pyptlib find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME" @@ -179,8 +199,8 @@ script: | python setup.py build --build-lib build cp -a build/obfsproxy $PTDIR/ cp -a bin/obfsproxy $PTDIR/obfsproxy.bin - mkdir -p $TBDIR/Docs/Obfsproxy - cp -a {LICENSE,README} $TBDIR/Docs/Obfsproxy + mkdir -p $DOCSDIR/Obfsproxy + cp -a {LICENSE,README} $DOCSDIR/Obfsproxy # XXX: Workaround for bug 11190 sed 's/python2/python/' -i $PTDIR/obfsproxy.bin cd .. @@ -190,9 +210,9 @@ script: | find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME" CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS" make cp -ra fte $PTDIR/ - mkdir -p $TBDIR/Docs/libfte - cp -a {LICENSE,README.md} $TBDIR/Docs/libfte - cp -an thirdparty/re2/LICENSE $TBDIR/Docs/libfte/LICENSE.re2 + mkdir -p $DOCSDIR/libfte + cp -a {LICENSE,README.md} $DOCSDIR/libfte + cp -an thirdparty/re2/LICENSE $DOCSDIR/libfte/LICENSE.re2 cd ..
# Building fteproxy @@ -200,10 +220,13 @@ script: | find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME" cp -a bin/fteproxy $PTDIR/fteproxy.bin cp -ra fteproxy $PTDIR/ - mkdir -p $TBDIR/Docs/fteproxy - cp -a {COPYING,README.md} $TBDIR/Docs/fteproxy + mkdir -p $DOCSDIR/fteproxy + cp -a {COPYING,README.md} $DOCSDIR/fteproxy cd ..
+ fi + # end of 'INCLUDE_FTE' section + # Building goptlib cd goptlib find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME" @@ -225,8 +248,8 @@ script: | go build -ldflags '-s' cp -a meek-client-torbrowser $PTDIR cd .. - mkdir -p $TBDIR/Docs/meek - cp -a README doc/*.1 $TBDIR/Docs/meek + mkdir -p $DOCSDIR/meek + cp -a README doc/*.1 $DOCSDIR/meek cd ..
# Building go ed25519 diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml index a6824c0..bbcf8c3 100644 --- a/gitian/descriptors/mac/gitian-tor.yml +++ b/gitian/descriptors/mac/gitian-tor.yml @@ -22,8 +22,15 @@ files: - "libevent-mac64-utils.zip" script: | INSTDIR="$HOME/install" - TBDIR="$INSTDIR/TorBrowserBundle.app/TorBrowser" source versions + TBDIR="$INSTDIR/TorBrowserBundle.app" + if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + TORBINDIR="$TBDIR/Contents/MacOS/Tor" + TORCONFIGDIR="$TBDIR/Contents/Resources/TorBrowser/Tor" + else + TORBINDIR="$TBDIR/TorBrowser/Tor" + TORCONFIGDIR="$TBDIR/TorBrowser/Data/Tor" + fi export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME export TZ=UTC @@ -31,8 +38,8 @@ script: | umask 0022 # mkdir -p $INSTDIR/bin/ - mkdir -p $TBDIR/Tor/ - mkdir -p $TBDIR/Data/Tor/ + mkdir -p $TORBINDIR/ + mkdir -p $TORCONFIGDIR/ mkdir -p $OUTDIR/ # sudo dpkg -i *.deb @@ -40,7 +47,7 @@ script: | export PATH="$PATH:$HOME/build/apple-osx/bin/" unzip -d $INSTDIR openssl-mac64-utils.zip unzip -d $INSTDIR libevent-mac64-utils.zip - cp $INSTDIR/libevent/lib/libevent-*.dylib $TBDIR/Tor/ + cp $INSTDIR/libevent/lib/libevent-*.dylib $TORBINDIR/ LIBEVENT_FILE=`basename $INSTDIR/libevent/lib/libevent-*.dylib`
# Building tor @@ -57,10 +64,10 @@ script: | make $MAKEOPTS make install cd $INSTDIR - cp bin/tor $TBDIR/Tor/ - cp share/tor/geoip $TBDIR/Data/Tor/ - cp share/tor/geoip6 $TBDIR/Data/Tor/ - cd $TBDIR/Tor/ + cp bin/tor $TORBINDIR/ + cp share/tor/geoip $TORCONFIGDIR/ + cp share/tor/geoip6 $TORCONFIGDIR/ + cd $TORBINDIR/ i686-apple-darwin11-install_name_tool -change $INSTDIR/libevent/lib/$LIBEVENT_FILE @executable_path/$LIBEVENT_FILE tor
# Grabbing the result diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh index 39dac5f..682e02f 100755 --- a/gitian/mkbundle-mac.sh +++ b/gitian/mkbundle-mac.sh @@ -55,15 +55,45 @@ rm -f $GITIAN_DIR/inputs/tbb-docs.zip $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/tbb-docs.zip ./Docs/ rm -f $GITIAN_DIR/inputs/TorBrowser.app.meek-http-helper.zip (cd PTConfigs/mac && $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/TorBrowser.app.meek-http-helper.zip TorBrowser.app.meek-http-helper) -cp PTConfigs/mac/torrc-defaults-appendix $GITIAN_DIR/inputs/torrc-defaults-appendix-mac -cp PTConfigs/bridge_prefs.js $GITIAN_DIR/inputs/ +if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then +# FTE is temporarily disabled due to bug 18495. + grep -v 'fteproxy' PTConfigs/mac/torrc-defaults-appendix > $GITIAN_DIR/inputs/torrc-defaults-appendix-mac + grep -v 'default_bridge.fte' PTConfigs/bridge_prefs.js > $GITIAN_DIR/inputs/bridge_prefs.js +else + cp PTConfigs/mac/torrc-defaults-appendix $GITIAN_DIR/inputs/torrc-defaults-appendix-mac + cp PTConfigs/bridge_prefs.js $GITIAN_DIR/inputs/ +fi cp PTConfigs/meek-http-helper-user.js $GITIAN_DIR/inputs/ cp mac-tor.sh $GITIAN_DIR/inputs/
-cd mac rm -f $GITIAN_DIR/inputs/mac-skeleton.zip -$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/mac-skeleton.zip . -cd ../mac-desktop.dmg +if [ "z$DATA_OUTSIDE_APP_DIR" = "z1" ]; then + # The Bundle-Data is designed for embedded data, so we need to modify + # the structure when we want the data to be outside the app directory. + # We also create an override.ini file to disable the profile migrator. + SKELETON_TMP=$GITIAN_DIR/inputs/mac-skeleton-tmp + SKELETON_TMP_RESOURCES=$SKELETON_TMP/Contents/Resources + rm -rf $SKELETON_TMP + mkdir -p $SKELETON_TMP_RESOURCES/browser + echo "[XRE]" > $SKELETON_TMP_RESOURCES/browser/override.ini + echo "EnableProfileMigrator=0" >> $SKELETON_TMP_RESOURCES/browser/override.ini + mkdir -p $SKELETON_TMP_RESOURCES/distribution/preferences + cp -p mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js $SKELETON_TMP_RESOURCES/distribution/preferences + mkdir -p $SKELETON_TMP_RESOURCES/TorBrowser/Tor + cp -p mac/TorBrowser/Data/Tor/torrc-defaults $SKELETON_TMP_RESOURCES/TorBrowser/Tor/ + # Place a copy of the bookmarks.html file at the top. It will be moved into + # browser/omni.ja by code inside descriptors/mac/gitian-bundle.yml + cp -p mac/TorBrowser/Data/Browser/profile.default/bookmarks.html $SKELETON_TMP + cd $SKELETON_TMP + $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/mac-skeleton.zip . + cd - +else + cd mac + $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/mac-skeleton.zip . + cd - +fi + +cd mac-desktop.dmg rm -f $GITIAN_DIR/inputs/dmg-desktop.tar.xz $WRAPPER_DIR/build-helpers/dtar.sh $GITIAN_DIR/inputs/dmg-desktop.tar.xz . cd ../mac-applications.dmg diff --git a/gitian/versions.alpha b/gitian/versions.alpha index 4c6f016..06584b4 100755 --- a/gitian/versions.alpha +++ b/gitian/versions.alpha @@ -5,6 +5,9 @@ BUNDLE_LOCALES_WIN32="ja" BUNDLE_LOCALES_MAC="ja-JP-mac" BUILD_PT_BUNDLES=1
+# DATA_OUTSIDE_APP_DIR is only implemented for Mac OS. +DATA_OUTSIDE_APP_DIR=1 + VERIFY_TAGS=1
FIREFOX_VERSION=38.7.1esr