commit 186c4e271355646eb4b9faadffaaa7fc0f986a3e Author: Nicolas Vigier boklm@torproject.org Date: Thu Apr 21 23:46:08 2016 +0200
Bug 17895: Build and use NSIS 2.51 with Debian patches --- gitian/descriptors/windows/gitian-bundle.yml | 5 ++++- gitian/descriptors/windows/gitian-utils.yml | 28 ++++++++++++++++++++++++ gitian/fetch-inputs.sh | 6 +++-- gitian/mkbundle-windows.sh | 5 ++++- gitian/patches/nsis-missing-unistd-include.patch | 11 ++++++++++ gitian/verify-tags.sh | 2 +- gitian/versions | 7 ++++++ gitian/versions.alpha | 7 ++++++ gitian/versions.nightly | 7 ++++++ 9 files changed, 73 insertions(+), 5 deletions(-)
diff --git a/gitian/descriptors/windows/gitian-bundle.yml b/gitian/descriptors/windows/gitian-bundle.yml index 5a165a7..4fe4bb6 100644 --- a/gitian/descriptors/windows/gitian-bundle.yml +++ b/gitian/descriptors/windows/gitian-bundle.yml @@ -7,7 +7,6 @@ architectures: packages: - "unzip" - "zip" -- "nsis" # Needed to compensate NSIS's failure of regenerating the PE-file checksum and # proper padding. - "python-pefile" @@ -50,6 +49,7 @@ files: - "mar-tools-win32.zip" - "tbb-docs.zip" - "pe_checksum_fix.py" +- "nsis-win32-utils.zip" script: | INSTDIR="$HOME/install" source versions @@ -71,6 +71,9 @@ script: | # Extract the MAR tools. unzip -d ~/build ~/build/mar-tools-win32.zip MARTOOLS=~/build/mar-tools + # Extract nsis + unzip -d $INSTDIR ~/build/nsis-win32-utils.zip + export PATH=$INSTDIR/nsis/bin:$PATH # mkdir -p $OUTDIR/ mkdir -p tbb-windows-installer/"Tor Browser"/Browser/TorBrowser/Data/Browser/profile.default/extensions/https-everywhere-eff@eff.org diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml index ae938af..2767bad 100644 --- a/gitian/descriptors/windows/gitian-utils.yml +++ b/gitian/descriptors/windows/gitian-utils.yml @@ -13,6 +13,9 @@ packages: - "g++-mingw-w64-i686" # Needed for compiling gcc. - "libmpc-dev" +# Needed for compiling nsis. +- "scons" +- "libcppunit-dev" reference_datetime: "2000-01-01 00:00:00" remotes: - "url": "http://git.code.sf.net/p/mingw-w64/mingw-w64" @@ -30,6 +33,9 @@ files: - "peXXigen.patch" - "versions" - "dzip.sh" +- "nsis.tar.bz2" +- "nsis-debian.tar.xz" +- "nsis-missing-unistd-include.patch" script: | INSTDIR="$HOME/install" source versions @@ -157,6 +163,27 @@ script: | make install cd ..
+ # Building nsis + tar xf nsis.tar.bz2 + cd nsis-${NSIS_VER}-src + tar xf ../nsis-debian.tar.xz + patch -p1 < ../nsis-missing-unistd-include.patch + # nsis_system_zlib.patch and parallel_build.patch cause build errors + # so we remove them + rm -f debian/patches/nsis_system_zlib.patch + rm -f debian/patches/parallel_build.patch + for patch in $(grep '.patch$' debian/patches/series) + do + [ -f debian/patches/$patch ] && patch -p1 < debian/patches/$patch + done + # When the gcc-mingw-w64-i686 package is installed, files from + # /usr/i686-w64-mingw32/include are used, causing the build to fail. + # To prevent that we remove the gcc-mingw-w64-i686 package. + sudo -i apt-get remove -y gcc-mingw-w64-i686 + scons APPEND_CCFLAGS="-fgnu89-inline" VERSION=${NSIS_VER} SKIPUTILS='NSIS Menu' XGCC_W32_PREFIX=i686-w64-mingw32- PREFIX=$INSTDIR/nsis + scons APPEND_CCFLAGS="-fgnu89-inline" VERSION=${NSIS_VER} SKIPUTILS='NSIS Menu' XGCC_W32_PREFIX=i686-w64-mingw32- PREFIX=$INSTDIR/nsis install + cd .. + # Grabbing the remaining results cd $INSTDIR # We might want to bump binutils independent of bumping mingw-w64. @@ -168,4 +195,5 @@ script: | ~/build/dzip.sh openssl-$OPENSSL_VER-win32-utils.zip openssl ~/build/dzip.sh gmp-$GMP_VER-win32-utils.zip gmp ~/build/dzip.sh gcclibs-$GCC_VER-win32-utils.zip gcclibs + ~/build/dzip.sh nsis-$NSIS_VER-win32-utils.zip nsis cp *-utils.zip $OUTDIR/ diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh index da487f4..99b984b 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 GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT +for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN 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 + OSXSDK_OLD are not signed at all) -for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT +for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN do PACKAGE="${i}_PACKAGE" HASH="${i}_HASH" @@ -244,6 +244,8 @@ ln -sf "$SETUPTOOLS_PACKAGE" setuptools.tar.gz ln -sf "$GMP_PACKAGE" gmp.tar.bz2 ln -sf "$PARSLEY_PACKAGE" parsley.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
# 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 2de0f1e..1afa840 100755 --- a/gitian/mkbundle-windows.sh +++ b/gitian/mkbundle-windows.sh @@ -106,7 +106,8 @@ if [ ! -f inputs/binutils-$BINUTILS_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 -o \ - ! -f inputs/gmp-$GMP_VER-win32-utils.zip ]; + ! -f inputs/gmp-$GMP_VER-win32-utils.zip -o \ + ! -f inputs/nsis-$NSIS_VER-win32-utils.zip ]; then echo echo "****** Starting Utilities Component of Windows Bundle (1/5 for Windows) ******" @@ -128,6 +129,7 @@ then ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip 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 cd .. #cp -a result/utils-win-res.yml inputs/ else @@ -144,6 +146,7 @@ else ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip 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 cd .. fi
diff --git a/gitian/patches/nsis-missing-unistd-include.patch b/gitian/patches/nsis-missing-unistd-include.patch new file mode 100644 index 0000000..4f4fdd2 --- /dev/null +++ b/gitian/patches/nsis-missing-unistd-include.patch @@ -0,0 +1,11 @@ +--- nsis-2.46-src.old/Source/util.h 2009-03-28 09:47:26.000000000 +0000 ++++ nsis-2.46-src/Source/util.h 2012-01-16 12:22:14.967416817 +0000 +@@ -17,6 +17,8 @@ + #ifndef _UTIL_H_ + #define _UTIL_H_ + ++#include <unistd.h> ++ + #include <string> // for std::string + + #include "boost/scoped_ptr.hpp" // for boost::scoped_ptr diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh index 95bdaf1..a966626 100755 --- a/gitian/verify-tags.sh +++ b/gitian/verify-tags.sh @@ -143,7 +143,7 @@ done
# Verify packages with weak or no signatures via direct sha256 check # (OpenSSL is signed with MD5, and OSXSDK + OSXSDK_OLD are not signed at all) -for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT +for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN do PACKAGE="${i}_PACKAGE" HASH="${i}_HASH" diff --git a/gitian/versions b/gitian/versions index 4dd8aa5..a18afab 100755 --- a/gitian/versions +++ b/gitian/versions @@ -54,6 +54,7 @@ PY2EXE_VER=0.6.9 SETUPTOOLS_VER=1.4 PARSLEY_VER=1.2 GO_VER=1.4.2 +NSIS_VER=2.51
## File names for the source packages OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz @@ -75,6 +76,8 @@ PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz GO_PACKAGE=go${GO_VER}.src.tar.gz +NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2 +NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip NOTOEMOJIFONT_PACKAGE=NotoEmoji-Regular.ttf NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf @@ -99,6 +102,8 @@ PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23 GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b +NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7 +NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8 NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5 @@ -126,6 +131,8 @@ PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/$%7BPY2EX SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/$%7BSETUPTOOLS_PACKAGE%... PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/$%7BPARSLEY_PACKAGE%7D GO_URL=https://golang.org/dl/$%7BGO_PACKAGE%7D +NSIS_URL=http://downloads.sourceforge.net/nsis/$%7BNSIS_PACKAGE%7D +NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/$%7BNSIS_DEBIAN_PACKAGE%7D STIXMATHFONT_URL=http://iweb.dl.sourceforge.net/project/stixfonts/Current%20Release/$%7BSTIXM... NOTOEMOJIFONT_URL=https://github.com/googlei18n/noto-emoji/raw/2f1ffdd6fbbd05d6f382138a3d3adcd... NOTOCJKBASE_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a6d49abbfb5c83d020... diff --git a/gitian/versions.alpha b/gitian/versions.alpha index 7e1dd98..0ba31d2 100755 --- a/gitian/versions.alpha +++ b/gitian/versions.alpha @@ -61,6 +61,7 @@ PY2EXE_VER=0.6.9 SETUPTOOLS_VER=1.4 PARSLEY_VER=1.2 GO_VER=1.4.2 +NSIS_VER=2.51
## File names for the source packages OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz @@ -83,6 +84,8 @@ PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz GO_PACKAGE=go${GO_VER}.src.tar.gz +NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2 +NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip NOTOEMOJIFONT_PACKAGE=NotoEmoji-Regular.ttf NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf @@ -108,6 +111,8 @@ PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23 GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b +NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7 +NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8 NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5 @@ -136,6 +141,8 @@ PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/$%7BPY2EX SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/$%7BSETUPTOOLS_PACKAGE%... PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/$%7BPARSLEY_PACKAGE%7D GO_URL=https://golang.org/dl/$%7BGO_PACKAGE%7D +NSIS_URL=http://downloads.sourceforge.net/nsis/$%7BNSIS_PACKAGE%7D +NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/$%7BNSIS_DEBIAN_PACKAGE%7D STIXMATHFONT_URL=http://iweb.dl.sourceforge.net/project/stixfonts/Current%20Release/$%7BSTIXM... NOTOEMOJIFONT_URL=https://github.com/googlei18n/noto-emoji/raw/2f1ffdd6fbbd05d6f382138a3d3adcd... NOTOCJKBASE_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a6d49abbfb5c83d020... diff --git a/gitian/versions.nightly b/gitian/versions.nightly index bf2e2a6..dab84ef 100755 --- a/gitian/versions.nightly +++ b/gitian/versions.nightly @@ -68,6 +68,7 @@ PY2EXE_VER=0.6.9 SETUPTOOLS_VER=1.4 PARSLEY_VER=1.2 GO_VER=1.4.2 +NSIS_VER=2.51
## File names for the source packages OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz @@ -90,6 +91,8 @@ PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz GO_PACKAGE=go${GO_VER}.src.tar.gz +NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2 +NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip NOTOEMOJIFONT_PACKAGE=NotoEmoji-Regular.ttf NOTOJPFONT_PACKAGE=NotoSansJP-Regular.otf @@ -115,6 +118,8 @@ PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23 GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b +NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7 +NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8 NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5 @@ -143,6 +148,8 @@ PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/$%7BPY2EX SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/$%7BSETUPTOOLS_PACKAGE%... PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/$%7BPARSLEY_PACKAGE%7D GO_URL=https://golang.org/dl/$%7BGO_PACKAGE%7D +NSIS_URL=http://downloads.sourceforge.net/nsis/$%7BNSIS_PACKAGE%7D +NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/$%7BNSIS_DEBIAN_PACKAGE%7D STIXMATHFONT_URL=http://iweb.dl.sourceforge.net/project/stixfonts/Current%20Release/$%7BSTIXM... NOTOEMOJIFONT_URL=https://github.com/googlei18n/noto-emoji/raw/2f1ffdd6fbbd05d6f382138a3d3adcd... NOTOCJKBASE_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a6d49abbfb5c83d020...