Commit a05d9992 authored by Mikhail Tergoev's avatar Mikhail Tergoev

minor fix

parent 2f7835f5
...@@ -126,9 +126,9 @@ then ...@@ -126,9 +126,9 @@ then
export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk_nvidia.conf" export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk_nvidia.conf"
if [ ! -z "${WINEDLLOVERRIDES}" ] if [ ! -z "${WINEDLLOVERRIDES}" ]
then then
export WINEDLLOVERRIDES="nvapi=;nvapi64=;${WINEDLLOVERRIDES}" export WINEDLLOVERRIDES="nvapi,nvapi64=;${WINEDLLOVERRIDES}"
else else
export WINEDLLOVERRIDES="nvapi=;nvapi64=" export WINEDLLOVERRIDES="nvapi,nvapi64="
fi fi
echo "runtime libs is disabled" echo "runtime libs is disabled"
else else
......
#!/bin/sh #!/bin/sh
# shellcheck disable=SC2030,SC2031 # shellcheck disable=SC2030,SC2031
. $(dirname $(readlink -f "$0"))/runlib
START_PORTWINE
export WINELOADER="${PORT_WINE_PATH}/data/wine/bin/wine"
# SC2030: Modification of WINE is local (to subshell caused by (..) group). # SC2030: Modification of WINE is local (to subshell caused by (..) group).
# SC2031: WINE was modified in a subshell. That change might be lost # SC2031: WINE was modified in a subshell. That change might be lost
# This has to be right after the shebang, see: https://github.com/koalaman/shellcheck/issues/779 # This has to be right after the shebang, see: https://github.com/koalaman/shellcheck/issues/779
...@@ -19,6 +16,9 @@ WINETRICKS_VERSION=20200412-next ...@@ -19,6 +16,9 @@ WINETRICKS_VERSION=20200412-next
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# #
# Winetricks is a package manager for Win32 dlls and applications on POSIX. # Winetricks is a package manager for Win32 dlls and applications on POSIX.
. $(dirname $(readlink -f "$0"))/runlib
START_PORTWINE
export WINELOADER="${WINEDIR}/bin/wine"
# Features: # Features:
# - Consists of a single shell script - no installation required # - Consists of a single shell script - no installation required
# - Downloads packages automatically from original trusted sources # - Downloads packages automatically from original trusted sources
...@@ -2473,43 +2473,70 @@ Usage: 'w_override_app_dlls app mode dll ...'." ;; ...@@ -2473,43 +2473,70 @@ Usage: 'w_override_app_dlls app mode dll ...'." ;;
w_set_winver() w_set_winver()
{ {
w_skip_windows w_set_winver && return w_skip_windows w_set_winver && return
# FIXME: This should really be done with winecfg, but it has no CLI options.
# Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45616
_W_winver="$1" _W_winver="$1"
# First, delete any lingering version info, otherwise it may conflict: if w_wine_version_in ,5.7 ; then
( # Make sure we pass the right version name:
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion" /v SubVersionNumber /f || true case "$_W_winver" in
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion" /v VersionNumber /f || true # These are the mismatched ones:
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CSDVersion /f || true # winecfg doesn't accept 'default' as an option (as of wine-5.9):
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CurrentBuildNumber /f || true # https://bugs.winehq.org/show_bug.cgi?id=49241
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CurrentVersion /f || true # For now, assuming win7:
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true default) _W_winver="win7";;
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ServiceCurrent" /v OS /f || true win2k3) _W_winver="win2003";;
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\Windows" /v CSDVersion /f || true win2k8) _W_winver="win2008";;
"$WINE" reg delete "HKCU\\Software\\Wine" /v Version /f || true win2k8r2) _W_winver="win2008r2";;
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true
) > /dev/null 2>&1 # xp has two entries (winxp/winxp64):
winxp)
case "$_W_winver" in if [ "$W_ARCH" = "win64" ]; then
win31) _W_winver="winxp64"
echo "Setting Windows version to $_W_winver" else
cat > "$W_TMP"/set-winver.reg <<_EOF_ _W_winver="winxp"
fi
;;
# These are the same:
nt351|nt40|vista|win10|win20|win2k|win30|win31|win7|win8|win81|win95|win98|winme) : ;;
*) w_die "Unsupported Windows version $_W_winver";;
esac
w_try "$WINE" winecfg -v "$_W_winver"
else
# FIXME: remove this after wine-7.0 (i.e., after it's been in stable wine for a while):
# First, delete any lingering version info, otherwise it may conflict:
(
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion" /v SubVersionNumber /f || true
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion" /v VersionNumber /f || true
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CSDVersion /f || true
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CurrentBuildNumber /f || true
"$WINE" reg delete "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v CurrentVersion /f || true
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ServiceCurrent" /v OS /f || true
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\Windows" /v CSDVersion /f || true
"$WINE" reg delete "HKCU\\Software\\Wine" /v Version /f || true
"$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true
) > /dev/null 2>&1
case "$_W_winver" in
win31)
echo "Setting Windows version to $_W_winver"
cat > "$W_TMP"/set-winver.reg <<_EOF_
REGEDIT4 REGEDIT4
[HKEY_USERS\\S-1-5-4\\Software\\Wine] [HKEY_USERS\\S-1-5-4\\Software\\Wine]
"Version"="win31" "Version"="win31"
_EOF_ _EOF_
w_try_regedit "$W_TMP_WIN"\\set-winver.reg w_try_regedit "$W_TMP_WIN"\\set-winver.reg
return return
;; ;;
win95) win95)
# This key is only used for Windows 95/98: # This key is only used for Windows 95/98:
echo "Setting Windows version to $_W_winver" echo "Setting Windows version to $_W_winver"
cat > "$W_TMP"/set-winver.reg <<_EOF_ cat > "$W_TMP"/set-winver.reg <<_EOF_
REGEDIT4 REGEDIT4
[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion] [HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion]
...@@ -2518,14 +2545,14 @@ REGEDIT4 ...@@ -2518,14 +2545,14 @@ REGEDIT4
"VersionNumber"="4.0.950" "VersionNumber"="4.0.950"
_EOF_ _EOF_
w_try_regedit "$W_TMP_WIN"\\set-winver.reg w_try_regedit "$W_TMP_WIN"\\set-winver.reg
return return
;; ;;
win98) win98)
# This key is only used for Windows 95/98: # This key is only used for Windows 95/98:
echo "Setting Windows version to $_W_winver" echo "Setting Windows version to $_W_winver"
cat > "$W_TMP"/set-winver.reg <<_EOF_ cat > "$W_TMP"/set-winver.reg <<_EOF_
REGEDIT4 REGEDIT4
[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion] [HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion]
...@@ -2534,14 +2561,14 @@ REGEDIT4 ...@@ -2534,14 +2561,14 @@ REGEDIT4
"VersionNumber"="4.10.2222" "VersionNumber"="4.10.2222"
_EOF_ _EOF_
w_try_regedit "$W_TMP_WIN"\\set-winver.reg w_try_regedit "$W_TMP_WIN"\\set-winver.reg
return return
;; ;;
nt40) nt40)
# Similar to modern version, but sets two extra keys: # Similar to modern version, but sets two extra keys:
echo "Setting Windows version to $_W_winver" echo "Setting Windows version to $_W_winver"
cat > "$W_TMP"/set-winver.reg <<_EOF_ cat > "$W_TMP"/set-winver.reg <<_EOF_
REGEDIT4 REGEDIT4
[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion] [HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion]
...@@ -2559,96 +2586,96 @@ REGEDIT4 ...@@ -2559,96 +2586,96 @@ REGEDIT4
"CSDVersion"=dword:00000600 "CSDVersion"=dword:00000600
_EOF_ _EOF_
w_try_regedit "$W_TMP_WIN"\\set-winver.reg w_try_regedit "$W_TMP_WIN"\\set-winver.reg
return return
;; ;;
win2k) win2k)
csdversion="Service Pack 4" csdversion="Service Pack 4"
currentbuildnumber="2195" currentbuildnumber="2195"
currentversion="5.0" currentversion="5.0"
csdversion_hex=dword:00000400 csdversion_hex=dword:00000400
;; ;;
winxp) winxp)
# Special case, afaik it's the only Windows version that has different version numbers for 32/64-bit # Special case, afaik it's the only Windows version that has different version numbers for 32/64-bit
# So ensure we set the arch appropriate version: # So ensure we set the arch appropriate version:
if [ "$W_ARCH" = "win32" ]; then if [ "$W_ARCH" = "win32" ]; then
csdversion="Service Pack 3" csdversion="Service Pack 3"
currentbuildnumber="2600" currentbuildnumber="2600"
currentversion="5.1" currentversion="5.1"
csdversion_hex=dword:00000300 csdversion_hex=dword:00000300
elif [ "$W_ARCH" = "win64" ]; then elif [ "$W_ARCH" = "win64" ]; then
csdversion="Service Pack 2"
currentbuildnumber="3790"
currentversion="5.2"
csdversion_hex=dword:00000200
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
else
w_die "Invalid W_ARCH $W_ARCH"
fi
;;
win2k3)
csdversion="Service Pack 2" csdversion="Service Pack 2"
currentbuildnumber="3790" currentbuildnumber="3790"
currentversion="5.2" currentversion="5.2"
csdversion_hex=dword:00000200 csdversion_hex=dword:00000200
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f
;;
vista)
csdversion="Service Pack 2"
currentbuildnumber="6002"
currentversion="6.0"
csdversion_hex=dword:00000200
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
else ;;
w_die "Invalid W_ARCH $W_ARCH" win7|default)
fi csdversion="Service Pack 1"
;; currentbuildnumber="7601"
win2k3) currentversion="6.1"
csdversion="Service Pack 2" csdversion_hex=dword:00000100
currentbuildnumber="3790" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
currentversion="5.2" ;;
csdversion_hex=dword:00000200 win2k8)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f csdversion="Service Pack 2"
;; currentbuildnumber="6002"
vista) currentversion="6.0"
csdversion="Service Pack 2" csdversion_hex=dword:00000200
currentbuildnumber="6002" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f
currentversion="6.0" ;;
csdversion_hex=dword:00000200 win2k8r2)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f csdversion="Service Pack 1"
;; currentbuildnumber="7601"
win7|default) currentversion="6.1"
csdversion="Service Pack 1" csdversion_hex=dword:00000100
currentbuildnumber="7601" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f
currentversion="6.1" ;;
csdversion_hex=dword:00000100 win8)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f csdversion=""
;; currentbuildnumber="9200"
win2k8) currentversion="6.2"
csdversion="Service Pack 2" csdversion_hex=dword:00000000
currentbuildnumber="6002" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
currentversion="6.0" ;;
csdversion_hex=dword:00000200 win81)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f csdversion=""
;; currentbuildnumber="9600"
win2k8r2) currentversion="6.3"
csdversion="Service Pack 1" csdversion_hex=dword:00000000
currentbuildnumber="7601" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
currentversion="6.1" ;;
csdversion_hex=dword:00000100 win10)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f csdversion=""
;; currentbuildnumber="10240"
win8) currentversion="10.0"
csdversion="" csdversion_hex=dword:00000000
currentbuildnumber="9200" "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
currentversion="6.2" ;;
csdversion_hex=dword:00000000 *)
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f w_die "Invalid Windows version given."
;; ;;
win81) esac
csdversion=""
currentbuildnumber="9600"
currentversion="6.3"
csdversion_hex=dword:00000000
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
;;
win10)
csdversion=""
currentbuildnumber="10240"
currentversion="10.0"
csdversion_hex=dword:00000000
"$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
;;
*)
w_die "Invalid Windows version given."
;;
esac
echo "Setting Windows version to $_W_winver" echo "Setting Windows version to $_W_winver"
cat > "$W_TMP"/set-winver.reg <<_EOF_ cat > "$W_TMP"/set-winver.reg <<_EOF_
REGEDIT4 REGEDIT4
[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion] [HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion]
...@@ -2660,10 +2687,12 @@ REGEDIT4 ...@@ -2660,10 +2687,12 @@ REGEDIT4
"CSDVersion"=$csdversion_hex "CSDVersion"=$csdversion_hex
_EOF_ _EOF_
w_try_regedit "$W_TMP_WIN"\\set-winver.reg w_try_regedit "$W_TMP_WIN"\\set-winver.reg
# Prevent a race when calling from another verb # Prevent a race when calling from another verb
w_wineserver -w w_wineserver -w
fi
} }
w_unset_winver() w_unset_winver()
...@@ -22299,12 +22328,26 @@ _EOF_ ...@@ -22299,12 +22328,26 @@ _EOF_
# settings->winversions # settings->winversions
#---------------------------------------------------------------- #----------------------------------------------------------------
w_metadata nt351 settings \
title_uk="Встановити версію Windows NT 3.51" \
title="Set Windows version to Windows NT 3.51"
load_nt351()
{
w_package_unsupported_win64
w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=41559" "" "5.7"
w_set_winver nt351
}
#----------------------------------------------------------------
w_metadata nt40 settings \ w_metadata nt40 settings \
title_uk="Встановити версію Windows NT 4.0" \ title_uk="Встановити версію Windows NT 4.0" \
title="Set Windows version to Windows NT 4.0" title="Set Windows version to Windows NT 4.0"
load_nt40() load_nt40()
{ {
w_package_unsupported_win64
w_set_winver nt40 w_set_winver nt40
} }
...@@ -22321,12 +22364,26 @@ load_vista() ...@@ -22321,12 +22364,26 @@ load_vista()
#---------------------------------------------------------------- #----------------------------------------------------------------
w_metadata win20 settings \
title_uk="Встановити версію Windows 2.0" \
title="Set Windows version to Windows 2.0"
load_win20()
{
w_package_unsupported_win64
w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=41559" "" "5.7"
w_set_winver win20
}
#----------------------------------------------------------------
w_metadata win2k settings \ w_metadata win2k settings \
title_uk="Встановити версію Windows 2000" \ title_uk="Встановити версію Windows 2000" \
title="Set Windows version to Windows 2000" title="Set Windows version to Windows 2000"
load_win2k() load_win2k()
{ {
w_package_unsupported_win64
w_set_winver win2k w_set_winver win2k
} }
...@@ -22365,12 +22422,26 @@ load_win2k8r2() ...@@ -22365,12 +22422,26 @@ load_win2k8r2()
#---------------------------------------------------------------- #----------------------------------------------------------------
w_metadata win30 settings \
title_uk="Встановити версію Windows 3.0" \
title="Set Windows version to Windows 3.0"
load_win30()
{
w_package_unsupported_win64
w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=41559" "" "5.7"
w_set_winver win30
}
#----------------------------------------------------------------
w_metadata win31 settings \ w_metadata win31 settings \
title_uk="Встановити версію Windows 3.1" \ title_uk="Встановити версію Windows 3.1" \
title="Set Windows version to Windows 3.1" title="Set Windows version to Windows 3.1"
load_win31() load_win31()
{ {
w_package_unsupported_win64
w_set_winver win31 w_set_winver win31
} }
...@@ -22426,6 +22497,7 @@ w_metadata win95 settings \ ...@@ -22426,6 +22497,7 @@ w_metadata win95 settings \
load_win95() load_win95()
{ {
w_package_unsupported_win64
w_set_winver win95 w_set_winver win95
} }
...@@ -22437,11 +22509,25 @@ w_metadata win98 settings \ ...@@ -22437,11 +22509,25 @@ w_metadata win98 settings \
load_win98() load_win98()
{ {
w_package_unsupported_win64
w_set_winver win98 w_set_winver win98
} }
#---------------------------------------------------------------- #----------------------------------------------------------------
w_metadata winme settings \
title_uk="Встановити версію Windows ME" \
title="Set Windows version to Windows ME"
load_winme()
{
w_package_unsupported_win64
w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=41559" "" "5.7"
w_set_winver winme
}
#----------------------------------------------------------------
# Really, we should support other values, since winetricks did # Really, we should support other values, since winetricks did
w_metadata winver= settings \ w_metadata winver= settings \
title_uk="Встановити версію Windows за замовчуванням (Windows 7)" \ title_uk="Встановити версію Windows за замовчуванням (Windows 7)" \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment