[tor-commits] [tor-browser-bundle/master] Bug 16181: Gitian changes for ESR 38 on OS X

gk at torproject.org gk at torproject.org
Tue Jun 23 10:40:45 UTC 2015


commit ff23e83bcc9e5ade5fcbf954c449446c4044df78
Author: Georg Koppen <gk at torproject.org>
Date:   Tue Jun 23 10:40:20 2015 +0000

    Bug 16181: Gitian changes for ESR 38 on OS X
---
 gitian/descriptors/mac/gitian-bundle.yml  |   86 ++++++++-------------
 gitian/descriptors/mac/gitian-firefox.yml |   46 ++++++------
 gitian/descriptors/mac/gitian-utils.yml   |  115 +++++++++++++++++------------
 gitian/fetch-inputs.sh                    |    6 +-
 gitian/mkbundle-mac.sh                    |    5 +-
 gitian/patches/libfaketime.patch          |   54 ++++++++++++++
 gitian/verify-tags.sh                     |    4 +-
 gitian/versions                           |    6 +-
 gitian/versions.alpha                     |    6 +-
 gitian/versions.nightly                   |    6 +-
 10 files changed, 196 insertions(+), 138 deletions(-)

diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml
index 61a024b..255d327 100644
--- a/gitian/descriptors/mac/gitian-bundle.yml
+++ b/gitian/descriptors/mac/gitian-bundle.yml
@@ -64,13 +64,8 @@ script: |
   export TORBROWSER_VERSION=`cat bare-version`
   export LC_ALL=C
   umask 0022
-  if [ ${TORBROWSER_VERSION::3} == "3.5" ]; then
-    export TORBROWSER_APP="TorBrowserBundle"
-    export TORBROWSER_NAME="TorBrowserBundle"
-  else
-    export TORBROWSER_APP="TorBrowser"
-    export TORBROWSER_NAME="TorBrowserBundle"
-  fi
+  export TORBROWSER_APP="TorBrowser"
+  export TORBROWSER_NAME="TorBrowserBundle"
   #
   # Extract the MAR tools.
   unzip -d ~/build ~/build/mar-tools-mac$GBUILD_BITS.zip
@@ -161,7 +156,7 @@ script: |
   tar -Jxvf ~/build/dmg-applications.tar.xz
   cd ..
   #
-  pushd $TORBROWSER_NAME.app/Contents/MacOS/browser/
+  pushd $TORBROWSER_NAME.app/Contents/Resources/browser/
   unzip omni.ja defaults/preferences/000-tor-browser.js
   cp defaults/preferences/000-tor-browser.js ~/build/
   # Set the locale of the bundle.
@@ -179,27 +174,21 @@ script: |
   unzip ~/build/TorBrowser.app.meek-http-helper.zip
   popd
   #
-  if [ ${TORBROWSER_VERSION::3} == "3.5" ]; then
-    cp -a ~/build/$TORBROWSER_NAME.app ~/build/${TORBROWSER_NAME}_en-US.app
-    ~/build/dzip.sh $OUTDIR/TorBrowserBundle-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_en-US.zip ${TORBROWSER_NAME}_en-US.app
-    rm -rf ~/build/${TORBROWSER_NAME}_en-US.app
-  else
-    # 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/
-    rm -f precomplete
-    python $MARTOOLS/createprecomplete.py
-    popd
-    #
-    # Create full MAR file and disk image.
-    MAR_FILE=tor-browser-osx${GBUILD_BITS}-${TORBROWSER_VERSION}_en-US.mar
-    MAR=$MARTOOLS/mar MBSDIFF=$MARTOOLS/mbsdiff $MARTOOLS/make_full_update.sh -q $OUTDIR/$MAR_FILE ~/build/$TORBROWSER_NAME.app
-    cp -a ~/build/$TORBROWSER_NAME.app ~/build/dmg/$TORBROWSER_APP.app
-    ~/build/ddmg.sh $OUTDIR/TorBrowser-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_en-US.dmg ~/build/dmg
-    rm -rf ~/build/dmg/$TORBROWSER_APP.app
-  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
+  python $MARTOOLS/createprecomplete.py
+  popd
+  #
+  # Create full MAR file and disk image.
+  MAR_FILE=tor-browser-osx${GBUILD_BITS}-${TORBROWSER_VERSION}_en-US.mar
+  MAR=$MARTOOLS/mar MBSDIFF=$MARTOOLS/mbsdiff $MARTOOLS/make_full_update.sh -q $OUTDIR/$MAR_FILE ~/build/$TORBROWSER_NAME.app
+  cp -a ~/build/$TORBROWSER_NAME.app ~/build/dmg/$TORBROWSER_APP.app
+  ~/build/ddmg.sh $OUTDIR/TorBrowser-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_en-US.dmg ~/build/dmg
+  rm -rf ~/build/dmg/$TORBROWSER_APP.app
   mv $TORBROWSER_NAME.app ${TORBROWSER_NAME}_plain.app
   #
   unzip mac-langpacks.zip
@@ -207,16 +196,12 @@ script: |
   for LANG in $BUNDLE_LOCALES
   do
     xpi=$LANG.xpi
-    if [ ${TORBROWSER_VERSION::3} == "3.5" ]; then
-      DEST=${TORBROWSER_APP}_$LANG
-    else
-      DEST=$TORBROWSER_APP
-    fi
+    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 at firefox.mozilla.org.xpi
     cd ..
 
-    pushd ~/build/dmg/$DEST.app/Contents/MacOS/browser/
+    pushd ~/build/dmg/$DEST.app/Contents/Resources/browser/
     mkdir -p defaults/preferences
     cp ~/build/000-tor-browser.js defaults/preferences/
     # Set the locale of the bundle.
@@ -225,28 +210,19 @@ script: |
     rm -rf defaults
     popd
 
-    # Set the update.locale (it is used to replace %LOCALE% within app.update.url).
-    pushd ~/build/dmg/$DEST.app/Contents/MacOS/
+    # Set the update.locale (it is used to replace %LOCALE% within
+    # app.update.url) and recreate the precomplete file (needs to be accurate
+    # for full MAR updates).
+    pushd ~/build/dmg/$DEST.app/Contents/Resources/
     echo "$LANG" > update.locale
     zip -Xm omni.ja update.locale
+    rm -f precomplete
+    python $MARTOOLS/createprecomplete.py
     popd
-
-    if [ ${TORBROWSER_VERSION::3} == "3.5" ]; then
-       pushd ~/build/dmg/
-       ~/build/dzip.sh $OUTDIR/TorBrowserBundle-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_$LANG.zip $DEST.app
-       rm -rf TorBrowserBundle_$LANG.app
-       popd
-    else
-      # Recreate precomplete file (needs to be accurate for full MAR updates).
-      pushd ~/build/dmg/$DEST.app/
-      rm -f precomplete
-      python $MARTOOLS/createprecomplete.py
-      popd
-      #
-      MAR_FILE=tor-browser-osx${GBUILD_BITS}-${TORBROWSER_VERSION}_$LANG.mar
-      MAR=$MARTOOLS/mar MBSDIFF=$MARTOOLS/mbsdiff $MARTOOLS/make_full_update.sh -q $OUTDIR/$MAR_FILE ~/build/dmg/$DEST.app
-       ~/build/ddmg.sh $OUTDIR/TorBrowser-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_$LANG.dmg ~/build/dmg/
-       rm -rf ~/build/dmg/$DEST.app
-    fi
+    #
+    MAR_FILE=tor-browser-osx${GBUILD_BITS}-${TORBROWSER_VERSION}_$LANG.mar
+    MAR=$MARTOOLS/mar MBSDIFF=$MARTOOLS/mbsdiff $MARTOOLS/make_full_update.sh -q $OUTDIR/$MAR_FILE ~/build/dmg/$DEST.app
+     ~/build/ddmg.sh $OUTDIR/TorBrowser-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_$LANG.dmg ~/build/dmg/
+    rm -rf ~/build/dmg/$DEST.app
     cd mac-langpacks
   done
diff --git a/gitian/descriptors/mac/gitian-firefox.yml b/gitian/descriptors/mac/gitian-firefox.yml
index e7a4dcb..e8f1046 100644
--- a/gitian/descriptors/mac/gitian-firefox.yml
+++ b/gitian/descriptors/mac/gitian-firefox.yml
@@ -16,11 +16,13 @@ remotes:
 - "url": "https://github.com/wolfcw/libfaketime"
   "dir": "faketime"
 files:
-- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
+- "gcc-linux64-precise-utils.zip"
+- "MacOSX10.7.sdk.tar.gz"
 - "x86_64-apple-darwin10.tar.xz"
 - "re-dzip.sh"
 - "dzip.sh"
 - "fix-info-plist.py"
+- "libfaketime.patch"
 - "versions"
 script: |
   INSTDIR="$HOME/install/"
@@ -34,25 +36,26 @@ script: |
 
   # Building libfaketime.
   cd faketime
+  export GIT_COMMITTER_NAME="nobody"
+  export GIT_COMMITTER_EMAIL="nobody at localhost"
+  export GIT_COMMITTER_DATE="$REFERENCE_DATETIME"
+  git am ~/build/libfaketime.patch
   make
   DESTDIR="$INSTDIR/faketime" make install
   export LD_PRELOAD="$INSTDIR/faketime/usr/local/lib/faketime/libfaketime.so.1"
   export FAKETIME=$REFERENCE_DATETIME
   cd ..
 
-  sudo dpkg -i *.deb
-  tar -xavf x86_64-apple-darwin10.tar.xz
-  # XXX: Needed for the otool patch. But we should replace that one with a
-  # better solution. See: comment 15 in
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=936115
-  export PATH=$PATH:/home/ubuntu/build/x-tools/x86_64-apple-darwin10/bin
-  # FIXME: path hacks:
-  sudo mkdir -p /System/Library/
-  sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk /usr/lib/apple/SDKs/MacOSX10.5.sdk
-  sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk /usr/lib/apple/SDKs/MacOSX10.5.sdk
-  sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ /System/Library/
-  sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/PrivateFrameworks/ /System/Library/
-  sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/libstdc++.6.dylib /usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/libstdc++.dylib
+  unzip -d $INSTDIR ~/build/gcc-linux64-precise-utils.zip
+  # We need a link to our GCC, otherwise the system cc gets used which points to
+  # /usr/bin/gcc.
+  ln -s gcc $INSTDIR/gcc/bin/cc
+  export LD_LIBRARY_PATH=$INSTDIR/gcc/lib64
+  # XXX: cross-compiler path is needed for ICU
+  export PATH=/home/ubuntu/build/x-tools/x86_64-apple-darwin10/bin:$INSTDIR/gcc/bin:$PATH
+
+  tar xaf x86_64-apple-darwin10.tar.xz
+  tar xaf MacOSX10.7.sdk.tar.gz
   #
   cd tor-browser
   mv .mozconfig-mac .mozconfig
@@ -72,11 +75,10 @@ script: |
   # BUT we need to exclude |make build| from it. Otherwise the build fails close
   # to the end, see #12812 comment 6 and #12461 comment 8 and later.
   # Additionally, we need to exclude |rsync| due to #10153 which is reproducible
-  # reliably with the new libfaketime.
+  # reliably with the new libfaketime and |python2.7| as well as the build would
+  # stall otherwise right at the beginning. See #13877 for details.
   export LD_PRELOAD="$INSTDIR/faketime/usr/local/lib/faketime/libfaketime.so.1"
-  # XXX Order matters as for some reason the env variable has only the first
-  # command assigned when it comes to the rsync parts in the build process.
-  export FAKETIME_SKIP_CMDS="rsync,make"
+  export FAKETIME_SKIP_CMDS="python2.7,rsync,make"
   make BUILD_HOSTNAME="gitian" $MAKEOPTS -f client.mk build
   #
   make -C obj-macos package INNER_MAKE_PACKAGE=true
@@ -101,11 +103,9 @@ script: |
   mv $INFO_PLIST tmp.plist
   ~/build/fix-info-plist.py $TORBROWSER_VERSION < tmp.plist > $INFO_PLIST
   rm -f tmp.plist
-  ~/build/re-dzip.sh TorBrowser.app/Contents/MacOS/omni.ja
-  ~/build/re-dzip.sh TorBrowser.app/Contents/MacOS/webapprt/omni.ja
-  if [ -f TorBrowser.app/Contents/MacOS/browser/omni.ja  ]; then # FF24 includes a third .ja
-    ~/build/re-dzip.sh TorBrowser.app/Contents/MacOS/browser/omni.ja
-  fi
+  ~/build/re-dzip.sh TorBrowser.app/Contents/Resources/omni.ja
+  ~/build/re-dzip.sh TorBrowser.app/Contents/Resources/webapprt/omni.ja
+  ~/build/re-dzip.sh TorBrowser.app/Contents/Resources/browser/omni.ja
   cd TorBrowser.app/
   ~/build/dzip.sh tor-browser-mac${GBUILD_BITS}-gbuilt.zip ./Contents
   cp tor-browser-mac${GBUILD_BITS}-gbuilt.zip $OUTDIR
diff --git a/gitian/descriptors/mac/gitian-utils.yml b/gitian/descriptors/mac/gitian-utils.yml
index 6d93817..c47767e 100644
--- a/gitian/descriptors/mac/gitian-utils.yml
+++ b/gitian/descriptors/mac/gitian-utils.yml
@@ -4,11 +4,14 @@ suites:
 - "precise"
 architectures:
 - "i386"
+- "amd64"
 packages:
 - "faketime"
 - "automake"
 - "libtool"
 - "zip"
+# Needed for compiling GCC.
+- "libmpc-dev"
 reference_datetime: "2000-01-01 00:00:00"
 remotes:
 - "url": "https://github.com/libevent/libevent.git"
@@ -16,6 +19,7 @@ remotes:
 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"
+- "gcc.tar.bz2"
 - "openssl.tar.gz"
 - "gmp.tar.bz2"
 - "versions"
@@ -23,61 +27,76 @@ files:
 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
-  #For gmp, need to trick it so it knows we're doing a 64 bit build
-  for i in ~/build/apple-osx/bin/i686-apple-darwin11-*; do j=`echo $i | sed 's/i686/x86_64/'`; ln -s $i $j; done;
+  if [ $GBUILD_BITS == "64" ];
+  then
+    # Building GCC. We need this as Firefox ESR 38 has GCC 4.7 as minimum
+    # requirement for the host compiler but Ubuntu Precise is only shipping 4.6.
+    tar xaf gcc.tar.bz2
+    cd gcc-*
+    ./configure --prefix=$INSTDIR/gcc --disable-multilib --enable-languages=c,c++
+    make $MAKEOPTS
+    make install
+    cd $INSTDIR
+    ~/build/dzip.sh gcc-$GCC_VER-linux64-precise-utils.zip gcc
+    cp *utils.zip $OUTDIR/
+  else
+    export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+    export FAKETIME=$REFERENCE_DATETIME
 
-  # 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/ -mmacosx-version-min=10.5"
-  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/ -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"
+    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
+    #For gmp, need to trick it so it knows we're doing a 64 bit build
+    for i in ~/build/apple-osx/bin/i686-apple-darwin11-*; do j=`echo $i | sed 's/i686/x86_64/'`; ln -s $i $j; done;
 
-  # Building Libevent
-  cd libevent
-  ./autogen.sh
-  find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
-  ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
-  make $MAKEOPTS
-  make install
-  cd ..
+    # 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/ -mmacosx-version-min=10.5"
+    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/ -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 OpenSSL
-  tar xzf openssl.tar.gz
-  cd openssl-*
-  find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
-  # TODO: Add enable-ec_nistp_64_gcc_128 for 64bit OS X.
-  ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin64-x86_64-cc --prefix=$INSTDIR/openssl enable-ec_nistp_64_gcc_128
-  # Using $MAKEOPTS breaks the build. Might be the issue mentioned on
-  # http://cblfs.cross-lfs.org/index.php/OpenSSL.
-  make
-  make install
-  cd ..
+    # Building Libevent
+    cd libevent
+    ./autogen.sh
+    find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
+    ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
+    make $MAKEOPTS
+    make install
+    cd ..
 
-  # Building GMP
-  tar xjf gmp.tar.bz2
-  cd gmp-*
-  find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
-  # Even if we are not shipping libgmpxx anymore we still need --enable-xcc
-  # during compile time.
-  ./configure --host=x86_64-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
-  make
-  make install
-  cd ..
+    # Building OpenSSL
+    tar xzf openssl.tar.gz
+    cd openssl-*
+    find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
+    # TODO: Add enable-ec_nistp_64_gcc_128 for 64bit OS X.
+    ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin64-x86_64-cc --prefix=$INSTDIR/openssl enable-ec_nistp_64_gcc_128
+    # 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-mac64-utils.zip openssl
-  ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-mac64-utils.zip libevent
-  ~/build/dzip.sh gmp-$GMP_VER-mac64-utils.zip gmp
+    # Building GMP
+    tar xjf gmp.tar.bz2
+    cd gmp-*
+    find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
+    # Even if we are not shipping libgmpxx anymore we still need --enable-xcc
+    # during compile time.
+    ./configure --host=x86_64-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
+    make
+    make install
+    cd ..
 
-  cp *utils.zip $OUTDIR/
+    # Grabbing the results
+    cd $INSTDIR
+    ~/build/dzip.sh openssl-$OPENSSL_VER-mac64-utils.zip openssl
+    ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-mac64-utils.zip libevent
+    ~/build/dzip.sh gmp-$GMP_VER-mac64-utils.zip gmp
+
+    cp *utils.zip $OUTDIR/
+  fi
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 63460e8..2a5bd16 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -132,7 +132,7 @@ do
   fi
 done
 
-for i in TOOLCHAIN4 TOOLCHAIN4_OLD OSXSDK MSVCR100
+for i in TOOLCHAIN4 TOOLCHAIN4_OLD OSXSDK OSXSDK_OLD MSVCR100
 do
   PACKAGE="${i}_PACKAGE"
   URL="${MIRROR_URL}${!PACKAGE}"
@@ -166,8 +166,8 @@ done
 wget -U "" -N ${NOSCRIPT_URL}
 
 # Verify packages with weak or no signatures via direct sha256 check
-# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY GO GCC
+# (OpenSSL is signed with MD5, and OSXSDK + OSXSDK_OLD are not signed at all)
+for i in OSXSDK OSXSDK_OLD TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY GO GCC
 do
    PACKAGE="${i}_PACKAGE"
    HASH="${i}_HASH"
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index ea547e9..363ebb1 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-mac64-utils.zip -o \
+if [ ! -f inputs/gcc-$GCC_VER-linux64-precise-utils.zip -o \
+     ! -f inputs/openssl-$OPENSSL_VER-mac64-utils.zip -o \
      ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac64-utils.zip -o \
      ! -f inputs/gmp-$GMP_VER-mac64-utils.zip ];
 then
@@ -122,6 +123,7 @@ then
 
   cd inputs
   cp -a ../build/out/*-utils.zip .
+  ln -sf gcc-$GCC_VER-linux64-precise-utils.zip gcc-linux64-precise-utils.zip
   ln -sf openssl-$OPENSSL_VER-mac64-utils.zip openssl-mac64-utils.zip
   ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac64-utils.zip libevent-mac64-utils.zip
   ln -sf gmp-$GMP_VER-mac64-utils.zip gmp-mac64-utils.zip
@@ -135,6 +137,7 @@ else
   # 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 gcc-$GCC_VER-linux64-precise-utils.zip gcc-linux64-precise-utils.zip
   ln -sf openssl-$OPENSSL_VER-mac64-utils.zip openssl-mac64-utils.zip
   ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac64-utils.zip libevent-mac64-utils.zip
   ln -sf gmp-$GMP_VER-mac64-utils.zip gmp-mac64-utils.zip
diff --git a/gitian/patches/libfaketime.patch b/gitian/patches/libfaketime.patch
new file mode 100644
index 0000000..d170eda
--- /dev/null
+++ b/gitian/patches/libfaketime.patch
@@ -0,0 +1,54 @@
+From 3ea3df1129a9918dea7efdf3a529227f16b237aa Mon Sep 17 00:00:00 2001
+From: Georg Koppen <gk at torproject.org>
+Date: Thu, 21 May 2015 07:32:16 +0000
+Subject: [PATCH] Allow more than one command being skipped
+
+---
+ src/libfaketime.c | 28 ++++++++++++++++++++--------
+ 1 file changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/src/libfaketime.c b/src/libfaketime.c
+index ecda143..ad45857 100644
+--- a/src/libfaketime.c
++++ b/src/libfaketime.c
+@@ -1455,17 +1455,29 @@ void __attribute__ ((constructor)) ftpl_init(void)
+   /* We can prevent faking time for specified commands */
+   if ((tmp_env = getenv("FAKETIME_SKIP_CMDS")) != NULL)
+   {
+-    char *skip_cmd, *saveptr;
+-    skip_cmd = strtok_r(tmp_env, ",", &saveptr);
+-    while (skip_cmd != NULL)
++    char *skip_cmd, *saveptr, *tmpvar;
++    /* Don't mess with the env variable directly. */
++    tmpvar = strdup(tmp_env);
++    if (tmpvar != NULL)
+     {
+-      if (0 == strcmp(progname, skip_cmd))
++      skip_cmd = strtok_r(tmpvar, ",", &saveptr);
++      while (skip_cmd != NULL)
+       {
+-        ft_mode = FT_NOOP;
+-        dont_fake = true;
+-        break;
++        if (0 == strcmp(progname, skip_cmd))
++        {
++          ft_mode = FT_NOOP;
++          dont_fake = true;
++          break;
++        }
++        skip_cmd = strtok_r(NULL, ",", &saveptr);
+       }
+-      skip_cmd = strtok_r(NULL, ",", &saveptr);
++      free(tmpvar);
++      tmpvar = NULL;
++    }
++    else
++    {
++      fprintf(stderr, "Error: Could not copy the environment variable value.\n");
++      exit(EXIT_FAILURE);
+     }
+   }
+ 
+-- 
+2.1.4
+
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 5c1d552..2c4e8c6 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -140,8 +140,8 @@ do
 done
 
 # Verify packages with weak or no signatures via direct sha256 check
-# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY GO GCC
+# (OpenSSL is signed with MD5, and OSXSDK + OSXSDK_OLD are not signed at all)
+for i in OSXSDK OSXSDK_OLD TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY GO GCC
 do
    PACKAGE="${i}_PACKAGE"
    HASH="${i}_HASH"
diff --git a/gitian/versions b/gitian/versions
index 4a612c1..dc8b095 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -60,7 +60,8 @@ GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
 NOSCRIPT_PACKAGE=noscript_security_suite-2.6.9.26-sm+fn+fx.xpi
 TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
 TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
-OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
+OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
+OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MSVCR100_PACKAGE=msvcr100.dll
 BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
 GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
@@ -81,7 +82,8 @@ GO_PACKAGE=go${GO_VER}.src.tar.gz
 # Hashes for packages with weak sigs or no sigs
 OPENSSL_HASH=16e678c6a05f2502811e075f2c4059ac01c878d091c9c585afc49ebc541f7b13
 GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
-OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
+OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
+OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
 TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
 TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
 NOSCRIPT_HASH=06d9fa6093378682a7fabfc0b2d156dfafcfda749ddd802970ce14d1860e6a3e
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index c4b04cc..229e46d 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -60,7 +60,8 @@ GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
 NOSCRIPT_PACKAGE=noscript_security_suite-2.6.9.26-sm+fn+fx.xpi
 TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
 TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
-OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
+OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
+OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MSVCR100_PACKAGE=msvcr100.dll
 BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
 GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
@@ -81,7 +82,8 @@ GO_PACKAGE=go${GO_VER}.src.tar.gz
 # Hashes for packages with weak sigs or no sigs
 OPENSSL_HASH=16e678c6a05f2502811e075f2c4059ac01c878d091c9c585afc49ebc541f7b13
 GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
-OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
+OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
+OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
 TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
 TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
 NOSCRIPT_HASH=06d9fa6093378682a7fabfc0b2d156dfafcfda749ddd802970ce14d1860e6a3e
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index cef40eb..27a2e27 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -63,7 +63,8 @@ GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
 NOSCRIPT_PACKAGE=noscript_security_suite-2.6.9.26-sm+fn+fx.xpi
 TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
 TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
-OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
+OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
+OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MSVCR100_PACKAGE=msvcr100.dll
 BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
 GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
@@ -84,7 +85,8 @@ GO_PACKAGE=go${GO_VER}.src.tar.gz
 # Hashes for packages with weak sigs or no sigs
 OPENSSL_HASH=16e678c6a05f2502811e075f2c4059ac01c878d091c9c585afc49ebc541f7b13
 GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
-OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
+OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
+OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
 TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
 TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
 NOSCRIPT_HASH=06d9fa6093378682a7fabfc0b2d156dfafcfda749ddd802970ce14d1860e6a3e



More information about the tor-commits mailing list