Bug 1730825 - Bootstrap nsis for Windows builds. r=firefox-build-system-reviewers,andi

And at the same time, make the toolchain artifact directly usable on
cross-compiles.

Differential Revision: https://phabricator.services.mozilla.com/D125635
This commit is contained in:
Mike Hommey 2021-09-15 08:33:04 +00:00
parent 2859a00361
commit 7e693067b8
12 changed files with 66 additions and 47 deletions

View File

@ -11,15 +11,11 @@ if test `uname -s` = Linux; then
if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/x86/cl.exe" ]; then
find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
fi
export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.07/makensis.exe"
if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
chmod +x "${MAKENSISU}"
fi
export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
if [ -f "${UPX}" ]; then
chmod +x "${UPX}"
fi
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x86:${MOZ_FETCHES_DIR}/nsis-3.07:${PATH}"
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x86:${PATH}"
unset VC_PATH

View File

@ -11,15 +11,11 @@ if test `uname -s` = Linux; then
if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/arm64/cl.exe" ]; then
find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
fi
export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.07/makensis.exe"
if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
chmod +x "${MAKENSISU}"
fi
export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
if [ -f "${UPX}" ]; then
chmod +x "${UPX}"
fi
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/arm64:${MOZ_FETCHES_DIR}/nsis-3.07:${PATH}"
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/arm64:${PATH}"
mk_add_options "export WINEPATH=${VSPATH}/VC/bin/Hostx64/x64"
unset VC_PATH

View File

@ -11,15 +11,11 @@ if test `uname -s` = Linux; then
if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/x64/cl.exe" ]; then
find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
fi
export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.07/makensis.exe"
if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
chmod +x "${MAKENSISU}"
fi
export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
if [ -f "${UPX}" ]; then
chmod +x "${UPX}"
fi
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x64:${MOZ_FETCHES_DIR}/nsis-3.07:${PATH}"
mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x64:${PATH}"
unset VC_PATH

View File

@ -400,7 +400,7 @@ def bootstrap_search_path(path, paths=original_path, **kwargs):
# The execution model of the configure sandbox doesn't allow for
# check_prog to use bootstrap_search_path directly because check_prog
# comes first, so we use a trick to allow it. No use of check_prog
# comes first, so we use a trick to allow it. Uses of check_prog
# happening before here won't allow bootstrap.
@template
def check_prog(*args, **kwargs):
@ -898,6 +898,7 @@ def makensis_progs(target):
"makensis-3.0b3",
"makensis-3.0b1",
"makensis",
"makensis.exe",
]
# Look for nsis installed by msys environment. But only the 32-bit version.
@ -910,7 +911,7 @@ def makensis_progs(target):
return tuple(candidates)
nsis = check_prog("MAKENSISU", makensis_progs, allow_missing=True)
nsis = check_prog("MAKENSISU", makensis_progs, bootstrap="nsis/bin", allow_missing=True)
# Make sure the version of makensis is up to date.

View File

@ -60,8 +60,8 @@ win32/debug:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win32/opt:
@ -114,8 +114,8 @@ win32/opt:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64/debug:
@ -169,8 +169,8 @@ win64/debug:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-hybrid/plain:
@ -221,8 +221,8 @@ win64-hybrid/plain:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-fuzzing/debug:
@ -276,8 +276,8 @@ win64-fuzzing/debug:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -320,6 +320,7 @@ win64-plain/debug:
- win64-winchecksec
- win64-mozmake
- win64-dump_syms
- win64-nsis
- sysroot-wasm32-wasi
optimization:
skip-unless-expanded: null
@ -379,8 +380,8 @@ win64/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-plain/opt:
@ -421,6 +422,7 @@ win64-plain/opt:
- win64-winchecksec
- win64-mozmake
- win64-dump_syms
- win64-nsis
- sysroot-wasm32-wasi
optimization:
skip-unless-expanded: null
@ -489,8 +491,8 @@ win32-shippable/opt:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-shippable/opt:
@ -547,8 +549,8 @@ win64-shippable/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win32-add-on-devel/opt:
@ -598,8 +600,8 @@ win32-add-on-devel/opt:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-add-on-devel/opt:
@ -650,8 +652,8 @@ win64-add-on-devel/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-noopt/debug:
@ -702,8 +704,8 @@ win64-noopt/debug:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win32-noopt/debug:
@ -753,8 +755,8 @@ win32-noopt/debug:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win32-rusttests/opt:
@ -980,6 +982,7 @@ win64-ccov/opt:
- win64-winchecksec
- win64-mozmake
- win64-dump_syms
- win64-nsis
- sysroot-wasm32-wasi
win64-asan/debug:
@ -1031,8 +1034,8 @@ win64-asan/debug:
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-llvm-symbolizer
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1087,8 +1090,8 @@ win64-asan/opt:
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-llvm-symbolizer
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-asan-reporter-shippable/opt:
@ -1152,8 +1155,8 @@ win64-asan-reporter-shippable/opt:
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-llvm-symbolizer
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-asan-fuzzing/opt:
@ -1204,8 +1207,8 @@ win64-asan-fuzzing/opt:
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-llvm-symbolizer
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1274,8 +1277,8 @@ win32-devedition/opt:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-devedition/opt:
@ -1333,8 +1336,8 @@ win64-devedition/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-aarch64/debug:
@ -1387,8 +1390,8 @@ win64-aarch64/debug:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1449,8 +1452,8 @@ win64-aarch64/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1492,8 +1495,8 @@ win64-aarch64-eme/opt:
toolchain:
- linux64-node
- linux64-wine
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1591,8 +1594,8 @@ win64-aarch64-shippable/opt:
toolchain:
- linux64-node
- linux64-wine
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1655,8 +1658,8 @@ win64-aarch64-shippable-no-eme/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
optimization:
skip-unless-expanded: null
@ -1755,8 +1758,8 @@ win64-aarch64-devedition/opt:
toolchain:
- linux64-node
- linux64-wine
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-aarch64-devedition-no-eme/opt:
@ -1818,6 +1821,6 @@ win64-aarch64-devedition-no-eme/opt:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win

View File

@ -292,6 +292,9 @@ nsis-3.07-win:
url: https://downloads.sourceforge.net/project/nsis/NSIS%203/3.07/nsis-3.07.zip
sha256: 04dde28896ae9ab36ea3035ff3a294e78053f00048064f6d22a6f1c02bcb6ec0
size: 2335219
artifact-name: nsis.tar.zst
strip-components: 1
add-prefix: nsis/
upx-3.95-win:
description: upx 3.95 for windows

View File

@ -261,8 +261,8 @@ jobs:
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
win64-shippable/opt:
@ -306,6 +306,6 @@ jobs:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win

View File

@ -50,11 +50,11 @@ job-template:
win.*:
- linux64-wine
- linux64-liblowercase
- win64-nsis
fetch:
by-build-platform:
default: []
win.*:
- nsis-3.07-win
- upx-3.95-win
tooltool:
by-build-platform:

View File

@ -148,8 +148,8 @@ jobs:
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- win64-nsis
fetch:
- nsis-3.07-win
- upx-3.95-win
android-armv7-searchfox/debug:

View File

@ -60,11 +60,11 @@ job-template:
win.*:
- linux64-wine
- linux64-liblowercase
- win64-nsis
fetch:
by-build-platform:
default: []
win.*:
- nsis-3.07-win
- upx-3.95-win
tooltool:
by-build-platform:

View File

@ -297,3 +297,14 @@ win64-mozmake:
fetches:
fetch:
- gnumake
win64-nsis:
description: "NSIS for Windows"
treeherder:
symbol: TW64(nsis)
run:
script: repack-nsis.sh
toolchain-artifact: public/build/nsis.tar.zst
fetches:
fetch:
- nsis-3.07-win

View File

@ -0,0 +1,13 @@
#!/bin/sh
set -x -e -v
cd "$MOZ_FETCHES_DIR"
# We want a lowercase bin directory and executable .exes to help configure
# on cross-compiles.
mv nsis/Bin nsis/bin
chmod +x nsis/bin/*.exe
tar caf nsis.tar.zst nsis
mkdir -p "$UPLOAD_DIR"
mv nsis.tar.zst "$UPLOAD_DIR"