[tbb-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 tbb-commits
mailing list