From c1a0930ba49cf939f777aaf3b73c33a28c75b4b4 Mon Sep 17 00:00:00 2001
From: castro-fidel <tergoevm@gmail.com>
Date: Mon, 10 May 2021 23:13:22 +0300
Subject: [PATCH] Fix create new pfx

---
 data_from_portwine/changelog      | 11 +++++++++-
 data_from_portwine/scripts/runlib | 36 ++++++++++++++++---------------
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog
index a308a18..16b3e1e 100644
--- a/data_from_portwine/changelog
+++ b/data_from_portwine/changelog
@@ -15,6 +15,15 @@
 * добавить контроль за окнами для правильного отключения прогресс бара
 * зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru
 -----------------------------------------
+###Scripts version 1074###
+* HOTFIX - добалено ожидание окончания создания префикса, перед продолжением использования порта
+
+###Scripts version 1073###
+* HOTFIX - создание каталога drive_c перед созданием симлинка на него
+
+###Scripts version 1072###
+* HOTFIX - создание префикса (каталог dosedevices с симлинками) под всеми ОС Linux и разными версиями Proton (включая GE)
+
 ###Scripts version 1071###
 * HOTFIX - был ошибочно убран аргумент SkipBuildPatchPrereq для Epic (вернули)
 
@@ -23,7 +32,7 @@
 
 ###Scripts version 1069###
 * обновлены db файлы
-* HOTFIX - sзакомментирована переменная __NV_PRIME_RENDER_OFFLOAD=1 для работы некоторых игр в оконном режиме с видеокартой от NVIDIA
+* HOTFIX -закомментирована переменная __NV_PRIME_RENDER_OFFLOAD=1 для работы некоторых игр в оконном режиме с видеокартой от NVIDIA
 
 ###PortProton-79### 04.05.2021 ###Scripts version 1068###
 * обновлен Proton до версии 6.3-3 от 04.05.2021
diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index f8f8e24..6b833f6 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -602,38 +602,40 @@ PW_UPDATE () {
 }
 
 PW_INIT_PFX () {
-    rm -f  "${WINEDIR}"*/lib*/*steam* 
-    rm -f  "${WINEDIR}"*/lib*/wine/*steam* 
-    rm -f  "${WINEDIR}"*/lib*/wine/fakedlls/*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 
+    rm -f  "${WINEDIR}"*/lib*/*steam*
+    rm -f  "${WINEDIR}"*/lib*/wine/*steam*
+    rm -f  "${WINEDIR}"*/lib*/wine/fakedlls/*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
+    create_new_dir "${WINEPREFIX}/drive_c"
+    create_new_dir "${WINEPREFIX}/dosdevices"
+    [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
+    [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
     if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \
        [ ! -f "${WINEPREFIX}"/user.reg ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \
-       [ ! -f "${WINEPREFIX}"/system.reg ] ; 
+       [ ! -f "${WINEPREFIX}"/system.reg ]
     then
-        sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf 
-        sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf 
+
+        sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf
+        sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf
         try_remove_file "${WINEPREFIX}/winetricks.log"
         create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/"
         create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
-        cp -fr "${WINEDIR}/share/default_pfx/"* "${WINEPREFIX}"
-        cp -f "${WINEDIR}/lib/wine/fakedlls/"*.* "${WINEPREFIX}/drive_c/windows/syswow64/"
-        cp -f "${WINEDIR}/lib/wine/"*.* "${WINEPREFIX}/drive_c/windows/syswow64/"
-        cp -f "${WINEDIR}/lib64/wine/fakedlls/"*.* "${WINEPREFIX}/drive_c/windows/system32/"
-        cp -f "${WINEDIR}/lib64/wine/"*.* "${WINEPREFIX}/drive_c/windows/system32/"
-
         PW_STOP_PROGRESS_BAR
         PW_START_PROGRESS_BAR_BLOCK "Updating prefix... Please wait..."
+        KILL_PORTWINE
         "${PW_RUNTIME}" "${WINELOADER}" wineboot -u
+        WAIT_WINESERVER
+        KILL_PORTWINE
         PW_STOP_PROGRESS_BAR
         PW_START_PROGRESS_BAR_CS "Initialization prefix..."
     fi
     if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then
 	    try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}"
     fi
-    rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam* 
-    rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam* 
+    rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam*
+    rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam*
 
     create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
     try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf
-- 
2.24.1