[tor-commits] [tor-browser-bundle/master] Bug 10120: Part 3: Refactor Mac descriptors.

gk at torproject.org gk at torproject.org
Thu May 15 13:53:26 UTC 2014


commit e0ef86ec6822abfb17554defaf287e926f3a8206
Author: Georg Koppen <gk at torproject.org>
Date:   Thu May 15 14:23:43 2014 +0000

    Bug 10120: Part 3: Refactor Mac descriptors.
    
    We build the tools needed for the Mac descriptors separately and
    preserve them. This does not include the tools in the Pluggable
    Transports descriptor. Using our newly built OpenSSL there, e.g.,
    will happen in an other commit.
---
 gitian/descriptors/mac/gitian-tor.yml   |   76 +++++-------------
 gitian/descriptors/mac/gitian-utils.yml |   70 +++++++++++++++++
 gitian/mkbundle-mac.sh                  |  131 +++++++++++++++++++------------
 3 files changed, 170 insertions(+), 107 deletions(-)

diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 68905e7..b8a761b 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -4,7 +4,7 @@ suites:
 - "precise"
 architectures:
 - "i386"
-packages: 
+packages:
 - "git-core"
 - "unzip"
 - "zip"
@@ -13,18 +13,12 @@ packages:
 - "automake"
 - "faketime"
 - "libtool"
-#- "libssl0.9.8"
 reference_datetime: "2000-01-01 00:00:00"
 remotes:
 - "url": "https://git.torproject.org/tor.git"
   "dir": "tor"
-- "url": "https://github.com/libevent/libevent.git"
-  "dir": "libevent"
-- "url": "https://github.com/madler/zlib.git"
-  "dir": "zlib"
 files:
 - "versions"
-- "openssl.tar.gz"
 - "bug10297.patch"
 - "bug5018.patch"
 - "bug9229.patch"
@@ -37,63 +31,32 @@ files:
 - "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
 - "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
 - "dzip.sh"
-#- "apple-x86-gcc_4.2.1~5646.1flosoft2_i386.deb"
-#- "apple-x86-odcctools_758.159-0flosoft11_i386.deb"
+- "openssl-mac32-utils.zip"
+- "libevent-mac32-utils.zip"
 script: |
   INSTDIR="$HOME/install"
   source versions
-  export LIBRARY_PATH="$INSTDIR/lib"
   export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
   export FAKETIME=$REFERENCE_DATETIME
   export TZ=UTC
   export LC_ALL=C
   umask 0022
   #
-  #export CFLAGS="-isysroot /usr/lib/apple/SDKs/MacOSX10.6.sdk/"
-  #export CXXFLAGS=$CFLAGS
-  #export LDFLAGS=$CFLAGS
-  export PATH="$PATH:/usr/apple-osx/bin/"
-  export CFLAGS="-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/ -mmacosx-version-min=10.5"
-  export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
-  #
   mkdir -p $INSTDIR/bin/
   mkdir -p $INSTDIR/TorBrowserBundle.app/Tor/
   mkdir -p $INSTDIR/TorBrowserBundle.app/Data/Tor/
   mkdir -p $OUTDIR/
   #
   sudo dpkg -i *.deb
-  cd /usr
-  sudo tar -Jxvf /home/ubuntu/build/multiarch-darwin*tar.xz
-  cd ~/build
-  # For OpenSSL
-  sudo ln -s /usr/apple-osx/bin/apple-osx-gcc /usr/apple-osx/bin/i686-apple-darwin11-cc
-  #
-  #cd zlib
-  #find -type f | xargs touch --date="$REFERENCE_DATETIME"
-  #make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib PREFIX=i686-apple-darwin10- $MAKEOPTS SHARED_MODE=1
-  #make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib PREFIX=i686-apple-darwin10- $MAKEOPTS SHARED_MODE=1 install
-  #cp $INSTDIR/zlib/lib/*.dylib $INSTDIR/Tor/
-  #cd ..
-  #
-  tar xzf openssl.tar.gz
-  cd openssl-*
-  find -type f | xargs touch --date="$REFERENCE_DATETIME"
-  ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl #enable-ec_nistp_64_gcc_128
-  make # SHARED_LDFLAGS="-shared -dynamiclib -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/"
-  make install
-  #cp $INSTDIR/openssl/lib/*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
-  cd ..
-  #
-  cd libevent
-  ./autogen.sh
-  find -type f | xargs touch --date="$REFERENCE_DATETIME"
-  ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
-  make $MAKEOPTS
-  make install
+  tar xaf multiarch-darwin*tar.xz
+  export PATH="$PATH:$HOME/build/apple-osx/bin/"
+  unzip -d $INSTDIR openssl-mac32-utils.zip
+  unzip -d $INSTDIR libevent-mac32-utils.zip
   cp $INSTDIR/libevent/lib/libevent-*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
   LIBEVENT_FILE=`basename $INSTDIR/libevent/lib/libevent-*.dylib`
-  cd ..
   #
+  export CFLAGS="-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/ -mmacosx-version-min=10.5"
+  export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
   cd tor
   git update-index --refresh -q
   export GIT_COMMITTER_NAME="nobody"
@@ -118,22 +81,19 @@ script: |
     fi
   fi
   mkdir -p $OUTDIR/src
-  git archive HEAD | tar -x -C $OUTDIR/src
+  #git archive HEAD | tar -x -C $OUTDIR/src
   ./autogen.sh
   find -type f | xargs touch --date="$REFERENCE_DATETIME"
-  ./configure --enable-static-openssl --disable-asciidoc --host=i686-apple-darwin11 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR --with-zlib-dir=$INSTDIR/zlib/
+  ./configure --enable-static-openssl --disable-asciidoc --host=i686-apple-darwin11 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR
   make $MAKEOPTS
   make install
-  cd ..
-  cp $INSTDIR/bin/tor $INSTDIR/TorBrowserBundle.app/Tor/
-  cp $INSTDIR/share/tor/geoip $INSTDIR/TorBrowserBundle.app/Data/Tor/
-  cd $INSTDIR/TorBrowserBundle.app/Tor/
-  i686-apple-darwin11-install_name_tool -change /home/ubuntu/install/libevent/lib/$LIBEVENT_FILE @executable_path/$LIBEVENT_FILE tor
+  cd $INSTDIR
+  cp bin/tor TorBrowserBundle.app/Tor/
+  cp share/tor/geoip TorBrowserBundle.app/Data/Tor/
+  cd TorBrowserBundle.app/Tor/
+  i686-apple-darwin11-install_name_tool -change $INSTDIR/libevent/lib/$LIBEVENT_FILE @executable_path/$LIBEVENT_FILE tor
   # XXX: Geoip files..
   #
-  #cp -a /usr/lib/gcc/i686-apple-darwin10/4.6/libgcc_s_sjlj-1.dll $INSTDIR/Tor/
-  #cp -a /usr/lib/gcc/i686-apple-darwin10/4.6/libssp*.dll $INSTDIR/Tor/
-  #
   cd $INSTDIR
-  ~/build/dzip.sh tor-mac$GBUILD_BITS-gbuilt.zip TorBrowserBundle.app
-  cp tor-mac$GBUILD_BITS-gbuilt.zip $OUTDIR/
+  ~/build/dzip.sh tor-mac32-gbuilt.zip TorBrowserBundle.app
+  cp tor-mac32-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/mac/gitian-utils.yml b/gitian/descriptors/mac/gitian-utils.yml
new file mode 100644
index 0000000..1caf8f0
--- /dev/null
+++ b/gitian/descriptors/mac/gitian-utils.yml
@@ -0,0 +1,70 @@
+---
+name: "utils-mac"
+suites:
+- "precise"
+architectures:
+- "i386"
+packages:
+- "git-core"
+- "unzip"
+- "zip"
+- "autoconf"
+- "autoconf2.13"
+- "automake"
+- "faketime"
+- "libtool"
+reference_datetime: "2000-01-01 00:00:00"
+remotes:
+- "url": "https://github.com/libevent/libevent.git"
+  "dir": "libevent"
+files:
+- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
+- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
+- "openssl.tar.gz"
+- "versions"
+- "dzip.sh"
+script: |
+  INSTDIR="$HOME/install"
+  source versions
+  export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+  export FAKETIME=$REFERENCE_DATETIME
+  export TZ=UTC
+  export LC_ALL=C
+  umask 0022
+
+  sudo dpkg -i *.deb
+  tar xaf multiarch-darwin*tar.xz
+  export PATH="$PATH:$HOME/build/apple-osx/bin/"
+  # For OpenSSL
+  ln -s ~/build/apple-osx/bin/apple-osx-gcc ~/build/apple-osx/bin/i686-apple-darwin11-cc
+
+  export CFLAGS="-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/ -mmacosx-version-min=10.5"
+  export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
+
+  # Building Libevent
+  cd libevent
+  ./autogen.sh
+  find -type f | xargs touch --date="$REFERENCE_DATETIME"
+  ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
+  make $MAKEOPTS
+  make install
+  cd ..
+
+  # Building OpenSSL
+  tar xzf openssl.tar.gz
+  cd openssl-*
+  find -type f | xargs touch --date="$REFERENCE_DATETIME"
+  # TODO: Add enable-ec_nistp_64_gcc_128 for 64bit OS X.
+  ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl
+  # Using $MAKEOPTS breaks the build. Might be the issue mentioned on
+  # http://cblfs.cross-lfs.org/index.php/OpenSSL.
+  make
+  make install
+  cd ..
+
+  # Grabbing the results
+  cd $INSTDIR
+  ~/build/dzip.sh openssl-$OPENSSL_VER-mac32-utils.zip openssl
+  ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-mac32-utils.zip libevent
+
+  cp *utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index d34002d..fb1d32f 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -42,7 +42,7 @@ fi
 cd $GITIAN_DIR
 export PATH=$PATH:$PWD/libexec
 
-echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-MacOS\");" > $GITIAN_DIR/inputs/torbrowser.version 
+echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-MacOS\");" > $GITIAN_DIR/inputs/torbrowser.version
 echo "$TORBROWSER_VERSION" > $GITIAN_DIR/inputs/bare-version
 cp -a $WRAPPER_DIR/$VERSIONS_FILE $GITIAN_DIR/inputs/versions
 
@@ -51,7 +51,7 @@ cp $WRAPPER_DIR/patches/* $GITIAN_DIR/inputs/
 
 cd $WRAPPER_DIR/..
 rm -f $GITIAN_DIR/inputs/relativelink-src.zip
-$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/ 
+$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
 
 cd ./Bundle-Data/
 rm -f $GITIAN_DIR/inputs/tbb-docs.zip
@@ -79,6 +79,11 @@ die_msg() {
   exit 1
 }
 
+# Let's preserve the original $FOO for creating proper symlinks after building
+# the utils both if we verify tags and if we don't.
+
+LIBEVENT_TAG_ORIG=$LIBEVENT_TAG
+
 if [ "z$VERIFY_TAGS" = "z1" ];
 then
   ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
@@ -100,32 +105,64 @@ fi
 
 cd $GITIAN_DIR
 
-if [ ! -f $GITIAN_DIR/inputs/tor-mac32-gbuilt.zip ];
+if [ ! -f inputs/openssl-$OPENSSL_VER-mac32-utils.zip -o \
+     ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip ];
+then
+  echo
+  echo "****** Starting Utilities Component of Mac Bundle (1/5 for Max) ******"
+  echo
+  ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libevent=$LIBEVENT_TAG $DESCRIPTOR_DIR/mac/gitian-utils.yml
+  if [ $? -ne 0 ];
+  then
+    #mv var/build.log ./utils-fail-mac.log.`date +%Y%m%d%H%M%S`
+    exit 1
+  fi
+
+  cd inputs
+  cp -a ../build/out/*-utils.zip .
+  ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
+  ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+  cd ..
+  #cp -a result/utils-mac-res.yml inputs/
+else
+  echo
+  echo "****** SKIPPING already built Utilities Component of Mac Bundle (1/5 for
+  Mac) ******"
+  echo
+  # We might have built the utilities in the past but maybe the links are
+  # pointing to the wrong version. Refresh them.
+  cd inputs
+  ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
+  ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+  cd ..
+fi
+
+if [ ! -f inputs/tor-mac32-gbuilt.zip ];
 then
-  echo 
-  echo "****** Starting Tor Component of Mac Bundle (1/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** Starting Tor Component of Mac Bundle (2/5 for Mac) ******"
+  echo
 
-  ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit zlib=$ZLIB_TAG,libevent=$LIBEVENT_TAG,tor=$TOR_TAG $DESCRIPTOR_DIR/mac/gitian-tor.yml
+  ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor=$TOR_TAG $DESCRIPTOR_DIR/mac/gitian-tor.yml
   if [ $? -ne 0 ];
   then
     #mv var/build.log ./tor-fail-mac.log.`date +%Y%m%d%H%M%S`
     exit 1
   fi
-  
-  cp -a build/out/tor-mac*-gbuilt.zip $GITIAN_DIR/inputs/
-  #cp -a result/tor-mac-res.yml $GITIAN_DIR/inputs/
+
+  cp -a build/out/tor-mac*-gbuilt.zip inputs/
+  #cp -a result/tor-mac-res.yml inputs/
 else
-  echo 
-  echo "****** SKIPPING already built Tor Component of Mac Bundle (1/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** SKIPPING already built Tor Component of Mac Bundle (2/5 for Mac) ******"
+  echo
 fi
 
-if [ ! -f $GITIAN_DIR/inputs/tor-browser-mac32-gbuilt.zip ];
+if [ ! -f inputs/tor-browser-mac32-gbuilt.zip ];
 then
-  echo 
-  echo "****** Starting TorBrowser Component of Mac Bundle (2/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** Starting TorBrowser Component of Mac Bundle (3/5 for Mac) ******"
+  echo
 
   ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor-browser=$TORBROWSER_TAG $DESCRIPTOR_DIR/mac/gitian-firefox.yml
   if [ $? -ne 0 ];
@@ -134,19 +171,19 @@ then
     exit 1
   fi
 
-  cp -a build/out/tor-browser-mac*-gbuilt.zip $GITIAN_DIR/inputs/
-  #cp -a result/torbrowser-mac-res.yml $GITIAN_DIR/inputs/
+  cp -a build/out/tor-browser-mac*-gbuilt.zip inputs/
+  #cp -a result/torbrowser-mac-res.yml inputs/
 else
-  echo 
-  echo "****** SKIPPING already built TorBrowser Component of Mac Bundle (2/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** SKIPPING already built TorBrowser Component of Mac Bundle (3/5 for Mac) ******"
+  echo
 fi
 
-if [ ! -f $GITIAN_DIR/inputs/pluggable-transports-mac32-gbuilt.zip ];
+if [ ! -f inputs/pluggable-transports-mac32-gbuilt.zip ];
 then
-  echo 
-  echo "****** Starting Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** Starting Pluggable Transports Component of Mac Bundle (4/5 for Mac) ******"
+  echo
 
   ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,libfte=$LIBFTE_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
   if [ $? -ne 0 ];
@@ -155,44 +192,40 @@ then
     exit 1
   fi
 
-  cp -a build/out/pluggable-transports-mac*-gbuilt.zip $GITIAN_DIR/inputs/
-  #cp -a result/pluggable-transports-mac-res.yml $GITIAN_DIR/inputs/
+  cp -a build/out/pluggable-transports-mac*-gbuilt.zip inputs/
+  #cp -a result/pluggable-transports-mac-res.yml inputs/
 else
-  echo 
-  echo "****** SKIPPING already built Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** SKIPPING already built Pluggable Transports Component of Mac Bundle (4/5 for Mac) ******"
+  echo
 fi
 
 
-if [ ! -f $GITIAN_DIR/inputs/bundle-mac.gbuilt ];
-then 
-  echo 
-  echo "****** Starting Bundling+Localization Component of Mac Bundle (4/4 for Mac) ******"
-  echo 
-  
+if [ ! -f inputs/bundle-mac.gbuilt ];
+then
+  echo
+  echo "****** Starting Bundling+Localization Component of Mac Bundle (5/5 for Mac) ******"
+  echo
+
   cd $WRAPPER_DIR && ./record-inputs.sh $VERSIONS_FILE && cd $GITIAN_DIR
-  
+
   ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libdmg-hfsplus=$LIBDMG_TAG,https-everywhere=$HTTPSE_TAG,torbutton=$TORBUTTON_TAG,tor-launcher=$TORLAUNCHER_TAG $DESCRIPTOR_DIR/mac/gitian-bundle.yml
   if [ $? -ne 0 ];
   then
     #mv var/build.log ./bundle-fail-mac.log.`date +%Y%m%d%H%M%S`
     exit 1
   fi
-  
-  #cp -a build/out/*.dmg $WRAPPER_DIR
+
   mkdir -p $WRAPPER_DIR/$TORBROWSER_VERSION/
   cp -a build/out/* $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
-  touch $GITIAN_DIR/inputs/bundle-mac.gbuilt
+  touch inputs/bundle-mac.gbuilt
 else
-  echo 
-  echo "****** SKIPPING already built Bundling+Localization Component of Mac Bundle (4/4 for Mac) ******"
-  echo 
+  echo
+  echo "****** SKIPPING already built Bundling+Localization Component of Mac Bundle (5/5 for Mac) ******"
+  echo
 fi
 
-echo 
+echo
 echo "****** Mac Bundle complete ******"
-echo 
-
-
-# FIXME: docs
+echo
 



More information about the tor-commits mailing list