From 32fcc0d75b74642e0f5675e9e3ffcf081ec3f9b2 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 15 Jun 2020 17:43:18 -0500 Subject: [PATCH] Rebase against 634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb. --- .../0002-directmanipulation-New-dll.patch | 115 ----------- .../0003-uuid-Add-directmanipulation.h.patch | 25 --- ...storing-DOS-attributes-in-NtSetInfor.patch | 118 +++++------ ...re-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch | 24 +-- patches/ntdll-DOS_Attributes/definition | 4 - .../definition | 1 - patches/ntdll-Junction_Points/definition | 2 + patches/ntdll-NtQueryEaFile/definition | 2 + ...dll-Support-x86_64-syscall-emulation.patch | 16 +- patches/patchinstall.sh | 192 ++++-------------- ...-file-which-has-a-memory-mapping-sho.patch | 44 ++-- patches/server-File_Permissions/definition | 2 + patches/server-Inherited_ACLs/definition | 2 +- patches/server-Stored_ACLs/definition | 2 +- ...ate-syscall-thunks-for-ntdll-exports.patch | 16 +- ...ebuild-Add-syscall-thunks-for-64-bit.patch | 34 ++-- ...e-client-side-file-descriptor-cache-.patch | 16 +- ...t-the-name-of-WAVEBANKMINIWAVEFORMAT.patch | 26 --- staging/upstream-commit | 2 +- 19 files changed, 182 insertions(+), 461 deletions(-) delete mode 100644 patches/directmanipulation-new-dll/0002-directmanipulation-New-dll.patch delete mode 100644 patches/directmanipulation-new-dll/0003-uuid-Add-directmanipulation.h.patch delete mode 100644 patches/xactengine-initial/0017-include-Correct-the-name-of-WAVEBANKMINIWAVEFORMAT.patch diff --git a/patches/directmanipulation-new-dll/0002-directmanipulation-New-dll.patch b/patches/directmanipulation-new-dll/0002-directmanipulation-New-dll.patch deleted file mode 100644 index be9cd010..00000000 --- a/patches/directmanipulation-new-dll/0002-directmanipulation-New-dll.patch +++ /dev/null @@ -1,115 +0,0 @@ -From f40642800ca04184680656f05410684b5c5bf003 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Fri, 12 Jun 2020 16:43:06 -0500 -Subject: [PATCH] directmanipulation: New dll - -Signed-off-by: Alistair Leslie-Hughes ---- - dlls/directmanipulation/Makefile.in | 2 + - dlls/directmanipulation/directmanip.idl | 38 +++++++++++++++++++ - dlls/directmanipulation/directmanipulation.c | 12 ++++++ - .../directmanipulation.spec | 4 +- - 4 files changed, 54 insertions(+), 2 deletions(-) - create mode 100644 dlls/directmanipulation/directmanip.idl - -diff --git a/dlls/directmanipulation/Makefile.in b/dlls/directmanipulation/Makefile.in -index d09d652b61a..331c2a84205 100644 ---- a/dlls/directmanipulation/Makefile.in -+++ b/dlls/directmanipulation/Makefile.in -@@ -2,5 +2,7 @@ MODULE = directmanipulation.dll - - EXTRADLLFLAGS = -mno-cygwin - -+IDL_SRCS = directmanip.idl -+ - C_SRCS = \ - directmanipulation.c -diff --git a/dlls/directmanipulation/directmanip.idl b/dlls/directmanipulation/directmanip.idl -new file mode 100644 -index 00000000000..ff00668ba5b ---- /dev/null -+++ b/dlls/directmanipulation/directmanip.idl -@@ -0,0 +1,38 @@ -+/* -+ * Copyright 2019 Alistair Leslie-Hughes -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+#pragma makedep register -+ -+[ -+ uuid(54e211b6-3650-4f75-8334-fa359598e1c5), -+ threading(both) -+] -+coclass DirectManipulationManager -+{ -+ interface IDirectManipulationManager2; -+ [default] interface IDirectManipulationManager; -+} -+ -+[ -+ uuid(99793286-77cc-4b57-96db-3b354f6f9fb5), -+ threading(both) -+] -+coclass DirectManipulationSharedManager -+{ -+ interface IDirectManipulationManager2; -+ [default] interface IDirectManipulationManager; -+} -diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c -index 21458ba1fe7..f808bc1a331 100644 ---- a/dlls/directmanipulation/directmanipulation.c -+++ b/dlls/directmanipulation/directmanipulation.c -@@ -20,6 +20,8 @@ - - #include "windef.h" - #include "winbase.h" -+#include "oleidl.h" -+#include "rpcproxy.h" - #include "wine/debug.h" - - WINE_DEFAULT_DEBUG_CHANNEL(manipulation); -@@ -43,6 +45,16 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved) - return TRUE; - } - -+HRESULT WINAPI DllRegisterServer(void) -+{ -+ return __wine_register_resources( dm_instance ); -+} -+ -+HRESULT WINAPI DllUnregisterServer(void) -+{ -+ return __wine_unregister_resources( dm_instance ); -+} -+ - HRESULT WINAPI DllCanUnloadNow(void) - { - return S_FALSE; -diff --git a/dlls/directmanipulation/directmanipulation.spec b/dlls/directmanipulation/directmanipulation.spec -index 6c8a107d5c7..3f0004daebe 100644 ---- a/dlls/directmanipulation/directmanipulation.spec -+++ b/dlls/directmanipulation/directmanipulation.spec -@@ -2,5 +2,5 @@ - @ stdcall -private DllCanUnloadNow() - @ stub DllGetActivationFactory - @ stdcall -private DllGetClassObject(ptr ptr ptr) --@ stub DllRegisterServer() --@ stub DllUnregisterServer() -+@ stdcall -private DllRegisterServer() -+@ stdcall -private DllUnregisterServer() --- -2.27.0 - diff --git a/patches/directmanipulation-new-dll/0003-uuid-Add-directmanipulation.h.patch b/patches/directmanipulation-new-dll/0003-uuid-Add-directmanipulation.h.patch deleted file mode 100644 index 9e7fc932..00000000 --- a/patches/directmanipulation-new-dll/0003-uuid-Add-directmanipulation.h.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 528186d14bef47f9afdbee2e323445f14191c858 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Thu, 18 Jul 2019 09:46:30 +1000 -Subject: [PATCH 3/6] uuid: Add directmanipulation.h - -Signed-off-by: Alistair Leslie-Hughes ---- - dlls/uuid/uuid.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c -index aa3b30c3c7..eacb83301d 100644 ---- a/dlls/uuid/uuid.c -+++ b/dlls/uuid/uuid.c -@@ -90,6 +90,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); - #include "netcfgx.h" - #include "shimgdata.h" - #include "comsvcs.h" -+#include "directmanipulation.h" - - /* FIXME: cguids declares GUIDs but does not define their values */ - --- -2.17.1 - diff --git a/patches/ntdll-DOS_Attributes/0003-ntdll-Implement-storing-DOS-attributes-in-NtSetInfor.patch b/patches/ntdll-DOS_Attributes/0003-ntdll-Implement-storing-DOS-attributes-in-NtSetInfor.patch index ab1e436a..e1065674 100644 --- a/patches/ntdll-DOS_Attributes/0003-ntdll-Implement-storing-DOS-attributes-in-NtSetInfor.patch +++ b/patches/ntdll-DOS_Attributes/0003-ntdll-Implement-storing-DOS-attributes-in-NtSetInfor.patch @@ -1,31 +1,71 @@ -From 9f17f2e4f9842549820691f34f7d2da5719ead0a Mon Sep 17 00:00:00 2001 +From b099458217b2855bd8615b8c97bcc2462eb74b25 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Wed, 20 Aug 2014 00:08:52 -0600 Subject: [PATCH] ntdll: Implement storing DOS attributes in NtSetInformationFile. --- - dlls/ntdll/file.c | 54 ++++++++++++++++++++++++++--------------- dlls/ntdll/tests/file.c | 8 +++--- + dlls/ntdll/unix/file.c | 54 ++++++++++++++++++++++++++--------------- include/wine/port.h | 2 ++ libs/port/xattr.c | 20 +++++++++++++++ 4 files changed, 60 insertions(+), 24 deletions(-) -diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index bd6e3cbcf88..c1f9808e497 100644 ---- a/dlls/ntdll/file.c -+++ b/dlls/ntdll/file.c -@@ -177,6 +177,39 @@ int fd_get_file_info( int fd, unsigned int options, struct stat *st, ULONG *attr - return ret; +diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c +index 184b7cdad59..37e5ac5d8a5 100644 +--- a/dlls/ntdll/tests/file.c ++++ b/dlls/ntdll/tests/file.c +@@ -1364,7 +1364,7 @@ static void test_file_basic_information(void) + memset(&fbi, 0, sizeof(fbi)); + res = pNtQueryInformationFile(h, &io, &fbi, sizeof fbi, FileBasicInformation); + ok ( res == STATUS_SUCCESS, "can't get attributes\n"); +- todo_wine ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM\n", fbi.FileAttributes ); ++ ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM (ok in old linux without xattr)\n", fbi.FileAttributes ); + + /* Then HIDDEN */ + memset(&fbi, 0, sizeof(fbi)); +@@ -1377,7 +1377,7 @@ static void test_file_basic_information(void) + memset(&fbi, 0, sizeof(fbi)); + res = pNtQueryInformationFile(h, &io, &fbi, sizeof fbi, FileBasicInformation); + ok ( res == STATUS_SUCCESS, "can't get attributes\n"); +- todo_wine ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN\n", fbi.FileAttributes ); ++ ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN (ok in old linux without xattr)\n", fbi.FileAttributes ); + + /* Check NORMAL last of all (to make sure we can clear attributes) */ + memset(&fbi, 0, sizeof(fbi)); +@@ -1434,7 +1434,7 @@ static void test_file_all_information(void) + memset(&fai_buf.fai, 0, sizeof(fai_buf.fai)); + res = pNtQueryInformationFile(h, &io, &fai_buf.fai, sizeof fai_buf, FileAllInformation); + ok ( res == STATUS_SUCCESS, "can't get attributes, res %x\n", res); +- todo_wine ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM\n", fai_buf.fai.BasicInformation.FileAttributes ); ++ ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM (ok in old linux without xattr)\n", fai_buf.fai.BasicInformation.FileAttributes ); + + /* Then HIDDEN */ + memset(&fai_buf.fai.BasicInformation, 0, sizeof(fai_buf.fai.BasicInformation)); +@@ -1447,7 +1447,7 @@ static void test_file_all_information(void) + memset(&fai_buf.fai, 0, sizeof(fai_buf.fai)); + res = pNtQueryInformationFile(h, &io, &fai_buf.fai, sizeof fai_buf, FileAllInformation); + ok ( res == STATUS_SUCCESS, "can't get attributes\n"); +- todo_wine ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN\n", fai_buf.fai.BasicInformation.FileAttributes ); ++ ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN (ok in old linux without xattr)\n", fai_buf.fai.BasicInformation.FileAttributes ); + + /* Check NORMAL last of all (to make sure we can clear attributes) */ + memset(&fai_buf.fai.BasicInformation, 0, sizeof(fai_buf.fai.BasicInformation)); +diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c +index 70a76ca81ee..924d06b2caa 100644 +--- a/dlls/ntdll/unix/file.c ++++ b/dlls/ntdll/unix/file.c +@@ -1497,6 +1497,39 @@ static int fd_get_file_info( int fd, unsigned int options, struct stat *st, ULON } + +/* set the stat info and file attributes for a file (by file descriptor) */ +NTSTATUS fd_set_file_info( int fd, ULONG attr ) +{ + char hexattr[11]; + struct stat st; + -+ if (fstat( fd, &st ) == -1) return FILE_GetNtStatus(); ++ if (fstat( fd, &st ) == -1) return errno_to_status( errno ); + if (attr & FILE_ATTRIBUTE_READONLY) + { + if (S_ISDIR( st.st_mode)) @@ -36,9 +76,9 @@ index bd6e3cbcf88..c1f9808e497 100644 + else + { + /* add write permission only where we already have read permission */ -+ st.st_mode |= (0600 | ((st.st_mode & 044) >> 1)) & (~FILE_umask); ++ st.st_mode |= (0600 | ((st.st_mode & 044) >> 1)) & (~start_umask); + } -+ if (fchmod( fd, st.st_mode ) == -1) return FILE_GetNtStatus(); ++ if (fchmod( fd, st.st_mode ) == -1) return errno_to_status( errno ); + attr &= ~FILE_ATTRIBUTE_NORMAL; /* do not store everything, but keep everything Samba can use */ + if (attr != 0) + { @@ -52,10 +92,10 @@ index bd6e3cbcf88..c1f9808e497 100644 + return STATUS_SUCCESS; +} + + /* get the stat info and file attributes for a file (by name) */ static int get_file_info( const char *path, struct stat *st, ULONG *attr ) { - char *parent_path; -@@ -3113,7 +3146,6 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, +@@ -4000,7 +4033,6 @@ NTSTATUS WINAPI NtSetInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, case FileBasicInformation: if (len >= sizeof(FILE_BASIC_INFORMATION)) { @@ -63,12 +103,12 @@ index bd6e3cbcf88..c1f9808e497 100644 const FILE_BASIC_INFORMATION *info = ptr; LARGE_INTEGER mtime, atime; -@@ -3127,25 +3159,7 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, +@@ -4014,25 +4046,7 @@ NTSTATUS WINAPI NtSetInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, io->u.Status = set_file_times( fd, &mtime, &atime ); if (io->u.Status == STATUS_SUCCESS && info->FileAttributes) - { -- if (fstat( fd, &st ) == -1) io->u.Status = FILE_GetNtStatus(); +- if (fstat( fd, &st ) == -1) io->u.Status = errno_to_status( errno ); - else - { - if (info->FileAttributes & FILE_ATTRIBUTE_READONLY) @@ -81,60 +121,20 @@ index bd6e3cbcf88..c1f9808e497 100644 - else - { - /* add write permission only where we already have read permission */ -- st.st_mode |= (0600 | ((st.st_mode & 044) >> 1)) & (~FILE_umask); +- st.st_mode |= (0600 | ((st.st_mode & 044) >> 1)) & (~start_umask); - } -- if (fchmod( fd, st.st_mode ) == -1) io->u.Status = FILE_GetNtStatus(); +- if (fchmod( fd, st.st_mode ) == -1) io->u.Status = errno_to_status( errno ); - } - } + io->u.Status = fd_set_file_info( fd, info->FileAttributes ); if (needs_close) close( fd ); } -diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 67d54c81fb0..4c2e63d3679 100644 ---- a/dlls/ntdll/tests/file.c -+++ b/dlls/ntdll/tests/file.c -@@ -1365,7 +1365,7 @@ static void test_file_basic_information(void) - memset(&fbi, 0, sizeof(fbi)); - res = pNtQueryInformationFile(h, &io, &fbi, sizeof fbi, FileBasicInformation); - ok ( res == STATUS_SUCCESS, "can't get attributes\n"); -- todo_wine ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM\n", fbi.FileAttributes ); -+ ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM (ok in old linux without xattr)\n", fbi.FileAttributes ); - - /* Then HIDDEN */ - memset(&fbi, 0, sizeof(fbi)); -@@ -1378,7 +1378,7 @@ static void test_file_basic_information(void) - memset(&fbi, 0, sizeof(fbi)); - res = pNtQueryInformationFile(h, &io, &fbi, sizeof fbi, FileBasicInformation); - ok ( res == STATUS_SUCCESS, "can't get attributes\n"); -- todo_wine ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN\n", fbi.FileAttributes ); -+ ok ( (fbi.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN (ok in old linux without xattr)\n", fbi.FileAttributes ); - - /* Check NORMAL last of all (to make sure we can clear attributes) */ - memset(&fbi, 0, sizeof(fbi)); -@@ -1435,7 +1435,7 @@ static void test_file_all_information(void) - memset(&fai_buf.fai, 0, sizeof(fai_buf.fai)); - res = pNtQueryInformationFile(h, &io, &fai_buf.fai, sizeof fai_buf, FileAllInformation); - ok ( res == STATUS_SUCCESS, "can't get attributes, res %x\n", res); -- todo_wine ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM\n", fai_buf.fai.BasicInformation.FileAttributes ); -+ ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_SYSTEM, "attribute %x not FILE_ATTRIBUTE_SYSTEM (ok in old linux without xattr)\n", fai_buf.fai.BasicInformation.FileAttributes ); - - /* Then HIDDEN */ - memset(&fai_buf.fai.BasicInformation, 0, sizeof(fai_buf.fai.BasicInformation)); -@@ -1448,7 +1448,7 @@ static void test_file_all_information(void) - memset(&fai_buf.fai, 0, sizeof(fai_buf.fai)); - res = pNtQueryInformationFile(h, &io, &fai_buf.fai, sizeof fai_buf, FileAllInformation); - ok ( res == STATUS_SUCCESS, "can't get attributes\n"); -- todo_wine ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN\n", fai_buf.fai.BasicInformation.FileAttributes ); -+ ok ( (fai_buf.fai.BasicInformation.FileAttributes & attrib_mask) == FILE_ATTRIBUTE_HIDDEN, "attribute %x not FILE_ATTRIBUTE_HIDDEN (ok in old linux without xattr)\n", fai_buf.fai.BasicInformation.FileAttributes ); - - /* Check NORMAL last of all (to make sure we can clear attributes) */ - memset(&fai_buf.fai.BasicInformation, 0, sizeof(fai_buf.fai.BasicInformation)); diff --git a/include/wine/port.h b/include/wine/port.h -index 6e81cb71a76..f90396727d6 100644 +index 4670891ae77..e0249b4c59f 100644 --- a/include/wine/port.h +++ b/include/wine/port.h -@@ -368,6 +368,8 @@ extern int mkstemps(char *template, int suffix_len); +@@ -359,6 +359,8 @@ extern int mkstemps(char *template, int suffix_len); #endif extern int xattr_fget( int filedes, const char *name, void *value, size_t size ); diff --git a/patches/ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch b/patches/ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch index a8116b97..b8529c85 100644 --- a/patches/ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch +++ b/patches/ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch @@ -1,23 +1,23 @@ -From 08ece1e8da040d80c13348c2ffeb56052779dc53 Mon Sep 17 00:00:00 2001 +From 29e0ef12afb2651e61492a8a9f021baca4c66519 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 14 Jan 2016 23:09:19 +0100 Subject: [PATCH] ntdll: Always store SAMBA_XATTR_DOS_ATTRIB when path could be interpreted as hidden. --- - dlls/ntdll/file.c | 13 ++++++++----- + dlls/ntdll/unix/file.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) -diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index a0e54c27198..61b417ef678 100644 ---- a/dlls/ntdll/file.c -+++ b/dlls/ntdll/file.c -@@ -250,12 +250,15 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr ) +diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c +index 9636c0efe3e..444332e7baa 100644 +--- a/dlls/ntdll/unix/file.c ++++ b/dlls/ntdll/unix/file.c +@@ -1561,12 +1561,15 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr ) RtlFreeHeap( GetProcessHeap(), 0, parent_path ); } *attr |= get_file_attributes( st ); - /* convert Unix-style hidden files to a DOS hidden file attribute */ -- if (DIR_is_hidden_file( path )) +- if (is_hidden_file( path )) - *attr |= FILE_ATTRIBUTE_HIDDEN; /* retrieve any stored DOS attributes */ len = xattr_get( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, sizeof(hexattr)-1 ); @@ -25,22 +25,22 @@ index a0e54c27198..61b417ef678 100644 + if (len == -1) + { + /* convert Unix-style hidden files to a DOS hidden file attribute */ -+ if (DIR_is_hidden_file( path )) ++ if (is_hidden_file( path )) + *attr |= FILE_ATTRIBUTE_HIDDEN; + return ret; + } *attr |= get_file_xattr( hexattr, len ); return ret; } -@@ -268,7 +271,7 @@ NTSTATUS set_file_info( const char *path, ULONG attr ) +@@ -3440,7 +3443,7 @@ NTSTATUS set_file_info( const char *path, ULONG attr ) /* Note: unix mode already set when called this way */ attr &= ~FILE_ATTRIBUTE_NORMAL; /* do not store everything, but keep everything Samba can use */ len = sprintf( hexattr, "0x%x", attr ); - if (attr != 0) -+ if (attr != 0 || DIR_is_hidden_file( path )) ++ if (attr != 0 || is_hidden_file( path )) xattr_set( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, len ); else xattr_remove( path, SAMBA_XATTR_DOS_ATTRIB ); -- -2.25.1 +2.27.0 diff --git a/patches/ntdll-DOS_Attributes/definition b/patches/ntdll-DOS_Attributes/definition index 68d8e88e..7a1a3aeb 100644 --- a/patches/ntdll-DOS_Attributes/definition +++ b/patches/ntdll-DOS_Attributes/definition @@ -1,7 +1,3 @@ Fixes: [9158] Support for DOS hidden/system file attributes Fixes: [15679] cygwin symlinks not working in wine # Depends: ntdll-Syscall_Wrappers -Depends: ntdll-Junction_Points -# Currently awkwardly split between ntdll.dll and ntdll.so; wait for the rest -# of the file functions to be moved to ntdll.so before finishing the rebase. -Disabled: true diff --git a/patches/ntdll-FileDispositionInformation/definition b/patches/ntdll-FileDispositionInformation/definition index b139e548..6db46c84 100644 --- a/patches/ntdll-FileDispositionInformation/definition +++ b/patches/ntdll-FileDispositionInformation/definition @@ -1,4 +1,3 @@ # Fixes: [30397] Support for NtSetInformationFile class FileDispositionInformation # Fixes: [30399] Support for NtSetInformationFile class FileRenameInformation # Fixes: Support for NtSetInformationFile class FileLinkInformation -Depends: server-File_Permissions diff --git a/patches/ntdll-Junction_Points/definition b/patches/ntdll-Junction_Points/definition index 1bc08a0b..a1a683f3 100644 --- a/patches/ntdll-Junction_Points/definition +++ b/patches/ntdll-Junction_Points/definition @@ -2,3 +2,5 @@ Fixes: [12401] NET Framework 2.0, 3.0, 4.0 installers and other apps that make u Fixes: [44948] Multiple apps (Spine (Mod starter for Gothic), MS Office 365 installer) need CreateSymbolicLinkW implementation # FIXME: patch 0006 was broken by e36a9c459d. We really want to get that information from ntdll instead, but the how is not trivial... # FIXME 2: patch 0019 needs to call RemoveDirectoryW() from kernelbase, but it's stuck in kernel32 for now... +# As with other patch sets, temporarily disabled while it's awkwardly split between ntdll.dll and ntdll.so. +Disabled: true diff --git a/patches/ntdll-NtQueryEaFile/definition b/patches/ntdll-NtQueryEaFile/definition index a86870c2..6bff5698 100644 --- a/patches/ntdll-NtQueryEaFile/definition +++ b/patches/ntdll-NtQueryEaFile/definition @@ -1,3 +1,5 @@ Fixes: Improve stub for NtQueryEaFile # Depends: ntdll-Syscall_Wrappers Depends: ntdll-Junction_Points +# Re-enable me when ntdll-Junction_Points gets re-enabled! +Disabled: true diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch index 9164fea5..b2ffa77b 100644 --- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch +++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch @@ -1,4 +1,4 @@ -From 74831302b4eedd6df46357de283392f2b4ee62f2 Mon Sep 17 00:00:00 2001 +From d389571ffefb1cabd3b23d1c966dbc237d042e87 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 30 Dec 2019 13:27:53 +0300 Subject: [PATCH] ntdll: Support x86_64 syscall emulation. @@ -194,7 +194,7 @@ index 1d1b879310e..c8a8d1d1d33 100644 error: diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index e1da90222d3..91e1596ddcb 100644 +index 0bffa4029c1..03dc27b083c 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -58,6 +58,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(seh); @@ -227,7 +227,7 @@ index e1da90222d3..91e1596ddcb 100644 teb = virtual_alloc_first_teb(); teb->WOW32Reserved = syscall_handler; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 62e836b41f1..f234a756991 100644 +index b7b66b6b440..23c434dd7aa 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -111,7 +111,8 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE @@ -240,7 +240,7 @@ index 62e836b41f1..f234a756991 100644 extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN; extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; -@@ -150,6 +151,9 @@ extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN; +@@ -147,6 +148,9 @@ extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN; extern NTSTATUS exec_wineloader( char **argv, int socketfd, int is_child_64bit, ULONGLONG res_start, ULONGLONG res_end ) DECLSPEC_HIDDEN; @@ -251,19 +251,19 @@ index 62e836b41f1..f234a756991 100644 extern void server_enter_uninterrupted_section( RTL_CRITICAL_SECTION *cs, sigset_t *sigset ) DECLSPEC_HIDDEN; extern void server_leave_uninterrupted_section( RTL_CRITICAL_SECTION *cs, sigset_t *sigset ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index c6fb8e0f2d4..5d00991cde9 100644 +index dae93ab1632..5103e50d7ff 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 45 -+#define NTDLL_UNIXLIB_VERSION 46 +-#define NTDLL_UNIXLIB_VERSION 48 ++#define NTDLL_UNIXLIB_VERSION 49 struct unix_funcs { -@@ -225,7 +225,8 @@ struct unix_funcs +@@ -253,7 +253,8 @@ struct unix_funcs /* thread/process functions */ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 046f3fa0..12cccae1 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d" + echo "634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb" } # Show version information @@ -167,6 +167,7 @@ patch_enable_all () enable_ntdll_ApiSetMap="$1" enable_ntdll_Builtin_Prot="$1" enable_ntdll_CriticalSection="$1" + enable_ntdll_DOS_Attributes="$1" enable_ntdll_Dealloc_Thread_Stack="$1" enable_ntdll_DeviceType_Systemroot="$1" enable_ntdll_Exception="$1" @@ -179,11 +180,9 @@ patch_enable_all () enable_ntdll_Heap_Improvements="$1" enable_ntdll_Hide_Wine_Exports="$1" enable_ntdll_Interrupt_0x2e="$1" - enable_ntdll_Junction_Points="$1" enable_ntdll_Manifest_Range="$1" enable_ntdll_NtAccessCheck="$1" enable_ntdll_NtDevicePath="$1" - enable_ntdll_NtQueryEaFile="$1" enable_ntdll_NtQuerySection="$1" enable_ntdll_NtSetLdtEntries="$1" enable_ntdll_Pipe_SpecialCharacters="$1" @@ -226,7 +225,6 @@ patch_enable_all () enable_riched20_IText_Interface="$1" enable_server_Desktop_Refcount="$1" enable_server_FileEndOfFileInformation="$1" - enable_server_File_Permissions="$1" enable_server_Key_State="$1" enable_server_Object_Types="$1" enable_server_PeekMessage="$1" @@ -596,6 +594,9 @@ patch_enable () ntdll-CriticalSection) enable_ntdll_CriticalSection="$2" ;; + ntdll-DOS_Attributes) + enable_ntdll_DOS_Attributes="$2" + ;; ntdll-Dealloc_Thread_Stack) enable_ntdll_Dealloc_Thread_Stack="$2" ;; @@ -632,9 +633,6 @@ patch_enable () ntdll-Interrupt-0x2e) enable_ntdll_Interrupt_0x2e="$2" ;; - ntdll-Junction_Points) - enable_ntdll_Junction_Points="$2" - ;; ntdll-Manifest_Range) enable_ntdll_Manifest_Range="$2" ;; @@ -644,9 +642,6 @@ patch_enable () ntdll-NtDevicePath) enable_ntdll_NtDevicePath="$2" ;; - ntdll-NtQueryEaFile) - enable_ntdll_NtQueryEaFile="$2" - ;; ntdll-NtQuerySection) enable_ntdll_NtQuerySection="$2" ;; @@ -773,9 +768,6 @@ patch_enable () server-FileEndOfFileInformation) enable_server_FileEndOfFileInformation="$2" ;; - server-File_Permissions) - enable_server_File_Permissions="$2" - ;; server-Key_State) enable_server_Key_State="$2" ;; @@ -1649,13 +1641,6 @@ if test "$enable_winebuild_Fake_Dlls" -eq 1; then enable_ws2_32_WSACleanup=1 fi -if test "$enable_ntdll_NtQueryEaFile" -eq 1; then - if test "$enable_ntdll_Junction_Points" -gt 1; then - abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that." - fi - enable_ntdll_Junction_Points=1 -fi - if test "$enable_ntdll_NtDevicePath" -eq 1; then if test "$enable_ntdll_Pipe_SpecialCharacters" -gt 1; then abort "Patchset ntdll-Pipe_SpecialCharacters disabled, but ntdll-NtDevicePath depends on that." @@ -1702,20 +1687,6 @@ if test "$enable_kernel32_CopyFileEx" -eq 1; then enable_ntdll_FileDispositionInformation=1 fi -if test "$enable_ntdll_FileDispositionInformation" -eq 1; then - if test "$enable_server_File_Permissions" -gt 1; then - abort "Patchset server-File_Permissions disabled, but ntdll-FileDispositionInformation depends on that." - fi - enable_server_File_Permissions=1 -fi - -if test "$enable_server_File_Permissions" -eq 1; then - if test "$enable_ntdll_Junction_Points" -gt 1; then - abort "Patchset ntdll-Junction_Points disabled, but server-File_Permissions depends on that." - fi - enable_ntdll_Junction_Points=1 -fi - if test "$enable_dxdiagn_GetChildContainer_Leaf_Nodes" -eq 1; then if test "$enable_dxdiagn_Enumerate_DirectSound" -gt 1; then abort "Patchset dxdiagn-Enumerate_DirectSound disabled, but dxdiagn-GetChildContainer_Leaf_Nodes depends on that." @@ -2715,12 +2686,10 @@ fi # | # | Modified files: # | * configure, configure.ac, dlls/directmanipulation/Makefile.in, dlls/directmanipulation/directmanip.idl, -# | dlls/directmanipulation/directmanipulation.c, dlls/directmanipulation/directmanipulation.spec, -# | dlls/directmanipulation/tests/Makefile.in, dlls/directmanipulation/tests/manipulation.c, dlls/uuid/uuid.c +# | dlls/directmanipulation/directmanipulation.c, dlls/directmanipulation/tests/Makefile.in, +# | dlls/directmanipulation/tests/manipulation.c # | if test "$enable_directmanipulation_new_dll" -eq 1; then - patch_apply directmanipulation-new-dll/0002-directmanipulation-New-dll.patch - patch_apply directmanipulation-new-dll/0003-uuid-Add-directmanipulation.h.patch patch_apply directmanipulation-new-dll/0004-directmanipulation-Create-DirectManipulationManager-.patch patch_apply directmanipulation-new-dll/0006-directmanipulation-Support-DCompManipulationComposit.patch patch_apply directmanipulation-new-dll/0007-directmanipulation-Supprot-IDirectManipulationFrameI.patch @@ -2733,8 +2702,6 @@ if test "$enable_directmanipulation_new_dll" -eq 1; then patch_apply directmanipulation-new-dll/0016-directmanipulation-Support-IDirectManipulationConten.patch patch_apply directmanipulation-new-dll/0017-directmanipulation-Fake-success-in-some-functions.patch ( - printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: New dll.", 1 },'; - printf '%s\n' '+ { "Alistair Leslie-Hughes", "uuid: Add directmanipulation.h.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Create DirectManipulationManager/DirectManipulationSharedManager objects.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Support DCompManipulationCompositor interface.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Supprot IDirectManipulationFrameInfoProvider interface in IDirectManipulationCompositor.", 1 },'; @@ -3168,95 +3135,8 @@ if test "$enable_iphlpapi_System_Ping" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-Junction_Points -# | -# | This patchset fixes the following Wine bugs: -# | * [#12401] NET Framework 2.0, 3.0, 4.0 installers and other apps that make use of GAC API for managed assembly -# | installation on NTFS filesystems need reparse point/junction API support -# | (FSCTL_SET_REPARSE_POINT/FSCTL_GET_REPARSE_POINT) -# | * [#44948] Multiple apps (Spine (Mod starter for Gothic), MS Office 365 installer) need CreateSymbolicLinkW implementation -# | -# | Modified files: -# | * configure.ac, dlls/kernel32/path.c, dlls/ntdll/file.c, dlls/ntdll/tests/file.c, dlls/ntdll/unix/file.c, -# | include/Makefile.in, include/ntifs.h, include/wine/port.h, include/winternl.h, libs/port/Makefile.in, -# | libs/port/renameat2.c, server/fd.c -# | -if test "$enable_ntdll_Junction_Points" -eq 1; then - patch_apply ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch - patch_apply ntdll-Junction_Points/0002-ntdll-Add-support-for-reading-junction-points.patch - patch_apply ntdll-Junction_Points/0003-ntdll-Add-support-for-deleting-junction-points.patch - patch_apply ntdll-Junction_Points/0004-ntdll-Add-a-test-for-junction-point-advertisement.patch - patch_apply ntdll-Junction_Points/0005-kernel32-ntdll-Add-support-for-deleting-junction-poi.patch - patch_apply ntdll-Junction_Points/0007-ntdll-Add-support-for-absolute-symlink-creation.patch - patch_apply ntdll-Junction_Points/0008-ntdll-Add-support-for-reading-absolute-symlinks.patch - patch_apply ntdll-Junction_Points/0009-ntdll-Add-support-for-deleting-symlinks.patch - patch_apply ntdll-Junction_Points/0010-ntdll-Add-support-for-relative-symlink-creation.patch - patch_apply ntdll-Junction_Points/0011-ntdll-Add-support-for-reading-relative-symlinks.patch - patch_apply ntdll-Junction_Points/0012-ntdll-Add-support-for-file-symlinks.patch - patch_apply ntdll-Junction_Points/0013-ntdll-Allow-creation-of-dangling-reparse-points-to-n.patch - patch_apply ntdll-Junction_Points/0014-ntdll-Correctly-report-file-symbolic-links-as-files.patch - patch_apply ntdll-Junction_Points/0015-kernel32-Set-error-code-when-attempting-to-delete-fi.patch - patch_apply ntdll-Junction_Points/0016-server-Properly-handle-file-symlink-deletion.patch - patch_apply ntdll-Junction_Points/0017-ntdll-Always-report-symbolic-links-as-containing-zer.patch - patch_apply ntdll-Junction_Points/0018-ntdll-Find-dangling-symlinks-quickly.patch - ( - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for junction point creation.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for reading junction points.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for deleting junction points.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add a test for junction point advertisement.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "kernel32,ntdll: Add support for deleting junction points with RemoveDirectory.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for absolute symlink creation.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for reading absolute symlinks.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for deleting symlinks.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for relative symlink creation.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for reading relative symlinks.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Add support for file symlinks.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Allow creation of dangling reparse points to non-existent paths.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Correctly report file symbolic links as files.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "kernel32: Set error code when attempting to delete file symlinks as directories.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "server: Properly handle file symlink deletion.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Always report symbolic links as containing zero bytes.", 1 },'; - printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Find dangling symlinks quickly.", 1 },'; - ) >> "$patchlist" -fi - -# Patchset server-File_Permissions -# | -# | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points -# | -# | This patchset fixes the following Wine bugs: -# | * [#44691] Improve mapping of DACL to file permissions -# | -# | Modified files: -# | * dlls/advapi32/tests/security.c, dlls/ntdll/tests/file.c, server/fd.c, server/file.c -# | -if test "$enable_server_File_Permissions" -eq 1; then - patch_apply server-File_Permissions/0001-server-Improve-STATUS_CANNOT_DELETE-checks-for-direc.patch - patch_apply server-File_Permissions/0002-server-Allow-to-open-files-without-any-permission-bi.patch - patch_apply server-File_Permissions/0003-server-When-creating-new-directories-temporarily-giv.patch - patch_apply server-File_Permissions/0004-advapi32-tests-Add-tests-for-ACL-inheritance-in-Crea.patch - patch_apply server-File_Permissions/0005-advapi32-tests-Add-ACL-inheritance-tests-for-creatin.patch - patch_apply server-File_Permissions/0006-ntdll-tests-Added-tests-for-open-behaviour-on-readon.patch - patch_apply server-File_Permissions/0007-server-FILE_WRITE_ATTRIBUTES-should-succeed-for-read.patch - patch_apply server-File_Permissions/0008-server-Improve-mapping-of-DACL-to-file-permissions.patch - ( - printf '%s\n' '+ { "Sebastian Lackner", "server: Improve STATUS_CANNOT_DELETE checks for directory case.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "server: Allow to open files without any permission bits.", 2 },'; - printf '%s\n' '+ { "Sebastian Lackner", "server: When creating new directories temporarily give read-permissions until they are opened.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "advapi32/tests: Add tests for ACL inheritance in CreateDirectoryA.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "advapi32/tests: Add ACL inheritance tests for creating subdirectories with NtCreateFile.", 1 },'; - printf '%s\n' '+ { "Qian Hong", "ntdll/tests: Added tests for open behaviour on readonly files.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "server: FILE_WRITE_ATTRIBUTES should succeed for readonly files.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "server: Improve mapping of DACL to file permissions.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-FileDispositionInformation # | -# | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points, server-File_Permissions -# | # | Modified files: # | * dlls/ntdll/tests/file.c, server/fd.c # | @@ -3272,7 +3152,7 @@ fi # Patchset kernel32-CopyFileEx # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points, server-File_Permissions, ntdll-FileDispositionInformation +# | * ntdll-FileDispositionInformation # | # | This patchset fixes the following Wine bugs: # | * [#22692] Add support for CopyFileEx progress callback @@ -3682,6 +3562,35 @@ if test "$enable_ntdll_CriticalSection" -eq 1; then ) >> "$patchlist" fi +# Patchset ntdll-DOS_Attributes +# | +# | This patchset fixes the following Wine bugs: +# | * [#9158] Support for DOS hidden/system file attributes +# | * [#15679] cygwin symlinks not working in wine +# | +# | Modified files: +# | * configure.ac, dlls/ntdll/tests/directory.c, dlls/ntdll/tests/file.c, dlls/ntdll/unix/file.c, include/wine/port.h, +# | libs/port/Makefile.in, libs/port/xattr.c +# | +if test "$enable_ntdll_DOS_Attributes" -eq 1; then + patch_apply ntdll-DOS_Attributes/0001-ntdll-Implement-retrieving-DOS-attributes-in-fd_-get.patch + patch_apply ntdll-DOS_Attributes/0003-ntdll-Implement-storing-DOS-attributes-in-NtSetInfor.patch + patch_apply ntdll-DOS_Attributes/0004-ntdll-Implement-storing-DOS-attributes-in-NtCreateFi.patch + patch_apply ntdll-DOS_Attributes/0005-libport-Add-support-for-Mac-OS-X-style-extended-attr.patch + patch_apply ntdll-DOS_Attributes/0006-libport-Add-support-for-FreeBSD-style-extended-attri.patch + patch_apply ntdll-DOS_Attributes/0007-ntdll-Perform-the-Unix-style-hidden-file-check-withi.patch + patch_apply ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch + ( + printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Implement retrieving DOS attributes in [fd_]get_file_info().", 1 },'; + printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Implement storing DOS attributes in NtSetInformationFile.", 1 },'; + printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Implement storing DOS attributes in NtCreateFile.", 1 },'; + printf '%s\n' '+ { "Erich E. Hoover", "libport: Add support for Mac OS X style extended attributes.", 1 },'; + printf '%s\n' '+ { "Erich E. Hoover", "libport: Add support for FreeBSD style extended attributes.", 1 },'; + printf '%s\n' '+ { "Erich E. Hoover", "ntdll: Perform the Unix-style hidden file check within the unified file info grabbing routine.", 1 },'; + printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Always store SAMBA_XATTR_DOS_ATTRIB when path could be interpreted as hidden.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntdll-Dealloc_Thread_Stack # | # | Modified files: @@ -3928,21 +3837,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-NtQueryEaFile -# | -# | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points -# | -# | Modified files: -# | * dlls/ntdll/file.c, dlls/ntdll/tests/file.c -# | -if test "$enable_ntdll_NtQueryEaFile" -eq 1; then - patch_apply ntdll-NtQueryEaFile/0001-ntdll-Improve-stub-of-NtQueryEaFile.patch - ( - printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Improve stub of NtQueryEaFile.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-NtQuerySection # | # | Modified files: @@ -4595,7 +4489,7 @@ fi # Patchset server-FileEndOfFileInformation # | # | Modified files: -# | * dlls/ntdll/file.c, server/fd.c, server/protocol.def +# | * dlls/ntdll/unix/file.c, server/fd.c, server/protocol.def # | if test "$enable_server_FileEndOfFileInformation" -eq 1; then patch_apply server-FileEndOfFileInformation/0001-ntdll-Set-EOF-on-file-which-has-a-memory-mapping-sho.patch @@ -4786,8 +4680,7 @@ fi # Patchset shell32-Progress_Dialog # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points, server-File_Permissions, ntdll-FileDispositionInformation, kernel32-CopyFileEx, -# | shell32-SHFileOperation_Move +# | * ntdll-FileDispositionInformation, kernel32-CopyFileEx, shell32-SHFileOperation_Move # | # | Modified files: # | * dlls/shell32/shell32.rc, dlls/shell32/shlfileop.c, dlls/shell32/shresdef.h @@ -4808,8 +4701,7 @@ fi # Patchset shell32-ACE_Viewer # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-Junction_Points, server-File_Permissions, ntdll-FileDispositionInformation, kernel32-CopyFileEx, -# | shell32-SHFileOperation_Move, shell32-Progress_Dialog +# | * ntdll-FileDispositionInformation, kernel32-CopyFileEx, shell32-SHFileOperation_Move, shell32-Progress_Dialog # | # | Modified files: # | * dlls/aclui/Makefile.in, dlls/aclui/aclui.rc, dlls/aclui/aclui_main.c, dlls/aclui/resource.h, dlls/aclui/user_icons.bmp, @@ -6509,7 +6401,7 @@ fi # | dlls/xactengine3_7/Makefile.in, dlls/xactengine3_7/xactengine3_7.spec, dlls/xaudio2_7/Makefile.in, # | dlls/xaudio2_7/tests/Makefile.in, dlls/xaudio2_7/tests/globals.xgs, dlls/xaudio2_7/tests/rsrc.rc, # | dlls/xaudio2_7/tests/xact.c, dlls/xaudio2_7/tests/xaudio2.c, dlls/xaudio2_7/xact_classes.idl, dlls/xaudio2_7/xact_dll.c, -# | include/Makefile.in, include/xact3.idl, include/xact3wb.h +# | include/Makefile.in, include/xact3.idl # | if test "$enable_xactengine_initial" -eq 1; then patch_apply xactengine-initial/0001-include-Add-xact3.idl.patch @@ -6527,7 +6419,6 @@ if test "$enable_xactengine_initial" -eq 1; then patch_apply xactengine-initial/0014-include-Add-XACTENGINE_-error-codes.patch patch_apply xactengine-initial/0015-include-Add-XACT-defines.patch patch_apply xactengine-initial/0016-xaudio2_7-tests-Add-more-tests.patch - patch_apply xactengine-initial/0017-include-Correct-the-name-of-WAVEBANKMINIWAVEFORMAT.patch ( printf '%s\n' '+ { "Ethan Lee", "include: Add xact3.idl.", 1 },'; printf '%s\n' '+ { "Ethan Lee", "xaudio2: Add support for xactengine3.", 1 },'; @@ -6544,7 +6435,6 @@ if test "$enable_xactengine_initial" -eq 1; then printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add XACTENGINE_* error codes.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add XACT defines.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7/tests: Add more tests.", 1 },'; - printf '%s\n' '+ { "Zebediah Figura", "include: Correct the name of WAVEBANKMINIWAVEFORMAT.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/server-FileEndOfFileInformation/0001-ntdll-Set-EOF-on-file-which-has-a-memory-mapping-sho.patch b/patches/server-FileEndOfFileInformation/0001-ntdll-Set-EOF-on-file-which-has-a-memory-mapping-sho.patch index 229655b2..64df7cee 100644 --- a/patches/server-FileEndOfFileInformation/0001-ntdll-Set-EOF-on-file-which-has-a-memory-mapping-sho.patch +++ b/patches/server-FileEndOfFileInformation/0001-ntdll-Set-EOF-on-file-which-has-a-memory-mapping-sho.patch @@ -1,27 +1,27 @@ -From ed63a76dc481da8af510fb8f9ae6c399ca0ca0ac Mon Sep 17 00:00:00 2001 +From b956b7f35f07153aa61a9a57a1b5bb7f2f9d1e8b Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Fri, 21 Aug 2015 21:58:51 +0800 Subject: [PATCH] ntdll: Set EOF on file which has a memory mapping should fail. --- - dlls/ntdll/file.c | 27 ++++++---------------- - server/fd.c | 55 +++++++++++++++++++++++++++++++++++++++++++++ - server/protocol.def | 7 ++++++ - 3 files changed, 69 insertions(+), 20 deletions(-) + dlls/ntdll/unix/file.c | 23 ++++-------------- + server/fd.c | 55 ++++++++++++++++++++++++++++++++++++++++++ + server/protocol.def | 7 ++++++ + 3 files changed, 67 insertions(+), 18 deletions(-) -diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 013706889bb..a28ae265687 100644 ---- a/dlls/ntdll/file.c -+++ b/dlls/ntdll/file.c -@@ -2747,30 +2747,17 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, +diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c +index d39ca8cd635..b0ec1ff3f5f 100644 +--- a/dlls/ntdll/unix/file.c ++++ b/dlls/ntdll/unix/file.c +@@ -4038,28 +4038,15 @@ NTSTATUS WINAPI NtSetInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, case FileEndOfFileInformation: if (len >= sizeof(FILE_END_OF_FILE_INFORMATION)) { - struct stat st; const FILE_END_OF_FILE_INFORMATION *info = ptr; -- if ((io->u.Status = unix_funcs->server_get_unix_fd( handle, 0, &fd, &needs_close, NULL, NULL ))) +- if ((io->u.Status = server_get_unix_fd( handle, 0, &fd, &needs_close, NULL, NULL ))) - return io->u.Status; - - /* first try normal truncate */ @@ -41,22 +41,18 @@ index 013706889bb..a28ae265687 100644 + req->eof = info->EndOfFile.QuadPart; + io->u.Status = wine_server_call( req ); } -- io->u.Status = FILE_GetNtStatus(); +- io->u.Status = errno_to_status( errno ); - - if (needs_close) close( fd ); -- } -- else io->u.Status = STATUS_INVALID_PARAMETER_3; + SERVER_END_REQ; -+ } else -+ io->u.Status = STATUS_INVALID_PARAMETER_3; + } + else io->u.Status = STATUS_INVALID_PARAMETER_3; break; - - case FilePipeInformation: diff --git a/server/fd.c b/server/fd.c -index 06d1d81bdb0..7b016acb382 100644 +index 7ea8ac273e5..3a92ca5fd48 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -2534,6 +2534,50 @@ failed: +@@ -2574,6 +2574,50 @@ failed: free( name ); } @@ -107,7 +103,7 @@ index 06d1d81bdb0..7b016acb382 100644 struct completion *fd_get_completion( struct fd *fd, apc_param_t *p_key ) { *p_key = fd->comp_key; -@@ -2812,3 +2856,14 @@ DECL_HANDLER(set_fd_name_info) +@@ -2852,3 +2896,14 @@ DECL_HANDLER(set_fd_name_info) } if (root_fd) release_object( root_fd ); } @@ -123,10 +119,10 @@ index 06d1d81bdb0..7b016acb382 100644 + } +} diff --git a/server/protocol.def b/server/protocol.def -index 423e6079009..c6110fc675e 100644 +index c3442c06e9b..80ca76f9271 100644 --- a/server/protocol.def +++ b/server/protocol.def -@@ -3821,6 +3821,13 @@ struct handle_info +@@ -3822,6 +3822,13 @@ struct handle_info @END @@ -141,5 +137,5 @@ index 423e6079009..c6110fc675e 100644 @REQ(get_window_layered_info) user_handle_t handle; /* handle to the window */ -- -2.26.2 +2.27.0 diff --git a/patches/server-File_Permissions/definition b/patches/server-File_Permissions/definition index a699a6fd..4d43f0da 100644 --- a/patches/server-File_Permissions/definition +++ b/patches/server-File_Permissions/definition @@ -1,3 +1,5 @@ Fixes: Allow to open files/directories without any access rights in order to query attributes Fixes: [44691] Improve mapping of DACL to file permissions Depends: ntdll-Junction_Points +# Re-enable me when ntdll-Junction_Points gets re-enabled! +Disabled: true diff --git a/patches/server-Inherited_ACLs/definition b/patches/server-Inherited_ACLs/definition index 47a12d72..fb18b908 100644 --- a/patches/server-Inherited_ACLs/definition +++ b/patches/server-Inherited_ACLs/definition @@ -1,4 +1,4 @@ Depends: server-Stored_ACLs Fixes: Support for inherited file ACLs -# Re-enable me when ntdll-DOS_Attributes gets re-enabled! +# Re-enable me when ntdll-Junction_Points gets re-enabled! Disabled: true diff --git a/patches/server-Stored_ACLs/definition b/patches/server-Stored_ACLs/definition index c2f25c70..6d80bbd6 100644 --- a/patches/server-Stored_ACLs/definition +++ b/patches/server-Stored_ACLs/definition @@ -1,5 +1,5 @@ Depends: ntdll-DOS_Attributes Depends: server-File_Permissions Fixes: [33576] Support for stored file ACLs -# Re-enable me when ntdll-DOS_Attributes gets re-enabled! +# Re-enable me when ntdll-Junction_Points gets re-enabled! Disabled: true diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch index 695c5855..5231062b 100644 --- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch @@ -1,4 +1,4 @@ -From 607a86f034677449a7fa4628ec2df013b65bfa90 Mon Sep 17 00:00:00 2001 +From 7e13aba360d1dd4d5a09f5b9a624dfa4e61d3ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 11 May 2017 05:32:55 +0200 Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. @@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover. 14 files changed, 221 insertions(+), 32 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index c2e65c94abc..0f9fe76e9af 100644 +index a09c17e3b50..d22fd0141c0 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -3812,6 +3812,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) @@ -106,7 +106,7 @@ index 5a6809638ae..c6988ce08e3 100644 peb = teb->Peb; peb->FastPebLock = &peb_lock; diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index 97b191e1a5b..2dbaa43e731 100644 +index 0470f5eaa8a..55afc1748ef 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) @@ -127,7 +127,7 @@ index 97b191e1a5b..2dbaa43e731 100644 thread_data->request_fd = -1; thread_data->reply_fd = -1; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index abedfc316ae..62d0c115026 100644 +index 0d1d0e5025f..ac792801283 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -111,7 +111,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE @@ -140,19 +140,19 @@ index abedfc316ae..62d0c115026 100644 extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index 873cc7abdf2..c6fb8e0f2d4 100644 +index dd5c3e3784e..dae93ab1632 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 44 -+#define NTDLL_UNIXLIB_VERSION 45 +-#define NTDLL_UNIXLIB_VERSION 47 ++#define NTDLL_UNIXLIB_VERSION 48 struct unix_funcs { -@@ -225,7 +225,7 @@ struct unix_funcs +@@ -253,7 +253,7 @@ struct unix_funcs /* thread/process functions */ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch index e40a8014..c40eb8ca 100644 --- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch +++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch @@ -1,4 +1,4 @@ -From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001 +From b37d55d71b294fb96cb4816f2cb3f2448731e115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 7 Sep 2017 00:38:09 +0200 Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. @@ -15,10 +15,10 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. 8 files changed, 305 insertions(+), 14 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index 1f525194ce73..21af7b4ce7a4 100644 +index 95939ba6bde..ae5462f6e55 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c -@@ -1574,7 +1574,7 @@ static void test_filenames(void) +@@ -1573,7 +1573,7 @@ static void test_filenames(void) static void test_FakeDLL(void) { @@ -27,7 +27,7 @@ index 1f525194ce73..21af7b4ce7a4 100644 NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL; IMAGE_EXPORT_DIRECTORY *dir; HMODULE module = GetModuleHandleA("ntdll.dll"); -@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void) +@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void) dll_func = (BYTE *)GetProcAddress(module, func_name); ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name); @@ -42,7 +42,7 @@ index 1f525194ce73..21af7b4ce7a4 100644 todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name); continue; diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index 2dbaa43e731a..e1da90222d38 100644 +index 55afc1748ef..0bffa4029c1 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ @@ -51,14 +51,14 @@ index 2dbaa43e731a..e1da90222d38 100644 info_size = server_init_thread( teb->Peb, suspend ); - virtual_map_user_shared_data(); + virtual_map_user_shared_data(syscall_handler); + init_files(); NtCreateKeyedEvent( &keyed_event, GENERIC_READ | GENERIC_WRITE, NULL, 0 ); - if (size) *size = info_size; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 33a551e947c2..d06f366d3c6d 100644 +index ac792801283..b7b66b6b440 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; +@@ -176,7 +176,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN; extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN; extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN; @@ -68,10 +68,10 @@ index 33a551e947c2..d06f366d3c6d 100644 extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN; extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index 9fb2ecd38ca3..ad11485d1cea 100644 +index b656a62c154..9b415fe5058 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void) +@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void) TEB *teb; PEB *peb; NTSTATUS status; @@ -88,7 +88,7 @@ index 9fb2ecd38ca3..ad11485d1cea 100644 if (status) { ERR( "wine: failed to map the shared user data: %08x\n", status ); -@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end ) +@@ -2791,7 +2791,7 @@ void virtual_clear_thread_stack( void *stack_end ) /*********************************************************************** * virtual_map_user_shared_data */ @@ -97,7 +97,7 @@ index 9fb2ecd38ca3..ad11485d1cea 100644 { static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0}; -@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void) +@@ -2814,6 +2814,11 @@ void virtual_map_user_shared_data(void) ERR( "failed to remap the process USD: %d\n", res ); exit(1); } @@ -110,7 +110,7 @@ index 9fb2ecd38ca3..ad11485d1cea 100644 NtClose( section ); } diff --git a/libs/wine/loader.c b/libs/wine/loader.c -index 4597a6cb3243..3d0d75e9c6d3 100644 +index 4597a6cb324..3d0d75e9c6d 100644 --- a/libs/wine/loader.c +++ b/libs/wine/loader.c @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) @@ -126,7 +126,7 @@ index 4597a6cb3243..3d0d75e9c6d3 100644 sec++; diff --git a/server/mapping.c b/server/mapping.c -index 0941dd87c05d..002f3215af2e 100644 +index 0941dd87c05..002f3215af2 100644 --- a/server/mapping.c +++ b/server/mapping.c @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico @@ -143,7 +143,7 @@ index 0941dd87c05d..002f3215af2e 100644 } diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c -index 74216f8bb6e7..820516329a47 100644 +index 74216f8bb6e..820516329a4 100644 --- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) @@ -156,7 +156,7 @@ index 74216f8bb6e7..820516329a47 100644 if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER)) return 0; diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c -index 07d6eed05fcc..9cc4698d0d7d 100644 +index 07d6eed05fc..9cc4698d0d7 100644 --- a/tools/winebuild/spec32.c +++ b/tools/winebuild/spec32.c @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec ) @@ -497,5 +497,5 @@ index 07d6eed05fcc..9cc4698d0d7d 100644 } else -- -2.26.2 +2.27.0 diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch index 92f9f472..a851402f 100644 --- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch +++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch @@ -1,4 +1,4 @@ -From 85887cf68b055ca7149a428b32e9cac31e2190ca Mon Sep 17 00:00:00 2001 +From 02562df4bb8c6c805b140335b9076a2a895244bf Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 6 Sep 2015 12:41:17 +0200 Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in @@ -48,10 +48,10 @@ index 9e1cc85a36e..3f4ba60b7bb 100644 /*********************************************************************** * wine_server_release_fd (NTDLL.@) diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index b09049b855b..bd37b8362b0 100644 +index 73be77e7afc..2393f73b306 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -937,6 +937,7 @@ static struct unix_funcs unix_funcs = +@@ -952,6 +952,7 @@ static struct unix_funcs unix_funcs = fork_and_exec, wine_server_call, server_send_fd, @@ -91,7 +91,7 @@ index cf6f6c3832c..586d0ffcf72 100644 /*********************************************************************** * server_get_unix_fd diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index e82b0960343..673d01c6bf9 100644 +index 223015a785a..9c385ec42d8 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -99,6 +99,7 @@ extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN; @@ -103,19 +103,19 @@ index e82b0960343..673d01c6bf9 100644 int *needs_close, enum server_fd_type *type, unsigned int *options ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index 958fab4c059..873cc7abdf2 100644 +index 6c8e151b554..dd5c3e3784e 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 43 -+#define NTDLL_UNIXLIB_VERSION 44 +-#define NTDLL_UNIXLIB_VERSION 46 ++#define NTDLL_UNIXLIB_VERSION 47 struct unix_funcs { -@@ -239,6 +239,7 @@ struct unix_funcs +@@ -267,6 +267,7 @@ struct unix_funcs /* server functions */ unsigned int (CDECL *server_call)( void *req_ptr ); void (CDECL *server_send_fd)( int fd ); diff --git a/patches/xactengine-initial/0017-include-Correct-the-name-of-WAVEBANKMINIWAVEFORMAT.patch b/patches/xactengine-initial/0017-include-Correct-the-name-of-WAVEBANKMINIWAVEFORMAT.patch deleted file mode 100644 index c7d574f9..00000000 --- a/patches/xactengine-initial/0017-include-Correct-the-name-of-WAVEBANKMINIWAVEFORMAT.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e8e4434d2a8edf0b964ed0e93500b20718ba961d Mon Sep 17 00:00:00 2001 -From: Zebediah Figura -Date: Fri, 12 Jun 2020 17:59:11 -0500 -Subject: [PATCH] include: Correct the name of WAVEBANKMINIWAVEFORMAT. - -Signed-off-by: Zebediah Figura ---- - include/xact3wb.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/xact3wb.h b/include/xact3wb.h -index c68d7a30fad..81b1518930d 100644 ---- a/include/xact3wb.h -+++ b/include/xact3wb.h -@@ -138,7 +138,7 @@ typedef struct WAVEBANKDATA - DWORD dwEntryMetaDataElementSize; - DWORD dwEntryNameElementSize; - DWORD dwAlignment; -- WAVEBANKMINIFORMAT CompactFormat; -+ WAVEBANKMINIWAVEFORMAT CompactFormat; - FILETIME BuildTime; - } WAVEBANKDATA, *LPWAVEBANKDATA; - typedef const WAVEBANKDATA *LPCWAVEBANKDATA; --- -2.27.0 - diff --git a/staging/upstream-commit b/staging/upstream-commit index 2e2694bd..2becbdc3 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d +634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb