Builds on #29868 (to have windows support).
This switches the -*notify options to use the subprocess library, which is currently used for only the external signer. The main advantage of this is that file descriptor leaks are avoided (#32343). This could also add future flexibility in notifications, for example to bypass the shell (and launch commands with their arguments directly[1]), or do something with command output (like log it). But for now, this is meant to be one-to-one.
- Generalize
ENABLE_EXTERNAL_SIGNERbuild option toENABLE_SUBPROCESS. - Unify everything dealing with external commands in
common/run_command.cpp. Use the new functionsRunShellandRunShellInThread. - Remove
HAVE_SYSTEM.
[1] There’s a long-running issue on Windows where it can’t pass the wallet name because there’s no way to escape it for the shell.