Commit Graph

291 Commits (master)

Author SHA1 Message Date
Matt Gajownik 0e7f69ee31 CI: Bump Linux CEF build to disable GTK
Fixes #7146

Normally, Qt and CEF each run their own version of GTK, often causing
conflicts. This commit introduces a build of CEF where GTK has been
disabled using `use_gtk=false` as we do not require the Chrome runtime.
This is an experiment and may end up being the safest long-term solution.

Note: This does introduce potential quirks/incompatibilities, such as
browser sources no longer being able to display alert() dialogs, and
potentially file browser dialogs not working from CEF.
This is better than the alternative. If necessary, such dialogs can be
reimplemented using Qt at a later date, and would likely provide a more
consistent user experience.
2022-08-23 19:47:41 +10:00
tytan652 23f910c149 Revert "flatpak: Install CMake config files"
This reverts commit 43867ce93c.
2022-08-20 20:11:51 -03:00
tytan652 c1e8797009 flatpak: Avoid cleaning all pkgconfig files
Plugins could happen to require libobs, FFmpeg and PipeWire pkgconfig
files.
2022-08-20 20:11:51 -03:00
Ryan Foster f344c9106b flatpak: Use FFmpeg GitHub mirror
The ffmpeg.org domain has had periods of instability recently. If GitHub
is down, our entire CI is down, so let's use the FFmpeg GitHub mirror.
2022-08-06 19:52:34 -04:00
derrod 3c41697b42 CI: Update Steam workflow for Apple Silicon builds 2022-08-03 03:34:49 +02:00
Ryan Foster d39d5f3712 CI: Fix packaging scripts
On CI, do not fetch tags in packaging scripts. For some reason, the
checkout action seems to locally update any new git tags on the runner:

t [tag update]   (commit-hash) -> tag-name

This causes future calls to fetch git tags to fail on CI with:

! [rejected]   tag-name -> tag-name  (would clobber existing tag)

To avoid this, we can simply not fetch tags a second time on CI.

Additionally, fix the Windows Installer job.
2022-08-01 21:38:56 -04:00
cg2121 67f7a84076 CI: Change build file names
This makes the build names with each OS consistent with each other.
2022-08-01 13:15:51 -04:00
Ryan Foster b4e056f39d CI: Use Qt6 by default when available 2022-07-31 13:45:57 -04:00
tytan652 87682e8276 flatpak: Change obs-deps tag to 2022-07-29
2022-07-28 was removed.
2022-07-31 10:15:02 -03:00
tytan652 056bd1aee0 flatpak: Avoid cleaning PipeWire and FFmpeg headers
Plugins could happen to build against them.
2022-07-31 08:37:45 -03:00
tytan652 a2a3cb2288 flatpak: Update deps based on obs-deps 2022-07-28
* x264: Updated to the same commit as obs-deps
* srt: Updated to 1.5.0
* mbedtls: Updated to 3.2.1
* librist: Updated to the same commit as obs-deps
* aom: Updated to 3.4.0
* svt-av1: Updated to 1.1.0
* ffmpeg: Updated to the same commit and patches as obs-deps
* luajit: Updated to the same commit as obs-deps
2022-07-31 08:37:45 -03:00
tytan652 2d9c1624c1 flatpak: Update KDE Runtime to version 6.3 2022-07-31 08:37:45 -03:00
Ryan Foster 59e91c7c58 CI: Fix Linux package filename version
In .github/workflows/main.yml, for the linux_build job, the variable
BUILD_FOR_DISTRIBUTION is set to the string "true" or "false" on CI.
Later, in CI/linux/03_package_obs.sh, we perform a boolean check on
this variable. However, "false" will evaluate as true, because it is a
non-null string. This was causing CI Linux packages to always build as
if BUILD_FOR_DISTRIBUTION was enabled, which caused the git commit hash
to be omitted from package filenames.

Since we know the expected values, let's just test directly if the
variable equals "true" to get the expected behavior.
2022-07-31 10:24:36 +10:00
CarrotCodes ba1b5fcaea CI: Fix Sparkle cache location for local macOS CI build 2022-07-31 09:48:57 +10:00
Matt Gajownik 577b11ede4 CI: Bump CEF from 4638 (95) to 5060 (103) 2022-07-31 09:46:44 +10:00
Norihiro Kamae 8af6b79044 CI: Use xcrun notarytool instead of xcnotary
xcnotary was discontinued since Apple now provides `xcrun notarytool`.
This commit used `xcrun notarytool` to notarize the package.
2022-07-30 19:52:36 +02:00
PatTheMav 48091adc04 CI: Add Invoke-External functions for Powershell
Forward-port from obs-plugintemplate to restore cmake output during
the configuration step.
2022-07-30 18:04:15 +02:00
pkv 21621e5f5e
CI: Disable new mpegts output for linux
Support of the new mpegts output would require manual compilation of
librist & libsrt libs.
CI on ubuntu hasn't been updated so disable the new mpegts output for
now.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:03:20 +02:00
tt2468 a196fc7824 plugins: Add obs-websocket submodule
Adds obs-websocket as a submodule, to be included in future releases of
OBS Studio by default.
2022-07-28 12:36:17 -07:00
Ryan Foster 81bd1d42f0 CI: Use VS2022 and clang-format 13
Switch to Visual Studio 2022 and clang-format 13.

The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.

This commit also makes the necessary changes to allow the clang-format
check to pass.

This commit also updates the obs-browser submodules with the necessary
changes.
2022-07-27 11:09:59 -04:00
Ryan Foster 8514c6c1e2 CI: Fix clang-format if path has spaces
If the path to clang-format has spaces, as might occur when testing
locally with a version not covered in this script, it will fail. Enclose
the call to clang-format in quotes to prevent this failure.
2022-07-26 22:36:13 -04:00
Matt Gajownik a7c3d94e4c obs-vst: Remove submodule in favour of direct merge 2/2
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst

This also replaces the obs-vst .clang-format with obs-studio's.

This commit depends on the previous commit, which removes the submodule
separately as Git complains otherwise.

Co-authored-by: Alex Anderson <anderson.john.alexander@gmail.com>
Co-authored-by: Anton <camotank12345@gmail.com>
Co-authored-by: Blue Cat Audio <support@bluecataudio.com>
Co-authored-by: Cephas Reis <c3r1c3@nevermindonline.com>
Co-authored-by: Colin Edwards <colin@recursivepenguin.com>
Co-authored-by: Florian Zwoch <fzwoch@gmail.com>
Co-authored-by: Fogmoon <i@fogmoon.com>
Co-authored-by: Gol-D-Ace <Gol-D-Ace@users.noreply.github.com>
Co-authored-by: Igor Bochkariov <ujifgc@gmail.com>
Co-authored-by: Jesse Chappell <jesse@sonosaurus.com>
Co-authored-by: Keen <523059842@qq.com>
Co-authored-by: Kurt Kartaltepe <kkartaltepe@gmail.com>
Co-authored-by: Matt Gajownik <matt@obsproject.com>
Co-authored-by: Matt Gajownik <matt@wizardcm.com>
Co-authored-by: Richard Stanway <notr1ch@users.noreply.github.com>
Co-authored-by: Ryan Foster <RytoEX@gmail.com>
Co-authored-by: follower <github@rancidbacon.com>
Co-authored-by: gxalpha <beckmann.sebastian@outlook.de>
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
Co-authored-by: mntone <sd8@live.jp>
Co-authored-by: tytan652 <tytan652@tytanium.xyz>
Co-authored-by: wangshaohui <97082645@qq.com>
Co-authored-by: wangshaohui <wang.shaohui@navercorp.com>
2022-07-26 22:12:23 -04:00
Ryan Foster beaae2b9ce CI: Update deps to obs-deps 2022-07-08 release
Notable changes:
 * Windows: Add Qt 5 and 6 builds
 * Windows: Remove nasm native build
 * Windows: Update srt from 1.4.2 to 1.4.4
 * Windows: Update SWIG from 3.0.12 to 4.1.0-git
 * macOS: Update libvpx from 1.10.0 to 1.11.0
 * macOS: Update srt from 1.4.1 to 1.4.4
 * macOS: Update SWIG from 3.0.12 to 4.1.0-git
 * macOS: Update x264 from r3059 to r3060
2022-07-14 11:22:36 -04:00
PatTheMav c887459f3c CI: Switch to universal Qt builds for CI
Due to changes on obs-deps, per-arch Qt builds do not contain universal
binaries anymore. To allow CI to cross-compile on x86_64 runners,
the universal release is used, which will run on both architectures.
2022-07-07 16:20:30 -04:00
Shaolin 5e696cdaa8 CI: Fix FreeBSD definition of streaming service
This will bring build script on par with linux and macs
2022-06-06 03:12:46 -04:00
tytan652 3c390d8b5b flatpak: Update deps based on obs-deps 2022-05-23
* nv-codec-headers: Update to n11.1.5.1
* NTV2: Update to v16.2-bugfix5
* LuaJIT: Use same commit as obs-deps
2022-06-02 09:36:54 -03:00
Romain Vigier 43867ce93c flatpak: Install CMake config files
CMake config files are required for building OBS plugins with the
Flatpak as a runtime.

Add a post-install command that installs the `obs_libraries`
component, which provides the config files.
2022-05-30 12:16:35 -03:00
derrod a07cf955b2 CI: Update service-removal PR description 2022-05-23 05:50:58 -04:00
derrod abf383f264 CI: Ping authors of failed services in removal PR 2022-05-22 01:00:55 -04:00
derrod ccff8040fa CI: Add services check job 2022-05-20 08:55:56 -04:00
Matt Gajownik de11632a9c CI: Validate JSON Schema of Services files 2022-05-20 20:25:19 +10:00
Kurt Kartaltepe 1604400e48 linux-capture: Rewrite xcomposite
Generally moves all the plugin code into xcomposite-input.cpp and
removes all C++ dependencies.

Migrate as much as possible to xcb from Xlib to enable us to handle
errors and attribute them to the correct callers. This caused many other
knock on issues such as wrongly attributed errors and cleanup code
working incorrectly.

That allows us to use the xcursor-xcb implementation and delete the pure
Xlib implementation. We also add the missing functionality from the Xlib
implementation to the xcb implementation.

Capture glXCreatePixmap errors which occur most commonly on
nvidia+gnome due to nvidia's driver being unable to allocate more than 1
pixmap per window and gnome being the only compositor to read window
data via glx pixmaps.

Fix cleanup after failed glXCreatePixmap that might have leaked pixmaps
and prevented later captures on nvidia drivers for the same reason.
2022-05-14 17:01:08 -03:00
Ryan Foster 4b078b9296 CI: Respect user-specified build directory
The Windows build script would respect the user-specified build
directory for the configure step, but not for the build step. Fix that
by applying the same logic in Configure-OBS to Build-OBS.
2022-04-23 20:04:20 -04:00
tytan652 f4e696b39c flatpak: Cleanup PipeWire module 2022-04-22 20:32:45 -03:00
derrod e860b26589 CI: Add Steam build uploader 2022-04-18 14:08:33 -04:00
gxalpha 6f3a29a3f8 CI: Fix clang-format to include Objective-C 2022-04-18 10:43:44 +10:00
cg2121 6bee92d054 CI: Use 9-character short hashes in artifact names
Hardcode short hash length to 9 characters in CI and packaging scripts.
It is not guaranteed that short hashes are the same length across
different platforms or different versions of git. This caused problems
with upload/download action names, as the hashes sometimes didn't match.

Fix the download artifact name in the Windows installer job and the
macOS notarization job to prevent them from failing due to a name
mismatch.
2022-04-12 14:21:13 -04:00
PatTheMav ff916e5f2c CI: Fix Windows build scripts relying on localized architecture string
Current build scripts rely on comparing a architecture string provided
by the OS which will be localised in certain languages.

This change uses a boolean 64-bit flag to use script-defined identifiers
to avoid this issue.
2022-03-28 15:38:03 -04:00
Matt Gajownik 70924da18d CI: Don't ignore deps directory when formatting
Also add a .clang-format ignore file to the libff dependency.
2022-03-25 19:41:03 +11:00
tytan652 ebd6520f25 flatpak: Reenable AJA and JACK plugins 2022-03-23 10:36:16 -03:00
PatTheMav 184f6f38fb
CI: Fix CMake definition of streaming service options
On master branch, client information for Twitch, YouTube and Restream
integration are set as CMake cache variables. The hashes can contain
otherwise "illegal" characters such as backticks which need to be
enclosed in a string, but also cannot be subject to variable
substition.

Using single quotes should fix this.
2022-03-17 23:21:02 +01:00
PatTheMav 8fba906be4
CI: Add necessary build system changes for universal and M1 builds 2022-03-16 23:23:40 +01:00
PatTheMav c993b6059a
CI: Update build scripts and Github actions workflow
Also updates main CMakeLists.txt and CMakeLists.txt for unit tests,
also adds additional build directories to .gitignore file
2022-03-16 23:13:26 +01:00
PatTheMav 7a5bffc0a6 CI: Ensure SOVERSION symlinks exist in created App Bundle
Bundles libraries are available via their specific versioned filename
as well as SOVERSION and versionless symlinks. Dylibbundler does _not_
include these symlinks when copying linked libraries into the bundle.

This change ensures that all libraries and their SOVERSION symlinks
exist in the created App Bundle.
2022-02-19 15:40:00 -08:00
tytan652 447b8786ef flatpak: Update librist library
The librist commit is what is used by obs-deps since
this commit https://github.com/obsproject/obs-deps/commit/06fdd5f.
2022-01-27 12:02:53 -03:00
tytan652 54ca895537 flatpak: Update libaom and SVT-AV1
Update the libaom and SVT-AV1 versions and also apply several
cherry-picked commits to FFmpeg for SVT-AV1.

The libaom commit is what will be used by obs-deps once
https://github.com/obsproject/obs-deps/pull/90 is merged.
2022-01-26 13:42:29 -03:00
Luke Yelavich 9ce385d926 flatpak: Enable communication with org.a11y.Bus
This allows Linux accessibility tools such as the Orca screen reader to
be used with OBS.
2022-01-26 12:27:05 -03:00
Matt Gajownik e9cbe52d96 CI: Bump CEF caches to fix cookie crash bug
Manually backported a CEF 97 bug fix to CEF 95 and rebuilt for all
platforms. More info:
https://bitbucket.org/chromiumembedded/cef/issues/3193/#comment-61679139
2022-01-22 21:20:07 +11:00
Matt Gajownik a1e0d2f538 CI: Use GitHub mirror for PipeWire repository 2022-01-08 12:12:36 +11:00
tytan652 183a0a4d0e flatpak: Use same commit hash for LuaJIT as macOS 2022-01-05 20:02:19 +11:00