summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Damhet2020-08-19 09:53:02 +0200
committerAntoine Damhet2020-08-19 09:53:02 +0200
commit8087c172b8373ffb15efe8f79905a3174d29c118 (patch)
tree9b5d9587c1e05e14d334bf7d4d4427f9d4005fcd
parent9c0d01b3b8239646c1acbbb5e520544b649fc0c8 (diff)
downloadaur-8087c172b8373ffb15efe8f79905a3174d29c118.tar.gz
update patches from pull request
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
-rw-r--r--.SRCINFO38
-rw-r--r--0001-deps-glad-Add-EGL.patch4
-rw-r--r--0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch4
-rw-r--r--0003-libobs-opengl-Factor-out-GLX-winsys.patch4
-rw-r--r--0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch4
-rw-r--r--0005-deps-glad-Make-X11-required-as-well.patch4
-rw-r--r--0006-ci-Install-qtbase5-private-dev-on-Linux.patch21
-rw-r--r--0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch4
-rw-r--r--0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch4
-rw-r--r--0009-UI-Set-the-Unix-platform-on-startup.patch4
-rw-r--r--0010-linux-capture-Fail-to-load-when-running-on-EGL.patch4
-rw-r--r--0011-libobs-Add-a-Wayland-platform.patch4
-rw-r--r--0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch4
-rw-r--r--0013-libobs-Add-a-Wayland-platform.patch30
-rw-r--r--0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch (renamed from 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch)4
-rw-r--r--0015-UI-Retrieve-Wayland-surface-from-QWindow.patch (renamed from 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch)4
-rw-r--r--0016-UI-Destroy-obs_display-when-becoming-invisible.patch52
-rw-r--r--PKGBUILD38
18 files changed, 168 insertions, 63 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7c5599c74672..bfd89bdecca9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = obs-studio-wayland
pkgdesc = Free, open source software for live streaming and recording (with wayland patches)
pkgver = 25.0.8
- pkgrel = 1
+ pkgrel = 2
url = https://obsproject.com
arch = x86_64
license = GPL2
@@ -47,24 +47,28 @@ pkgbase = obs-studio-wayland
source = 0010-linux-capture-Fail-to-load-when-running-on-EGL.patch
source = 0011-libobs-Add-a-Wayland-platform.patch
source = 0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch
- source = 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
- source = 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch
+ source = 0013-libobs-Add-a-Wayland-platform.patch
+ source = 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
+ source = 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch
+ source = 0016-UI-Destroy-obs_display-when-becoming-invisible.patch
sha512sums = a97c03dc218a4e03e48f6a7dc82b4a59ebeee2039f17be66bb847681ce9ff3d25e6e015be4af78fe44739f6fad5089b6e683d7657c2e4fde8e547df9a2594a08
sha512sums = 1ff0e088eed61554268009f3d8c5a23c0888bfbe860d6cb288ddf348108446c152fd87e2cb8f54613a88378d8474550632c90f924005d5e0343bf1a801339ccc
- sha512sums = bfe2b0e6da69ffdca95229eb4015515148fdda909355add1d2dec71cf97e9fdabdfc832c74f455a890846708f28d5bcbec64589e853904d539a438b2dcbd7a18
- sha512sums = 5221b6a7a46f99c58cde1c5406f83d50def2d5b3a2e97be7db759d94d74a5be46da092209e6a4122a6de4b704632c3f013535f80b570349b029ea4124151c4f6
- sha512sums = c9a0660c95bd18a02620fb0b870032563669544e7a721e4d91dafb8aebb96d1735414a9e37ed56355fc5afeb8f437a434b4fd5f147c9658cc6974e8e8bab4463
- sha512sums = 0b404ff252f94bcdd957d43db26c54c6b47de5a8f810f4febdb0aa5b873c48f23ef2817361e5ce9c09a189e770978cfca24767167604434ece771d759e7c4270
- sha512sums = 47f5bffb469ece2b961000cd2d8656b82cba8ac0fa09fa7703c662e0cee2e48744d5b8aa93a4b4508436ea5edfe3038fa7aa88a3b43466f88c7504e6a8ba51ed
- sha512sums = d15c21968a3024888ce4c8e884d861f147358e95a42c1de557251a4c2fccbdddf9cf5a285deedbf73cffbd25fdaad44dd972cb10bf9a5b23a0049b239e75961f
- sha512sums = c1f94ccd836c51ff83735df614bf6d3e2c310c599685e700ae5726ace20434edd04ef0c9be0a8c0f4c458dd164ad1ac817fd32bcbeeefb0107a6ce4cbce9cb08
- sha512sums = 6ce870404a6d2bfbb25935a6da59a07447307f8592dd1dc1aaebba2b9f959633565ba4cdc7d50ee3c4e5b4c169397298daa5804c3060fc780dba52099f687393
- sha512sums = 6374229b662949e2989eb372a922fda872d2a08e817690b2262f99dc8a02261a75aeeacfc40da2b68a04228b38cda4aeaca4212068e8605b7532662dc459abb4
- sha512sums = 16dfa319e9e18ef8e946b9723e27d1ea1f56e4de8656d8112571bc87aa7ade8dbda4293f064c2477cdaf92c60fca4484b2c7ac322835bf402657275933f6ab52
- sha512sums = c81a421475293d3d5c64a744c10a925dc26975a6dfd46e1b3b2a92931da43c311d0a153548889b4e9831bee61ab8b0f5fc504ad3f0ed7f0628f93287e12ad3d3
- sha512sums = ea36fee6228d582f5f3b886a3de61ad8b139691c3bf30e24a7b20f1eab2f9e43b0dfbf6f254dcef00e2bfbf6826f223a957d3e78524ebd864c64433529e40441
- sha512sums = a93f186ed24ee979a4297aa063c435ae541f5f1958b86373f6534a2dd85e2178d6f151f115200c987b5e1d999ebd94d6ce0597ef1e7b3588bcb161c53dd4878e
- sha512sums = c4e6a23edf080076c27599e02909a068b11094848f733297496e7ea0061df56be4becdb58449ec7a05ff2a659fa4c0f75f4006cb204578477308d24d764fba41
+ sha512sums = 6329e08da95e345509001ab6b9e8b73a227d0e63a8d39a3ef9b7d0197940ea9589d39b4aa92cdcc9f21cc4b9110a97f8e80891a12b4b24dff6d23395379abf5c
+ sha512sums = b05346b83587d2fe3fbc676a14aca961f05fa58c6912f82fed9e15a4b9fcacce297921003b41980c57ba09c4623d50c905a7c50961c2269a9709fcb67a088002
+ sha512sums = 6f38fd7f6f5a29d05b6dd824af1de6072ebd692c96940ba74e5d1799e21754230010fd70cd2f1ce830a0701d25b07cfbae8cbe49f89ba085cd2dec6796a7790d
+ sha512sums = 14979eef47ab1d6e88ab77c35ab00a5e8297d1ed332bb397b8d3906e68c6ffa0b4e0761ef0dfff0221c7e22f5fb709e5bb11b87e046116bb3996df270e3b7b43
+ sha512sums = db6a8d54e86f58f1adecb0f09ab5660ae0d06f4aa8bd0ea2e61da601ae82fd53a3b4c6db96d5827709e700843b70cc5a72851c0d429e3ec05bef250ed48445a0
+ sha512sums = f0374c85bd93928a32d60a9516c90c1b2e3537b84f949066110897f05224a568dd57f2cd9d141b0cfa8e89672b081dac3c64304523fcf37f0c018ca78ad71625
+ sha512sums = dcdca90cfd701aad02ba12dee9a6482ca9066ff817e6e24bb3d0d6dfbbc48e8e98eb02517983802c66cade34c0d347aec817fe98da8baa7f5fff9187201e9a00
+ sha512sums = 64e4adef34a1074410245120d828871c128ee8254d77378cd7b74fe0182abaffdbff6669990a75464335b33d83641893b73e618c7322e1fe3186a748eab07e79
+ sha512sums = 64ca66913ade6b28815aa06383089e1c9aaa7a2b50cd425be8876d0a95338615be844a362a55c02541681d51f1921cb0820554f49fe21786649076ca16f6f64b
+ sha512sums = a917037dc63bfdd8d2d04b2d3f625eb9c8ec26868ca2eeef23d78f3442c8233252d86285b771e1c1428408508aedff4407aec5bdc9ef233fda995483fdab4202
+ sha512sums = 013adb73a718f5df05a055de0e5fa17701dc645d8e7025ff1192d99a405dd6a0923fcfdbbad37777ff993545aadf9d4d29bae7191c6505f9f929273d5b374ee2
+ sha512sums = 34710dbf905e6af2d7af3feab9f55c867dcbac6afa0ab6a12f7c458b974ba71e14ef797e9db613d3248c046dee1c1dce8559ceeaf1d95d1215368032e642731d
+ sha512sums = e131c7a65ce0e848f0b91bfd4b3db750bc0bddce64a9ff49d97082ddafb9ddab92f43ea19a2c92b054e85df0f018f43ff5dc8cf81671520079e4e4681d5ac230
+ sha512sums = cefa4f5032a06e9341ccdabef022d755c8869b391a33ed5c4bd927672f967d5287d4c017cb7b2d37c163c9f387ca94d5846327461a9ba3b44478ed67a60d6a9f
+ sha512sums = e406d3f16f17b35ce463120eefd2bea3797fa83304ea27628b9a671704451c4a275d6844b0f007997e3a6edc39557442c6eb9eb8b6dc2a50e07341e3b0621e1f
+ sha512sums = 6c1cd77e63f760aabb9186edb906092bb9f6a7b2e7bd32deff4af33b5f35e95abe7ff874b6a17112d3da098f970f706c0a05f239fc75b65e60f4c68ae544eacf
pkgname = obs-studio-wayland
diff --git a/0001-deps-glad-Add-EGL.patch b/0001-deps-glad-Add-EGL.patch
index 2a2c7bd524bf..76d75d696de1 100644
--- a/0001-deps-glad-Add-EGL.patch
+++ b/0001-deps-glad-Add-EGL.patch
@@ -1,7 +1,7 @@
-From b91db14ec87f4f1a2fba7d6cb89c4e6d07a0472f Mon Sep 17 00:00:00 2001
+From af3a31e5dc24a37ecd34ac87ec662289a942a42e Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 13:10:16 -0300
-Subject: [PATCH 01/15] deps-glad: Add EGL
+Subject: [PATCH 01/16] deps-glad: Add EGL
The code is generated by https://glad.dav1d.de/
---
diff --git a/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch b/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch
index f73cc33566fc..9509e25d080e 100644
--- a/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch
+++ b/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch
@@ -1,7 +1,7 @@
-From 49e7a26b3aa5523662e68401554a1474fa8baf86 Mon Sep 17 00:00:00 2001
+From 6a15695f885d372909c3eeadd091abd640fca937 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 13:19:31 -0300
-Subject: [PATCH 02/15] libobs-opengl: Rename gl-x11.c to gl-x11-glx.c
+Subject: [PATCH 02/16] libobs-opengl: Rename gl-x11.c to gl-x11-glx.c
This is in preparation for the future abstraction layer (gl-x11-*)
and also to match the actual name of the windowing system. When
diff --git a/0003-libobs-opengl-Factor-out-GLX-winsys.patch b/0003-libobs-opengl-Factor-out-GLX-winsys.patch
index ae99c34a6c16..cd29cc7cdc21 100644
--- a/0003-libobs-opengl-Factor-out-GLX-winsys.patch
+++ b/0003-libobs-opengl-Factor-out-GLX-winsys.patch
@@ -1,7 +1,7 @@
-From dc135a39d088ead4c603f95b1483c7076da4cea4 Mon Sep 17 00:00:00 2001
+From 4cc969bdb0abcfb5a4737b2f4159ee9c0be7d4cc Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 16:46:37 -0300
-Subject: [PATCH 03/15] libobs-opengl: Factor out GLX winsys
+Subject: [PATCH 03/16] libobs-opengl: Factor out GLX winsys
Move the GLX-related code to gl-x11-glx, and introduce gl-nix as
a winsys-agnostic abstraction layer. gl-nix serves as the runtime
diff --git a/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch b/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch
index 1dad1ee061a4..760ce471dc0e 100644
--- a/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch
+++ b/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch
@@ -1,7 +1,7 @@
-From 3016893fbe071ce95c20ea24844713a068862c29 Mon Sep 17 00:00:00 2001
+From ecff9e62ac3a52a198e6d5fd71c40abe3826799e Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 17:35:49 -0300
-Subject: [PATCH 04/15] libobs-opengl: Introduce the X11/EGL winsys
+Subject: [PATCH 04/16] libobs-opengl: Introduce the X11/EGL winsys
Introduce the EGL/X11 winsys, and use it when the OBS_USE_EGL environment
variable is defined. This variable is only temporary, for future commits
diff --git a/0005-deps-glad-Make-X11-required-as-well.patch b/0005-deps-glad-Make-X11-required-as-well.patch
index f971e8c97f09..c658aa824c72 100644
--- a/0005-deps-glad-Make-X11-required-as-well.patch
+++ b/0005-deps-glad-Make-X11-required-as-well.patch
@@ -1,7 +1,7 @@
-From 6b71db73fb1aef30ad06e576d2b2377052ed9f56 Mon Sep 17 00:00:00 2001
+From 8191cd88f8273430e2976d774ac9189d17661f73 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Sat, 11 Apr 2020 23:49:05 -0300
-Subject: [PATCH 05/15] deps/glad: Make X11 required as well
+Subject: [PATCH 05/16] deps/glad: Make X11 required as well
To keep consistency with the EGL line
---
diff --git a/0006-ci-Install-qtbase5-private-dev-on-Linux.patch b/0006-ci-Install-qtbase5-private-dev-on-Linux.patch
index 804e48baef7b..9a1a1996b4ce 100644
--- a/0006-ci-Install-qtbase5-private-dev-on-Linux.patch
+++ b/0006-ci-Install-qtbase5-private-dev-on-Linux.patch
@@ -1,12 +1,27 @@
-From e3eeda73e23c9b6a22562583eb9b7bf5c8a481df Mon Sep 17 00:00:00 2001
+From f31796d19f4a4fdedc99f360ccf5d9c5c0f92cf5 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Fri, 6 Mar 2020 16:22:01 -0300
-Subject: [PATCH 06/15] ci: Install qtbase5-private-dev on Linux
+Subject: [PATCH 06/16] ci: Install qtbase5-private-dev on Linux
+List this dependency both under CI/install-dependencies-linux.sh, and
+.github/workflows/main.yml.
---
+ .github/workflows/main.yml | 1 +
CI/install-dependencies-linux.sh | 1 +
- 1 file changed, 1 insertion(+)
+ 2 files changed, 2 insertions(+)
+diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
+index 47c47101..008c3ee9 100644
+--- a/.github/workflows/main.yml
++++ b/.github/workflows/main.yml
+@@ -176,6 +176,7 @@ jobs:
+ pkg-config \
+ python3-dev \
+ qtbase5-dev \
++ qtbase5-private-dev \
+ libqt5svg5-dev \
+ swig
+ - name: 'Install prerequisite: Chromium Embedded Framework'
diff --git a/CI/install-dependencies-linux.sh b/CI/install-dependencies-linux.sh
index 0d92fbf9..478f953a 100755
--- a/CI/install-dependencies-linux.sh
diff --git a/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch b/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch
index 47c412c2775f..9ece5ad904f7 100644
--- a/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch
+++ b/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch
@@ -1,7 +1,7 @@
-From 93ecb043ff029fe430c59d2654a9f3fc590747ec Mon Sep 17 00:00:00 2001
+From c84f1b751554d6a1cd15f5db4a611a2cb8f95842 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Fri, 6 Mar 2020 17:24:33 -0300
-Subject: [PATCH 07/15] libobs/nix: Move X11-specific code to obs-nix-x11.c
+Subject: [PATCH 07/16] libobs/nix: Move X11-specific code to obs-nix-x11.c
Currently, obs-nix.c is highly tied to the X11 display
server. It includes X11 headers directly, and make use
diff --git a/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch b/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch
index 30152b5f8644..8365db68c60f 100644
--- a/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch
+++ b/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch
@@ -1,7 +1,7 @@
-From 2fe20c5488edf35c0507728d253b373bc1b842ab Mon Sep 17 00:00:00 2001
+From 32f86b37c78454ad51ac427ccc772b7a62fa89c8 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Fri, 6 Mar 2020 17:50:41 -0300
-Subject: [PATCH 08/15] libobs: Introduce the concept of a Unix platform
+Subject: [PATCH 08/16] libobs: Introduce the concept of a Unix platform
This is a Unix-specific code. The only available platforms
at this point are the X11/GLX and X11/EGL platforms.
diff --git a/0009-UI-Set-the-Unix-platform-on-startup.patch b/0009-UI-Set-the-Unix-platform-on-startup.patch
index d18eccb9a527..c980d56bd6ef 100644
--- a/0009-UI-Set-the-Unix-platform-on-startup.patch
+++ b/0009-UI-Set-the-Unix-platform-on-startup.patch
@@ -1,7 +1,7 @@
-From 25d37ebfbe7d9aa583bd8bd9655892c2d73f13dc Mon Sep 17 00:00:00 2001
+From 79ec8d09ce00ae6645604a3fd7562832c2400790 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Tue, 7 Apr 2020 23:17:02 -0300
-Subject: [PATCH 09/15] UI: Set the Unix platform on startup
+Subject: [PATCH 09/16] UI: Set the Unix platform on startup
Move the OBS_USE_EGL environment variable check to obs-app.cpp,
and set the OBS platform to be either OBS_NIX_PLATFORM_X11_GLX
diff --git a/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch b/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch
index 2576277a4bd7..292d1289ca23 100644
--- a/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch
+++ b/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch
@@ -1,7 +1,7 @@
-From d07e62894d3aa78430a2ee543443a81c70153067 Mon Sep 17 00:00:00 2001
+From 7abd7a9ed53f36a0aa9ba45c32cb7824bc6558ac Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Wed, 8 Apr 2020 23:58:43 -0300
-Subject: [PATCH 10/15] linux-capture: Fail to load when running on EGL
+Subject: [PATCH 10/16] linux-capture: Fail to load when running on EGL
Right now, linux-capture hard-depends on GLX. Disable it when
running under EGL.
diff --git a/0011-libobs-Add-a-Wayland-platform.patch b/0011-libobs-Add-a-Wayland-platform.patch
index d95c85d1518b..312184df22e9 100644
--- a/0011-libobs-Add-a-Wayland-platform.patch
+++ b/0011-libobs-Add-a-Wayland-platform.patch
@@ -1,7 +1,7 @@
-From de53eda26763e1aa7ec82803fd231c0cf9c0a6c4 Mon Sep 17 00:00:00 2001
+From 5c5cf8e4dfd6b2930a25c5772a5679d39c75fc0d Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Fri, 6 Mar 2020 18:53:42 -0300
-Subject: [PATCH 11/15] libobs: Add a Wayland platform
+Subject: [PATCH 11/16] libobs: Add a Wayland platform
Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect
it when OBS Studio runs by looking into the platform name.
diff --git a/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch b/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch
index 8f138caedb6b..da63e8ed83a5 100644
--- a/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch
+++ b/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch
@@ -1,7 +1,7 @@
-From 5bf0de83d59b4147e91feceba2ec957522d83736 Mon Sep 17 00:00:00 2001
+From e8a11258a45892d6aebb08de3302e771df25bc6f Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Sat, 11 Apr 2020 23:32:16 -0300
-Subject: [PATCH 12/15] libobs-opengl: Try to use the platform display if
+Subject: [PATCH 12/16] libobs-opengl: Try to use the platform display if
available
We need to ensure we're running all X11 code on the same display.
diff --git a/0013-libobs-Add-a-Wayland-platform.patch b/0013-libobs-Add-a-Wayland-platform.patch
new file mode 100644
index 000000000000..759940dbc31e
--- /dev/null
+++ b/0013-libobs-Add-a-Wayland-platform.patch
@@ -0,0 +1,30 @@
+From a0535494becd877747261ff18b545a4d77c980ff Mon Sep 17 00:00:00 2001
+From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
+Date: Fri, 6 Mar 2020 18:53:42 -0300
+Subject: [PATCH 13/16] libobs: Add a Wayland platform
+
+Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect
+it when OBS Studio runs by looking into the platform name.
+---
+ UI/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt
+index 171efa2b..70d6da79 100644
+--- a/UI/CMakeLists.txt
++++ b/UI/CMakeLists.txt
+@@ -408,6 +408,11 @@ if (ENABLE_WAYLAND)
+ include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
+ endif()
+
++if (ENABLE_WAYLAND)
++ find_package(Qt5Gui)
++ include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
++endif()
++
+ define_graphic_modules(obs)
+
+ install_obs_core(obs)
+--
+2.28.0
+
diff --git a/0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch b/0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
index 26ac4909d196..d360c44d96b2 100644
--- a/0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
+++ b/0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
@@ -1,7 +1,7 @@
-From 7fd9f95fee70ec8d604797db4a0de77e58c6e32d Mon Sep 17 00:00:00 2001
+From 35be3fc4cc65ca86329cf1156e1256249096606b Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 21:09:11 -0300
-Subject: [PATCH 13/15] libobs-opengl: Introduce an EGL/Wayland renderer
+Subject: [PATCH 14/16] libobs-opengl: Introduce an EGL/Wayland renderer
Introduce a new Wayland/EGL renderer.
---
diff --git a/0014-UI-Retrieve-Wayland-surface-from-QWindow.patch b/0015-UI-Retrieve-Wayland-surface-from-QWindow.patch
index b46f02f1feb7..8e91bd4a24de 100644
--- a/0014-UI-Retrieve-Wayland-surface-from-QWindow.patch
+++ b/0015-UI-Retrieve-Wayland-surface-from-QWindow.patch
@@ -1,7 +1,7 @@
-From ded1e2a0201d3160ff1b427bab104870f29d516b Mon Sep 17 00:00:00 2001
+From 9a69ae56d2204501b45cf7b5471279e7d61e65ba Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 9 Mar 2020 21:23:37 -0300
-Subject: [PATCH 14/15] UI: Retrieve Wayland surface from QWindow
+Subject: [PATCH 15/16] UI: Retrieve Wayland surface from QWindow
On Wayland, we want to query the window's underlying
platform for the Wayland surface, instead of foolishly
diff --git a/0016-UI-Destroy-obs_display-when-becoming-invisible.patch b/0016-UI-Destroy-obs_display-when-becoming-invisible.patch
new file mode 100644
index 000000000000..e45a6da7a6f7
--- /dev/null
+++ b/0016-UI-Destroy-obs_display-when-becoming-invisible.patch
@@ -0,0 +1,52 @@
+From 7e2e627ebf4d9f52afebb7dcda95429f68362f32 Mon Sep 17 00:00:00 2001
+From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
+Date: Tue, 18 Aug 2020 19:38:29 -0300
+Subject: [PATCH 16/16] UI: Destroy obs_display when becoming invisible
+
+When a window is made invisible, then visible again, the
+obs_display is reused. Turns out, QT destroys the wl_surface
+associated with the previewer on Wayland. However, the EGL
+surface created on top of this wl_surface is not, and any
+attempt to attach a new buffer to it will crash OBS.
+
+Destroy the obs_display when becoming invisible, and when
+running as a Wayland client.
+---
+ UI/qt-display.cpp | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/UI/qt-display.cpp b/UI/qt-display.cpp
+index 685ee6f9..fc83e0e0 100644
+--- a/UI/qt-display.cpp
++++ b/UI/qt-display.cpp
+@@ -6,6 +6,12 @@
+ #include <QResizeEvent>
+ #include <QShowEvent>
+
++#include <obs-config.h>
++
++#ifdef ENABLE_WAYLAND
++#include <obs-nix-platform.h>
++#endif
++
+ static inline long long color_to_int(const QColor &color)
+ {
+ auto shift = [&](unsigned val, int shift) {
+@@ -33,8 +39,13 @@ OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags)
+ setAttribute(Qt::WA_NativeWindow);
+
+ auto windowVisible = [this](bool visible) {
+- if (!visible)
++ if (!visible) {
++#ifdef ENABLE_WAYLAND
++ if (obs_get_nix_platform() == OBS_NIX_PLATFORM_WAYLAND)
++ display = nullptr;
++#endif
+ return;
++ }
+
+ if (!display) {
+ CreateDisplay();
+--
+2.28.0
+
diff --git a/PKGBUILD b/PKGBUILD
index e865b91156c9..13d815e60892 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=$_pkgname-wayland
provides=("$_pkgname")
conflicts=("$_pkgname")
pkgver=25.0.8
-pkgrel=1
+pkgrel=2
pkgdesc="Free, open source software for live streaming and recording (with wayland patches)"
arch=('x86_64')
url="https://obsproject.com"
@@ -38,25 +38,29 @@ source=(
0010-linux-capture-Fail-to-load-when-running-on-EGL.patch
0011-libobs-Add-a-Wayland-platform.patch
0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch
- 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
- 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch
+ 0013-libobs-Add-a-Wayland-platform.patch
+ 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch
+ 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch
+ 0016-UI-Destroy-obs_display-when-becoming-invisible.patch
)
sha512sums=('a97c03dc218a4e03e48f6a7dc82b4a59ebeee2039f17be66bb847681ce9ff3d25e6e015be4af78fe44739f6fad5089b6e683d7657c2e4fde8e547df9a2594a08'
'1ff0e088eed61554268009f3d8c5a23c0888bfbe860d6cb288ddf348108446c152fd87e2cb8f54613a88378d8474550632c90f924005d5e0343bf1a801339ccc'
- 'bfe2b0e6da69ffdca95229eb4015515148fdda909355add1d2dec71cf97e9fdabdfc832c74f455a890846708f28d5bcbec64589e853904d539a438b2dcbd7a18'
- '5221b6a7a46f99c58cde1c5406f83d50def2d5b3a2e97be7db759d94d74a5be46da092209e6a4122a6de4b704632c3f013535f80b570349b029ea4124151c4f6'
- 'c9a0660c95bd18a02620fb0b870032563669544e7a721e4d91dafb8aebb96d1735414a9e37ed56355fc5afeb8f437a434b4fd5f147c9658cc6974e8e8bab4463'
- '0b404ff252f94bcdd957d43db26c54c6b47de5a8f810f4febdb0aa5b873c48f23ef2817361e5ce9c09a189e770978cfca24767167604434ece771d759e7c4270'
- '47f5bffb469ece2b961000cd2d8656b82cba8ac0fa09fa7703c662e0cee2e48744d5b8aa93a4b4508436ea5edfe3038fa7aa88a3b43466f88c7504e6a8ba51ed'
- 'd15c21968a3024888ce4c8e884d861f147358e95a42c1de557251a4c2fccbdddf9cf5a285deedbf73cffbd25fdaad44dd972cb10bf9a5b23a0049b239e75961f'
- 'c1f94ccd836c51ff83735df614bf6d3e2c310c599685e700ae5726ace20434edd04ef0c9be0a8c0f4c458dd164ad1ac817fd32bcbeeefb0107a6ce4cbce9cb08'
- '6ce870404a6d2bfbb25935a6da59a07447307f8592dd1dc1aaebba2b9f959633565ba4cdc7d50ee3c4e5b4c169397298daa5804c3060fc780dba52099f687393'
- '6374229b662949e2989eb372a922fda872d2a08e817690b2262f99dc8a02261a75aeeacfc40da2b68a04228b38cda4aeaca4212068e8605b7532662dc459abb4'
- '16dfa319e9e18ef8e946b9723e27d1ea1f56e4de8656d8112571bc87aa7ade8dbda4293f064c2477cdaf92c60fca4484b2c7ac322835bf402657275933f6ab52'
- 'c81a421475293d3d5c64a744c10a925dc26975a6dfd46e1b3b2a92931da43c311d0a153548889b4e9831bee61ab8b0f5fc504ad3f0ed7f0628f93287e12ad3d3'
- 'ea36fee6228d582f5f3b886a3de61ad8b139691c3bf30e24a7b20f1eab2f9e43b0dfbf6f254dcef00e2bfbf6826f223a957d3e78524ebd864c64433529e40441'
- 'a93f186ed24ee979a4297aa063c435ae541f5f1958b86373f6534a2dd85e2178d6f151f115200c987b5e1d999ebd94d6ce0597ef1e7b3588bcb161c53dd4878e'
- 'c4e6a23edf080076c27599e02909a068b11094848f733297496e7ea0061df56be4becdb58449ec7a05ff2a659fa4c0f75f4006cb204578477308d24d764fba41')
+ '6329e08da95e345509001ab6b9e8b73a227d0e63a8d39a3ef9b7d0197940ea9589d39b4aa92cdcc9f21cc4b9110a97f8e80891a12b4b24dff6d23395379abf5c'
+ 'b05346b83587d2fe3fbc676a14aca961f05fa58c6912f82fed9e15a4b9fcacce297921003b41980c57ba09c4623d50c905a7c50961c2269a9709fcb67a088002'
+ '6f38fd7f6f5a29d05b6dd824af1de6072ebd692c96940ba74e5d1799e21754230010fd70cd2f1ce830a0701d25b07cfbae8cbe49f89ba085cd2dec6796a7790d'
+ '14979eef47ab1d6e88ab77c35ab00a5e8297d1ed332bb397b8d3906e68c6ffa0b4e0761ef0dfff0221c7e22f5fb709e5bb11b87e046116bb3996df270e3b7b43'
+ 'db6a8d54e86f58f1adecb0f09ab5660ae0d06f4aa8bd0ea2e61da601ae82fd53a3b4c6db96d5827709e700843b70cc5a72851c0d429e3ec05bef250ed48445a0'
+ 'f0374c85bd93928a32d60a9516c90c1b2e3537b84f949066110897f05224a568dd57f2cd9d141b0cfa8e89672b081dac3c64304523fcf37f0c018ca78ad71625'
+ 'dcdca90cfd701aad02ba12dee9a6482ca9066ff817e6e24bb3d0d6dfbbc48e8e98eb02517983802c66cade34c0d347aec817fe98da8baa7f5fff9187201e9a00'
+ '64e4adef34a1074410245120d828871c128ee8254d77378cd7b74fe0182abaffdbff6669990a75464335b33d83641893b73e618c7322e1fe3186a748eab07e79'
+ '64ca66913ade6b28815aa06383089e1c9aaa7a2b50cd425be8876d0a95338615be844a362a55c02541681d51f1921cb0820554f49fe21786649076ca16f6f64b'
+ 'a917037dc63bfdd8d2d04b2d3f625eb9c8ec26868ca2eeef23d78f3442c8233252d86285b771e1c1428408508aedff4407aec5bdc9ef233fda995483fdab4202'
+ '013adb73a718f5df05a055de0e5fa17701dc645d8e7025ff1192d99a405dd6a0923fcfdbbad37777ff993545aadf9d4d29bae7191c6505f9f929273d5b374ee2'
+ '34710dbf905e6af2d7af3feab9f55c867dcbac6afa0ab6a12f7c458b974ba71e14ef797e9db613d3248c046dee1c1dce8559ceeaf1d95d1215368032e642731d'
+ 'e131c7a65ce0e848f0b91bfd4b3db750bc0bddce64a9ff49d97082ddafb9ddab92f43ea19a2c92b054e85df0f018f43ff5dc8cf81671520079e4e4681d5ac230'
+ 'cefa4f5032a06e9341ccdabef022d755c8869b391a33ed5c4bd927672f967d5287d4c017cb7b2d37c163c9f387ca94d5846327461a9ba3b44478ed67a60d6a9f'
+ 'e406d3f16f17b35ce463120eefd2bea3797fa83304ea27628b9a671704451c4a275d6844b0f007997e3a6edc39557442c6eb9eb8b6dc2a50e07341e3b0621e1f'
+ '6c1cd77e63f760aabb9186edb906092bb9f6a7b2e7bd32deff4af33b5f35e95abe7ff874b6a17112d3da098f970f706c0a05f239fc75b65e60f4c68ae544eacf')
prepare() {
cd $_pkgname-$pkgver