commit 90d598f9dcd0758fd9c72f4b30286982017dd18d Author: Georg Koppen gk@torproject.org Date: Thu May 22 12:06:04 2014 +0000
Bug 10120: Part 4: Refactor PT descriptors.
We build GMP separately and preserve it now as well. Apart from that we use the already built OpenSSL in the PT descriptors and leave other requirements for PTs alone: the overhead building them every time is not that high and they might be changing more often than the other utilities we preserve.
Additionally, the descriptors got cleaned-up a bit. --- .../linux/gitian-pluggable-transports.yml | 81 +++++----- gitian/descriptors/linux/gitian-tor.yml | 11 +- gitian/descriptors/linux/gitian-utils.yml | 20 ++- .../mac/gitian-pluggable-transports.yml | 111 +++++++------- gitian/descriptors/mac/gitian-tor.yml | 1 + gitian/descriptors/mac/gitian-utils.yml | 13 ++ .../windows/gitian-pluggable-transports.yml | 154 ++++++++++---------- gitian/descriptors/windows/gitian-tor.yml | 8 +- gitian/descriptors/windows/gitian-utils.yml | 12 +- gitian/mkbundle-linux.sh | 8 +- gitian/mkbundle-mac.sh | 5 +- gitian/mkbundle-windows.sh | 5 +- 12 files changed, 231 insertions(+), 198 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml index eb9ca16..b2d57c0 100644 --- a/gitian/descriptors/linux/gitian-pluggable-transports.yml +++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml @@ -5,7 +5,7 @@ suites: architectures: - "i386" - "amd64" -packages: +packages: - "git-core" - "unzip" - "zip" @@ -30,8 +30,6 @@ remotes: - "url": "https://github.com/habnabit/txsocksx.git" "dir": "txsocksx" files: -- "openssl.tar.gz" -- "gmp.tar.bz2" - "pycrypto.tar.gz" - "argparse.tar.gz" - "pyyaml.tar.gz" @@ -40,77 +38,81 @@ files: - "m2crypto.tar.gz" - "parsley.tar.gz" - "dzip.sh" +- "gmp-linux32-utils.zip" +- "gmp-linux64-utils.zip" +- "openssl-linux32-utils.zip" +- "openssl-linux64-utils.zip" script: | INSTDIR="$HOME/install" PTDIR="$INSTDIR/Tor/PluggableTransports" - export LIBRARY_PATH="$INSTDIR/lib" + mkdir -p $PTDIR + mkdir -p $INSTDIR/Debug/ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME export TZ=UTC export LC_ALL=C export PYTHON=python2 umask 0022 - # + # Config options for hardening-wrapper export DEB_BUILD_HARDENING=1 export DEB_BUILD_HARDENING_STACKPROTECTOR=1 export DEB_BUILD_HARDENING_FORTIFY=1 export DEB_BUILD_HARDENING_FORMAT=1 export DEB_BUILD_HARDENING_PIE=1 - # - mkdir -p $PTDIR - mkdir -p $INSTDIR/Debug/ - # - tar xvf gmp.tar.bz2 - cd gmp-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - ./configure --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx - make - make install - cp -an $INSTDIR/gmp/lib/*.so* $INSTDIR/Tor - cd .. - # + + unzip -d $INSTDIR gmp-linux$GBUILD_BITS-utils.zip + unzip -d $INSTDIR openssl-linux$GBUILD_BITS-utils.zip + cp $INSTDIR/gmp/lib/*.so* $INSTDIR/Tor + + # Building pyptlib cd pyptlib find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/pyptlib $PTDIR/ cd .. - # + + # Building PyCrypto tar xzf pycrypto.tar.gz cd pycrypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/Crypto $PTDIR/ cd .. - # + + # Building argparse tar xzf argparse.tar.gz cd argparse-* find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/argparse.py $PTDIR/ cd .. - # + + # Building Zope interfaces unzip zope.interface.zip cd zope.interface-* find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/zope $PTDIR/ cd .. - # + + # Building PyYAML tar xzf pyyaml.tar.gz cd PyYAML-* find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/yaml $PTDIR/ cd .. - # + + # Building Twisted tar xjf twisted.tar.bz2 cd Twisted-* find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build cp -a build/twisted $PTDIR/ cd .. - # + + # Building Parsley tar xzf parsley.tar.gz cd Parsley-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -119,7 +121,8 @@ script: | cp -a build/ometa $PTDIR/ cp -a build/terml $PTDIR/ cd .. - # + + # Building txsocksx cd txsocksx find -type f | xargs touch --date="$REFERENCE_DATETIME" # Let's pretend we have the setup dependency already as we don't want to get @@ -130,7 +133,8 @@ script: | $PYTHON setup.py build --build-lib build cp -a build/txsocksx $PTDIR/ cd .. - # + + # Building obfsproxy cd obfsproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" $PYTHON setup.py build --build-lib build @@ -139,16 +143,8 @@ script: | mkdir -p $INSTDIR/Docs/Obfsproxy cp -a {LICENSE,README} $INSTDIR/Docs/Obfsproxy cd .. - # - tar xzf openssl.tar.gz - cd openssl-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - #./Configure -shared --prefix=$INSTDIR/openssl linux-elf - ./config -shared --prefix=$INSTDIR/openssl - make - make install - cd .. - # + + # Building M2Crypto tar xzf m2crypto.tar.gz cd M2Crypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -156,7 +152,8 @@ script: | $PYTHON setup.py build --build-lib build cp -a build/M2Crypto $PTDIR/ cd .. - # + + # Building flashproxy cd flashproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" make dist DISTNAME=flashproxy-client @@ -164,7 +161,8 @@ script: | mkdir -p $INSTDIR/Docs/FlashProxy cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy cd .. - # + + # Building libfte cd libfte ln -s $INSTDIR/gmp thirdparty/gmp find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -174,7 +172,8 @@ script: | cp -a {LICENSE,README.md} $INSTDIR/Docs/libfte cp -a thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2 cd .. - # + + # Building fteproxy cd fteproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" cp -a bin/fteproxy $PTDIR/fteproxy.bin @@ -182,9 +181,9 @@ script: | mkdir -p $INSTDIR/Docs/fteproxy cp -a {COPYING,README.md} $INSTDIR/Docs/fteproxy cd .. - # + + # Grabbing the results cd $INSTDIR - # ~/build/dzip.sh pluggable-transports-linux$GBUILD_BITS-gbuilt.zip Tor/ Docs/ ~/build/dzip.sh pluggable-transports-linux$GBUILD_BITS-debug.zip Debug/ cp pluggable-transports-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/ diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml index 44c2b1f..4a8f08e 100644 --- a/gitian/descriptors/linux/gitian-tor.yml +++ b/gitian/descriptors/linux/gitian-tor.yml @@ -44,14 +44,14 @@ script: | export TZ=UTC export LC_ALL=C umask 0022 - # + # Config options for hardening-wrapper export DEB_BUILD_HARDENING=1 export DEB_BUILD_HARDENING_STACKPROTECTOR=1 export DEB_BUILD_HARDENING_FORTIFY=1 export DEB_BUILD_HARDENING_FORMAT=1 export DEB_BUILD_HARDENING_PIE=1 - # + mkdir -p $INSTDIR/Data/Tor/ mkdir -p $INSTDIR/Tor/ mkdir -p $INSTDIR/Debug/Tor/ @@ -60,9 +60,9 @@ script: | cp $INSTDIR/openssl/lib/libssl.so.1.0.0 $INSTDIR/Tor/ cp $INSTDIR/openssl/lib/libcrypto.so.1.0.0 $INSTDIR/Tor/ cp $INSTDIR/libevent/lib/libevent-2.0.so.5 $INSTDIR/Tor/ - # chmod 700 $INSTDIR/Tor/*so* - # + + # Building tor cd tor git update-index --refresh -q export GIT_COMMITTER_NAME="nobody" @@ -106,7 +106,8 @@ script: | strip $INSTDIR/Tor/$LIB objcopy --add-gnu-debuglink=./Debug/Tor/$LIB $INSTDIR/Tor/$LIB done - # + + # Grabbing the results ~/build/dzip.sh tor-linux$GBUILD_BITS-gbuilt.zip Data/ Tor/ ~/build/dzip.sh tor-linux$GBUILD_BITS-debug.zip Debug/ cp tor-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/ diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml index 9bbae76..34b1672 100644 --- a/gitian/descriptors/linux/gitian-utils.yml +++ b/gitian/descriptors/linux/gitian-utils.yml @@ -25,11 +25,12 @@ remotes: - "url": "https://github.com/libevent/libevent.git" "dir": "libevent" files: -- "versions" -- "dzip.sh" - "openssl.tar.gz" - "python.tar.bz2" - "lxml.tar.gz" +- "gmp.tar.bz2" +- "versions" +- "dzip.sh" script: | INSTDIR="$HOME/install" source versions @@ -38,7 +39,7 @@ script: | export TZ=UTC export LC_ALL=C umask 0022 - # + # Config options for hardening-wrapper export DEB_BUILD_HARDENING=1 export DEB_BUILD_HARDENING_STACKPROTECTOR=1 @@ -80,7 +81,7 @@ script: | make $MAKEOPTS altinstall prefix=$INSTDIR/python exec-prefix=$INSTDIR/python cd ..
- # Building the Python lxml module + # Building lxml tar xzf lxml.tar.gz cd lxml-* # Make sure we use our freshly built python binary here. Otherwise bad things @@ -92,10 +93,19 @@ script: | cp *utils.zip $OUTDIR cd ../../../
+ # Building GMP + tar xjf gmp.tar.bz2 + cd gmp-* + find -type f | xargs touch --date="$REFERENCE_DATETIME" + ./configure --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx + make + make install + cd .. + # Grabbing the remaining results cd $INSTDIR ~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-linux$GBUILD_BITS-utils.zip libevent ~/build/dzip.sh python-$PYTHON_VER-linux$GBUILD_BITS-utils.zip python - + ~/build/dzip.sh gmp-$GMP_VER-linux$GBUILD_BITS-utils.zip gmp cp *utils.zip $OUTDIR/ diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml index 48521d8..52dd403 100644 --- a/gitian/descriptors/mac/gitian-pluggable-transports.yml +++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml @@ -4,7 +4,7 @@ suites: - "precise" architectures: - "i386" -packages: +packages: - "git-core" - "unzip" - "zip" @@ -14,7 +14,6 @@ packages: - "python-dev" - "faketime" - "libtool" -#- "libssl0.9.8" reference_datetime: "2000-01-01 00:00:00" remotes: - "url": "https://git.torproject.org/pluggable-transports/pyptlib.git" @@ -30,8 +29,6 @@ remotes: - "url": "https://github.com/habnabit/txsocksx.git" "dir": "txsocksx" files: -- "openssl.tar.gz" -- "gmp.tar.bz2" - "pycrypto.tar.gz" - "argparse.tar.gz" - "pyyaml.tar.gz" @@ -42,56 +39,45 @@ 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" +- "gmp-mac32-utils.zip" +- "openssl-mac32-utils.zip" script: | INSTDIR="$HOME/install" PTDIR="$INSTDIR/TorBrowserBundle.app/Tor/PluggableTransports" - 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 AR=/usr/apple-osx/bin/i686-apple-darwin11-ar - export CC=/usr/apple-osx/bin/i686-apple-darwin11-gcc - export CXX=/usr/apple-osx/bin/i686-apple-darwin11-g++ - # http://bugs.python.org/issue9437 - export LDSHARED="$CC -pthread -shared" - 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/ -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="-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 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" - # mkdir -p $PTDIR/ 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 - # - tar xvf gmp.tar.bz2 - cd gmp-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - ./configure --host=i686-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx - make - make install + tar xaf multiarch-darwin*tar.xz + export PATH="$PATH:$HOME/build/apple-osx/bin/" + unzip -d $INSTDIR gmp-mac32-utils.zip + unzip -d $INSTDIR openssl-mac32-utils.zip cp $INSTDIR/gmp/lib/*dylib* $INSTDIR/TorBrowserBundle.app/Tor/ - cd .. # + export AR=$HOME/build/apple-osx/bin/i686-apple-darwin11-ar + export CC=$HOME/build/apple-osx/bin/i686-apple-darwin11-gcc + export CXX=$HOME/build/apple-osx/bin/i686-apple-darwin11-g++ + # http://bugs.python.org/issue9437 + export LDSHARED="$CC -pthread -shared" + # XXX Clean up these flags? + 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/ -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="-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 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 pyptlib cd pyptlib find -type f | xargs touch --date="$REFERENCE_DATETIME" python setup.py build --build-lib build cp -a build/pyptlib $PTDIR/ cd .. - # + + # Building PyCrypto tar xzf pycrypto.tar.gz cd pycrypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -101,28 +87,32 @@ script: | python setup.py build --build-lib build cp -a build/Crypto $PTDIR/ cd .. - # + + # Building argparse tar xzf argparse.tar.gz cd argparse-* find -type f | xargs touch --date="$REFERENCE_DATETIME" python setup.py build --build-lib build cp -a build/argparse.py $PTDIR/ cd .. - # - tar xzf pyyaml.tar.gz - cd PyYAML-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - python setup.py build --build-lib build - cp -a build/yaml $PTDIR/ - cd .. - # + + # Building Zope interfaces unzip zope.interface.zip cd zope.interface-* find -type f | xargs touch --date="$REFERENCE_DATETIME" python setup.py build --build-lib build cp -a build/zope $PTDIR/ cd .. - # + + # Building PyYAML + tar xzf pyyaml.tar.gz + cd PyYAML-* + find -type f | xargs touch --date="$REFERENCE_DATETIME" + python setup.py build --build-lib build + cp -a build/yaml $PTDIR/ + cd .. + + # Building Twisted tar xjf twisted.tar.bz2 cd Twisted-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -130,7 +120,8 @@ script: | python setup.py build --build-lib build cp -a build/twisted $PTDIR/ cd .. - # + + # Building Parsley tar xzf parsley.tar.gz cd Parsley-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -139,7 +130,8 @@ script: | cp -a build/ometa $PTDIR/ cp -a build/terml $PTDIR/ cd .. - # + + # Building txsocksx cd txsocksx find -type f | xargs touch --date="$REFERENCE_DATETIME" # Let's pretend we have the setup dependency already as we don't want to get @@ -150,7 +142,8 @@ script: | python setup.py build --build-lib build cp -a build/txsocksx $PTDIR/ cd .. - # + + # Building obfsproxy cd obfsproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" python setup.py build --build-lib build @@ -159,16 +152,8 @@ script: | mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/Obfsproxy cp -a {LICENSE,README} $INSTDIR/TorBrowserBundle.app/Docs/Obfsproxy cd .. - # - tar xzf openssl.tar.gz - cd openssl-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - CC=cc ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl - 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 .. - # + + # Building M2Crypto tar xzf m2crypto.tar.gz cd M2Crypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -182,7 +167,8 @@ script: | python setup.py build --build-lib build cp -a build/M2Crypto $PTDIR/ cd .. - # + + # Building flashproxy cd flashproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" make dist DISTNAME=flashproxy-client @@ -190,7 +176,8 @@ script: | mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/FlashProxy cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/TorBrowserBundle.app/Docs/FlashProxy cd .. - # + + # Building libfte cd libfte find -type f | xargs touch --date="$REFERENCE_DATETIME" CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS" make @@ -199,7 +186,8 @@ script: | cp -a {LICENSE,README.md} $INSTDIR/TorBrowserBundle.app/Docs/libfte cp -an thirdparty/re2/LICENSE $INSTDIR/TorBrowserBundle.app/Docs/libfte/LICENSE.re2 cd .. - # + + # Building fteproxy cd fteproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" cp -a bin/fteproxy $PTDIR/fteproxy.bin @@ -207,7 +195,8 @@ script: | mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/fteproxy cp -a {COPYING,README.md} $INSTDIR/TorBrowserBundle.app/Docs/fteproxy cd .. - # + + # Grabbing the result cd $INSTDIR ~/build/dzip.sh pluggable-transports-mac$GBUILD_BITS-gbuilt.zip TorBrowserBundle.app cp pluggable-transports-mac$GBUILD_BITS-gbuilt.zip $OUTDIR/ diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml index b8a761b..90f56e0 100644 --- a/gitian/descriptors/mac/gitian-tor.yml +++ b/gitian/descriptors/mac/gitian-tor.yml @@ -55,6 +55,7 @@ script: | cp $INSTDIR/libevent/lib/libevent-*.dylib $INSTDIR/TorBrowserBundle.app/Tor/ LIBEVENT_FILE=`basename $INSTDIR/libevent/lib/libevent-*.dylib` # + # XXX Clean up these flags? 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 diff --git a/gitian/descriptors/mac/gitian-utils.yml b/gitian/descriptors/mac/gitian-utils.yml index 1caf8f0..3c6e4a7 100644 --- a/gitian/descriptors/mac/gitian-utils.yml +++ b/gitian/descriptors/mac/gitian-utils.yml @@ -21,6 +21,7 @@ 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" +- "gmp.tar.bz2" - "versions" - "dzip.sh" script: | @@ -38,7 +39,9 @@ script: | # For OpenSSL ln -s ~/build/apple-osx/bin/apple-osx-gcc ~/build/apple-osx/bin/i686-apple-darwin11-cc
+ # XXX Clean up these flags? 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 CXXFLAGS="-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/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -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 @@ -62,9 +65,19 @@ script: | make install cd ..
+ # Building GMP + tar xjf gmp.tar.bz2 + cd gmp-* + find -type f | xargs touch --date="$REFERENCE_DATETIME" + ./configure --host=i686-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx + 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 + ~/build/dzip.sh gmp-$GMP_VER-mac32-utils.zip gmp
cp *utils.zip $OUTDIR/ diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml index 1637b23..6af344c 100644 --- a/gitian/descriptors/windows/gitian-pluggable-transports.yml +++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml @@ -31,8 +31,6 @@ remotes: - "url": "https://github.com/habnabit/txsocksx.git" "dir": "txsocksx" files: -- "openssl.tar.gz" -- "gmp.tar.bz2" - "setuptools.tar.gz" - "pycrypto.tar.gz" - "argparse.tar.gz" @@ -47,16 +45,38 @@ files: - "py2exe.exe" - "dzip.sh" - "pyc-timestamp.sh" +- "openssl-win32-utils.zip" +- "gmp-win32-utils.zip" script: | + # Set the timestamp on every .pyc file in a zip file, and re-dzip the zip file. + function py2exe_zip_timestomp { + ZIPFILE="$1" + local tmpdir="$(mktemp -d)" + local tmpzip="$(mktemp -u)" + unzip -d "$tmpdir" "$ZIPFILE" + cd "$tmpdir" + find . -name '*.pyc' -print0 | xargs -0 ~/build/pyc-timestamp.sh "$REFERENCE_DATETIME" + ~/build/dzip.sh "$tmpzip" . + cd - + mv -f "$tmpzip" "$ZIPFILE" + rm -rf "$tmpdir" + } + INSTDIR="$HOME/install" PTDIR="$INSTDIR/Tor/PluggableTransports" - export LIBRARY_PATH="$INSTDIR/lib" + mkdir -p $INSTDIR/bin/ + mkdir -p $PTDIR/ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME export TZ=UTC export LC_ALL=C export CFLAGS="-mwindows" export LDFLAGS="-mwindows" + umask 0022 + + unzip -d $INSTDIR gmp-win32-utils.zip + unzip -d $INSTDIR openssl-win32-utils.zip + cp $INSTDIR/gmp/bin/*dll* $INSTDIR/Tor
# We need at least Wine 1.5.29 which is not in Ubuntu's main repository (see # below). Thus, we resort to a PPA and need therefore to determine the correct @@ -69,47 +89,13 @@ script: | # KVM MIRROR_HOST=10.0.2.2 fi - + # Install a Wine new enough to have a fix for + # http://bugs.winehq.org/show_bug.cgi?id=29764; otherwise Python run under + # Wine constantly crashes in _PyVerify_fd, which is called by such common + # operations as io.open and os.fstat (anything involving a file descriptor + # number). Ubuntu's main repository only has wine1.4, and the issue was fixed + # in 1.5.29. WINEROOT=$HOME/.wine/drive_c - # XXX: Hardening options cause the exe's to crash.. not sure why - #export CFLAGS="-mwindows -fstack-protector-all -fPIE -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security" - #export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lssp -L/usr/lib/gcc/i686-w64-mingw32/4.6/" - umask 0022 - # - mkdir -p $INSTDIR/bin/ - mkdir -p $PTDIR/ - mkdir -p $OUTDIR/ - # - # Set the timestamp on every .pyc file in a zip file, and re-dzip the zip file. - function py2exe_zip_timestomp { - ZIPFILE="$1" - local tmpdir="$(mktemp -d)" - local tmpzip="$(mktemp -u)" - unzip -d "$tmpdir" "$ZIPFILE" - cd "$tmpdir" - find . -name '*.pyc' -print0 | xargs -0 ~/build/pyc-timestamp.sh "$REFERENCE_DATETIME" - ~/build/dzip.sh "$tmpzip" . - cd - - mv -f "$tmpzip" "$ZIPFILE" - rm -rf "$tmpdir" - } - # - # - tar xvf gmp.tar.bz2 - cd gmp-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - ./configure --prefix=$INSTDIR/gmp --host=i686-w64-mingw32 --enable-cxx --disable-static --enable-shared - make - make install - cp -an $INSTDIR/gmp/bin/*dll* $INSTDIR/Tor - cd .. - # - # - # Install a Wine new enough to have a fix for http://bugs.winehq.org/show_bug.cgi?id=29764; - # otherwise Python run under Wine constantly crashes in _PyVerify_fd, which is - # called by such common operations as io.open and os.fstat (anything involving - # a file descriptor number). Ubuntu's main repository only has wine1.4, and - # the issue was fixed in 1.5.29. sudo -s sh -c "echo deb http://$MIRROR_HOST:3142/ppa.launchpad.net/ubuntu-wine/ppa/ubuntu precise main >> /etc/apt/sources.list" # This key is from https://launchpad.net/~ubuntu-wine/+archive/ppa and # http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x5A9A06AEF9C.... @@ -140,40 +126,40 @@ script: | LD_PRELOAD= $INSTPYTHON setup.py py2exe cp -a dist/gcc.exe dist/g++.exe dist/dllwrap.exe dist/swig.exe $WINEROOT/windows/ cd .. - # + + # Building setuptools tar xzf setuptools.tar.gz cd setuptools-* find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup.py install cd .. - # + + # Bulding pyptlib cd pyptlib find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null cd .. - # + + # Building PyCrypto tar xzf pycrypto.tar.gz cd pycrypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" - # This is bogus, that we run the configure script in the build environment, but it seems to work. - # https://bugs.launchpad.net/pycrypto/+bug/1096207 for ac_cv_func_malloc_0_nonnull. + # This is bogus, that we run the configure script in the build environment, + # but it seems to work. https://bugs.launchpad.net/pycrypto/+bug/1096207 for + # ac_cv_func_malloc_0_nonnull. ac_cv_func_malloc_0_nonnull=yes sh configure --host=i686-w64-mingw32 LD_PRELOAD= $INSTPYTHON setup.py build_ext -c mingw32 LD_PRELOAD= $INSTPYTHON setup.py install cd .. - # + + # Building argparse tar xzf argparse.tar.gz cd argparse-* find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup.py install cd .. - # - tar xzf pyyaml.tar.gz - cd PyYAML-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - LD_PRELOAD= $INSTPYTHON setup.py install - cd .. - # + + # Building Zope interfaces unzip zope.interface.zip cd zope.interface-* find -type f | xargs touch --date="$REFERENCE_DATETIME" @@ -182,11 +168,20 @@ script: | # Must create this file in order for py2exe to find the package. touch $INSTDIR/python/Lib/site-packages/zope/__init__.py cd .. - # + + # Building PyYAML + tar xzf pyyaml.tar.gz + cd PyYAML-* + find -type f | xargs touch --date="$REFERENCE_DATETIME" + LD_PRELOAD= $INSTPYTHON setup.py install + cd .. + + # Building Twisted tar xjf twisted.tar.bz2 cd Twisted-* find -type f | xargs touch --date="$REFERENCE_DATETIME" - # twisted/internet/iocpreactor/iocpsupport/iocpsupport.c includes "python.h" rather than "Python.h". + # twisted/internet/iocpreactor/iocpsupport/iocpsupport.c includes "python.h" + # rather than "Python.h". ln -sf Python.h $INSTDIR/python/include/python.h # We need to set the "mingw32" compiler to avoid an error in build_ext, but # Twisted's "install" command calls build_ext unconditionally, whether the @@ -196,13 +191,18 @@ script: | echo $'[build_ext]\ncompiler=mingw32' > setup.cfg LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null cd .. - # + # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py + # file. + find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME" + + # Building Parsley tar xzf parsley.tar.gz cd Parsley-* find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup.py install cd .. - # + + # Building txsocksx cd txsocksx find -type f | xargs touch --date="$REFERENCE_DATETIME" # Let's pretend we have the setup dependency already as we don't want to get @@ -212,10 +212,8 @@ script: | mkdir vcversioner-1.14.1.1-py2.7.egg LD_PRELOAD= $INSTPYTHON setup.py install cd .. - # - # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py file. - find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME" - # + + # Building obfsproxy cd obfsproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup_py2exe.py py2exe @@ -225,24 +223,19 @@ script: | mkdir -p $INSTDIR/Docs/Obfsproxy cp {LICENSE,README} $INSTDIR/Docs/Obfsproxy cd .. - # - tar xzf openssl.tar.gz - cd openssl-* - find -type f | xargs touch --date="$REFERENCE_DATETIME" - ./Configure -shared --cross-compile-prefix=i686-w64-mingw32- mingw --prefix=$INSTDIR/openssl - make - make install - cd .. - # + + # Building M2Crypto tar xzf m2crypto.tar.gz cd M2Crypto-* find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup.py build_ext -c mingw32 --openssl $INSTDIR/openssl/ -lssl.dll,crypto.dll LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null cd .. - # + # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py + # file. find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME" - # + + # Building flashproxy cd flashproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" make dist-exe DISTNAME=flashproxy-client PYTHON="LD_PRELOAD= $INSTPYTHON" @@ -251,7 +244,8 @@ script: | mkdir -p $INSTDIR/Docs/FlashProxy cp dist/flashproxy-client-win32/{doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy cd .. - # + + # Building libfte cd libfte ln -s $INSTDIR/gmp thirdparty/gmp cp -a $INSTDIR/gmp/bin/libgmp-*.dll . @@ -262,7 +256,8 @@ script: | cp -an {LICENSE,README.md} $INSTDIR/Docs/libfte cp -an thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2 cd .. - # + + # Building fteproxy cd fteproxy find -type f | xargs touch --date="$REFERENCE_DATETIME" LD_PRELOAD= $INSTPYTHON setup_tbb.py py2exe @@ -275,10 +270,11 @@ script: | mkdir -p $INSTDIR/Docs/fteproxy cp -an {COPYING,README.md} $INSTDIR/Docs/fteproxy cd .. - # + # http://bugs.winehq.org/show_bug.cgi?id=3591 cp -a $INSTDIR/python/python27.dll $PTDIR/ - # + + # Grabbing the result cd $INSTDIR ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Docs/ cp pluggable-transports-win32-gbuilt.zip $OUTDIR/ diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml index abfd8bb..19c4acd 100644 --- a/gitian/descriptors/windows/gitian-tor.yml +++ b/gitian/descriptors/windows/gitian-tor.yml @@ -43,7 +43,7 @@ script: | export TZ=UTC export LC_ALL=C umask 0022 - # + mkdir -p $INSTDIR/bin/ mkdir -p $INSTDIR/Tor/ mkdir -p $INSTDIR/Data/Tor/ @@ -58,7 +58,8 @@ script: | # See the we-need-only-the-binutils-comment in gitian-utils.yml for the # reasoning behind the "mingw-w64" dir instead of an expected "binutils" one. export PATH=$INSTDIR/mingw-w64/bin:$PATH - # + + # Building tor cd tor git update-index --refresh -q export GIT_COMMITTER_NAME="nobody" @@ -98,7 +99,8 @@ script: | # XXX: Geoip files.. cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll $INSTDIR/Tor/ cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libssp*.dll $INSTDIR/Tor/ - # + + # Grabbing the result cd $INSTDIR ~/build/dzip.sh tor-win32-gbuilt.zip Tor/ Data/ cp tor-win32-gbuilt.zip $OUTDIR/ diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml index 4e321a0..530e716 100644 --- a/gitian/descriptors/windows/gitian-utils.yml +++ b/gitian/descriptors/windows/gitian-utils.yml @@ -30,6 +30,7 @@ files: - "binutils.tar.bz2" - "gcc.tar.bz2" - "openssl.tar.gz" +- "gmp.tar.bz2" - "versions" - "dzip.sh" script: | @@ -135,11 +136,20 @@ script: | make install cd ..
+ # Building GMP + tar xjf gmp.tar.bz2 + cd gmp-* + find -type f | xargs touch --date="$REFERENCE_DATETIME" + ./configure --prefix=$INSTDIR/gmp --host=i686-w64-mingw32 --enable-cxx --disable-static --enable-shared + make + make install + cd .. + # Grabbing the remaining results cd $INSTDIR ~/build/dzip.sh mingw-w64-$GCC_VER-win32-utils.zip mingw-w64 ~/build/dzip.sh zlib-${ZLIB_TAG#v}-win32-utils.zip zlib ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-win32-utils.zip libevent ~/build/dzip.sh openssl-$OPENSSL_VER-win32-utils.zip openssl - + ~/build/dzip.sh gmp-$GMP_VER-win32-utils.zip gmp cp *-utils.zip $OUTDIR/ diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh index 992a23a..330e475 100755 --- a/gitian/mkbundle-linux.sh +++ b/gitian/mkbundle-linux.sh @@ -105,7 +105,9 @@ if [ ! -f inputs/openssl-$OPENSSL_VER-linux32-utils.zip -o \ ! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \ ! -f inputs/python-$PYTHON_VER-linux64-utils.zip -o \ ! -f inputs/lxml-$LXML_VER-linux32-utils.zip -o \ - ! -f inputs/lxml-$LXML_VER-linux64-utils.zip ]; + ! -f inputs/lxml-$LXML_VER-linux64-utils.zip -o \ + ! -f inputs/gmp-$GMP_VER-linux32-utils.zip -o \ + ! -f inputs/gmp-$GMP_VER-linux64-utils.zip ]; then echo echo "****** Starting Utilities Component of Linux Bundle (1/5 for Linux) ******" @@ -128,6 +130,8 @@ then ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip + ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip + ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip cd .. #cp -a result/utils-linux-res.yml inputs/ else @@ -145,6 +149,8 @@ else ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip + ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip + ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip cd .. fi
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh index fb1d32f..e852989 100755 --- a/gitian/mkbundle-mac.sh +++ b/gitian/mkbundle-mac.sh @@ -106,7 +106,8 @@ fi cd $GITIAN_DIR
if [ ! -f inputs/openssl-$OPENSSL_VER-mac32-utils.zip -o \ - ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip ]; + ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip -o \ + ! -f inputs/gmp-$GMP_VER-mac32-utils.zip ]; then echo echo "****** Starting Utilities Component of Mac Bundle (1/5 for Max) ******" @@ -122,6 +123,7 @@ then 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 + ln -sf gmp-$GMP_VER-mac32-utils.zip gmp-mac32-utils.zip cd .. #cp -a result/utils-mac-res.yml inputs/ else @@ -134,6 +136,7 @@ else 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 + ln -sf gmp-$GMP_VER-mac32-utils.zip gmp-mac32-utils.zip cd .. fi
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh index 198fe87..ecabeae 100755 --- a/gitian/mkbundle-windows.sh +++ b/gitian/mkbundle-windows.sh @@ -104,7 +104,8 @@ if [ ! -f inputs/binutils-$BINUTILS_VER-win32-utils.zip -o \ ! -f inputs/mingw-w64-$GCC_VER-win32-utils.zip -o \ ! -f inputs/zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip -o \ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip -o \ - ! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip ]; + ! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip -o \ + ! -f inputs/gmp-$GMP_VER-win32-utils.zip ]; then echo echo "****** Starting Utilities Component of Windows Bundle (1/5 for Windows) ******" @@ -124,6 +125,7 @@ then ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip + ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip cd .. #cp -a result/utils-win-res.yml inputs/ else @@ -138,6 +140,7 @@ else ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip + ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip cd .. fi
tbb-commits@lists.torproject.org