diff --git a/README.md b/README.md index fb31d041..f768056d 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,12 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [3]:** +**Bugfixes and features included in the next upcoming release [4]:** * Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907)) * Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087)) * Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899)) +* Python PIP needs better NtQueryInformationJobObject stub **Bugs fixed in Wine Staging 1.7.38 [190]:** diff --git a/debian/changelog b/debian/changelog index fb7aff7f..bbae31b2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ wine-staging (1.7.39) UNRELEASED; urgency=low * Added patch to fix multithreading issues with fullscreen clipping. * Added patch with tests for VerQueryValueA (by Mark Jansen). * Added patch to implement proper locking of keystate and synchronization with desktop thread. + * Added patch to implement better stub function for NtQueryInformationJobObject. * Removed patch to avoid hardcoded values for sizeof(GUID) (accepted upstream). -- Sebastian Lackner Mon, 09 Mar 2015 16:52:35 +0100 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index be6eea2d..69576925 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -3512,6 +3512,7 @@ if test "$enable_server_JobObjects" -eq 1; then patch_apply server-JobObjects/0015-server-Support-NULL-job-handles-in-IsProcessInJob.patch patch_apply server-JobObjects/0016-kernel32-tests-Add-tests-for-waiting-on-an-job-objec.patch patch_apply server-JobObjects/0017-server-Implement-waiting-for-job-objects.patch + patch_apply server-JobObjects/0018-ntdll-Implement-NtQueryInformationJobObject-stub-fun.patch ( echo '+ { "Sebastian Lackner", "kernel32/tests: Allow multiple subprocess commands in process tests.", 1 },'; echo '+ { "Andrew Cook", "kernel32/tests: Add tests for IsProcessInJob.", 1 },'; @@ -3530,6 +3531,7 @@ if test "$enable_server_JobObjects" -eq 1; then echo '+ { "Andrew Cook", "server: Support NULL job handles in IsProcessInJob.", 1 },'; echo '+ { "Sebastian Lackner", "kernel32/tests: Add tests for waiting on an job object.", 1 },'; echo '+ { "Sebastian Lackner", "server: Implement waiting for job objects.", 1 },'; + echo '+ { "Sebastian Lackner", "ntdll: Implement NtQueryInformationJobObject stub function.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/server-JobObjects/0018-ntdll-Implement-NtQueryInformationJobObject-stub-fun.patch b/patches/server-JobObjects/0018-ntdll-Implement-NtQueryInformationJobObject-stub-fun.patch new file mode 100644 index 00000000..c4f10d58 --- /dev/null +++ b/patches/server-JobObjects/0018-ntdll-Implement-NtQueryInformationJobObject-stub-fun.patch @@ -0,0 +1,55 @@ +From 5aaa9bb4d39cfd92b4c913aa961854657dbf944d Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Thu, 12 Mar 2015 22:19:50 +0100 +Subject: ntdll: Implement NtQueryInformationJobObject stub function. + +--- + dlls/ntdll/sync.c | 24 +++++++++++++++++++++++- + 1 file changed, 23 insertions(+), 1 deletion(-) + +diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c +index ef4a4cb..6f09b83 100644 +--- a/dlls/ntdll/sync.c ++++ b/dlls/ntdll/sync.c +@@ -638,15 +638,37 @@ NTSTATUS WINAPI NtTerminateJobObject( HANDLE handle, NTSTATUS status ) + NTSTATUS WINAPI NtQueryInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS class, PVOID info, + ULONG len, PULONG ret_len ) + { ++ JOBOBJECT_EXTENDED_LIMIT_INFORMATION *extended_limit; ++ JOBOBJECT_BASIC_LIMIT_INFORMATION *basic_limit; ++ + TRACE( "%p %u %p %u %p\n", handle, class, info, len, ret_len ); + + if (class >= MaxJobObjectInfoClass) + return STATUS_INVALID_PARAMETER; + ++ FIXME( "stub: %p %u %p %u %p\n", handle, class, info, len, ret_len ); ++ + switch (class) + { ++ case JobObjectExtendedLimitInformation: ++ if (len < sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION)) ++ return STATUS_INVALID_PARAMETER; ++ ++ extended_limit = (JOBOBJECT_EXTENDED_LIMIT_INFORMATION *)info; ++ memset(extended_limit, 0, sizeof(*extended_limit)); ++ if (ret_len) *ret_len = sizeof(*extended_limit); ++ return STATUS_SUCCESS; ++ ++ case JobObjectBasicLimitInformation: ++ if (len < sizeof(JOBOBJECT_BASIC_LIMIT_INFORMATION)) ++ return STATUS_INVALID_PARAMETER; ++ ++ basic_limit = (JOBOBJECT_BASIC_LIMIT_INFORMATION *)info; ++ memset(basic_limit, 0, sizeof(*basic_limit)); ++ if (ret_len) *ret_len = sizeof(*basic_limit); ++ return STATUS_SUCCESS; ++ + default: +- FIXME( "stub: %p %u %p %u %p\n", handle, class, info, len, ret_len ); + return STATUS_NOT_IMPLEMENTED; + } + } +-- +2.3.1 + diff --git a/patches/server-JobObjects/definition b/patches/server-JobObjects/definition index 0100f950..8870a451 100644 --- a/patches/server-JobObjects/definition +++ b/patches/server-JobObjects/definition @@ -1,5 +1,6 @@ Fixes: [33723] EA Origin needs support for job objects Fixes: Properly track handle count of wineserver objects +Fixes: Python PIP needs better NtQueryInformationJobObject stub Depends: kernel32-Console_Handles Depends: server-OpenProcess Depends: server-Misc_ACL