@@ -15,31 +15,37 @@
# [Dadu042] (2020-10-12 14-30)
# Attempt to add Gecko v2.47 for Wine v1.9.13 to v3.x.x .
# Note: the current default Gecko version is still v1.3.0 (2011 ?).
+# [foriequal0] (2021-09-05)
+# Fix detecting gecko installation which collides with mono28
+# Fix gecko download URLs & checksums
+# Fix wine 2, 3 version prefix detection
+# Add wine 5, 6 support
+# Load the HTML rendering Engine (Gecko)
+WINDIR="$WINEPREFIX/drive_c/windows/"
# Check if Gecko is already installed (otherwise do exit this script).
unset GECKO_EXIST
-GECKO_EXIST=`find $WINEPREFIX -name "xul.dll"`
+GECKO_EXIST=$(find "$WINDIR" -name "xul.dll")
if [ ! -n "$GECKO_EXIST" ]; then
-# Load the HTML rendering Engine (Gecko)
-WINDIR="$WINEPREFIX/drive_c/windows/"
case `wine --version` in
wine-0*|wine-1.0*|wine-1.1|wine-1.1.?|wine-1.1.11)
GECKO_DIR="$WINDIR"
GECKO_VERSION=0.1.0
- GECKO_SHA1SUM=c16f1072dc6b0ced20935662138dcf019a38cd56
- GECKO_EXT=cab
+ GECKO_MD5SUM=b188c296f045d20abdb11e9c0564894b
;;
wine-1.1.1[234]*)
GECKO_DIR="$WINDIR"
GECKO_VERSION=0.9.0
- GECKO_SHA1SUM=5cf410ff7fdd3f9d625f481f9d409968728d3d09
- GECKO_EXT=cab
+ GECKO_MD5SUM=74b34ff5bad105f07fe17cdd1391c70c
;;
wine-1.1.1[56789]*|wine-1.1.2[0123456]*)
GECKO_DIR="$WINDIR"
GECKO_VERSION=0.9.1
- GECKO_SHA1SUM=9a49fc691740596517e381b47096a4bdf19a87d8
- GECKO_EXT=cab
+ GECKO_MD5SUM=6abd26c3caf66b497acf73958b5119a5
;;
esac
# x86_64 gecko package for wine64
@@ -48,37 +54,44 @@
wine-1.1.2[789]*|wine-1.2*|wine-1.3|wine-1.3.1)
GECKO_DIR="$WINDIR/syswow64"
GECKO_VERSION=1.0.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=afa22c52bca4ca77dcb9edb3c9936eb23793de01
- GECKO_EXT=cab
+ GECKO_MD5SUM=9c5c335fc077c0558561afaf25a09e51
;;
wine-1.3.[23456789]|wine-1.3.1[012345])
GECKO_DIR="$WINDIR/syswow64"
GECKO_VERSION=1.1.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=1b6c637207b6f032ae8a52841db9659433482714
- GECKO_EXT=cab
+ GECKO_MD5SUM=7217cb91106f2efd85d6d1a84f5ee305
;;
wine-1.3.1[6789]|wine-1.3.2[012345])
GECKO_DIR="$WINDIR/syswow64"
GECKO_VERSION=1.2.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=6964d1877668ab7da07a60f6dcf23fb0e261a808
- GECKO_EXT=msi
+ GECKO_MD5SUM=f2ed548494c86c511892b1c02491c8c4
;;
-wine-1.9.1[3456789]|wine-2|wine-3)
+wine-1.9.1[3456789]|wine-2.*|wine-3.*)
GECKO_DIR="$WINDIR/syswow64"
GECKO_VERSION=2.47
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=5ebc4ec71c92b3db3d84b334a1db385d
- GECKO_EXT=msi
+ GECKO_MD5SUM=5ebc4ec71c92b3db3d84b334a1db385d
+ ;;
+wine-5.*)
+ GECKO_DIR="$WINDIR/syswow64"
+ GECKO_VERSION=2.47.1
+ GECKO_MD5SUM=4a467150fac8256c8ea6a98a8eef1f67
+ ;;
+wine-6.*)
+ GECKO_DIR="$WINDIR/syswow64"
+ GECKO_VERSION=2.47.2
+ GECKO_MD5SUM=e0a26e37397961b2c7f624575590ef66
;;
*)
GECKO_DIR="$WINDIR/syswow64"
- GECKO_VERSION=1.3.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=6964d1877668ab7da07a60f6dcf23fb0e261a808
- GECKO_EXT=msi
+ GECKO_VERSION=1.3
+ GECKO_MD5SUM=9e21684bb68d016b837744d53abb2fde
;;
esac
else
@@ -86,65 +99,63 @@
wine-1.1.2[789]*|wine-1.2*|wine-1.3|wine-1.3.1)
GECKO_DIR="$WINDIR/system32"
GECKO_VERSION=1.0.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=afa22c52bca4ca77dcb9edb3c9936eb23793de01
- GECKO_EXT=cab
+ GECKO_MD5SUM=9c5c335fc077c0558561afaf25a09e51
;;
wine-1.3.[23456789]|wine-1.3.1[012345])
GECKO_DIR="$WINDIR/system32"
GECKO_VERSION=1.1.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=1b6c637207b6f032ae8a52841db9659433482714
- GECKO_EXT=cab
+ GECKO_MD5SUM=7217cb91106f2efd85d6d1a84f5ee305
;;
wine-1.3.1[6789]|wine-1.3.2[012345])
GECKO_DIR="$WINDIR/system32"
GECKO_VERSION=1.2.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=6964d1877668ab7da07a60f6dcf23fb0e261a808
- GECKO_EXT=msi
+ GECKO_MD5SUM=f2ed548494c86c511892b1c02491c8c4
;;
-wine-1.9.1[3456789]|wine-2|wine-3)
+wine-1.9.1[3456789]|wine-2.*|wine-3.*)
GECKO_DIR="$WINDIR/system32"
GECKO_VERSION=2.47
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=d93ac0d2e6aceafe9113a9918916df45
- GECKO_EXT=msi
+ GECKO_MD5SUM=5ebc4ec71c92b3db3d84b334a1db385d
;;
+wine-5.*)
+ GECKO_DIR="$WINDIR/system32"
+ GECKO_VERSION=2.47.1
+ GECKO_MD5SUM=4a467150fac8256c8ea6a98a8eef1f67
+ ;;
+wine-6.*)
+ GECKO_DIR="$WINDIR/system32"
+ GECKO_VERSION=2.47.2
+ GECKO_MD5SUM=e0a26e37397961b2c7f624575590ef66
+ ;;
*)
GECKO_DIR="$WINDIR/system32"
- GECKO_VERSION=1.3.0
- GECKO_ARCH=-x86
- GECKO_SHA1SUM=6964d1877668ab7da07a60f6dcf23fb0e261a808
- GECKO_EXT=msi
+ GECKO_VERSION=1.3
+ GECKO_MD5SUM=9e21684bb68d016b837744d53abb2fde
;;
esac
fi
-
-# From this code:
-# the final URL is:
-# And as of 2020-10-12, this URL to this file is dead...
-if test ! -f "$POL_USER_ROOT/ressources/wine_gecko-$GECKO_VERSION$GECKO_ARCH.$GECKO_EXT"
+GECKO_INSTALLER="${GECKO_URL##*/}"
+if test ! -f "$POL_USER_ROOT/ressources/$GECKO_INSTALLER"
then
-
-
- # Obsolete code (since POL v3 or v4):
- # mv wine_gecko-$GECKO_VERSION$GECKO_ARCH.$GECKO_EXT "$POL_USER_ROOT/ressources/wine_gecko-$GECKO_VERSION$GECKO_ARCH.$GECKO_EXT"
+ POL_Download_Resource "$GECKO_URL" "$GECKO_MD5SUM"
fi
# Extract files
+GECKO_EXT="${GECKO_URL##*.}"
if [ "$GECKO_EXT" == "cab" ]; then
mkdir -p "$GECKO_DIR/gecko/$GECKO_VERSION"
cd "$GECKO_DIR/gecko/$GECKO_VERSION"
- cabextract "$POL_USER_ROOT/ressources/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab"
+ cabextract "$POL_USER_ROOT/ressources/$GECKO_INSTALLER"
cd "$olddir"
else
- POL_Wine msiexec /i "$POL_USER_ROOT/ressources/wine_gecko-$GECKO_VERSION$GECKO_ARCH.msi"
+ POL_Wine msiexec /i "$POL_USER_ROOT/ressources/$GECKO_INSTALLER"
cd "$olddir"
fi
@@ -155,33 +166,27 @@
[HKEY_LOCAL_MACHINE\\Software\\Wine\\MSHTML\\$GECKO_VERSION]
_EOF_
-printf '"GeckoPath"="' >>"$POL_USER_ROOT/tmp/geckopath.reg"
+echo '"GeckoPath"="' >> "$POL_USER_ROOT/tmp/geckopath.reg"
case $GECKO_VERSION in
0.*)
- printf 'c:\\windows\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
+ echo 'c:\\windows\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
sed "s/\\\\/\\\\\\\\/g" >> "$POL_USER_ROOT/tmp/geckopath.reg"
;;
-esac
-# x86 gecko path for wine64
-if [ -e "$WINDIR/syswow64" ]; then
-case $GECKO_VERSION in
-1.*)
- printf 'c:\\windows\\syswow64\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
- sed "s/\\\\/\\\\\\\\/g" >> "$POL_USER_ROOT/tmp/geckopath.reg"
- ;;
-esac
-else
-case $GECKO_VERSION in
-1.*)
- printf 'c:\\windows\\system32\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
- sed "s/\\\\/\\\\\\\\/g" >> "$POL_USER_ROOT/tmp/geckopath.reg"
+*)
+ # x86 gecko path for wine64
+ if [ -e "$WINDIR/syswow64" ]; then
+ echo 'c:\\windows\\syswow64\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
+ sed "s/\\\\/\\\\\\\\/g" >> "$POL_USER_ROOT/tmp/geckopath.reg"
+ else
+ echo 'c:\\windows\\system32\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' |
+ sed "s/\\\\/\\\\\\\\/g" >> "$POL_USER_ROOT/tmp/geckopath.reg"
+ fi
;;
esac
-fi
-
+
# Set installation path
POL_Wine regedit "$POL_USER_ROOT/tmp/geckopath.reg"
-
+
# Register the dll, since it was disabled before
POL_Wine regsvr32 mshtml
fi
\ No newline at end of file