commit ff23e83bcc9e5ade5fcbf954c449446c4044df78 Author: Georg Koppen gk@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@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@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@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