summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbitraid <bitraid@protonmail.ch>2023-08-12 14:08:01 +1200
committertoofar <toofar@spalge.com>2023-08-13 15:14:24 +1200
commitf903ae4985c435905110de7a794087cb533a957b (patch)
tree29ce6b14fb49c7302dfd35af9166ef8ee9814981
parent0f2d34623cb6194846db70c8549a066e9a5bab17 (diff)
downloadqutebrowser-f903ae4985c435905110de7a794087cb533a957b.tar.gz
qutebrowser-f903ae4985c435905110de7a794087cb533a957b.zip
nsis: minimum OS version check for Qt6
The Qt docs for 6.5 say that the minimum supported version is Windows 10 1809. Experimentally it seems qutebrowser and it's dependencies work fine on a version as early 1607. There should be no change in OS version requirements for the Qt5 build, although we've dropped 32 bit support already and in a future version of the installer we may bring the minimum OS version support in line with the Qt6 requirements for simplicity too. Added a new QT5 version into the NSIS scripts so we can do the different version check per installer build. It just uses the python bool serialization format so should always be "True" or "False", but I've added a fallback anyway for consistency.
-rwxr-xr-xmisc/nsis/install.nsh25
-rwxr-xr-xmisc/nsis/qutebrowser.nsi3
-rwxr-xr-xscripts/dev/build_release.py1
3 files changed, 27 insertions, 2 deletions
diff --git a/misc/nsis/install.nsh b/misc/nsis/install.nsh
index e7d8b4956..df830cb63 100755
--- a/misc/nsis/install.nsh
+++ b/misc/nsis/install.nsh
@@ -430,8 +430,29 @@ SectionEnd
; Callbacks
Function .onInit
StrCpy $KeepReg 1
- !insertmacro CheckPlatform ${PLATFORM}
- !insertmacro CheckMinWinVer ${MIN_WIN_VER}
+
+; OS version check
+ ${If} ${QT5} == "True"
+ !insertmacro CheckPlatform ${PLATFORM}
+ !insertmacro CheckMinWinVer ${MIN_WIN_VER}
+ Goto _os_check_pass
+ ${ElseIf} ${RunningX64}
+ GetWinVer $R0 Major
+ IntCmpU $R0 10 0 _os_check_fail _os_check_pass
+ GetWinVer $R1 Build
+ ${If} $R1 >= 22000 ; Windows 11 21H2
+ Goto _os_check_pass
+ ${ElseIf} $R1 >= 17763 ; Windows 10 1809
+ ${AndIf} ${IsNativeAMD64} ; Windows 10 has no x86_64 emulation on arm64
+ Goto _os_check_pass
+ ${EndIf}
+ ${EndIf}
+ _os_check_fail:
+ MessageBox MB_OK|MB_ICONSTOP "This version of ${PRODUCT_NAME} requires a 64-bit$\r$\n\
+ version of Windows 10 1809 or later."
+ Abort
+ _os_check_pass:
+
${ifnot} ${UAC_IsInnerInstance}
!insertmacro CheckSingleInstance "Setup" "Global" "${SETUP_MUTEX}"
!insertmacro CheckSingleInstance "Application" "Local" "${APP_MUTEX}"
diff --git a/misc/nsis/qutebrowser.nsi b/misc/nsis/qutebrowser.nsi
index 60b174bdd..a6863ba34 100755
--- a/misc/nsis/qutebrowser.nsi
+++ b/misc/nsis/qutebrowser.nsi
@@ -131,6 +131,9 @@ ShowUninstDetails hide
!define /ifndef DIST_DIR ".\..\..\dist\${PRODUCT_NAME}-${VERSION}-${ARCH}"
!endif
+; If not defined, assume Qt6 (requires a more recent windows version)
+!define /ifndef QT5 "False"
+
; Pack the exe header with upx if UPX is defined.
!ifdef UPX
!packhdr "$%TEMP%\exehead.tmp" '"upx" "--ultra-brute" "$%TEMP%\exehead.tmp"'
diff --git a/scripts/dev/build_release.py b/scripts/dev/build_release.py
index 4c443136f..a638508de 100755
--- a/scripts/dev/build_release.py
+++ b/scripts/dev/build_release.py
@@ -423,6 +423,7 @@ def _package_windows_single(
utils.print_subtitle("Building installer...")
subprocess.run(['makensis.exe',
f'/DVERSION={qutebrowser.__version__}',
+ f'/DQT5={qt5}',
'misc/nsis/qutebrowser.nsi'], check=True)
name_parts = [