diff --git a/debian/changelog b/debian/changelog index d366cb81..e2edc446 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,5 @@ wine-staging (1.7.34) UNRELEASED; urgency=low + * Temporarily disable dsound-FastMixer patch until rebased. * Rename debian package from 'wine-compholio' to 'wine-staging' and provide compatibility package. * Avoid duplicate wined3d specfile by adding PARENTSPEC Makefile argument. * Fix issue in DOS Attributes patch which broke ./configure on systems with alternative shells. @@ -31,6 +32,7 @@ wine-staging (1.7.34) UNRELEASED; urgency=low * Removed patch for stub of ntdll.RtlSetHeapInformation (accepted upstream). * Removed patch for wine64 support on FreeBSD (accepted upstream). * Removed patch for IoCsqInitialize (accepted upstream). + * Removed patch to fix invalid usage of RegOpenKeyExW in msdmo (fixed upstream). * Partially removed patches for ntdll DOS attributes (accepted upstream). * Partially removed patches for UTF7 support (accepted upstream). -- Sebastian Lackner Mon, 15 Dec 2014 22:42:09 +0100 diff --git a/patches/Makefile b/patches/Makefile index 563c1b8b..ec4218e8 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -41,7 +41,6 @@ PATCHLIST := \ dbghelp-KdHelp.ok \ ddraw-d3d_execute_buffer.ok \ dinput-Events.ok \ - dsound-Fast_Mixer.ok \ dxgi-GetDesc.ok \ fonts-Missing_Fonts.ok \ gdi32-MaxPixelFormats.ok \ @@ -62,7 +61,6 @@ PATCHLIST := \ kernel32-VerifyVersionInfo.ok \ libs-Unicode_Collation.ok \ makedep-PARENTSPEC.ok \ - msdmo-Fix_Typo.ok \ msvcp90-basic_string_wchar_dtor.ok \ msvcrt-atof_strtod.ok \ ntdll-DOS_Attributes.ok \ @@ -856,17 +854,15 @@ kernel32-Profile.ok: # | * [#27388] Support for UTF7 encoding/decoding # | # | Modified files: -# | * dlls/kernel32/locale.c, dlls/kernel32/tests/codepage.c +# | * dlls/kernel32/locale.c # | .INTERMEDIATE: kernel32-UTF7_Support.ok kernel32-UTF7_Support.ok: $(call APPLY_FILE,kernel32-UTF7_Support/0001-kernel32-Support-UTF-7-in-MultiByteToWideChar.patch) $(call APPLY_FILE,kernel32-UTF7_Support/0002-kernel32-Support-UTF-7-in-WideCharToMultiByte.patch) - $(call APPLY_FILE,kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch) @( \ echo '+ { "Alex Henrie", "kernel32: Support UTF-7 in MultiByteToWideChar.", 3 },'; \ echo '+ { "Alex Henrie", "kernel32: Support UTF-7 in WideCharToMultiByte.", 3 },'; \ - echo '+ { "Alex Henrie", "kernel32/tests: Add tests for UTF-7 conversion.", 1 },'; \ ) > kernel32-UTF7_Support.ok # Patchset kernel32-VerifyVersionInfo @@ -913,18 +909,6 @@ makedep-PARENTSPEC.ok: echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },'; \ ) > makedep-PARENTSPEC.ok -# Patchset msdmo-Fix_Typo -# | -# | Modified files: -# | * dlls/msdmo/dmoreg.c -# | -.INTERMEDIATE: msdmo-Fix_Typo.ok -msdmo-Fix_Typo.ok: - $(call APPLY_FILE,msdmo-Fix_Typo/0001-msdmo-Fix-invalid-usage-of-RegOpenKeyExW.patch) - @( \ - echo '+ { "Mark Harmstone", "msdmo: Fix invalid usage of RegOpenKeyExW.", 1 },'; \ - ) > msdmo-Fix_Typo.ok - # Patchset mshtml-sessionStorage # | # | Modified files: diff --git a/patches/dsound-Fast_Mixer/definition b/patches/dsound-Fast_Mixer/definition index 167962a0..111e541a 100644 --- a/patches/dsound-Fast_Mixer/definition +++ b/patches/dsound-Fast_Mixer/definition @@ -1 +1,2 @@ Fixes: [30639] Audio stuttering and performance drops in multiple applications +Disabled: true diff --git a/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch b/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch deleted file mode 100644 index 03351332..00000000 --- a/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch +++ /dev/null @@ -1,314 +0,0 @@ -From a7936c46c18d4c5a81c8eb2aa6c027aa0ae583b0 Mon Sep 17 00:00:00 2001 -From: Alex Henrie -Date: Fri, 17 Oct 2014 00:18:39 -0600 -Subject: kernel32/tests: Add tests for UTF-7 conversion. - ---- - dlls/kernel32/tests/codepage.c | 284 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 284 insertions(+) - -diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c -index aa7977d..fda83ca 100644 ---- a/dlls/kernel32/tests/codepage.c -+++ b/dlls/kernel32/tests/codepage.c -@@ -681,6 +681,265 @@ static void test_utf7_decoding(void) - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 /* 0x70-0x7F */ - }; - -+ const struct -+ { -+ /* inputs */ -+ char src[32]; -+ int srclen; -+ WCHAR* dst; -+ int dstlen; -+ /* expected outputs */ -+ WCHAR expected_dst[32]; -+ int chars_written; -+ int len; -+ DWORD error; -+ } -+ tests[] = -+ { -+ /* tests string conversion with srclen=-1 */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60,0x597D,0}, -+ 3, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests string conversion with srclen=-2 */ -+ { -+ "+T2BZfQ-", -+ -2, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60,0x597D,0}, -+ 3, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst) */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ 2, -+ {0x4F60,0x597D,0}, -+ 2, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst)+1 */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ 3, -+ {0x4F60,0x597D,0}, -+ 3, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst)+2 */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ 4, -+ {0x4F60,0x597D,0}, -+ 3, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests dry run with dst=NULL and dstlen=0 */ -+ { -+ "+T2BZfQ-", -+ -1, -+ NULL, -+ 0, -+ {}, -+ 0, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests dry run with dst!=NULL and dstlen=0 */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ 0, -+ {}, -+ 0, -+ 3, -+ 0xdeadbeef -+ }, -+ /* tests ill-formed UTF-7: 6 bits, not enough for a byte pair */ -+ { -+ "+T-+T-+T-hello", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'h','e','l','l','o',0}, -+ 6, -+ 6, -+ 0xdeadbeef -+ }, -+ /* tests ill-formed UTF-7: 12 bits, not enough for a byte pair */ -+ { -+ "+T2-+T2-+T2-hello", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'h','e','l','l','o',0}, -+ 6, -+ 6, -+ 0xdeadbeef -+ }, -+ /* tests ill-formed UTF-7: 18 bits, not a multiple of 16 and the last bit is a 1 */ -+ { -+ "+T2B-+T2B-+T2B-hello", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60,0x4F60,0x4F60,'h','e','l','l','o',0}, -+ 9, -+ 9, -+ 0xdeadbeef -+ }, -+ /* tests ill-formed UTF-7: 24 bits, a multiple of 8 but not a multiple of 16 */ -+ { -+ "+T2BZ-+T2BZ-+T2BZ-hello", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60,0x4F60,0x4F60,'h','e','l','l','o',0}, -+ 9, -+ 9, -+ 0xdeadbeef -+ }, -+ /* tests UTF-7 followed by characters that should be encoded but aren't */ -+ { -+ "+T2BZ-\x82\xFE", -+ -1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60,0x0082,0x00FE,0}, -+ 4, -+ 4, -+ 0xdeadbeef -+ }, -+ /* tests srclen > strlen(src) */ -+ { -+ "a\0b", -+ 4, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'a',0,'b',0}, -+ 4, -+ 4, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) outside of a UTF-7 sequence */ -+ { -+ "hello", -+ 2, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'h','e'}, -+ 2, -+ 2, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) inside of a UTF-7 sequence */ -+ { -+ "+T2BZfQ-", -+ 4, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60}, -+ 1, -+ 1, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) right at the beginning of a UTF-7 sequence */ -+ { -+ "hi+T2A-", -+ 3, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'h','i'}, -+ 2, -+ 2, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) right at the end of a UTF-7 sequence */ -+ { -+ "+T2A-hi", -+ 5, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {0x4F60}, -+ 1, -+ 1, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) at the beginning of an escaped + sign */ -+ { -+ "hi+-", -+ 3, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'h','i'}, -+ 2, -+ 2, -+ 0xdeadbeef -+ }, -+ /* tests srclen < strlen(src) at the end of an escaped + sign */ -+ { -+ "+-hi", -+ 2, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {'+'}, -+ 1, -+ 1, -+ 0xdeadbeef -+ }, -+ /* tests len=0 but no error */ -+ { -+ "+", -+ 1, -+ output, -+ sizeof(output) / sizeof(WCHAR) - 1, -+ {}, -+ 0, -+ 0, -+ 0xdeadbeef -+ }, -+ /* tests a buffer that runs out while not decoding a UTF-7 sequence */ -+ { -+ "hello", -+ -1, -+ output, -+ 2, -+ {'h','e'}, -+ 2, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER -+ }, -+ /* tests a buffer that runs out in the middle of decoding a UTF-7 sequence */ -+ { -+ "+T2BZfQ-", -+ -1, -+ output, -+ 1, -+ {0x4F60}, -+ 1, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER -+ } -+ }; -+ - if (MultiByteToWideChar(CP_UTF7, 0, "foobar", -1, NULL, 0) == 0 && - GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) - { -@@ -781,6 +1040,31 @@ static void test_utf7_decoding(void) - "i=0x%02x: expected output=%s, got output=%s\n", - i, wine_dbgstr_wn(expected, expected_len + 1), wine_dbgstr_wn(output, expected_len + 1)); - } -+ -+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) -+ { -+ memset(output, 0x23, sizeof(output) - sizeof(WCHAR)); -+ output[sizeof(output) / sizeof(WCHAR) - 1] = 0; -+ SetLastError(0xdeadbeef); -+ -+ len = MultiByteToWideChar(CP_UTF7, 0, tests[i].src, tests[i].srclen, -+ tests[i].dst, tests[i].dstlen); -+ -+ ok(GetLastError() == tests[i].error, -+ "tests[%i]: expected error=0x%x, got error=0x%x\n", i, tests[i].error, GetLastError()); -+ ok(len == tests[i].len, "tests[%i]: expected len=%i, got len=%i\n", i, tests[i].len, len); -+ -+ if (tests[i].dst) -+ { -+ ok(memcmp(tests[i].dst, tests[i].expected_dst, tests[i].chars_written * sizeof(WCHAR)) == 0, -+ "tests[%i]: expected dst[0:%i]=%s, got dst[0:%i]=%s\n", -+ i, tests[i].chars_written, wine_dbgstr_wn(tests[i].expected_dst, tests[i].chars_written), -+ tests[i].chars_written, wine_dbgstr_wn(tests[i].dst, tests[i].chars_written)); -+ ok(tests[i].dst[tests[i].chars_written] == 0x2323, -+ "tests[%i]: expected dst[%i]=0x2323, got dst[%i]=%04x\n", -+ i, tests[i].chars_written, tests[i].chars_written, output[tests[i].chars_written]); -+ } -+ } - } - - static void test_undefined_byte_char(void) --- -2.2.1 - diff --git a/patches/msdmo-Fix_Typo/0001-msdmo-Fix-invalid-usage-of-RegOpenKeyExW.patch b/patches/msdmo-Fix_Typo/0001-msdmo-Fix-invalid-usage-of-RegOpenKeyExW.patch deleted file mode 100644 index e534874d..00000000 --- a/patches/msdmo-Fix_Typo/0001-msdmo-Fix-invalid-usage-of-RegOpenKeyExW.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 06c43fd81baf70bed6a3729c0e644769da8b14e1 Mon Sep 17 00:00:00 2001 -From: Mark Harmstone -Date: Sun, 14 Dec 2014 23:45:41 +0000 -Subject: msdmo: Fix invalid usage of RegOpenKeyExW. - -Patch to fix typo in msdmo. RegOpenKeyExW returns 0 on success, and non-zero on failure. ---- - dlls/msdmo/dmoreg.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/msdmo/dmoreg.c b/dlls/msdmo/dmoreg.c -index e8f67c5..ff0e8f0 100644 ---- a/dlls/msdmo/dmoreg.c -+++ b/dlls/msdmo/dmoreg.c -@@ -406,7 +406,7 @@ static HRESULT IEnumDMO_Constructor( - /* If not filtering by category enum from media objects root */ - if (IsEqualGUID(guidCategory, &GUID_NULL)) - { -- if (!RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey, 0, KEY_READ, &lpedmo->hkey)) -+ if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey, 0, KEY_READ, &lpedmo->hkey)) - hr = E_FAIL; - } - else -@@ -416,7 +416,7 @@ static HRESULT IEnumDMO_Constructor( - - wsprintfW(szKey, szCat3Fmt, szDMORootKey, szDMOCategories, - GUIDToString(szguid, guidCategory)); -- if (!RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &lpedmo->hkey)) -+ if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &lpedmo->hkey)) - hr = E_FAIL; - } - --- -2.2.1 -