configure_seed and package_release reconfigure stdout and stderr to UTF-8
with backslashreplace, but four test calls read their output through
text=True without an encoding, so subprocess decoded it with the locale
preferred encoding. On a Windows host whose ANSI code page is not UTF-8,
the localized WinError text that these tools embed in their symbolic link
loop messages is written as UTF-8 and decoded as that code page, which
raises UnicodeDecodeError; stderr then stays None and the next assertion
fails with a TypeError. The cp936 host that reported this loses
configure_seed_paths and release_package, while the CP1252 and UTF-8 CI
runners stay green. Name the encoding on the four calls that read tool
output, matching the neighboring calls in both files.
PublicHeaderPackageTests.test_include_next_is_rejected writes #include_next into the umbrella dependency and expects package() to raise and leave no output. The previous packager skipped the line and succeeded, so the test fails there by assertion.
shutil.which returns a relative path when the match comes from the current
directory or from a "." or empty PATH entry, which left the runtime
directory at "." again.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
A tree configured with -DCMAKE_CXX_COMPILER=g++ caches the name without a
directory, so windows_runtime() returned "." and the MinGW DLLs were copied
from whatever the working directory was. Resolve the name on PATH, and
refuse it when it is not there.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Wrap the prepare_release_notes entrypoint in main(argv=None) with UTF-8
stream reconfiguration using backslashreplace error handling.
Decode release notes JSON with utf-8-sig to accept UTF-8 BOM headers.
Catch OSError and ValueError in main and report them via parser.error
rather than propagating unhandled tracebacks.
Build the bundled libopus with hidden visibility and an empty OPUS_EXPORT,
so its symbols stay internal without relying on --exclude-libs (which
Apple's linker lacks). Turn off OPUS_STACK_PROTECTOR and
OPUS_FORTIFY_SOURCE so MinGW builds do not import libssp-0.dll, as in
27c0acabe2 from #9764. Ship the notice through the licenses list as
libs/licenses/opus.txt, like vgmstream.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Add libogg 1.3.6 and libvorbis 1.3.7 as submodules, built from source as
hidden static libraries, and implement the 31 libvorbisfile exports on top
of them. Decoder state lives in a host table keyed by the guest
OggVorbis_File, guest callbacks are trampolined, and vorbis_info is
returned in its LP64 layout.
Wrap the package_release entrypoint in main(argv=None) with UTF-8
stream reconfiguration using backslashreplace error handling.
Catch RuntimeError, ValueError, and OSError in main and report them
via parser.error rather than propagating unhandled tracebacks. Guard
missing CMakeCache in windows_runtime and non-directory documentation
sources in collect_docs with descriptive errors.