Because WINENV is limited (32767 bytes), and HOSTENV can be much larger,
a whitelisting approach is used to keep WINENV as small as possible.
Currently, only the following envvars are propagated from the host env to WINENV
WINEPATH, WINEPWD, WINEHOME, WINETEMP, WINETMP, WINEQT_, WINEVK_, WINEXDG_SESSION_TYPE
Moreover, the NIXENV (env for running wine processes - not applications) on the
host system is not produced from WINENV anymore, but the global ENV
is propagated to all wine processes and threads.
This might be an alternative approach to MR!5231, MR!6140, bug #56941
and should provide a more deterministic behaviour of wine, because unrelated
envvars do have no influence on the env for running windows applications.
Initial tests (winemine, notepad, cmd, etc) seem to run fine, but some envvars might need additional
consideration. XVDK_* was mentioned, WINE*, MESA_*, VK_*, QT_*, LIBGL_* are other suspects.
Moreover, this is my first merge request, so your feedback is highly appreciated.
--
v15: ntdll: main_envp has been replaced by environ
ntdll: remove is_dynamic_env_var(...) because it is not needed anymore
ntdll: remove unused vars
ntdll: remove dead code
ntdll: conversion from HOSTENV to WINENV is now using whitelisting instead of blacklisting of envvars currently only envvars "WINE"<special_var> (as defined in is_special_env_var() ) are whitelisted.
ntdll: separate env for windows applications (WINENV) from env for wine processes (NIXENV) WINENV is typically limited to 32767 WCHAR, the host environment where wine processes are running can be much larger. Keeping the two envs separate enables a more granula handling of envvars. (see also MR!5231, MR!6140, bug #56941)
https://gitlab.winehq.org/wine/wine/-/merge_requests/6166
Superseding https://gitlab.winehq.org/wine/wine/-/merge_requests/6188
--
v3: mf/tests: Test 2D buffers can override stride.
mf/tests: Test differing height attributes.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test video processor with 2D buffers.
mf/tests: Cleanup the video processor test list.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6220
Because WINENV is limited (32767 bytes), and HOSTENV can be much larger,
a whitelisting approach is used to keep WINENV as small as possible.
Currently, only the following envvars are propagated from the host env to WINENV
WINEPATH, WINEPWD, WINEHOME, WINETEMP, WINETMP, WINEQT_, WINEVK_, WINEXDG_SESSION_TYPE
Moreover, the NIXENV (env for running wine processes - not applications) on the
host system is not produced from WINENV anymore, but the global ENV
is propagated to all wine processes and threads.
This might be an alternative approach to MR!5231, MR!6140, bug #56941
and should provide a more deterministic behaviour of wine, because unrelated
envvars do have no influence on the env for running windows applications.
Initial tests (winemine, notepad, cmd, etc) seem to run fine, but some envvars might need additional
consideration. XVDK_* was mentioned, WINE*, MESA_*, VK_*, QT_*, LIBGL_* are other suspects.
Moreover, this is my first merge request, so your feedback is highly appreciated.
--
v14: dnsapi/tests: Update tests for winehq.org DNS changes.
mshtml: Add support for script element prototype objects.
mshtml: Add support for object and embed element prototype objects.
mshtml: Add support for link element prototype objects.
mshtml: Add support for input elements prototype objects.
mshtml: Add support for head elements prototype objects.
mshtml: Add support for frame elements prototype objects.
mshtml: Add support for form element prototype objects.
mshtml: Add support for area element prototype objects.
mshtml: Add support for anchor element prototype objects.
mshtml/tests: Use winetest.js helpers in xhr.js.
rsaenh: Don't crash when decrypting empty strings.
d3d9/tests: Add comprehensive fog tests.
wined3d: Use 1.0 for position W when using the FFP.
d3d9/tests: Test position attribute W when using the FFP.
wined3d: Feed point scale constants through a push constant buffer.
wined3d: Hardcode 1.0 point size for shader model >= 4.
wined3d: Store the normal matrix as a struct wined3d_matrix.
wined3d: Feed the precomputed normal matrix through a push constant buffer.
wined3d: Pass d3d_info and stream_info pointers to wined3d_ffp_get_[vf]s_settings().
ntdll: Try to use page size from host_page_size() for macOS.
include: Add DECLSPEC_CHPE_PATCHABLE definition.
user32: Implement EVENT_OBJECT_STATECHANGE for BST_PUSHED.
ntdll: Raise exception on failed CS wait.
hidclass: Start the HID device thread with the FDO.
hidclass: Pass HIDP_DEVICE_DESC to find_report_with_type_and_id.
hidclass: Use a single lock for PDO queues and removed flag.
hidclass: Read reports with the largest input report size over TLCs.
hidclass: Use poll_interval == 0 for non-polled devices.
mshtml: Add support for MutationObserver consturctor and prototype objects.
mshtml: Use host object script bindings for Option constructor object.
mshtml: Add support for option element prototype objects.
mshtml: Use host constructor script bindings for XMLHttpRequest constructor object.
mshtml: Use host constructor script bindings for Image constructor object.
jscript: Introduce HostConstructor function type.
mshtml: Add support for image element prototype objects.
configure: Test PE compilers after setting their target argument.
shell32: Make SHGetStockIconInfo() attempt to set icon.
kernelbase: Implement GetTempPath2A() and GetTempPath2W().
win32u: Force updating the display cache when virtual desktop state changes.
ntdll: Implement NtQuerySystemInformationEx( SystemProcessorIdleCycleTimeInformation ) on Linux.
kernel32: Implement QueryIdleProcessorCycleTime[Ex]().
ntdll: Stub NtQuerySystemInformation[Ex]( SystemProcessorIdleCycleTimeInformation ).
include: Always declare _setjmp in setjmp.h on i386 targets.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6166
The existing video_processor tests were modified to also test 2D
buffers (in addition to the existing 1D buffer tests).
Because 2D buffers offer both a 1D view and 2D view of the buffer data,
additional checks were also added to test the 2D view of the data.
2D buffers can also include their own stride value. So additional tests
were added to ensure that a 2D buffer can override the stride settings of
the input/output media attributes of a transform.
And finally, tests for transforming from a buffer with a smaller input height
to a greater output height were also added.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6188