Skip to content
Snippets Groups Projects
Commit ff23e83b authored by Georg Koppen's avatar Georg Koppen
Browse files

Bug 16181: Gitian changes for ESR 38 on OS X

parent 6807f337
No related branches found
No related tags found
No related merge requests found
......@@ -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
......@@ -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
......@@ -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
......@@ -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"
......
......@@ -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
......
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
......@@ -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"
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment