Skip to content

Commit

Permalink
build-aux: Add Flatpak manifest
Browse files Browse the repository at this point in the history
Add a new com.obsproject.Studio.json file
containing the dependencies and permissions
required by OBS Studio.

RFC: obsproject/rfcs#21
  • Loading branch information
GeorgesStavracas committed Nov 30, 2020
1 parent 0c0be0b commit c68db82
Show file tree
Hide file tree
Showing 2 changed files with 247 additions and 0 deletions.
197 changes: 197 additions & 0 deletions build-aux/com.obsproject.Studio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
app-id: com.obsproject.Studio
runtime: org.kde.Platform
runtime-version: 5.15
sdk: org.kde.Sdk
command: obs

finish-args:
- --socket=x11
- --socket=pulseaudio
- --device=all
- --share=network
- --share=ipc
- --filesystem=xdg-run/obs-xdg-portal:create
- --filesystem=host
- --talk-name=org.kde.StatusNotifierWatcher
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.Notifications
- --talk-name=org.mate.SessionManager
- --talk-name=org.gnome.SessionManager
- --own-name=org.kde.StatusNotifierItem-2-2
- --system-talk-name=org.freedesktop.Avahi

cleanup:
- /lib/pkgconfig
- /share/man
- '*.la'

modules:
- name: x264
config-opts:
- --disable-cli
- --enable-shared
cleanup:
- /include
sources:
- type: git
url: https://code.videolan.org/videolan/x264.git
commit: cde9a93319bea766a92e306d69059c76de970190

- name: v4l-utils
config-opts:
- --disable-static
- --disable-doxygen-doc
- --disable-libdvbv5
- --disable-v4l-utils
- --disable-qv4l2
- --with-udevdir=/app/lib/udev/
cleanup:
- /include
sources:
- type: archive
url: https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.20.0.tar.bz2
sha256: 956118713f7ccb405c55c7088a6a2490c32d54300dd9a30d8d5008c28d3726f7

- name: nv-codec-headers
no-autogen: true
make-install-args:
- PREFIX=/app
cleanup:
- '*'
sources:
- type: git
url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
commit: a99740a84b49fd609e04b03279e66c5a8b767440
tag: n10.0.26.1

- name: srt
buildsystem: cmake-ninja
config-opts:
- -DENABLE_STATIC=OFF
- -DENABLE_APPS=OFF
- -DENABLE_LOGGING=OFF
cleanup:
- /include
- /bin
sources:
- type: git
url: https://github.com/Haivision/srt.git
tag: v1.4.2
commit: 50b7af06f3a0a456c172b4cb3aceafa8a5cc0036

- name: ffmpeg
config-opts:
- --enable-gpl
- --enable-shared
- --disable-static
- --enable-gnutls
- --disable-doc
- --disable-programs
- --disable-devices
- --enable-libopus
- --enable-libvpx
- --enable-libvorbis
- --enable-libx264
- --enable-nvenc
- --enable-libsrt
cleanup:
- /share/ffmpeg
- /include
sources:
- type: archive
url: https://www.ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz
sha256: ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb
- type: patch
path: ffmpeg-libsrt.patch

- name: luajit
no-autogen: true
cleanup:
- /bin
- /include
sources:
- type: archive
url: http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
sha256: 1ad2e34b111c802f9d0cdf019e986909123237a28c746b21295b63c9e785d9c3
- type: shell
commands:
- sed -i 's|/usr/local|/app|' ./Makefile

- name: swig
config-opts:
- --without-boost
- --without-pcre
- --without-alllang
- --with-lua=/app/bin/luajit-2.1.0-beta2
- --with-luaincl=/app/include/luajit-2.1
- --with-python3
cleanup:
- '*'
sources:
- type: archive
url: https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz
sha256: d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc

- name: mbedtls
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
- -DUSE_SHARED_MBEDTLS_LIBRARY=ON
- -DUSE_STATIC_MBEDTLS_LIBRARY=OFF
- -DENABLE_TESTING=OFF
- -DENABLE_PROGRAMS=OFF
cleanup:
- /include
sources:
- type: git
url: https://github.com/ARMmbed/mbedtls.git
commit: 848a4e06b375e067552f1a21d4bc69322c673217
tag: mbedtls-2.16.8

- name: jack2
buildsystem: simple
build-commands:
- ./waf configure --prefix=$FLATPAK_DEST
- ./waf build -j $FLATPAK_BUILDER_N_JOBS
- ./waf install
cleanup:
- '*'
sources:
- type: archive
url: https://github.com/jackaudio/jack2/releases/download/v1.9.14/v1.9.14.tar.gz
sha256: a20a32366780c0061fd58fbb5f09e514ea9b7ce6e53b080a44b11a558a83217c

- name: cef
buildsystem: cmake-ninja
no-make-install: true
make-args:
- libcef_dll_wrapper
build-commands:
- mkdir -p /app/cef/libcef_dll_wrapper
- cp -R ./include /app/cef
- cp -R ./Release /app/cef
- cp -R ./Resources /app/cef
- cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper
sources:
- type: archive
url: https://cef-builds.spotifycdn.com/cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_linux64_minimal.tar.bz2
sha256: 6b0dfa8ddafcec822fcd20018cf081959ffa6d0565be3793da1f596ac0733c38

- name: obs
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_BROWSER=ON
- -DCEF_ROOT_DIR=/app/cef
- -DUNIX_STRUCTURE=ON
- -DUSE_XDG=ON
- -DDISABLE_ALSA=ON
- -DENABLE_PULSEAUDIO=ON
- -DWITH_RTMPS=ON
sources:
- type: git
url: https://github.com/GeorgesStavracas/obs-studio.git
50 changes: 50 additions & 0 deletions build-aux/ffmpeg-libsrt.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
From 7c59e1b0f285cd7c7b35fcd71f49c5fd52cf9315 Mon Sep 17 00:00:00 2001
From: Jun Zhao <barryjzhao@tencent.com>
Date: Sun, 12 Jul 2020 13:48:48 +0800
Subject: [PATCH 1/1] lavf/srt: fix build fail when used the libsrt 1.4.1

libsrt changed the:
SRTO_SMOOTHER -> SRTO_CONGESTION
SRTO_STRICTENC -> SRTO_ENFORCEDENCRYPTION
and removed the front of deprecated options (SRTO_SMOOTHER/SRTO_STRICTENC)
in the header, it's lead to build fail

fix #8760

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
---
libavformat/libsrt.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c
index 4de575b..4719ce0 100644
--- a/libavformat/libsrt.c
+++ b/libavformat/libsrt.c
@@ -313,8 +313,12 @@ static int libsrt_set_options_pre(URLContext *h, int fd)
(s->pbkeylen >= 0 && libsrt_setsockopt(h, fd, SRTO_PBKEYLEN, "SRTO_PBKEYLEN", &s->pbkeylen, sizeof(s->pbkeylen)) < 0) ||
(s->passphrase && libsrt_setsockopt(h, fd, SRTO_PASSPHRASE, "SRTO_PASSPHRASE", s->passphrase, strlen(s->passphrase)) < 0) ||
#if SRT_VERSION_VALUE >= 0x010302
+#if SRT_VERSION_VALUE >= 0x010401
+ (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_ENFORCEDENCRYPTION, "SRTO_ENFORCEDENCRYPTION", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) ||
+#else
/* SRTO_STRICTENC == SRTO_ENFORCEDENCRYPTION (53), but for compatibility, we used SRTO_STRICTENC */
(s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_STRICTENC, "SRTO_STRICTENC", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) ||
+#endif
(s->kmrefreshrate >= 0 && libsrt_setsockopt(h, fd, SRTO_KMREFRESHRATE, "SRTO_KMREFRESHRATE", &s->kmrefreshrate, sizeof(s->kmrefreshrate)) < 0) ||
(s->kmpreannounce >= 0 && libsrt_setsockopt(h, fd, SRTO_KMPREANNOUNCE, "SRTO_KMPREANNOUNCE", &s->kmpreannounce, sizeof(s->kmpreannounce)) < 0) ||
#endif
@@ -333,7 +337,11 @@ static int libsrt_set_options_pre(URLContext *h, int fd)
(s->lossmaxttl >= 0 && libsrt_setsockopt(h, fd, SRTO_LOSSMAXTTL, "SRTO_LOSSMAXTTL", &s->lossmaxttl, sizeof(s->lossmaxttl)) < 0) ||
(s->minversion >= 0 && libsrt_setsockopt(h, fd, SRTO_MINVERSION, "SRTO_MINVERSION", &s->minversion, sizeof(s->minversion)) < 0) ||
(s->streamid && libsrt_setsockopt(h, fd, SRTO_STREAMID, "SRTO_STREAMID", s->streamid, strlen(s->streamid)) < 0) ||
+#if SRT_VERSION_VALUE >= 0x010401
+ (s->smoother && libsrt_setsockopt(h, fd, SRTO_CONGESTION, "SRTO_CONGESTION", s->smoother, strlen(s->smoother)) < 0) ||
+#else
(s->smoother && libsrt_setsockopt(h, fd, SRTO_SMOOTHER, "SRTO_SMOOTHER", s->smoother, strlen(s->smoother)) < 0) ||
+#endif
(s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI, "SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) ||
(s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE, "SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) ||
((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER, "SRTO_SENDER", &yes, sizeof(yes)) < 0)) {
--
2.7.4

0 comments on commit c68db82

Please sign in to comment.