Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

obs-studio: 28.0.3 -> 28.1.2, plugins fixes #200639

Merged
merged 8 commits into from
Nov 11, 2022
Merged

Conversation

fpletz
Copy link
Member

@fpletz fpletz commented Nov 11, 2022

Description of changes

Merging #194578 caused more issues than I initially anticipated. Upgrades obs-studio and fixes all plugins except obs-hyperion which is not yet compatible.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@fpletz fpletz requested a review from raphaelr November 11, 2022 06:02
@miangraham
Copy link
Contributor

miangraham commented Nov 11, 2022

Possible overlooked casualty:

Anyone using v27 on unstable had support for obs-websocket yesterday but doesn't today.

pkgs/applications/video/obs-studio/plugins/obs-websocket.nix

The plugin was removed (due to inclusion in v28) before the late decision to keep v27 around, and didn't get restored. Not sure how big a concern but seems kind to leave in place in some form for people using it.

Edit: On second glance it looks like plugins are doing a hard cutover in general so maybe this doesn't matter. Anyone using much of anything on v27 will need to pull from a previous version of nixpkgs either way.

@miangraham
Copy link
Contributor

Also still missing: 22.11 release notes for the major version bump and plugin breakage, as previously noted by raphaelr.

@06kellyjac
Copy link
Member

@raphaelr any plans to submit these patches upstream?

@miangraham
Copy link
Contributor

I'm planning to send an upstream PR with Provide-runtime-plugin-destination-as-relative-path.patch once it's had a few days on master, since it's fixing general-case breakage for anyone building with a custom install prefix.

@06kellyjac
Copy link
Member

Cool

Personally I'm thinking about obs-multi-rtmp (the one I package). I'm happy to take the patch and submit a PR, with permission, but it feels better the author submit it :)

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

On second glance it looks like plugins are doing a hard cutover in general so maybe this doesn't matter. Anyone using much of anything on v27 will need to pull from a previous version of nixpkgs either way.

That was exactly what I was thinking when preparing this PR. I think we'll just remove v27 because maintaining plugins for both version is just too much.

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

Also still missing: 22.11 release notes for the major version bump and plugin breakage, as previously noted by raphaelr.

I disagree, we are bumping packages all the time without mentioning it in the changelog. The commonly used plugins are working. obs-hyperion is probably not used by anyone and thus marked as broken. No need for release notes IMHO.

@SebTM
Copy link
Contributor

SebTM commented Nov 11, 2022

Also still missing: 22.11 release notes for the major version bump and plugin breakage, as previously noted by raphaelr.

I disagree, we are bumping packages all the time without mentioning it in the changelog. The commonly used plugins are working. obs-hyperion is probably not used by anyone and thus marked as broken. No need for release notes IMHO.

See discussion #194578 here, I don't need both but some need 27 until their plugins are compatible with 28 as far as I understood? (possibly irrelevant because of #200639 (comment))

@miangraham
Copy link
Contributor

No need for release notes IMHO

Okay, deferring to you on this one.

For the record, at the very least the obs-websocket plugin removal is a breaking change for anyone referencing it in 22.05. Easily remedied, but breaks working configs. It broke mine.

Your call on it meriting a mention or not. Cheers!

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

See discussion #194578 here, I don't need both but some need 27 until their plugins are compatible with 28 as far as I understood?

The plugins we have packaged and are not marked as broken are working. And that's the only thing we should care about. If we keep 27 we need to have two versions of most plugins which is insanity. People still using v27 should just use 22.05. 😏 If I read correctly no one stepped up in the other PR that they've packaged obs-plugins themselves.

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

For the record, at the very least the obs-websocket plugin removal is a breaking change for anyone referencing it in 22.05. Easily remedied, but breaks working configs. It broke mine.

Fair point. I've removed obs-studio27 and added a changelog entry. Thanks.

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

As there are currently some plugins broken on master since I merged #194578 prematurely, I'd like to merge this as soon as possible. Any other comments on the immediate changes here?

@miangraham
Copy link
Contributor

miangraham commented Nov 11, 2022

Not in a place to runtime test the impacted plugins but builds are green and a simple obs runtime test looks good to me.

Result of nixpkgs-review pr 200639 run on x86_64-linux 1

1 package marked as broken and skipped:
  • obs-studio-plugins.obs-hyperion
2 packages blacklisted:
  • nixos-install-tools
  • tests.nixos-functions.nixos-test
10 packages built:
  • obs-studio
  • obs-studio-plugins.looking-glass-obs
  • obs-studio-plugins.obs-backgroundremoval
  • obs-studio-plugins.obs-gstreamer
  • obs-studio-plugins.obs-move-transition
  • obs-studio-plugins.obs-multi-rtmp
  • obs-studio-plugins.obs-nvfbc
  • obs-studio-plugins.obs-pipewire-audio-capture
  • obs-studio-plugins.obs-vkcapture
  • obs-studio-plugins.wlrobs
info: Platform: Wayland
info: Qt Version: 6.4.0 (runtime), 6.4.0 (compiled)
info: OBS 28.1.2 (linux)
info: ---------------------------------
warning: No AJA devices found, skipping loading AJA UI plugin
warning: Failed to initialize module 'aja-output-ui.so'
warning: No AJA devices found, skipping loading AJA plugin
warning: Failed to initialize module 'aja.so'
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
warning: Failed to initialize module 'decklink.so'
warning: [Python] Python failure in obs_scripting_load_python:1752:
ModuleNotFoundError: No module named 'obspython'
warning: [Python] Error importing obspython.py', unloading obs-python
warning: [Python] Failed to load python plugin
info: [pipewire] Available captures:
info: [pipewire]     - Desktop capture
warning: v4l2loopback not installed, virtual camera disabled
info: [obs-browser]: Version 2.18.7
info: [obs-browser]: CEF Version 100.0.4896.127 (runtime), 100.0.24+g0783cf8+chromium-100.0.4896.127 (compiled)
info: FFMPEG VAAPI supported
info: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.0.1 | RPC Version: 1)
info: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.4.0 | Qt version (run-time): 6.4.0
info: [obs-websocket] [obs_module_load] Linked ASIO Version: 101201
info: [obs-websocket] [obs_module_load] Module loaded.
info: [vlc-video]: VLC 3.0.17.3 Vetinari found, VLC video source enabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-websocket.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     obs-browser.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-pipewire.so
info:     linux-jack.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-output-ui.so
info:     decklink-captions.so
info: ---------------------------------
info: ==== Startup complete ===============================================

@fpletz
Copy link
Member Author

fpletz commented Nov 11, 2022

I've tested the plugins and their basic functionality. Not sure if everything works but they are being loaded correctly, can be configured and do stuff. ;) If you encounter issues please mention me in a follow-up PR or issue and we'll get that fixed ASAP.

@fpletz fpletz merged commit 3c446ee into NixOS:master Nov 11, 2022
@fpletz fpletz deleted the pkgs/obs-28.1.2 branch November 11, 2022 15:27
@raphaelr
Copy link
Contributor

@06kellyjac Feel free to upstream that patch, as it is right now though I doubt that this patch will work on non-Nix systems, their CMakeLists.txt contains too many if(WIN32)/if(APPLE) conditions. My CMake-fu isn't good enough to ensure it works on all of their supported systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants