Skip to content

buildspec: Update dependencies for OBS Studio 32.2.1 / Qt 6.11.1 - #333

Closed
EdueskaWeiz wants to merge 4 commits into
glikely:mainfrom
EdueskaWeiz:patch-1
Closed

buildspec: Update dependencies for OBS Studio 32.2.1 / Qt 6.11.1#333
EdueskaWeiz wants to merge 4 commits into
glikely:mainfrom
EdueskaWeiz:patch-1

Conversation

@EdueskaWeiz

@EdueskaWeiz EdueskaWeiz commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Fixes #331: the plugin fails to load on OBS 32.2.1 with a Qt symbol mismatch (QIODevicePrivate) because OBS 32.2.1 ships Qt 6.11.1 while the plugin still bundled QtSerialPort 6.8.3.

Changes

buildspec.json – update build dependencies to match OBS 32.2.1:

  • obs-studio sources: 31.1.1 -> 32.2.1
  • prebuilt obs-deps and qt6: 2025-07-11 -> 2026-07-15
  • qtserialport: 6.8.3 -> 6.11.1 (matches OBS 32.2.1 Qt version)
  • bump plugin version: 0.18.2 -> 0.18.3

Source/build compat fixes for the OBS 32 API (surfaced when building against 32.2.1 with the template's warnings-as-errors):

  • src/ptz-action-source.c: use obs_properties_add_button2() instead of the now-deprecated obs_properties_add_button().
  • shared/properties-view/CMakeLists.txt: silence only the C4996 / -Wdeprecated-declarations diagnostic for the vendored properties-view.cpp, which still calls the (functional but OBS_DEPRECATED) obs_data_*_autoselect_* API. The calls themselves are left unchanged so behaviour matches upstream OBS.

Testing

  • Local build on Windows (x64, VS 2022, ci=1 / Build-Windows.ps1) completes with 0 warnings, 0 errors and produces obs-ptz.dll + Qt6SerialPort.dll (6.11.1).
  • Installed into OBS Studio 32.2.1 (x64): the plugin now loads without the previous "module not loaded" error from Not working with OBS 32.2.1 Windows x64 #331 and the PTZ Controls dock is available.
  • CI on this PR additionally validates the build across platforms.

Notes

  • The obs-studio, prebuilt obs-deps and qt6 hashes were verified against the official OBS Studio 32.2.1 CMakePresets.json and the obs-deps 2026-07-15 release.
  • The QtSerialPort 6.11.1 source hashes are not covered by an upstream OBS checksum file; they were confirmed working by the successful local build and are also exercised by CI.

@musikaloi

Copy link
Copy Markdown

so what is the solution? are they gonna release a new version that is compatible with 32.2.1

@glikely

glikely commented Aug 1, 2026

Copy link
Copy Markdown
Owner

The solution is use the older version of OBS until I'm able to test and make a release. It will be sometime in the next week.

You can also try building it yourself in the meantime if you cannot wait

@EdueskaWeiz

Copy link
Copy Markdown
Contributor Author

Status on the three red checks from run #129 — none of them were caused by the patch itself:

macOS build. The macos-15 runner provides Xcode 16.1 / SDK 15.1, but OBS Studio 32.2.1 requires the macOS 26.5 SDK, so configuring the freshly fetched OBS sources aborted with Your macOS SDK version (15.1) is too low. Note that QtSerialPort 6.11.1 itself had already finished building on macOS at that point, so the dependency bump is fine — only the toolchain was too old. Just pushed a commit moving the macOS job to macos-26 with Xcode 26.5, i.e. the same runner image and Xcode version obs-studio uses for the 32.2.1 release.

clang-format and gersemi. Both fail in their Homebrew install step, not on formatting:

Skipping obsproject/tools because it is not trusted. Run `brew trust obsproject/tools`
Error: unknown install step: run

That affects every PR in the repo, so I split the fix out into #334 rather than bundling it here. Merging #334 first should turn those two checks green again everywhere.

Windows x64 and Ubuntu 24.04 were already green in run #129 and produced artifacts, so the buildspec bump and the obs_properties_add_button2 change work on those platforms.

@musikaloi

Copy link
Copy Markdown

Is it fixed now?

@EdueskaWeiz

Copy link
Copy Markdown
Contributor Author

Now built and run-tested locally on Windows, so this is no longer just a CI-green claim.

Build: Windows 11, Visual Studio Build Tools 2022 (MSVC 19.44), .github/scripts/Build-Windows.ps1 with the windows-ci-x64 preset. It pulled OBS Studio 32.2.1 and built Qt6SerialPort 6.11.1 and SDL 2.30.11 from source. Result: 0 warnings, 0 errors.

Runtime: installed to C:\ProgramData\obs-studio\plugins\obs-ptz\ and started OBS Studio 32.2.1:

[obs-ptz] plugin loaded successfully (version v0.18.3-rc1-63-g8e49b8e)

The dock appears, is correctly localised, and obs-ptz.dll shows up exactly once in Loaded Modules. 0.18.2 does not load at all against the same OBS build, so the Qt symbol mismatch from #331 is resolved by this buildspec.

Two things I ran into that may be useful beyond this PR:

1. Duplicate installs produce a plugin that looks loaded but is broken. I had leftover copies from an earlier manual install, and the result was:

Procedure 'ptz_get_proc_handler' already exists
obs_register_source: Source 'ptz_action_source' already exists!  Duplicate library?
Dock id 'ptz-dock' already used!  Duplicate library?
[obs-ptz] failed to add PTZ controls dock
QString::arg: Argument missing: "PTZ.Action.Preset.RecallNum", 8      (32x)

The user-visible symptom is a dock titled PTZ.Dock.Name and raw keys instead of translated strings, because the second instance never gets its locale loaded. Removing the duplicate fixed all of it. Worth keeping in mind when users report missing or untranslated UI text — #264 reads a lot like this.

2. The Windows build is sensitive to which shell it is started from. The main project gets -A x64 from the preset, but _setup_qt_submodule and the SDL build use the Ninja generator and inherit the compiler architecture from the environment. Starting from the plain "Developer PowerShell for VS 2022", which defaults to x86, therefore fails with a rather misleading error:

Version 6.11.1 of package Qt6 was requested but an incompatible version
was found: 6.11.1 (64bit)

That is an architecture mismatch, not a version mismatch. The README's "x64 Native Tools Command Prompt for VS 2022" is load-bearing — possibly worth calling out explicitly, or passing an explicit architecture in buildspec_common.cmake for the Windows sub-builds.

@EdueskaWeiz

Copy link
Copy Markdown
Contributor Author

Correction to my comment above: I pointed at #264 as possibly being the same duplicate-install problem. Having now read it properly, that is wrong — #264 is about button layout and the preset rename field being cut off, not about missing translations. Please ignore that pointer; the rest of the comment stands.

Eddy Weiz added 4 commits August 8, 2026 15:10
Fixes glikely#331: the plugin fails to load on OBS 32.2.1 with a Qt symbol
mismatch (QIODevicePrivate) because OBS 32.2.1 ships Qt 6.11.1 while the
plugin still bundled QtSerialPort 6.8.3.

Update the build dependencies to match OBS 32.2.1:
- obs-studio sources: 31.1.1 -> 32.2.1
- prebuilt obs-deps and qt6: 2025-07-11 -> 2026-07-15
- qtserialport: 6.8.3 -> 6.11.1 (matches OBS 32.2.1 Qt version)
- bump plugin version: 0.18.2 -> 0.18.3

Dependency versions and hashes verified against the OBS Studio 32.2.1
CMakePresets.json and the obs-deps 2026-07-15 release.

Signed-off-by: Eddy Weiz <eddyweiz@gmail.com>
obs_properties_add_button() is deprecated in OBS 32.2.1 and triggers a
-Werror build failure (C4996 / warning-as-error) under the CI presets.

Switch to obs_properties_add_button2(), which forwards the source data
pointer to the callback. This also fixes the Test Action button, which
previously received a NULL context from the deprecated single-arg button
callback.

Signed-off-by: Eddy Weiz <eddyweiz@gmail.com>
OBS 32 marks the obs_data_*_autoselect_* API as OBS_DEPRECATED. The
vendored properties-view.cpp still uses these (still-functional) calls,
so the plugin template's warnings-as-errors turned C4996 into a build
failure. Suppress only the deprecation diagnostic for this interface
target instead of removing the calls, keeping behaviour unchanged.

Signed-off-by: Eddy Weiz <eddyweiz@gmail.com>
OBS Studio 32.2.1 requires the macOS 26.5 SDK. The macos-15 runner only provides SDK 15.1, so configuring the freshly fetched OBS sources aborts with:

  Your macOS SDK version (15.1) is too low. The macOS 26.5 SDK (Xcode 26.5) is required to build OBS.

Use the same runner image and Xcode version that obs-studio itself uses for the 32.2.1 release.

Signed-off-by: Eddy Weiz <eddyweiz@gmail.com>
@glikely

glikely commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Great work, thanks! I've pulled all these patches into mainline.

I've reordered the patches to keep the build bisectable; putting the fixes before the revision change, and merging the builder version into the buildspec change patch. That way every point in the commit chain can be built.

@glikely glikely closed this Aug 8, 2026
@EdueskaWeiz EdueskaWeiz mentioned this pull request Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Not working with OBS 32.2.1 Windows x64

3 participants