Test on macOS 12.2.1 against the master branch. #24397 doesn't fix it.

```
brew info boost
boost: stable 1.78.0 (bottled), HEAD
...
./configure --enable-external-signer
...
checking for boostlib >= 1.64.0 (106400)... yes
checking whether Boost.Process can be used... no
configure: error: External signing is not supported for this Boost version
```

It does work with boost 1.76 (there was no 1.77 release in home-brew):

```
brew install boost@1.76
...
LDFLAGS="-L/usr/local/opt/boost@1.76/lib" CPPFLAGS="-I/usr/local/opt/boost@1.76/include" ./configure --enable-external-signer
...
checking for boostlib >= 1.64.0 (106400)... yes
checking whether Boost.Process can be used... yes
...
Options used to compile and link:
  external signer = yes
```

There's nothing in the release notes about Boost.Process for either [1.77](https://www.boost.org/users/history/version_1_77_0.html) or [1.78](https://www.boost.org/users/history/version_1_78_0.html).

The Homebrew [formula changes](https://github.com/Homebrew/homebrew-core/commits/master/Formula/boost.rb) are nothing but a trivial version and hash bump.
}
    {
        
#ifdef WIN32
        const std::string expected{"The system cannot find the file specified."};
#else
        const std::string expected{"No such file or directory"};
#endif
        BOOST_CHECK_EXCEPTION(RunCommandParseJSON("invalid_command"), boost::process::process_error, [&](const boost::process::process_error& e) {
            const std::string what(e.what());
            BOOST_CHECK(what.find("RunCommandParseJSON error:") == std::string::npos);
            BOOST_CHECK(what.find(expected) != std::string::npos);
            return true;
        });
    }
    {
        
#ifdef WIN32
        const std::string command{"cmd.exe /c call"};
#else
        const std::string command{"false"};
#endif
        BOOST_CHECK_EXCEPTION(RunCommandParseJSON(command), std::runtime_error, [&](const std::runtime_error& e) {
            BOOST_CHECK(std::string(e.what()).find(strprintf("RunCommandParseJSON error: process(%s) returned 1: \n", command)) != std::string::npos);
            return true;
        });
    }
    {
        
#ifdef WIN32