diff --git a/files/d3d9-helper.patch b/files/d3d9-helper.patch --- a/files/d3d9-helper.patch +++ b/files/d3d9-helper.patch @@ -1,24 +1,24 @@ -From 763e579985e27ab80f276e93a3e2f609c3e02d83 Mon Sep 17 00:00:00 2001 +From 00aa62a47250f4a0655784eb1a22e7ee7816a3bc Mon Sep 17 00:00:00 2001 From: Nick Sarnie -Date: Sat, 31 Mar 2018 10:05:28 -0400 +Date: Sat, 14 Apr 2018 11:53:44 -0400 Subject: [PATCH] D3D9 Helper Signed-off-by: Nick Sarnie --- - dlls/ntdll/loader.c | 205 ++++++++++++++++++++++++----- - dlls/ntdll/loadorder.c | 298 ++++++++++++++++++++++++++++++++----------- + dlls/ntdll/loader.c | 205 ++++++++++++++++++++---- + dlls/ntdll/loadorder.c | 298 ++++++++++++++++++++++++++--------- dlls/ntdll/ntdll_misc.h | 1 + programs/winecfg/Makefile.in | 1 + programs/winecfg/main.c | 12 +- programs/winecfg/resource.h | 5 + - programs/winecfg/staging.c | 93 ++++++++++++++ + programs/winecfg/staging.c | 93 +++++++++++ programs/winecfg/winecfg.h | 1 + programs/winecfg/winecfg.rc | 10 ++ 9 files changed, 522 insertions(+), 104 deletions(-) create mode 100644 programs/winecfg/staging.c diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index fe5ce9d1e4..ebb7aea4d0 100644 +index 1a3dd801a1..9276b5b17d 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -100,6 +100,7 @@ struct builtin_load_info @@ -75,7 +75,7 @@ current_modref = prev; if (status) { -@@ -1028,7 +1030,7 @@ static NTSTATUS fixup_imports( WINE_MODREF *wm, LPCWSTR load_path ) +@@ -1031,7 +1033,7 @@ static NTSTATUS fixup_imports( WINE_MODREF *wm, LPCWSTR load_path ) * Allocate a WINE_MODREF structure and add it to the process list * The loader_section must be locked while calling this function. */ @@ -84,7 +84,7 @@ { WINE_MODREF *wm; const WCHAR *p; -@@ -1042,7 +1044,7 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename ) +@@ -1045,7 +1047,7 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename ) wm->ldr.TlsIndex = -1; wm->ldr.LoadCount = 1; @@ -93,7 +93,7 @@ if ((p = strrchrW( wm->ldr.FullDllName.Buffer, '\\' ))) p++; else p = wm->ldr.FullDllName.Buffer; RtlInitUnicodeString( &wm->ldr.BaseDllName, p ); -@@ -1654,7 +1656,7 @@ static void load_builtin_callback( void *module, const char *filename ) +@@ -1657,7 +1659,7 @@ static void load_builtin_callback( void *module, const char *filename ) return; } @@ -102,7 +102,7 @@ RtlFreeHeap( GetProcessHeap(), 0, fullname ); if (!wm) { -@@ -1864,8 +1866,8 @@ static BOOL is_valid_binary( HMODULE module, const pe_image_info_t *info ) +@@ -1867,8 +1869,8 @@ static BOOL is_valid_binary( HMODULE module, const pe_image_info_t *info ) /****************************************************************************** * load_native_dll (internal) */ @@ -113,7 +113,7 @@ { void *module; HANDLE mapping; -@@ -1908,7 +1910,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, +@@ -1911,7 +1913,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, /* create the MODREF */ @@ -122,7 +122,7 @@ { if (module) NtUnmapViewOfSection( NtCurrentProcess(), module ); return STATUS_NO_MEMORY; -@@ -1972,8 +1974,8 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, +@@ -1979,8 +1981,8 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, /*********************************************************************** * load_builtin_dll */ @@ -133,7 +133,7 @@ { char error[256], dllname[MAX_PATH]; const WCHAR *name, *p; -@@ -1993,6 +1995,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file, +@@ -2000,6 +2002,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file, */ info.load_path = load_path; info.filename = NULL; @@ -141,7 +141,7 @@ info.status = STATUS_SUCCESS; info.wm = NULL; -@@ -2191,6 +2194,108 @@ done: +@@ -2198,6 +2201,108 @@ done: return status; } @@ -250,7 +250,7 @@ /*********************************************************************** * open_dll_file -@@ -2237,7 +2342,7 @@ static HANDLE open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, struct +@@ -2244,7 +2349,7 @@ static HANDLE open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, struct */ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, WCHAR *filename, ULONG *size, WINE_MODREF **pwm, @@ -259,7 +259,7 @@ { UNICODE_STRING nt_name; WCHAR *file_part, *ext, *dllname; -@@ -2282,20 +2387,41 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, +@@ -2289,20 +2394,41 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, if (RtlDetermineDosPathNameType_U( libname ) == RELATIVE_PATH) { @@ -305,7 +305,7 @@ } /* not found */ -@@ -2343,8 +2469,10 @@ overflow: +@@ -2350,8 +2476,10 @@ overflow: * Load a PE style module according to the load order. * The loader_section must be locked while calling this function. */ @@ -317,7 +317,7 @@ enum loadorder loadorder; WCHAR buffer[64]; WCHAR *filename; -@@ -2361,7 +2489,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2368,7 +2496,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ size = sizeof(buffer); for (;;) { @@ -326,7 +326,7 @@ if (nts == STATUS_SUCCESS) break; if (filename != buffer) RtlFreeHeap( GetProcessHeap(), 0, filename ); if (nts != STATUS_BUFFER_TOO_SMALL) return nts; -@@ -2381,6 +2509,25 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2388,6 +2516,25 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ } main_exe = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress ); @@ -352,7 +352,7 @@ loadorder = get_load_order( main_exe ? main_exe->ldr.BaseDllName.Buffer : NULL, filename ); if (handle && is_fake_dll( handle )) -@@ -2403,22 +2550,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2410,22 +2557,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ if (!handle) nts = STATUS_DLL_NOT_FOUND; else { @@ -380,7 +380,7 @@ if (nts == STATUS_SUCCESS && loadorder == LO_DEFAULT && (MODULE_InitDLL( *pwm, DLL_WINE_PREATTACH, NULL ) != STATUS_SUCCESS)) { -@@ -2428,7 +2575,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2435,7 +2582,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ nts = STATUS_DLL_NOT_FOUND; } if (nts == STATUS_DLL_NOT_FOUND && loadorder != LO_BUILTIN) @@ -389,7 +389,7 @@ break; } -@@ -2461,7 +2608,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags, +@@ -2468,7 +2615,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags, RtlEnterCriticalSection( &loader_section ); if (!path_name) path_name = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; @@ -398,7 +398,7 @@ if (nts == STATUS_SUCCESS && !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS)) { -@@ -2500,7 +2647,7 @@ NTSTATUS WINAPI LdrGetDllHandle( LPCWSTR load_path, ULONG flags, const UNICODE_S +@@ -2507,7 +2654,7 @@ NTSTATUS WINAPI LdrGetDllHandle( LPCWSTR load_path, ULONG flags, const UNICODE_S size = sizeof(buffer); for (;;) { @@ -407,7 +407,7 @@ if (handle) NtClose( handle ); if (filename != buffer) RtlFreeHeap( GetProcessHeap(), 0, filename ); if (status != STATUS_BUFFER_TOO_SMALL) break; -@@ -3422,7 +3569,7 @@ void __wine_process_init(void) +@@ -3429,7 +3576,7 @@ void __wine_process_init(void) /* setup the load callback and create ntdll modref */ wine_dll_set_callback( load_builtin_callback ); @@ -1025,5 +1025,5 @@ /* @makedep: winecfg.ico */ -- -2.16.3 +2.17.0 diff --git a/files/wine-d3d9.patch b/files/wine-d3d9.patch --- a/files/wine-d3d9.patch +++ b/files/wine-d3d9.patch @@ -1,26 +1,26 @@ -From 6f18703feb2f89042a25fb09e7d07d48a8f9c125 Mon Sep 17 00:00:00 2001 +From 695c0020836ef99c924c5d33de81bf52c1fb617a Mon Sep 17 00:00:00 2001 From: Nick Sarnie -Date: Sat, 31 Mar 2018 10:04:12 -0400 -Subject: [PATCH] Wine D3D9 +Date: Sat, 14 Apr 2018 11:53:04 -0400 +Subject: [PATCH 2/2] Wine D3D9 Signed-off-by: Nick Sarnie --- configure.ac | 188 ++++ dlls/d3d9-nine/Makefile.in | 15 + dlls/d3d9-nine/d3d9-nine.spec | 14 + - dlls/d3d9-nine/d3d9_main.c | 173 ++++ - dlls/d3d9-nine/d3dadapter9.c | 898 +++++++++++++++++++ + dlls/d3d9-nine/d3d9_main.c | 173 +++ + dlls/d3d9-nine/d3dadapter9.c | 898 +++++++++++++++ dlls/d3d9-nine/d3dadapter9.h | 32 + - dlls/d3d9-nine/device_wrap.c | 500 +++++++++++ + dlls/d3d9-nine/device_wrap.c | 500 +++++++++ dlls/d3d9-nine/device_wrap.h | 26 + - dlls/d3d9-nine/dri3.c | 1426 ++++++++++++++++++++++++++++++ + dlls/d3d9-nine/dri3.c | 1426 +++++++++++++++++++++++ dlls/d3d9-nine/dri3.h | 91 ++ - dlls/d3d9-nine/present.c | 1748 +++++++++++++++++++++++++++++++++++++ + dlls/d3d9-nine/present.c | 1748 +++++++++++++++++++++++++++++ dlls/d3d9-nine/present.h | 40 + dlls/d3d9-nine/shader_validator.c | 88 ++ dlls/d3d9-nine/shader_validator.h | 29 + dlls/d3d9-nine/version.rc | 26 + - dlls/d3d9-nine/wndproc.c | 277 ++++++ + dlls/d3d9-nine/wndproc.c | 277 +++++ dlls/d3d9-nine/wndproc.h | 41 + 17 files changed, 5612 insertions(+) create mode 100644 dlls/d3d9-nine/Makefile.in @@ -41,7 +41,7 @@ create mode 100644 dlls/d3d9-nine/wndproc.h diff --git a/configure.ac b/configure.ac -index 0a365d9c43..93c9d823fd 100644 +index 8e76cd6086..10c1a8c03e 100644 --- a/configure.ac +++ b/configure.ac @@ -69,6 +69,14 @@ AC_ARG_WITH(openal, AS_HELP_STRING([--without-openal],[do not use OpenAL]), @@ -5781,5 +5781,5 @@ + +#endif -- -2.16.3 +2.17.0 diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,11 +1,11 @@ name : wine -version : '3.5' -release : 37 +version : 3.7 +release : 39 source : - - https://dl.winehq.org/wine/source/3.x/wine-3.5.tar.xz : f42206143b7caf5527dbcd54c21f9b0a22338d8841d7fa08aa6c5f0b9dd72143 -license : LGPL-2.1 + - https://dl.winehq.org/wine/source/3.x/wine-3.7.tar.xz : 76c73760d72497c59e81dfd7c5def450171bd59e9cff3df0a42454e0c7fc2bb7 +license : LGPL-2.1-or-later component : virt -summary : Wine compatibility layer for Windows emulation. +summary : Wine compatibility layer for Windows emulation description: | Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop. builddeps : @@ -60,6 +60,7 @@ patterns : - 32bit : - /usr/bin/wine + - /usr/share/applications/wine.desktop rundeps : - 32bit : - freetype2-32bit diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -5,16 +5,16 @@ Pierre-Yves pyu@riseup.net - LGPL-2.1 + LGPL-2.1-or-later virt - Wine compatibility layer for Windows emulation. + Wine compatibility layer for Windows emulation Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop. https://solus-project.com/sources/README.Solus wine - Wine compatibility layer for Windows emulation. + Wine compatibility layer for Windows emulation Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop. virt @@ -1111,6 +1111,7 @@ /usr/lib64/wine/fakedlls/softpub.dll /usr/lib64/wine/fakedlls/spoolss.dll /usr/lib64/wine/fakedlls/spoolsv.exe + /usr/lib64/wine/fakedlls/srclient.dll /usr/lib64/wine/fakedlls/sspicli.dll /usr/lib64/wine/fakedlls/start.exe /usr/lib64/wine/fakedlls/stdole2.tlb @@ -1714,6 +1715,7 @@ /usr/lib64/wine/softpub.dll.so /usr/lib64/wine/spoolss.dll.so /usr/lib64/wine/spoolsv.exe.so + /usr/lib64/wine/srclient.dll.so /usr/lib64/wine/sspicli.dll.so /usr/lib64/wine/start.exe.so /usr/lib64/wine/stdole2.tlb.so @@ -1867,7 +1869,6 @@ /usr/lib64/wine/xolehlp.dll.so /usr/lib64/wine/xpsprint.dll.so /usr/lib64/wine/xpssvcs.dll.so - /usr/share/applications/wine.desktop /usr/share/fontconfig/conf.avail/30-win32-aliases.conf /usr/share/fonts/conf.d/30-win32-aliases.conf /usr/share/man @@ -1881,12 +1882,13 @@ emul32 - wine + wine /usr/bin/wine /usr/lib32/ /usr/lib32/lib*.so.* + /usr/share/applications/wine.desktop @@ -1896,8 +1898,8 @@ programming.devel - wine-32bit - wine-devel + wine-32bit + wine-devel /usr/lib32/lib*.so @@ -1910,7 +1912,7 @@ programming.devel - wine + wine /usr/include/ @@ -1918,12 +1920,12 @@ - - 2018-03-31 - 3.5 + + 2018-04-28 + 3.7 Packaging update Pierre-Yves pyu@riseup.net \ No newline at end of file