[tbb-commits] [tor-browser-bundle/master] Bug 18831: Use own Yasm for Firefox cross-compilation
gk at torproject.org
gk at torproject.org
Wed Apr 5 20:02:50 UTC 2017
commit 910094fc33ae4e75e10fee754bec106e83e0eac5
Author: Georg Koppen <gk at torproject.org>
Date: Wed Mar 29 11:00:23 2017 +0000
Bug 18831: Use own Yasm for Firefox cross-compilation
Starting with Firefox ESR52 Yasm < 1.2.0 is not sufficient anymore to
compile our browser part for Windows. Ubuntu Precise still ships with
such a version, though. We compile our own version until we get off of
Precise.
---
gitian/descriptors/windows/gitian-firefox.yml | 6 ++++--
gitian/descriptors/windows/gitian-utils.yml | 11 +++++++++++
gitian/fetch-inputs.sh | 5 +++--
gitian/mkbundle-windows.sh | 5 ++++-
gitian/verify-tags.sh | 2 +-
gitian/versions | 4 ++++
gitian/versions.alpha | 4 ++++
gitian/versions.nightly | 4 ++++
8 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/gitian/descriptors/windows/gitian-firefox.yml b/gitian/descriptors/windows/gitian-firefox.yml
index fabc40d..7ba0615 100644
--- a/gitian/descriptors/windows/gitian-firefox.yml
+++ b/gitian/descriptors/windows/gitian-firefox.yml
@@ -6,7 +6,6 @@ architectures:
packages:
- "unzip"
- "autoconf2.13"
-- "yasm"
- "zip"
reference_datetime: "2000-01-01 00:00:00"
remotes:
@@ -14,6 +13,7 @@ remotes:
"dir": "tor-browser"
files:
- "gcc-linux32-precise-utils.zip"
+- "yasm-linux32-precise-utils.zip"
- "mingw-w64-win32-utils.zip"
- "get-moz-build-date"
- "re-dzip.sh"
@@ -34,6 +34,8 @@ script: |
#
mkdir -p $INSTDIR/Browser/
mkdir -p $OUTDIR/
+ # Firefox ESR52 needs Yasm >= 1.2.0 which Ubuntu Precise does not ship.
+ unzip -d $INSTDIR yasm-linux32-precise-utils.zip
unzip -d $INSTDIR gcc-linux32-precise-utils.zip
# We need a link to our GCC, otherwise the system cc gets used which points to
# /usr/bin/gcc.
@@ -42,7 +44,7 @@ script: |
unzip -d $INSTDIR gcclibs-win32-utils.zip
# Make sure our custom mingw and GCC (as host compiler) get used.
export LD_LIBRARY_PATH=$INSTDIR/gcc/lib
- export PATH=$INSTDIR/mingw-w64/bin:$INSTDIR/gcc/bin:$PATH
+ export PATH=$INSTDIR/mingw-w64/bin:$INSTDIR/gcc/bin:$INSTDIR/yasm/bin:$PATH
# We don't want to link against msvcrt.dll due to bug 9084.
i686-w64-mingw32-g++ -dumpspecs > msvcr100.spec
diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
index 9c31834..6cfbbf1 100644
--- a/gitian/descriptors/windows/gitian-utils.yml
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -26,6 +26,7 @@ remotes:
files:
- "binutils.tar.bz2"
- "gcc.tar.bz2"
+- "yasm.tar.gz"
- "openssl.tar.gz"
- "gmp.tar.bz2"
- "enable-reloc-section-ld.patch"
@@ -52,6 +53,15 @@ script: |
make install
cd ..
+ # Building Yasm to use it for our Firefox compilation later. Firefox ESR52
+ # requires Yasm >= 1.2.0 which Ubuntu Precise does not ship.
+ tar xaf yasm.tar.gz
+ cd yasm-*
+ ./configure --prefix=$INSTDIR/yasm
+ make $MAKEOPTS
+ make install
+ cd ..
+
# Building binutils
tar xjf binutils.tar.bz2
cd binutils*
@@ -186,6 +196,7 @@ script: |
# We might want to bump binutils independent of bumping mingw-w64.
touch binutils-$BINUTILS_VER-win32-utils.zip
~/build/dzip.sh gcc-$GCC_VER-linux32-precise-utils.zip gcc
+ ~/build/dzip.sh yasm-$YASM_VER-linux32-precise-utils.zip yasm
~/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
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 44f96aa..b7fcf36 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -162,7 +162,7 @@ do
get "${!PACKAGE}" "${MIRROR_URL_ASN}${!PACKAGE}"
done
-for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY GO14 GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN PYCRYPTO
+for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY GO14 GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN PYCRYPTO YASM
do
URL="${i}_URL"
PACKAGE="${i}_PACKAGE"
@@ -174,7 +174,7 @@ wget -U "" -N ${NOSCRIPT_URL}
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK are not signed at all)
-for i in OSXSDK CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
+for i in OSXSDK CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN YASM
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
@@ -251,6 +251,7 @@ ln -sf "$GO14_PACKAGE" go14.tar.gz
ln -sf "$GO_PACKAGE" go.tar.gz
ln -sf "$NSIS_PACKAGE" nsis.tar.bz2
ln -sf "$NSIS_DEBIAN_PACKAGE" nsis-debian.tar.xz
+ln -sf "$YASM_PACKAGE" yasm.tar.gz
# Fetch latest gitian-builder itself
# XXX - this is broken if a non-standard inputs dir is selected using the command line flag.
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index 6254937..451bb29 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -108,7 +108,8 @@ if [ ! -f inputs/binutils-$BINUTILS_VER-win32-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip -o \
! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip -o \
! -f inputs/gmp-$GMP_VER-win32-utils.zip -o \
- ! -f inputs/nsis-$NSIS_VER-win32-utils.zip ];
+ ! -f inputs/nsis-$NSIS_VER-win32-utils.zip -o \
+ ! -f inputs/yasm-$YASM_VER-linux32-precise-utils.zip ];
then
echo
echo "****** Starting Utilities Component of Windows Bundle (1/5 for Windows) ******"
@@ -131,6 +132,7 @@ then
ln -sf gcclibs-$GCC_VER-win32-utils.zip gcclibs-win32-utils.zip
ln -sf gcc-$GCC_VER-linux32-precise-utils.zip gcc-linux32-precise-utils.zip
ln -sf nsis-$NSIS_VER-win32-utils.zip nsis-win32-utils.zip
+ ln -sf yasm-$YASM_VER-linux32-precise-utils.zip yasm-linux32-precise-utils.zip
cd ..
#cp -a result/utils-win-res.yml inputs/
else
@@ -148,6 +150,7 @@ else
ln -sf gcclibs-$GCC_VER-win32-utils.zip gcclibs-win32-utils.zip
ln -sf gcc-$GCC_VER-linux32-precise-utils.zip gcc-linux32-precise-utils.zip
ln -sf nsis-$NSIS_VER-win32-utils.zip nsis-win32-utils.zip
+ ln -sf yasm-$YASM_VER-linux32-precise-utils.zip yasm-linux32-precise-utils.zip
cd ..
fi
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 4facfa5..dc207f5 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -147,7 +147,7 @@ done
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK are not signed at all)
-for i in OSXSDK CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
+for i in OSXSDK CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN YASM
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
diff --git a/gitian/versions b/gitian/versions
index a13cc08..caaa487 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -67,6 +67,7 @@ PARSLEY_VER=1.2
GO14_VER=1.4.3
GO_VER=1.7.5
NSIS_VER=2.51
+YASM_VER=1.2.0
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -100,6 +101,7 @@ NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf
NOTOKRFONT_PACKAGE=NotoSansKR-Regular.otf
NOTOSCFONT_PACKAGE=NotoSansSC-Regular.otf
NOTOTCFONT_PACKAGE=NotoSansTC-Regular.otf
+YASM_PACKAGE=yasm-${YASM_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=4a6ee491a2fdb22e519c76fdc2a628bb3cec12762cd456861d207996c8a07088
@@ -127,6 +129,7 @@ NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
NOTOKRFONT_HASH=b21817200abcb37a8ee865befce588d65babd1c35c2c4d32d3cd3f5b4780a7a3
NOTOSCFONT_HASH=8c37936063c7c8ab747a939e13833894f9edc80dd41b98874ca8f3938a33c32f
NOTOTCFONT_HASH=e6b82f7d3dab605c428161124ceb5e169cde93de632d800297b167cdd88e7baa
+YASM_HASH=768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -160,3 +163,4 @@ NOTOJPFONT_URL=${NOTOCJKBASE_URL}/${NOTOJPFONT_PACKAGE}
NOTOKRFONT_URL=${NOTOCJKBASE_URL}/${NOTOKRFONT_PACKAGE}
NOTOSCFONT_URL=${NOTOCJKBASE_URL}/${NOTOSCFONT_PACKAGE}
NOTOTCFONT_URL=${NOTOCJKBASE_URL}/${NOTOTCFONT_PACKAGE}
+YASM_URL=https://www.tortall.net/projects/yasm/releases/${YASM_PACKAGE}
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 2655f23..0fe1846 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -70,6 +70,7 @@ PARSLEY_VER=1.2
GO14_VER=1.4.3
GO_VER=1.7.5
NSIS_VER=2.51
+YASM_VER=1.2.0
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -103,6 +104,7 @@ NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf
NOTOKRFONT_PACKAGE=NotoSansKR-Regular.otf
NOTOSCFONT_PACKAGE=NotoSansSC-Regular.otf
NOTOTCFONT_PACKAGE=NotoSansTC-Regular.otf
+YASM_PACKAGE=yasm-${YASM_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0
@@ -130,6 +132,7 @@ NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
NOTOKRFONT_HASH=b21817200abcb37a8ee865befce588d65babd1c35c2c4d32d3cd3f5b4780a7a3
NOTOSCFONT_HASH=8c37936063c7c8ab747a939e13833894f9edc80dd41b98874ca8f3938a33c32f
NOTOTCFONT_HASH=e6b82f7d3dab605c428161124ceb5e169cde93de632d800297b167cdd88e7baa
+YASM_HASH=768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -163,3 +166,4 @@ NOTOJPFONT_URL=${NOTOCJKBASE_URL}/${NOTOJPFONT_PACKAGE}
NOTOKRFONT_URL=${NOTOCJKBASE_URL}/${NOTOKRFONT_PACKAGE}
NOTOSCFONT_URL=${NOTOCJKBASE_URL}/${NOTOSCFONT_PACKAGE}
NOTOTCFONT_URL=${NOTOCJKBASE_URL}/${NOTOTCFONT_PACKAGE}
+YASM_URL=https://www.tortall.net/projects/yasm/releases/${YASM_PACKAGE}
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 4fdc685..c0b68f5 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -77,6 +77,7 @@ PARSLEY_VER=1.2
GO14_VER=1.4.3
GO_VER=1.7.5
NSIS_VER=2.51
+YASM_VER=1.2.0
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -110,6 +111,7 @@ NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf
NOTOKRFONT_PACKAGE=NotoSansKR-Regular.otf
NOTOSCFONT_PACKAGE=NotoSansSC-Regular.otf
NOTOTCFONT_PACKAGE=NotoSansTC-Regular.otf
+YASM_PACKAGE=yasm-${YASM_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0
@@ -137,6 +139,7 @@ NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
NOTOKRFONT_HASH=b21817200abcb37a8ee865befce588d65babd1c35c2c4d32d3cd3f5b4780a7a3
NOTOSCFONT_HASH=8c37936063c7c8ab747a939e13833894f9edc80dd41b98874ca8f3938a33c32f
NOTOTCFONT_HASH=e6b82f7d3dab605c428161124ceb5e169cde93de632d800297b167cdd88e7baa
+YASM_HASH=768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -170,3 +173,4 @@ NOTOJPFONT_URL=${NOTOCJKBASE_URL}/${NOTOJPFONT_PACKAGE}
NOTOKRFONT_URL=${NOTOCJKBASE_URL}/${NOTOKRFONT_PACKAGE}
NOTOSCFONT_URL=${NOTOCJKBASE_URL}/${NOTOSCFONT_PACKAGE}
NOTOTCFONT_URL=${NOTOCJKBASE_URL}/${NOTOTCFONT_PACKAGE}
+YASM_URL=https://www.tortall.net/projects/yasm/releases/${YASM_PACKAGE}
More information about the tbb-commits
mailing list