XWayland changes _NET_ACTIVE_WINDOW to None when focus switches to a
Wayland window. This makes sure app window is deactivated in that case
too and not just when focus changes to another X11 window.
_NET_ACTIVE_WINDOW also changes None when alt-tab is initiated, but
there's no easy way to tell the difference, so this will also trigger
a focus loss as soon as alt-tab is initiated, while we were previously
waiting for it to actually complete to make changes.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8108
1. For %fs/fsbase the patch follows the macOS logic with LDT descriptor registration and Linux with switching. One notable difference is that on 32->64 transition we set %fs to GSEL(GUFS32_SEL, SEL_UPL) before restoring fsbase, otherwise FreeBSD will just revert it by reloading the selector [at the first opportunity](https://github.com/freebsd/freebsd-src/blob/5673462af5330df207…. GSEL(GUFS32_SEL, SEL_UPL) is the default %fs value on FreeBSD and is special-cased to save/restore actual fsbase value to/from PCB.
2. I was told we could get rid of fsbase glitches in signal handlers by blocking signals with [sigfastblock(2)](https://man.freebsd.org/cgi/man.cgi?query=sigfastblock) between %fs reset to the default value and fsbase reset to pthread_teb. This is currently a part of internal API for libthr, which could be exposed as pthread_signal_block_np for Wine. I'm on the fence whether it's worth it.
3. I fully admit I have no idea what registers are worth preserving around fallback sysarch(AMD64_SET_FSBASE) syscalls and whether it's appropriate to push those registers to stack. ("Kernel" stack should be fine, I assume?) Syscalls definitely clobber r8-r11.
4. For %ss see https://lkml.org/lkml/2015/4/24/216. FreeBSD doesn't have a similar workaround in the kernel, so it goes into Wine.
--
v3: ntdll: Unbreak new wow64 mode on FreeBSD.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8073
I hope I read the code right: if `DLL_PROCESS_ATTACH` fails, `DllMain` will immediately be called again with `DLL_PROCESS_DETACH`, which will try to destroy the already destroyed `PSDRV_Heap`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8019
--
v4: libs/ldap: sasl_decode() should treat intput buffer as data + token for Kerberos.
libs/ldap: sasl_encode() should construct output buffer as data + token for Kerberos.
libs/ldap: When initializing security context ask for mutual authentication.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8020