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.
--
v23: 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
Commit b1b5105ceb moved the following block
#ifdef AT_HWCAP2
if (getauxval( AT_HWCAP2 ) & 2) syscall_flags |= SYSCALL_HAVE_WRFSGSBASE;
#endif
out of an #ifdef __linux__ block and it now causes failures on FreeBSD
and others which do not have getauxval. Guard this invocation properly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7754
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: windowscodecs/tests: Use wide-char literals in metadata tests.
windowscodecs/tests: Remove redundant string length check for VT_LPSTR metadata value.
windowscodecs/tests: Add line context to the metadata comparison helper.
windowscodecs/tests: Add some tests for bKGD chunk.
windowscodecs/tests: Add more tests for the item id handling.
windowscodecs/tests: Add some tests for initial metadata readers content.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7741
Reported-By: Alexander Leithner <aleithner(a)level101.at>
Signed-off-by: Marcus Meissner <marcus(a)jet.franken.de>
--
v2: configure.ac: avoid problems with -Werror=return-type in check
https://gitlab.winehq.org/wine/wine/-/merge_requests/7753
Implementation and test function for ADsBuildVarArrayInt, using ADsBuildVarArrayStr as reference.
- /dlls/activeds/activeds_main.c
- /dlls/activeds/tests/activeds.c
- /include/adshlp.h
--
v3: activeds/tests: enable
https://gitlab.winehq.org/wine/wine/-/merge_requests/7752
Implementation and test function for ADsBuildVarArrayInt, using ADsBuildVarArrayStr as reference.
- /dlls/activeds/activeds_main.c
- /dlls/activeds/tests/activeds.c
- /include/adshlp.h
--
v2: activeds/tests: consistent types
https://gitlab.winehq.org/wine/wine/-/merge_requests/7752