Commit b7be6dd4 authored by Mikhail Tergoev's avatar Mikhail Tergoev

Two vesrion wine in portproton

parent 0c91f188
......@@ -88,14 +88,13 @@ def getmtimestr(*path_fragments):
class Proton:
def __init__(self, base_dir):
self.base_dir = os.environ["PW_COMPAT_DATA_PATH"]
self.dist_dir = self.path("dist/")
self.bin_dir = self.path("dist/bin/")
self.lib_dir = self.path("dist/lib/")
self.lib64_dir = self.path("dist/lib64/")
self.fonts_dir = self.path("dist/share/fonts/")
self.version_file = self.path("version")
self.wine_bin = self.bin_dir + "wine"
self.wineserver_bin = self.bin_dir + "wineserver"
self.dist_dir = os.environ["WINEDIR"]
self.bin_dir = self.dist_dir + "/bin/"
self.lib_dir = self.dist_dir + "/lib/"
self.lib64_dir = self.dist_dir + "/lib64/"
self.fonts_dir = self.dist_dir + "/share/fonts/"
self.wine_bin = self.bin_dir + "/wine"
self.wineserver_bin = self.bin_dir + "/wineserver"
self.gamemoderun = "gamemoderun"
def path(self, d):
......@@ -105,7 +104,6 @@ class CompatData:
def __init__(self, compatdata):
self.base_dir = os.environ["PW_COMPAT_DATA_PATH"]
self.prefix_dir = self.path("pfx/")
self.version_file = self.path("version")
def path(self, d):
return self.base_dir + d
......
......@@ -39,14 +39,7 @@ echo "RAM" >> "${PORT_WINE_PATH}/${portname}.log"
free -m >> "${PORT_WINE_PATH}/${portname}.log"
echo "-----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Graphic cards and drivers" >> "${PORT_WINE_PATH}/${portname}.log"
lspci | grep VGA >> "${PORT_WINE_PATH}/${portname}.log"
lspci | grep 3D >> "${PORT_WINE_PATH}/${portname}.log"
if [ -x "`which glxinfo 2>/dev/null`" ]
then
glxinfo | grep OpenGL >> "${PORT_WINE_PATH}/${portname}.log"
else
echo "!!!glxinfo not found!!!" >> "${PORT_WINE_PATH}/${portname}.log"
fi
"${WINELIB}/amd64/usr/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log"
"${WINELIB}/amd64/usr/bin/vulkaninfo" | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log"
......
......@@ -156,21 +156,35 @@ fi
export DXVK_HUD="${var_dxvk_on}"
echo "DXVK_HUD=${DXVK_HUD}"
cp -f "${WINEDIR}/lib/wine/fakedlls/dxgi.dll" "${WINEDIR}/lib/wine/dxgi.dll"
cp -f "${WINEDIR}/lib64/wine/fakedlls/dxgi.dll" "${WINEDIR}/lib64/wine/dxgi.dll"
if [ "${var_dxvk_on}" != "off" ]; then
export PW_USE_WINED3D=0
export PW_DXGI_FROM_DXVK=1
if [ -d "${WINEDIR}_dxvk" ]; then
export WINEDIR="${WINEDIR}_dxvk"
export WINELOADER="${WINEDIR}/bin/wine"
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
export PATH="${WINEDIR}/bin:${PATH}"
fi
echo "Use DXVK and D9VK (DX9-DX11 to Vulkan)"
else
export PW_USE_WINED3D=1
export PW_VKD3D_FEATURE_LEVEL=1
export VKD3D_CONFIG=force_bindless_texel_buffer
if [ -d "${WINEDIR}_vkd3d" ]; then
export WINEDIR="${WINEDIR}_vkd3d"
export WINELOADER="${WINEDIR}/bin/wine"
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
export PATH="${WINEDIR}/bin:${PATH}"
fi
echo "Use OpenGL and VKD3D (DX9-DX11 to OpenGL and DX12 to vulkan)"
fi
cp -f "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEDIR}"/lib/wine/dxgi.dll
cp -f "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEDIR}"/lib64/wine/dxgi.dll
export DXVK_STATE_CACHE_PATH="${PATH_TO_GAME}"
export DXVK_STATE_CACHE=1
export STAGING_SHARED_MEMORY=1
......@@ -238,11 +252,11 @@ else
fi
echo "######################################################"
########################################################################
sed -i '/HKCU,Software\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" &&
sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" &&
sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" &&
sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}/share/wine/wine.inf" &&
rm -f "${WINEDIR}"/lib*/wine/*steam*
sed -i '/HKCU,Software\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf &&
sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf &&
sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf &&
sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf &&
rm -f "${WINEDIR}"*/lib*/wine/*steam*
if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/dosdevices ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || [ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ] || [ ! -f "${WINEPREFIX}"/userdef.reg ]; then
$PW_TERM "${PW_RUNTIME}" "${WINELOADER}" wineboot -u
fi
......
......@@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=0
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=1
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=1
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
GalaxyCommunication ()
{
......
......@@ -24,6 +24,7 @@ export PW_NVAPI_DISABLE=1
export PW_NO_WRITE_WATCH=1
export PW_WINEDBG_DISABLE=1
export PW_FORCE_LARGE_ADDRESS_AWARE=0
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -22,6 +22,7 @@ export PW_NVAPI_DISABLE=1
export PW_NO_WRITE_WATCH=1
export PW_WINEDBG_DISABLE=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -27,6 +27,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=1
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=1
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -25,6 +25,7 @@ export PW_FORCE_USE_VSYNC=2 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAU
export PW_WINEDBG_DISABLE=1
export PW_FORCE_DISABLED_GAMEMOD=0 # Force disabele gamemod
export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
#export MANGOHUD=1
########################################################################
ADD_IN_START_PORTWINE ()
{
......
......@@ -17,7 +17,7 @@ export port_ver=XX
########################################################################
export PROGS_INST=""
export vexit=0
for PROGS in "wget" "curl" "zenity" "tar"
for PROGS in "wget" "curl" "tar"
do
if [ ! -x "`which "${PROGS}" 2>/dev/null`" ];then
PROGS_INST="${PROGS_INST} ${PROGS}"
......@@ -36,61 +36,76 @@ ARCH_NAME="${setup_script}.tar.xz"
deflink="/home/${USER}/PortWINE/${portname}"
[ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1
########################################################################
SET_LANG=`zenity --title "Install $portname" --text "Select the installation language" --list --radiolist \
if [ "$1" = "-rus" ]; then
SET_LANG="Russian"
export s_install="1"
elif [ "$1" = "-eng" ]; then
SET_LANG="English"
export s_install="1"
else
SET_LANG=`zenity --title "Install $portname" --text "Select the installation language" --list --radiolist \
--column="Set:" --column "Language:" \
TRUE "Russian" \
FALSE "English" ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $SET_LANG in
"Russian")
INFO_TEXT="Вы запустили установщик PortWINE ${gamename} версии ${port_ver}. \n\nЭто не коммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права сторонего програмного обеспечения принадлежат их владельцам! \nПродолжая установку вы автоматически соглашаетесь с данными условиями." ;;
"English")
INFO_TEXT="You run the installer PortWINE ${gamename} v. ${port_ver}. \n\nThis is not a commercial product and developed exclusively for the idea and donate. \nAll rights to third-party software belong to their respective owners! \nContinuing the installation of you agree to these terms." ;;
esac
`zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap ` 2> /dev/null
if [ $? -eq 1 ];then echo "error" && exit 1; fi
TRUE "Russian" \
FALSE "English" ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $SET_LANG in
"Russian")
INFO_TEXT="Вы запустили установщик PortWINE ${gamename} версии ${port_ver}. \n\nЭто не коммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права сторонего програмного обеспечения принадлежат их владельцам! \nПродолжая установку вы автоматически соглашаетесь с данными условиями." > /dev/null 2>&1 ;;
"English")
INFO_TEXT="You run the installer PortWINE ${gamename} v. ${port_ver}. \n\nThis is not a commercial product and developed exclusively for the idea and donate. \nAll rights to third-party software belong to their respective owners! \nContinuing the installation of you agree to these terms." > /dev/null 2>&1 ;;
esac
`zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap ` 2> /dev/null
if [ $? -eq 1 ];then echo "error" && exit 1; fi
fi
########################################################################
case $SET_LANG in
"Russian")
inst1=`zenity --title "Install ${portname}" --text "Выберите путь для установки (обновления) порта,\nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \
--column="Выбор" --column "Путь:" \
TRUE "${deflink}" \
FALSE "Другой путь..." ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $inst1 in
"${deflink}")
D_PATH="${deflink}" ;;
"Другой путь...")
D_PATH=`zenity --file-selection --directory --title="Выберите путь..." `
D_PATH="${D_PATH}/${portname}" ;;
esac ;;
"English")
inst1=`zenity --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=350 --height=220 \
--column="Set..." --column "Path:" \
TRUE "${deflink}" \
FALSE "Other path..." ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $inst1 in
"${deflink}")
D_PATH="${deflink}" ;;
"Other path...")
D_PATH=`zenity --file-selection --directory --title="Select the path..." `
D_PATH="${D_PATH}/${portname}" ;;
esac ;;
esac
if [ $? -eq 1 ];then echo "error" && exit 1; fi
if [ "${s_install}" = "1" ]; then
echo "${portname} is installed in ${deflink}"
D_PATH="${deflink}"
else
case $SET_LANG in
"Russian")
inst1=`zenity --title "Install ${portname}" --text "Выберите путь для установки (обновления) порта,\nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \
--column="Выбор" --column "Путь:" \
TRUE "${deflink}" \
FALSE "Другой путь..." ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $inst1 in
"${deflink}")
D_PATH="${deflink}" ;;
"Другой путь...")
D_PATH=`zenity --file-selection --directory --title="Выберите путь..." `
D_PATH="${D_PATH}/${portname}" ;;
esac ;;
"English")
inst1=`zenity --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=350 --height=220 \
--column="Set..." --column "Path:" \
TRUE "${deflink}" \
FALSE "Other path..." ` 2> /dev/null
if [ $? -eq 1 ];then exit 1; fi
case $inst1 in
"${deflink}")
D_PATH="${deflink}" ;;
"Other path...")
D_PATH=`zenity --file-selection --directory --title="Select the path..." `
D_PATH="${D_PATH}/${portname}" ;;
esac ;;
esac
if [ $? -eq 1 ];then echo "error" && exit 1; fi
fi
########################################################################
case $SET_LANG in
"Russian")
zen() {
zenity --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1
} ;;
"English")
zen() {
zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1
} ;;
esac
if [ $? -eq 1 ];then echo "error" && exit 1; fi
if [ "${s_install}" != "1" ]; then
case $SET_LANG in
"Russian")
zen() {
zenity --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1
} ;;
"English")
zen() {
zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1
} ;;
esac
if [ $? -eq 1 ];then echo "error" && exit 1; fi
fi
########################################################################
export PORT_WINE_PATH="${D_PATH}"
if [ ! -d "${PORT_WINE_PATH}" ];then
......@@ -128,11 +143,15 @@ read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
########################################################################
cd "${PORT_WINE_PATH}"
tail -n +168 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}"
tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" | zen
tail -n +187 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}"
if [ "${s_install}" = "1" ]; then
tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/"
else
tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" | zen
fi
chmod 755 -R "${PORT_WINE_PATH}"
mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp"
sed -n 1,167p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}"
sed -n 1,186p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}"
########################################################################
if [ -d "${PORT_GAMEDIR}_old" ];then
rm -fR "${PORT_GAMEDIR}"
......
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