diff --git a/README.md b/README.md index d3eb1a3d..4c78be5d 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Included bug fixes and improvements * Support for D3DXGetShaderInputSemantics ([Wine Bug #22682](https://bugs.winehq.org/show_bug.cgi?id=22682)) * Support for DOS hidden/system file attributes ([Wine Bug #9158](https://bugs.winehq.org/show_bug.cgi?id=9158)) * Support for Dynamic DST (daylight saving time) information in registry -* Support for FindFirstFileExW level FindExInfoBasic ([Wine Bug #37354](https://bugs.winehq.org/show_bug.cgi?id=37354)) +* ~~Support for FindFirstFileExW level FindExInfoBasic~~ ([Wine Bug #37354](https://bugs.winehq.org/show_bug.cgi?id=37354)) * Support for GdipCreateRegionRgnData ([Wine Bug #34843](https://bugs.winehq.org/show_bug.cgi?id=34843)) * Support for GetFinalPathNameByHandle ([Wine Bug #36073](https://bugs.winehq.org/show_bug.cgi?id=36073)) * Support for GetSystemTimes ([Wine Bug #19813](https://bugs.winehq.org/show_bug.cgi?id=19813)) @@ -112,7 +112,7 @@ Included bug fixes and improvements * Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495)) * Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449)) * Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630)) -* Support for TLB dependencies lookup in resources ([Wine Bug #34184](https://bugs.winehq.org/show_bug.cgi?id=34184)) +* ~~Support for TLB dependencies lookup in resources~~ ([Wine Bug #34184](https://bugs.winehq.org/show_bug.cgi?id=34184)) * Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](https://bugs.winehq.org/show_bug.cgi?id=30648)) * Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048)) * Support for UTF7 encoding/decoding ([Wine Bug #27388](https://bugs.winehq.org/show_bug.cgi?id=27388)) @@ -125,10 +125,10 @@ Included bug fixes and improvements * Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256)) * Support for stored file ACLs ([Wine Bug #31858](https://bugs.winehq.org/show_bug.cgi?id=31858)) * Support for wine64 on FreeBSD/PC-BSD ([Wine Bug #34330](https://bugs.winehq.org/show_bug.cgi?id=34330)) -* Support for ws2_32.inet_pton ([Wine Bug #36713](https://bugs.winehq.org/show_bug.cgi?id=36713)) +* ~~Support for ws2_32.inet_pton~~ ([Wine Bug #36713](https://bugs.winehq.org/show_bug.cgi?id=36713)) * Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586)) * Unity3D Editor requires ProductId registry value ([Wine Bug #36964](https://bugs.winehq.org/show_bug.cgi?id=36964)) -* Update ProductVersion property when applying MSI transforms ([Wine Bug #37493](https://bugs.winehq.org/show_bug.cgi?id=37493)) +* ~~Update ProductVersion property when applying MSI transforms~~ ([Wine Bug #37493](https://bugs.winehq.org/show_bug.cgi?id=37493)) * Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938)) * Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](https://bugs.winehq.org/show_bug.cgi?id=23033)) * Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384)) diff --git a/debian/changelog b/debian/changelog index d0c0140c..668245ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,10 @@ wine-compholio (1.7.31) UNRELEASED; urgency=low * Added possibility to temporarily disable patches to patch system. * Added patch to allow selecting specific audio device for PulseAudio backend. * Removed patch for iphlpapi stub functions (accepted upstream). - * Removed first part of patches for FindFirstFileExW (accepted upstream). + * Removed patches for FindFirstFileExW (accepted upstream). + * Removed patches for TLB dependencies lookup in resources (accepted upstream). + * Removed patches for ws2_32.inet_pton implementation (fixed upstream). + * Removed patch to update properties when applying MSI transforms (fixed upstream). -- Sebastian Lackner Mon, 03 Nov 2014 20:10:04 +0100 wine-compholio (1.7.30) unstable; urgency=low diff --git a/patches/Makefile b/patches/Makefile index 8d27b260..102d0a9a 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -38,7 +38,6 @@ PATCHLIST := \ imagehlp-BindImageEx.ok \ imm32-Cross_Thread_Access.ok \ iphlpapi-TCP_Table.ok \ - kernel32-FindFirstFile.ok \ kernel32-GetFinalPathNameByHandle.ok \ kernel32-GetNumaProcessorNode.ok \ kernel32-GetSystemTimes.ok \ @@ -47,7 +46,6 @@ PATCHLIST := \ kernel32-UTF7_Support.ok \ libs-Unicode_Collation.ok \ libwine-BSD_mmap_fixed.ok \ - msi-Transform_ProductVersion.ok \ msvcp90-basic_string_wchar_dtor.ok \ ntdll-DOS_Attributes.ok \ ntdll-Dynamic_DST.ok \ @@ -64,7 +62,6 @@ PATCHLIST := \ ntdll-WRITECOPY.ok \ ntoskrnl-Irp_Status.ok \ ntoskrnl-Write_CR4.ok \ - oleaut32-TLB_Resource.ok \ quartz-MediaSeeking_Positions.ok \ riched20-IText_Interface.ok \ server-ACL_Compat.ok \ @@ -104,7 +101,6 @@ PATCHLIST := \ wpcap-Dynamic_Linking.ok \ ws2_32-Connect_Time.ok \ ws2_32-TransmitFile.ok \ - ws2_32-inet_pton.ok \ wtsapi32-EnumerateProcesses.ok .PHONY: install @@ -530,24 +526,6 @@ iphlpapi-TCP_Table.ok: echo '+ { "iphlpapi-TCP_Table", "Erich E. Hoover", "Implement AllocateAndGetTcpExTableFromStack." },'; \ ) > iphlpapi-TCP_Table.ok -# Patchset kernel32-FindFirstFile -# | -# | Included patches: -# | * Implement FindFirstFileExW level FindExInfoBasic. [by Sebastian Lackner] -# | -# | This patchset fixes the following Wine bugs: -# | * [#37354] Support for FindFirstFileExW level FindExInfoBasic -# | -# | Modified files: -# | * dlls/kernel32/file.c, dlls/kernel32/tests/file.c -# | -.INTERMEDIATE: kernel32-FindFirstFile.ok -kernel32-FindFirstFile.ok: - $(call APPLY_FILE,kernel32-FindFirstFile/0001-kernel32-Implement-FindFirstFileExW-level-FindExInfo.patch) - @( \ - echo '+ { "kernel32-FindFirstFile", "Sebastian Lackner", "Implement FindFirstFileExW level FindExInfoBasic." },'; \ - ) > kernel32-FindFirstFile.ok - # Patchset kernel32-GetFinalPathNameByHandle # | # | Included patches: @@ -713,24 +691,6 @@ mshtml-sessionStorage.ok: echo '+ { "mshtml-sessionStorage", "Zhenbo Li", "Implement sessionStorage (partially)." },'; \ ) > mshtml-sessionStorage.ok -# Patchset msi-Transform_ProductVersion -# | -# | Included patches: -# | * Update ProductVersion property when applying MSI transforms. [by Sebastian Lackner] -# | -# | This patchset fixes the following Wine bugs: -# | * [#37493] Update ProductVersion property when applying MSI transforms -# | -# | Modified files: -# | * dlls/msi/patch.c -# | -.INTERMEDIATE: msi-Transform_ProductVersion.ok -msi-Transform_ProductVersion.ok: - $(call APPLY_FILE,msi-Transform_ProductVersion/0001-msi-Update-ProductVersion-property-when-applying-tra.patch) - @( \ - echo '+ { "msi-Transform_ProductVersion", "Sebastian Lackner", "Update ProductVersion property when applying MSI transforms." },'; \ - ) > msi-Transform_ProductVersion.ok - # Patchset msvcp90-basic_string_wchar_dtor # | # | Included patches: @@ -1040,24 +1000,6 @@ ntoskrnl-Write_CR4.ok: echo '+ { "ntoskrnl-Write_CR4", "Stefan Leichter", "Emulate write to CR4 register." },'; \ ) > ntoskrnl-Write_CR4.ok -# Patchset oleaut32-TLB_Resource -# | -# | Included patches: -# | * Implement TLB dependencies lookup in resources. [by Guillaume Charifi] -# | -# | This patchset fixes the following Wine bugs: -# | * [#34184] Support for TLB dependencies lookup in resources -# | -# | Modified files: -# | * dlls/oleaut32/tests/typelib.c, dlls/oleaut32/typelib.c -# | -.INTERMEDIATE: oleaut32-TLB_Resource.ok -oleaut32-TLB_Resource.ok: - $(call APPLY_FILE,oleaut32-TLB_Resource/0001-oleaut32-Implement-TLB-dependencies-lookup-in-resour.patch) - @( \ - echo '+ { "oleaut32-TLB_Resource", "Guillaume Charifi", "Implement TLB dependencies lookup in resources." },'; \ - ) > oleaut32-TLB_Resource.ok - # Patchset quartz-MediaSeeking_Positions # | # | Included patches: @@ -1823,24 +1765,6 @@ ws2_32-TransmitFile.ok: echo '+ { "ws2_32-TransmitFile", "Erich E. Hoover", "Implement TransmitFile." },'; \ ) > ws2_32-TransmitFile.ok -# Patchset ws2_32-inet_pton -# | -# | Included patches: -# | * Implement ws2_32.inet_pton. [by Bruno Jesus] -# | -# | This patchset fixes the following Wine bugs: -# | * [#36713] Support for ws2_32.inet_pton -# | -# | Modified files: -# | * dlls/ws2_32/socket.c, dlls/ws2_32/ws2_32.spec, include/ws2tcpip.h -# | -.INTERMEDIATE: ws2_32-inet_pton.ok -ws2_32-inet_pton.ok: - $(call APPLY_FILE,ws2_32-inet_pton/0001-ws2_32-Implement-inet_pton.patch) - @( \ - echo '+ { "ws2_32-inet_pton", "Bruno Jesus", "Implement ws2_32.inet_pton." },'; \ - ) > ws2_32-inet_pton.ok - # Patchset wtsapi32-EnumerateProcesses # | # | Included patches: diff --git a/patches/kernel32-FindFirstFile/0001-kernel32-Implement-FindFirstFileExW-level-FindExInfo.patch b/patches/kernel32-FindFirstFile/0001-kernel32-Implement-FindFirstFileExW-level-FindExInfo.patch deleted file mode 100644 index 0dee5401..00000000 --- a/patches/kernel32-FindFirstFile/0001-kernel32-Implement-FindFirstFileExW-level-FindExInfo.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 393e48362c7c856bcb4a9e1c3c58dca1250913b3 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 3 Oct 2014 21:00:22 +0200 -Subject: kernel32: Implement FindFirstFileExW level FindExInfoBasic. - ---- - dlls/kernel32/file.c | 14 +++++++++++--- - dlls/kernel32/tests/file.c | 46 +++++++++++++++++++++++++++++++++++----------- - 2 files changed, 46 insertions(+), 14 deletions(-) - -diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c -index 4a6fc13..006db1c 100644 ---- a/dlls/kernel32/file.c -+++ b/dlls/kernel32/file.c -@@ -57,6 +57,7 @@ typedef struct - HANDLE handle; /* handle to directory */ - CRITICAL_SECTION cs; /* crit section protecting this structure */ - FINDEX_SEARCH_OPS search_op; /* Flags passed to FindFirst. */ -+ FINDEX_INFO_LEVELS level; /* Level passed to FindFirst */ - UNICODE_STRING mask; /* file mask */ - UNICODE_STRING path; /* NT path used to open the directory */ - BOOL is_root; /* is directory the root of the drive? */ -@@ -1875,7 +1876,7 @@ HANDLE WINAPI FindFirstFileExW( LPCWSTR filename, FINDEX_INFO_LEVELS level, - SetLastError( ERROR_INVALID_PARAMETER ); - return INVALID_HANDLE_VALUE; - } -- if (level != FindExInfoStandard) -+ if (level != FindExInfoStandard && level != FindExInfoBasic) - { - FIXME("info level %d not implemented\n", level ); - SetLastError( ERROR_INVALID_PARAMETER ); -@@ -1979,6 +1980,7 @@ HANDLE WINAPI FindFirstFileExW( LPCWSTR filename, FINDEX_INFO_LEVELS level, - info->data_size = 0; - info->data = NULL; - info->search_op = search_op; -+ info->level = level; - - if (device) - { -@@ -2141,8 +2143,14 @@ BOOL WINAPI FindNextFileW( HANDLE handle, WIN32_FIND_DATAW *data ) - - memcpy( data->cFileName, dir_info->FileName, dir_info->FileNameLength ); - data->cFileName[dir_info->FileNameLength/sizeof(WCHAR)] = 0; -- memcpy( data->cAlternateFileName, dir_info->ShortName, dir_info->ShortNameLength ); -- data->cAlternateFileName[dir_info->ShortNameLength/sizeof(WCHAR)] = 0; -+ -+ if (info->level != FindExInfoBasic) -+ { -+ memcpy( data->cAlternateFileName, dir_info->ShortName, dir_info->ShortNameLength ); -+ data->cAlternateFileName[dir_info->ShortNameLength/sizeof(WCHAR)] = 0; -+ } -+ else -+ data->cAlternateFileName[0] = 0; - - TRACE("returning %s (%s)\n", - debugstr_w(data->cFileName), debugstr_w(data->cAlternateFileName) ); -diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c -index 0973efe..dd9cf06 100644 ---- a/dlls/kernel32/tests/file.c -+++ b/dlls/kernel32/tests/file.c -@@ -2562,7 +2562,7 @@ static void test_FindNextFileA(void) - ok ( err == ERROR_NO_MORE_FILES, "GetLastError should return ERROR_NO_MORE_FILES\n"); - } - --static void test_FindFirstFileExA(FINDEX_SEARCH_OPS search_ops, DWORD flags) -+static void test_FindFirstFileExA(FINDEX_INFO_LEVELS level, FINDEX_SEARCH_OPS search_ops, DWORD flags) - { - WIN32_FIND_DATAA search_results; - HANDLE handle; -@@ -2574,12 +2574,15 @@ static void test_FindFirstFileExA(FINDEX_SEARCH_OPS search_ops, DWORD flags) - return; - } - -+ trace("Running FindFirstFileExA tests with level=%d, search_ops=%d, flags=%d\n", -+ level, search_ops, flags); -+ - CreateDirectoryA("test-dir", NULL); - _lclose(_lcreat("test-dir\\file1", 0)); - _lclose(_lcreat("test-dir\\file2", 0)); - CreateDirectoryA("test-dir\\dir1", NULL); - SetLastError(0xdeadbeef); -- handle = pFindFirstFileExA("test-dir\\*", FindExInfoStandard, &search_results, search_ops, NULL, flags); -+ handle = pFindFirstFileExA("test-dir\\*", level, &search_results, search_ops, NULL, flags); - if (handle == INVALID_HANDLE_VALUE && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) - { - win_skip("FindFirstFileExA is not implemented\n"); -@@ -2590,16 +2593,26 @@ static void test_FindFirstFileExA(FINDEX_SEARCH_OPS search_ops, DWORD flags) - win_skip("FindFirstFileExA flag FIND_FIRST_EX_LARGE_FETCH not supported, skipping test\n"); - goto cleanup; - } -- ok(handle != INVALID_HANDLE_VALUE, "FindFirstFile failed (err=%u)\n", GetLastError()); -- ok(strcmp(search_results.cFileName, ".") == 0, "First entry should be '.', is %s\n", search_results.cFileName); -+ if ((level == FindExInfoBasic) && handle == INVALID_HANDLE_VALUE && GetLastError() == ERROR_INVALID_PARAMETER) -+ { -+ win_skip("FindFirstFileExA level FindExInfoBasic not supported, skipping test\n"); -+ goto cleanup; -+ } - - #define CHECK_NAME(fn) (strcmp((fn), "file1") == 0 || strcmp((fn), "file2") == 0 || strcmp((fn), "dir1") == 0) -+#define CHECK_LEVEL(fn) (level != FindExInfoBasic || !(fn)[0]) -+ -+ ok(handle != INVALID_HANDLE_VALUE, "FindFirstFile failed (err=%u)\n", GetLastError()); -+ ok(strcmp(search_results.cFileName, ".") == 0, "First entry should be '.', is %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); - - ok(FindNextFileA(handle, &search_results), "Fetching second file failed\n"); - ok(strcmp(search_results.cFileName, "..") == 0, "Second entry should be '..' is %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); - - ok(FindNextFileA(handle, &search_results), "Fetching third file failed\n"); - ok(CHECK_NAME(search_results.cFileName), "Invalid third entry - %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); - - SetLastError(0xdeadbeef); - ret = FindNextFileA(handle, &search_results); -@@ -2608,26 +2621,31 @@ static void test_FindFirstFileExA(FINDEX_SEARCH_OPS search_ops, DWORD flags) - skip("File system supports directory filtering\n"); - /* Results from the previous call are not cleared */ - ok(strcmp(search_results.cFileName, "dir1") == 0, "Third entry should be 'dir1' is %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); -+ - } - else - { - ok(ret, "Fetching fourth file failed\n"); - ok(CHECK_NAME(search_results.cFileName), "Invalid fourth entry - %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); - - ok(FindNextFileA(handle, &search_results), "Fetching fifth file failed\n"); - ok(CHECK_NAME(search_results.cFileName), "Invalid fifth entry - %s\n", search_results.cFileName); -+ ok(CHECK_LEVEL(search_results.cAlternateFileName), "FindFirstFile unexpectedly returned an alternate filename\n"); - - ok(FindNextFileA(handle, &search_results) == FALSE, "Fetching sixth file should fail\n"); - } - - #undef CHECK_NAME -+#undef CHECK_LEVEL - - FindClose( handle ); - - /* Most Windows systems seem to ignore the FIND_FIRST_EX_CASE_SENSITIVE flag. Unofficial documentation - * suggests that there are registry keys and that it might depend on the used filesystem. */ - SetLastError(0xdeadbeef); -- handle = pFindFirstFileExA("TEST-DIR\\*", FindExInfoStandard, &search_results, search_ops, NULL, flags); -+ handle = pFindFirstFileExA("TEST-DIR\\*", level, &search_results, search_ops, NULL, flags); - if (flags & FIND_FIRST_EX_CASE_SENSITIVE) - { - ok(handle != INVALID_HANDLE_VALUE || GetLastError() == ERROR_PATH_NOT_FOUND, -@@ -4192,13 +4210,19 @@ START_TEST(file) - test_MoveFileW(); - test_FindFirstFileA(); - test_FindNextFileA(); -- test_FindFirstFileExA(0, 0); -- test_FindFirstFileExA(0, FIND_FIRST_EX_CASE_SENSITIVE); -- test_FindFirstFileExA(0, FIND_FIRST_EX_LARGE_FETCH); -+ test_FindFirstFileExA(FindExInfoStandard, 0, 0); -+ test_FindFirstFileExA(FindExInfoStandard, 0, FIND_FIRST_EX_CASE_SENSITIVE); -+ test_FindFirstFileExA(FindExInfoStandard, 0, FIND_FIRST_EX_LARGE_FETCH); -+ test_FindFirstFileExA(FindExInfoBasic, 0, 0); -+ test_FindFirstFileExA(FindExInfoBasic, 0, FIND_FIRST_EX_CASE_SENSITIVE); -+ test_FindFirstFileExA(FindExInfoBasic, 0, FIND_FIRST_EX_LARGE_FETCH); - /* FindExLimitToDirectories is ignored if the file system doesn't support directory filtering */ -- test_FindFirstFileExA(FindExSearchLimitToDirectories, 0); -- test_FindFirstFileExA(FindExSearchLimitToDirectories, FIND_FIRST_EX_CASE_SENSITIVE); -- test_FindFirstFileExA(FindExSearchLimitToDirectories, FIND_FIRST_EX_LARGE_FETCH); -+ test_FindFirstFileExA(FindExInfoStandard, FindExSearchLimitToDirectories, 0); -+ test_FindFirstFileExA(FindExInfoStandard, FindExSearchLimitToDirectories, FIND_FIRST_EX_CASE_SENSITIVE); -+ test_FindFirstFileExA(FindExInfoStandard, FindExSearchLimitToDirectories, FIND_FIRST_EX_LARGE_FETCH); -+ test_FindFirstFileExA(FindExInfoBasic, FindExSearchLimitToDirectories, 0); -+ test_FindFirstFileExA(FindExInfoBasic, FindExSearchLimitToDirectories, FIND_FIRST_EX_CASE_SENSITIVE); -+ test_FindFirstFileExA(FindExInfoBasic, FindExSearchLimitToDirectories, FIND_FIRST_EX_LARGE_FETCH); - test_LockFile(); - test_file_sharing(); - test_offset_in_overlapped_structure(); --- -2.1.1 - diff --git a/patches/kernel32-FindFirstFile/definition b/patches/kernel32-FindFirstFile/definition deleted file mode 100644 index 9bc015ac..00000000 --- a/patches/kernel32-FindFirstFile/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Sebastian Lackner -Subject: Implement FindFirstFileExW level FindExInfoBasic. -Revision: 1 -Fixes: [37354] Support for FindFirstFileExW level FindExInfoBasic diff --git a/patches/msi-Transform_ProductVersion/0001-msi-Update-ProductVersion-property-when-applying-tra.patch b/patches/msi-Transform_ProductVersion/0001-msi-Update-ProductVersion-property-when-applying-tra.patch deleted file mode 100644 index 8a585f83..00000000 --- a/patches/msi-Transform_ProductVersion/0001-msi-Update-ProductVersion-property-when-applying-tra.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 89ce3a340e3086a4b223d8dbe8356eedcf7ec1f1 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 18 Sep 2014 00:38:15 +0200 -Subject: msi: Update ProductVersion property when applying transforms. - ---- - dlls/msi/patch.c | 21 ++++++++++++++++++--- - 1 file changed, 18 insertions(+), 3 deletions(-) - -diff --git a/dlls/msi/patch.c b/dlls/msi/patch.c -index a738de1..1cf5373 100644 ---- a/dlls/msi/patch.c -+++ b/dlls/msi/patch.c -@@ -118,7 +118,7 @@ error: - return NULL; - } - --static UINT check_transform_applicable( MSIPACKAGE *package, IStorage *transform ) -+static UINT check_transform_applicable( MSIPACKAGE *package, IStorage *transform, WCHAR **version_to ) - { - static const UINT supported_flags = - MSITRANSFORM_VALIDATE_PRODUCT | MSITRANSFORM_VALIDATE_LANGUAGE | -@@ -255,9 +255,16 @@ static UINT check_transform_applicable( MSIPACKAGE *package, IStorage *transform - msi_free( upgrade_code_installed ); - } - -+ if ((valid_flags & wanted_flags) != wanted_flags) -+ { -+ free_transform_desc( desc ); -+ msiobj_release( &si->hdr ); -+ return ERROR_FUNCTION_FAILED; -+ } -+ -+ *version_to = strdupW( desc->version_to ); - free_transform_desc( desc ); - msiobj_release( &si->hdr ); -- if ((valid_flags & wanted_flags) != wanted_flags) return ERROR_FUNCTION_FAILED; - TRACE("applicable transform\n"); - return ERROR_SUCCESS; - } -@@ -266,6 +273,7 @@ static UINT apply_substorage_transform( MSIPACKAGE *package, MSIDATABASE *patch_ - { - UINT ret = ERROR_FUNCTION_FAILED; - IStorage *stg = NULL; -+ WCHAR *version_to; - HRESULT r; - - TRACE("%p %s\n", package, debugstr_w(name)); -@@ -278,9 +286,16 @@ static UINT apply_substorage_transform( MSIPACKAGE *package, MSIDATABASE *patch_ - r = IStorage_OpenStorage( patch_db->storage, name, NULL, STGM_SHARE_EXCLUSIVE, NULL, 0, &stg ); - if (SUCCEEDED(r)) - { -- ret = check_transform_applicable( package, stg ); -+ ret = check_transform_applicable( package, stg, &version_to ); - if (ret == ERROR_SUCCESS) -+ { - msi_table_apply_transform( package->db, stg ); -+ if (version_to) -+ { -+ msi_set_property( package->db, szProductVersion, version_to, -1 ); -+ msi_free( version_to ); -+ } -+ } - else - TRACE("substorage transform %s wasn't applicable\n", debugstr_w(name)); - IStorage_Release( stg ); --- -2.1.2 - diff --git a/patches/msi-Transform_ProductVersion/definition b/patches/msi-Transform_ProductVersion/definition deleted file mode 100644 index 2b3b0d17..00000000 --- a/patches/msi-Transform_ProductVersion/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Sebastian Lackner -Subject: Update ProductVersion property when applying MSI transforms. -Revision: 1 -Fixes: [37493] Update ProductVersion property when applying MSI transforms diff --git a/patches/oleaut32-TLB_Resource/0001-oleaut32-Implement-TLB-dependencies-lookup-in-resour.patch b/patches/oleaut32-TLB_Resource/0001-oleaut32-Implement-TLB-dependencies-lookup-in-resour.patch deleted file mode 100644 index f3c6f698..00000000 --- a/patches/oleaut32-TLB_Resource/0001-oleaut32-Implement-TLB-dependencies-lookup-in-resour.patch +++ /dev/null @@ -1,127 +0,0 @@ -From ad5b73eba53261f5821493068386c41a8d072751 Mon Sep 17 00:00:00 2001 -From: Guillaume Charifi -Date: Sat, 1 Nov 2014 08:47:44 +0100 -Subject: oleaut32: Implement TLB dependencies lookup in resources. - -Changes by Sebastian Lackner : -* Avoid duplicating code for loading typelibs. -* Avoid casts from const to non-const variables. -* Simplify logic to generate filename. -* Use appropriate function for UUID comparison. ---- - dlls/oleaut32/tests/typelib.c | 2 +- - dlls/oleaut32/typelib.c | 73 +++++++++++++++++++++++++++++++++++++------ - 2 files changed, 65 insertions(+), 10 deletions(-) - -diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c -index 728185a..45a56ea 100644 ---- a/dlls/oleaut32/tests/typelib.c -+++ b/dlls/oleaut32/tests/typelib.c -@@ -5594,7 +5594,7 @@ static void test_dep(void) { - ok(hr == S_OK, "got: %x\n", hr); - - hr = ITypeInfo_GetRefTypeInfo(ptInfo, refType, &ptInfoExt); -- todo_wine ok(hr == S_OK || broken(hr == TYPE_E_CANTLOADLIBRARY) /* win 2000 */, "got: %x\n", hr); -+ ok(hr == S_OK || broken(hr == TYPE_E_CANTLOADLIBRARY) /* win 2000 */, "got: %x\n", hr); - - ITypeInfo_Release(ptInfo); - if(ptInfoExt) -diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c -index 00f5043..6497313 100644 ---- a/dlls/oleaut32/typelib.c -+++ b/dlls/oleaut32/typelib.c -@@ -7572,6 +7572,48 @@ static HRESULT ITypeInfoImpl_GetDispatchRefTypeInfo( ITypeInfo *iface, - return E_FAIL; - } - -+struct search_res_tlb_params -+{ -+ const GUID *guid; -+ ITypeLib *pTLib; -+}; -+ -+static BOOL CALLBACK search_res_tlb(HMODULE hModule, LPCWSTR lpszType, LPWSTR lpszName, LONG_PTR lParam) -+{ -+ struct search_res_tlb_params *params = (LPVOID)lParam; -+ static const WCHAR formatW[] = {'\\','%','d',0}; -+ WCHAR szPath[MAX_PATH+1]; -+ ITypeLib2 *pTLib = NULL; -+ HRESULT ret; -+ DWORD len; -+ -+ if (IS_INTRESOURCE(lpszName) == FALSE) -+ return TRUE; -+ -+ if (!(len = GetModuleFileNameW(hModule, szPath, MAX_PATH))) -+ return TRUE; -+ -+ if (snprintfW(szPath + len, sizeof(szPath)/sizeof(WCHAR) - len, -+ formatW, PtrToInt(lpszName)) < 0) -+ { -+ return TRUE; -+ } -+ -+ ret = LoadTypeLibEx(szPath, REGKIND_NONE, (ITypeLib **)&pTLib); -+ if (SUCCEEDED(ret)) -+ { -+ ITypeLibImpl *impl = impl_from_ITypeLib2(pTLib); -+ if (IsEqualGUID(params->guid, impl->guid)) -+ { -+ params->pTLib = (ITypeLib *)pTLib; -+ return FALSE; /* stop enumeration */ -+ } -+ ITypeLib_Release((ITypeLib *)pTLib); -+ } -+ -+ return TRUE; -+} -+ - /* ITypeInfo::GetRefTypeInfo - * - * If a type description references other type descriptions, it retrieves -@@ -7665,20 +7707,33 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo( - ITypeLib_AddRef(pTLib); - result = S_OK; - } else { -+ static const WCHAR TYPELIBW[] = {'T','Y','P','E','L','I','B',0}; -+ struct search_res_tlb_params params; - BSTR libnam; - - TRACE("typeinfo in imported typelib that isn't already loaded\n"); - -- result = query_typelib_path(TLB_get_guid_null(ref_type->pImpTLInfo->guid), -- ref_type->pImpTLInfo->wVersionMajor, -- ref_type->pImpTLInfo->wVersionMinor, -- This->pTypeLib->syskind, -- ref_type->pImpTLInfo->lcid, &libnam, TRUE); -- if(FAILED(result)) -- libnam = SysAllocString(ref_type->pImpTLInfo->name); -+ /* Search in resource table */ -+ params.guid = TLB_get_guid_null(ref_type->pImpTLInfo->guid); -+ params.pTLib = NULL; -+ EnumResourceNamesW(NULL, TYPELIBW, search_res_tlb, (LONG_PTR)¶ms); -+ pTLib = params.pTLib; -+ result = S_OK; - -- result = LoadTypeLib(libnam, &pTLib); -- SysFreeString(libnam); -+ if (!pTLib) -+ { -+ /* Search on disk */ -+ result = query_typelib_path(TLB_get_guid_null(ref_type->pImpTLInfo->guid), -+ ref_type->pImpTLInfo->wVersionMajor, -+ ref_type->pImpTLInfo->wVersionMinor, -+ This->pTypeLib->syskind, -+ ref_type->pImpTLInfo->lcid, &libnam, TRUE); -+ if (FAILED(result)) -+ libnam = SysAllocString(ref_type->pImpTLInfo->name); -+ -+ result = LoadTypeLib(libnam, &pTLib); -+ SysFreeString(libnam); -+ } - - if(SUCCEEDED(result)) { - ref_type->pImpTLInfo->pImpTypeLib = impl_from_ITypeLib(pTLib); --- -2.1.2 - diff --git a/patches/oleaut32-TLB_Resource/definition b/patches/oleaut32-TLB_Resource/definition deleted file mode 100644 index a535d96d..00000000 --- a/patches/oleaut32-TLB_Resource/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Guillaume Charifi -Subject: Implement TLB dependencies lookup in resources. -Revision: 1 -Fixes: [34184] Support for TLB dependencies lookup in resources diff --git a/patches/ws2_32-inet_pton/0001-ws2_32-Implement-inet_pton.patch b/patches/ws2_32-inet_pton/0001-ws2_32-Implement-inet_pton.patch deleted file mode 100644 index 0f49eba7..00000000 --- a/patches/ws2_32-inet_pton/0001-ws2_32-Implement-inet_pton.patch +++ /dev/null @@ -1,57 +0,0 @@ -From c787fe4fa34e952cdc77501c70db6d210f471814 Mon Sep 17 00:00:00 2001 -From: Bruno Jesus <00cpxxx@gmail.com> -Date: Sun, 27 Jul 2014 09:38:18 -0600 -Subject: ws2_32: Implement inet_pton. - ---- - dlls/ws2_32/socket.c | 10 ++++++++++ - dlls/ws2_32/ws2_32.spec | 1 + - include/ws2tcpip.h | 2 +- - 3 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c -index 5900c8f..75adae5 100644 ---- a/dlls/ws2_32/socket.c -+++ b/dlls/ws2_32/socket.c -@@ -6904,6 +6904,16 @@ PCSTR WINAPI WS_inet_ntop( INT family, PVOID addr, PSTR buffer, SIZE_T len ) - } - - /*********************************************************************** -+ * inet_pton (WS2_32.@) -+ */ -+INT WINAPI WS_inet_pton( INT family, PCSTR addr, PVOID buffer) -+{ -+ INT ret = inet_pton(family, addr, buffer); -+ if (ret == -1) SetLastError(wsaErrno()); -+ return ret; -+} -+ -+/*********************************************************************** - * WSAStringToAddressA (WS2_32.80) - */ - INT WINAPI WSAStringToAddressA(LPSTR AddressString, -diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec -index 0811b74..f7c6c2d 100644 ---- a/dlls/ws2_32/ws2_32.spec -+++ b/dlls/ws2_32/ws2_32.spec -@@ -121,3 +121,4 @@ - @ stdcall getaddrinfo(str str ptr ptr) WS_getaddrinfo - @ stdcall getnameinfo(ptr long ptr long ptr long long) WS_getnameinfo - @ stdcall inet_ntop(long ptr ptr long) WS_inet_ntop -+@ stdcall inet_pton(long ptr ptr) WS_inet_pton -diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h -index b3a6a1f..6002433 100644 ---- a/include/ws2tcpip.h -+++ b/include/ws2tcpip.h -@@ -177,7 +177,7 @@ PCSTR WINAPI WS(inet_ntop)(INT,PVOID,PSTR,SIZE_T); - #define InetNtopA WS(inet_ntop) - PCWSTR WINAPI InetNtopW(INT,PVOID,PWSTR,SIZE_T); - #define InetNtop WINELIB_NAME_AW(InetNtop) --int WINAPI WS(inet_pton)(INT,PCSTR,PVOID); -+INT WINAPI WS(inet_pton)(INT,PCSTR,PVOID); - #define InetPtonA WS(inet_pton) - int WINAPI InetPtonW(INT,PCWSTR,PVOID); - #define InetPton WINELIB_NAME_AW(InetPton) --- -1.7.9.5 - diff --git a/patches/ws2_32-inet_pton/definition b/patches/ws2_32-inet_pton/definition deleted file mode 100644 index e742532e..00000000 --- a/patches/ws2_32-inet_pton/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Bruno Jesus -Subject: Implement ws2_32.inet_pton. -Revision: 1 -Fixes: [36713] Support for ws2_32.inet_pton