Skip to content

Commit

Permalink
proton: update to cachyos-9.0-20241206 (release proton-osu-9-11)
Browse files Browse the repository at this point in the history
- fix flickering when opening/closing osu

- update umu-launcher to master and bump bundled standalone Python to 3.13.1, also improve the binary security of the wrapper

- any upstream proton/umu/protonfixes updates since late October
  • Loading branch information
whrvt committed Dec 7, 2024
1 parent e15722a commit f654dd2
Show file tree
Hide file tree
Showing 11 changed files with 129 additions and 190 deletions.
95 changes: 0 additions & 95 deletions patches/proton/0003-proton-umuify.patch

This file was deleted.

63 changes: 35 additions & 28 deletions patches/proton/0005-Makefile.in-build-umu-protonfixes.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/Makefile.in b/Makefile.in
index 367b720..eb2c792 100644
index f62b380..ba2aa1e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -545,6 +545,23 @@ $(DIST_WINEOPENXR_JSON64): $(WINEOPENXR_SRC)/wineopenxr64.json default_pfx
@@ -545,6 +545,24 @@ $(DIST_WINEOPENXR_JSON64): $(WINEOPENXR_SRC)/wineopenxr64.json default_pfx

all-dist: $(DIST_WINEOPENXR_JSON64)

Expand All @@ -19,40 +19,47 @@ index 367b720..eb2c792 100644
+
+$(PROTONFIXES_TARGET): $(OBJ)/.build-protonfixes
+ cd $(SRCDIR)/protonfixes && make install
+ rm -rf $(PROTONFIXES_TARGET)
+ cp -a $(SRCDIR)/protonfixes/dist/protonfixes $(PROTONFIXES_TARGET)
+ rm -r $(SRCDIR)/protonfixes/dist
+
+all-dist: $(PROTONFIXES_TARGET)

##
## steam.exe
@@ -1322,7 +1339,14 @@ deploy: all
redist: all
mkdir -p $(REDIST_DIR)
rsync --delete -arx $(DST_BASE)/ $(REDIST_DIR)
-
+ cp $(PROTONFIXES_TARGET)/cabextract $(REDIST_DIR)/files/bin/
+ cp -a $(PROTONFIXES_TARGET)/libmspack.so $(REDIST_DIR)/files/lib64/
+ cp -a $(PROTONFIXES_TARGET)/libmspack.so.0 $(REDIST_DIR)/files/lib64/
+ cp $(PROTONFIXES_TARGET)/libmspack.so.0.1.0 $(REDIST_DIR)/files/lib64/
+ mv $(REDIST_DIR) $(BUILD_NAME)
+## XZ_OPT="-9 -T0" tar -Jcf $(BUILD_NAME).tar.xz --numeric-owner --owner=0 --group=0 --null $(BUILD_NAME)
+## sha512sum $(BUILD_NAME).tar.xz > $(BUILD_NAME).sha512sum
+## @echo "Proton build available at $(BUILD_NAME).tar.xz"
@@ -1392,24 +1410,6 @@ $(DIST_AV1_PATENTS): $(AV1_PATENTS)

##
## make module=$dllname module[32,64]
diff --git a/Makefile.in b/Makefile.in
index 16405fc..0c0818c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -558,7 +558,8 @@ $(OBJ)/.build-protonfixes:
all-dist: $(DIST_LICENSE) $(DIST_OFL_LICENSE) $(DIST_AV1_PATENTS)

$(PROTONFIXES_TARGET): $(OBJ)/.build-protonfixes
cd $(SRCDIR)/protonfixes && make install
-##
-## protonfixes
-##
-
-PROTONFIXES_TARGET := $(addprefix $(DST_BASE)/,protonfixes)
-$(PROTONFIXES_TARGET): $(addprefix $(SRCDIR)/,protonfixes)
-
-$(OBJ)/.build-protonfixes:
- cd $(SRCDIR)/protonfixes && make
- touch $(@)
-
-$(PROTONFIXES_TARGET): $(OBJ)/.build-protonfixes
- cd $(SRCDIR)/protonfixes && make install
- cp -a $(SRCDIR)/protonfixes/dist/protonfixes $(PROTONFIXES_TARGET)
+ rm -rf $(PROTONFIXES_TARGET)
+ cp -a $(SRCDIR)/protonfixes/dist/protonfixes $(PROTONFIXES_TARGET)
rm -r $(SRCDIR)/protonfixes/dist
- rm -r $(SRCDIR)/protonfixes/dist
-
-all-dist: $(PROTONFIXES_TARGET)
-
##
## proton(.py), filelock.py, etc.
##
@@ -1465,10 +1465,6 @@ redist: all
cp -a $(PROTONFIXES_TARGET)/libmspack.so.0 $(REDIST_DIR)/files/lib64/
cp $(PROTONFIXES_TARGET)/libmspack.so.0.1.0 $(REDIST_DIR)/files/lib64/
mv $(REDIST_DIR) $(BUILD_NAME)
- tar -cvzf $(BUILD_NAME).tar.gz $(BUILD_NAME)
- sha512sum $(BUILD_NAME).tar.gz > $(BUILD_NAME).sha512sum
- @echo "Proton build available at $(BUILD_NAME).tar.gz"
-

all-dist: $(PROTONFIXES_TARGET)
##
## make module=$dllname module[32,64]
10 changes: 5 additions & 5 deletions patches/proton/0008-Makefile.in-redist-dir-to-build-name.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/Makefile.in b/Makefile.in
index fe870e2..c001a16 100644
index 1551dcb..1ee8c7c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -41,7 +41,7 @@ DST_LIBDIR64 := $(DST_DIR)/lib64
Expand All @@ -11,11 +11,11 @@ index fe870e2..c001a16 100644

ifneq ($(UNSTRIPPED_BUILD),)
STRIP :=
@@ -1344,7 +1344,6 @@ redist: all
@@ -1464,7 +1464,6 @@ redist: all
cp -a $(PROTONFIXES_TARGET)/libmspack.so $(REDIST_DIR)/files/lib64/
cp -a $(PROTONFIXES_TARGET)/libmspack.so.0 $(REDIST_DIR)/files/lib64/
cp $(PROTONFIXES_TARGET)/libmspack.so.0.1.0 $(REDIST_DIR)/files/lib64/
- mv $(REDIST_DIR) $(BUILD_NAME)
## XZ_OPT="-9 -T0" tar -Jcf $(BUILD_NAME).tar.xz --numeric-owner --owner=0 --group=0 --null $(BUILD_NAME)
## sha512sum $(BUILD_NAME).tar.xz > $(BUILD_NAME).sha512sum
## @echo "Proton build available at $(BUILD_NAME).tar.xz"

##
## make module=$dllname module[32,64]
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
This reverts commit b6ba4e0ccc645c078900db8fbafadc9ac4eec125.
--- a/dlls/winex11.drv/x11drv_main.c
+++ b/dlls/winex11.drv/x11drv_main.c
@@ -78,7 +78,7 @@
BOOL use_system_cursors = TRUE;
BOOL grab_fullscreen = FALSE;
BOOL managed_mode = TRUE;
+BOOL decorated_mode = TRUE;
-BOOL decorated_mode = FALSE;
BOOL private_color_map = FALSE;
int primary_monitor = 0;
BOOL client_side_graphics = TRUE;
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -99,7 +99,6 @@ AddReg=\
ThemeManager,\
VersionInfo,\
LicenseInformation,\
- WineDecorateWindows,\
NVIDIANGX, \
ProtonOverrides,\
SteamClient
@@ -130,7 +129,6 @@ AddReg=\
ThemeManager,\
VersionInfo,\
LicenseInformation,\
- WineDecorateWindows,\
NVIDIANGX, \
TTS, \
ProtonOverrides,\
@@ -178,7 +176,6 @@ AddReg=\
Tapi,\
VersionInfo,\
LicenseInformation,\
- WineDecorateWindows,\
NVIDIANGX, \
ProtonOverrides,\
SteamClient.ntamd64
@@ -3208,6 +3205,3 @@ HKCU,Software\Wine\AppDefaults\RiftApart.exe\DllOverrides,"atiadlxx",,"builtin"
HKCU,Software\Wine\AppDefaults\ffxvi.exe\DllOverrides,"atiadlxx",,"builtin"
HKLM,Software\Wow6432Node\lucasarts entertainment company llc\Star Wars: Episode I Racer\v1.0,"Display Height",0x10001,480
HKLM,Software\Wow6432Node\lucasarts entertainment company llc\Star Wars: Episode I Racer\v1.0,"Display Width",0x10001,640
-
-[WineDecorateWindows]
-HKCU,Software\Wine\AppDefaults\DarkSoulsIII.exe\X11 Driver,"Decorated",,"N"
--- a/programs/winecfg/x11drvdlg.c
+++ b/programs/winecfg/x11drvdlg.c
@@ -152,7 +152,7 @@
CheckDlgButton(dialog, IDC_ENABLE_MANAGED, BST_UNCHECKED);
free(buf);

+ buf = get_reg_key(config_key, keypath(L"X11 Driver"), L"Decorated", L"Y");
- buf = get_reg_key(config_key, keypath(L"X11 Driver"), L"Decorated", L"N");
if (IS_OPTION_TRUE(*buf))
CheckDlgButton(dialog, IDC_ENABLE_DECORATED, BST_CHECKED);
else
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ index 0c3c81bcda6..68c623e008c 100644
- return (!no_child_clipping_cached && NtUserGetWindowRelative( hwnd, GW_CHILD )) || NtUserGetAncestor( hwnd, GA_PARENT ) != NtUserGetDesktopWindow();
+static BOOL drawable_needs_clipping( HWND hwnd, BOOL known_child )
+{
+ if (!use_osu_child_hack() || editor_visible( NtUserGetDesktopWindow() ))
+ if (!use_osu_child_hack() || (NtUserGetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_LAYERED) || editor_visible( NtUserGetDesktopWindow() ))
+ {
+ if (NtUserGetAncestor( hwnd, GA_PARENT ) != NtUserGetDesktopWindow()) return TRUE; /* child window, needs compositing */
+ if (NtUserGetWindowRelative( hwnd, GW_CHILD )) return TRUE; /* window has children, needs compositing */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,36 @@ potential compiler bugs (like the one in mingw-gcc for march=avx512).
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 9a372361164..b23b539a2e6 100644
index b6418b0..b990804 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,9 +1007,10 @@ This is an error since --enable-archs=$wine_arch was requested.])])
WINE_TRY_PE_CFLAGS([-Wenum-conversion])
@@ -1003,6 +1003,7 @@ This is an error since --enable-archs=$wine_arch was requested.])])
WINE_TRY_PE_CFLAGS([-ffunction-sections])
WINE_TRY_PE_CFLAGS([-Wno-misleading-indentation],
[AS_VAR_APPEND([MSHTML_CFLAGS],[" -Wno-misleading-indentation"])])
+ WINE_TRY_PE_CFLAGS([-fomit-frame-pointer])

dnl clang had broken -fms-hotpatch support before version 18 (https://github.com/llvm/llvm-project/pull/77245)
WINE_TRY_PE_CFLAGS([-fms-hotpatch -DMIN_CLANG_VERSION=18],
@@ -1013,8 +1014,7 @@ This is an error since --enable-archs=$wine_arch was requested.])])
WINE_TRY_PE_CFLAGS([-flarge-source-files -Wmisleading-indentation],[AS_VAR_APPEND(${wine_arch}_EXTRACFLAGS,[" -Wno-misleading-indentation"])])

case $wine_arch in
- i386) WINE_TRY_PE_CFLAGS([-fno-omit-frame-pointer])
+ i386) WINE_TRY_PE_CFLAGS([-mstack-alignment=2])
- WINE_TRY_PE_CFLAGS([-mstack-alignment=4])
+ i386) WINE_TRY_PE_CFLAGS([-mstack-alignment=4])
WINE_TRY_PE_CFLAGS([-mpreferred-stack-boundary=2])
WINE_TRY_PE_CFLAGS([-Wl,--disable-stdcall-fixup],
[AS_VAR_APPEND([${wine_arch}_LDFLAGS],[" -Wl,--disable-stdcall-fixup"])]) ;;
@@ -2009,7 +2010,6 @@ char*f(const char *h,char n) {return strchr(h,n);}]])],[ac_cv_c_logicalop_noisy=
@@ -2033,7 +2033,6 @@ char*f(const char *h,char n) {return strchr(h,n);}]])],[ac_cv_c_logicalop_noisy=

case $HOST_ARCH in
dnl gcc-4.6+ omits frame pointers by default, breaking some copy protections
- i386) WINE_TRY_CFLAGS([-fno-omit-frame-pointer],[MSVCRTFLAGS="$MSVCRTFLAGS -fno-omit-frame-pointer"]) ;;
x86_64)
case $host_os in
dnl Mingw uses Windows 64-bit types, not Unix ones
@@ -2029,6 +2029,7 @@ int a(int b, ...) { __builtin_ms_va_list list; __builtin_ms_va_start(list,b); }]
@@ -2052,6 +2051,7 @@ int a(int b, ...) { __builtin_ms_va_list list; __builtin_ms_va_start(list,b); }]
esac ;;
arm)
WINE_TRY_CFLAGS([-Wincompatible-function-pointer-types],[EXTRACFLAGS="$EXTRACFLAGS -Wno-error=incompatible-function-pointer-types"]) ;;
Expand Down
21 changes: 10 additions & 11 deletions patches/wine/0006-build/musl-precision.patch
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,13 @@ diff --git a/configure.ac b/configure.ac
index 11111111111..11111111111 100644
--- a/configure.ac
+++ b/configure.ac
@@ -925,6 +925,10 @@ do
AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $llvm_extra_cflags"])
AS_VAR_APPEND([${wine_arch}_LDFLAGS],[" $llvm_extra_ldflags"])
CFLAGS="$llvm_extra_cflags $llvm_cflags"
+ else
+ case $wine_arch in
+ i386) AC_SUBST(MUSL_I386_FLAGS,"-ffloat-store") ;;
+ esac
fi
AS_VAR_SET([${wine_arch}_TARGET],[$target])])
AS_VAR_POPDEF([wine_cv_crosscc])
@@ -921,6 +921,9 @@ do
AS_VAR_APPEND([${wine_arch}_LDFLAGS],[" $llvm_extra_ldflags"])
CFLAGS="$llvm_extra_cflags $llvm_cflags"
else
+ case $wine_arch in
+ i386) AC_SUBST(MUSL_I386_FLAGS,"-ffloat-store") ;;
+ esac
AS_VAR_PUSHDEF([wine_cv_crosscc], [wine_cv_${wine_arch}_crosscc])
AC_CACHE_CHECK([whether $CC works], wine_cv_crosscc,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [AS_VAR_SET([wine_cv_crosscc],[yes])], [AS_VAR_SET([wine_cv_crosscc],[no])])])
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@ diff --git a/server/Makefile.in b/server/Makefile.in
index 11111111111..11111111111 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -50,7 +50,8 @@ SOURCES = \
@@ -50,6 +50,7 @@ SOURCES = \
wineserver.man.in \
winstation.c

-UNIX_LIBS = $(LDEXECFLAGS) $(RT_LIBS) $(INOTIFY_LIBS) $(PROCSTAT_LIBS) -flto=auto -flto-partition=one -fdevirtualize-at-ltrans $(CFLAGS)
+UNIX_LIBS = $(LDEXECFLAGS) $(RT_LIBS) $(INOTIFY_LIBS) $(PROCSTAT_LIBS) $(DBUS_LIBS) -flto=auto -flto-partition=one -fdevirtualize-at-ltrans $(CFLAGS)
-UNIX_LIBS = $(LDEXECFLAGS) $(RT_LIBS) $(INOTIFY_LIBS) $(PROCSTAT_LIBS)
+UNIX_LIBS = $(LDEXECFLAGS) $(RT_LIBS) $(INOTIFY_LIBS) $(PROCSTAT_LIBS) $(DBUS_LIBS)
+UNIX_CFLAGS = $(DBUS_CFLAGS)
EXTRADEFS = -flto=auto -flto-partition=one -fdevirtualize-at-ltrans

unicode_EXTRADEFS = -DNLSDIR="\"${nlsdir}\"" -DBIN_TO_NLSDIR=\"`${MAKEDEP} -R ${bindir} ${nlsdir}`\"
diff --git a/server/thread.c b/server/thread.c
Expand Down
Loading

0 comments on commit f654dd2

Please sign in to comment.