build-aux,CI: Split Flatpak manifest in multiple files

Also moves Flatpak manifest to build-aux folder
This commit is contained in:
tytan652
2023-04-17 16:01:40 +02:00
committed by Jim
parent 2ab326d2cd
commit 904fe87f83
25 changed files with 563 additions and 520 deletions

View File

@@ -65,7 +65,7 @@ jobs:
id: setup
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CACHE_KEY: flatpak-builder-${{ hashFiles('CI/flatpak/com.obsproject.Studio.json') }}
CACHE_KEY: flatpak-builder-${{ hashFiles('build-aux/**/*.json') }}
run: |
dnf install -y -q gh
gh extension install actions/gh-actions-cache
@@ -83,7 +83,7 @@ jobs:
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.1
with:
bundle: obs-studio-${{ steps.setup.outputs.git_hash }}.flatpak
manifest-path: CI/flatpak/com.obsproject.Studio.json
manifest-path: build-aux/com.obsproject.Studio.json
cache: ${{ fromJSON(steps.setup.outputs.cache_hit) }}
cache-key: ${{ steps.setup.outputs.cache_key }}
mirror-screenshots-url: https://dl.flathub.org/repo/screenshots

View File

@@ -374,7 +374,7 @@ jobs:
id: setup
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CACHE_KEY: flatpak-builder-${{ hashFiles('CI/flatpak/com.obsproject.Studio.json') }}
CACHE_KEY: flatpak-builder-${{ hashFiles('build-aux/**/*.json') }}
run: |
dnf install -y -q gh
gh extension install actions/gh-actions-cache
@@ -393,7 +393,7 @@ jobs:
with:
build-bundle: ${{ fromJSON(needs.config.outputs.create_artifacts) }}
bundle: obs-studio-flatpak-${{ steps.setup.outputs.git_hash }}.flatpak
manifest-path: CI/flatpak/com.obsproject.Studio.json
manifest-path: build-aux/com.obsproject.Studio.json
cache: ${{ fromJSON(steps.setup.outputs.cache_hit) || (github.event_name == 'push' && github.ref == 'refs/heads/master') }}
restore-cache: ${{ fromJSON(steps.setup.outputs.cache_hit) }}
cache-key: ${{ steps.setup.outputs.cache_key }}

1
.gitignore vendored
View File

@@ -9,6 +9,7 @@
#cmake
/build*/
!/build-aux/
/release*/
/debug*/
.vs/

View File

@@ -1,515 +0,0 @@
{
"app-id": "com.obsproject.Studio",
"runtime": "org.kde.Platform",
"runtime-version": "6.4",
"sdk": "org.kde.Sdk",
"command": "obs",
"finish-args": [
"--socket=wayland",
"--socket=x11",
"--socket=pulseaudio",
"--device=all",
"--share=network",
"--share=ipc",
"--filesystem=xdg-run/pipewire-0",
"--filesystem=host",
"--talk-name=org.kde.StatusNotifierWatcher",
"--talk-name=org.freedesktop.Flatpak",
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.a11y.Bus",
"--own-name=org.kde.StatusNotifierItem-2-2",
"--system-talk-name=org.freedesktop.Avahi",
"--env=VST_PATH=/app/extensions/Plugins/vst"
],
"add-extensions": {
"com.obsproject.Studio.Plugin": {
"directory": "plugins",
"subdirectories": true,
"add-ld-path": "lib",
"merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
"no-autodownload": true,
"autodelete": true
},
"org.freedesktop.LinuxAudio.Plugins": {
"directory": "extensions/Plugins",
"version": "22.08",
"add-ld-path": "lib",
"merge-dirs": "vst",
"subdirectories": true,
"no-autodownload": true
}
},
"cleanup": [
"/share/man",
"*.la"
],
"modules": [
{
"name": "x264",
"config-opts": [
"--disable-cli",
"--enable-shared"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://code.videolan.org/videolan/x264.git",
"commit": "eaa68fad9e5d201d42fde51665f2d137ae96baf0"
}
]
},
{
"name": "v4l-utils",
"config-opts": [
"--disable-static",
"--disable-doxygen-doc",
"--disable-libdvbv5",
"--disable-v4l-utils",
"--disable-qv4l2",
"--with-udevdir=/app/lib/udev/"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "archive",
"url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
"sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
}
]
},
{
"name": "nv-codec-headers",
"no-autogen": true,
"make-install-args": [
"PREFIX=/app"
],
"cleanup": [
"*"
],
"sources": [
{
"type": "git",
"url": "https://github.com/FFmpeg/nv-codec-headers.git",
"tag": "n12.0.16.0",
"commit": "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
}
]
},
{
"name": "srt",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_STATIC=OFF",
"-DENABLE_APPS=OFF",
"-DENABLE_LOGGING=OFF"
],
"cleanup": [
"/include",
"/lib/pkgconfig",
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://github.com/Haivision/srt.git",
"tag": "v1.5.1",
"commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
}
]
},
{
"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": "869298bffeea13b205343361b7a7daf2b210e33d",
"tag": "v3.2.1"
}
]
},
{
"name": "librist",
"buildsystem":"meson",
"builddir": true,
"config-opts": [
"-Duse_mbedtls=true",
"-Dtest=false",
"-Dbuilt_tools=false",
"-Dbuiltin_cjson=true"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://code.videolan.org/rist/librist.git",
"commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
}
]
},
{
"name": "aom",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON",
"-DENABLE_DOCS=OFF",
"-DENABLE_EXAMPLES=OFF",
"-DENABLE_TESTDATA=OFF",
"-DENABLE_TESTS=OFF",
"-DENABLE_TOOLS=OFF "
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://aomedia.googlesource.com/aom.git",
"tag": "v3.6.0",
"commit": "3c65175b1972da4a1992c1dae2365b48d13f9a8d"
}
]
},
{
"name": "svt-av1",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON",
"-DBUILD_APPS=OFF",
"-DBUILD_DEC=ON",
"-DBUILD_ENC=ON",
"-DBUILD_TESTING=OFF"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
"tag": "v1.4.1",
"commit": "018276d714ce65d9b586f6205ee016cbd8d5425d"
}
]
},
{
"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",
"--enable-librist",
"--enable-libaom",
"--enable-libsvtav1"
],
"cleanup": [
"/share/ffmpeg"
],
"sources": [
{
"type": "git",
"url": "https://github.com/FFmpeg/FFmpeg.git",
"commit": "a6dc92968a325d331bb6dcf9b3b2248026cd1d6c",
"disable-shallow-clone": true
},
{
"type": "git",
"dest": "obs-deps",
"url": "https://github.com/obsproject/obs-deps.git",
"tag": "2023-04-12",
"commit": "24e25fd83e6938cfe3cc5020230430b31ba5df59"
},
{
"type": "shell",
"commands": [
"patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch",
"patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"
]
}
]
},
{
"name": "luajit",
"no-autogen": true,
"cleanup": [
"/bin",
"/include",
"/lib/pkgconfig",
"*.a"
],
"sources": [
{
"type": "git",
"url": "https://luajit.org/git/luajit-2.0.git",
"commit": "505e2c03de35e2718eef0d2d3660712e06dadf1f",
"disable-shallow-clone": true
},
{
"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-beta3",
"--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": "pipewire",
"buildsystem": "meson",
"config-opts": [
"-Daudiotestsrc=disabled",
"-Droc=disabled",
"-Dvideotestsrc=disabled",
"-Dvolume=disabled",
"-Dvulkan=disabled",
"-Ddocs=disabled",
"-Dman=disabled",
"-Dbluez5-codec-ldac=disabled",
"-Dbluez5-codec-aptx=disabled",
"-Dlibcamera=disabled",
"-Dudevrulesdir=/app/lib/udev/rules.d/",
"-Dsession-managers=[]",
"-Dtests=disabled",
"-Dexamples=disabled",
"-Dpw-cat=disabled"
],
"cleanup": [
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://github.com/pipewire/pipewire.git",
"tag": "0.3.65",
"commit": "9558a5d5e0360d8af822431c76ee858a8c7495ac"
}
]
},
{
"name": "ntv2",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DAJA_BUILD_OPENSOURCE=ON",
"-DAJA_BUILD_APPS=OFF",
"-DAJA_INSTALL_HEADERS=ON"
],
"cleanup": [
"/include"
],
"sources": [
{
"type": "git",
"url": "https://github.com/aja-video/ntv2.git",
"tag": "v16.2-bugfix5",
"commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
}
]
},
{
"name": "jansson",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DJANSSON_EXAMPLES=OFF",
"-DJANSSON_BUILD_DOCS=OFF",
"-DJANSSON_BUILD_SHARED_LIBS=ON",
"-DJANSSON_WITHOUT_TESTS=ON"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://github.com/akheron/jansson.git",
"tag": "v2.14",
"commit": "684e18c927e89615c2d501737e90018f4930d6c5"
}
]
},
{
"name": "nlohmann-json",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DJSON_BuildTests=OFF"
],
"sources": [
{
"type": "git",
"url": "https://github.com/nlohmann/json.git",
"tag": "v3.11.2",
"commit": "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
}
]
},
{
"name": "websocketpp",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_CPP11=ON",
"-DBUILD_EXAMPLES=OFF",
"-DBUILD_TESTS=OFF"
],
"sources": [
{
"type": "git",
"url": "https://github.com/zaphoyd/websocketpp.git",
"tag": "0.8.2",
"commit": "56123c87598f8b1dd471be83ca841ceae07f95ba"
}
]
},
{
"name": "asio",
"buildsystem": "simple",
"build-commands": [
"mkdir -p /app/include",
"cp asio/include/asio.hpp /app/include/",
"cp -R asio/include/asio /app/include/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/chriskohlhoff/asio.git",
"tag": "asio-1-12-1",
"commit": "b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
}
]
},
{
"name": "cef",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"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"
],
"cleanup": [
"*"
],
"sources": [
{
"type": "archive",
"url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
"sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
}
]
},
{
"name": "obs",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_WAYLAND=ON",
"-DENABLE_BROWSER=ON",
"-DCEF_ROOT_DIR=/app/cef",
"-DUSE_XDG=ON",
"-DENABLE_ALSA=OFF",
"-DENABLE_PULSEAUDIO=ON",
"-DENABLE_JACK=ON",
"-DENABLE_RTMPS=ON",
"-DENABLE_VLC=OFF",
"-DENABLE_AJA=ON",
"-DENABLE_LIBFDK=ON"
],
"secret-opts": [
"-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
"-DRESTREAM_HASH=$RESTREAM_HASH",
"-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
"-DTWITCH_HASH=$TWITCH_HASH",
"-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
"-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
"-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
"-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
],
"post-install": [
"install -d /app/plugins",
"install -d /app/extensions/Plugins"
],
"sources": [
{
"type": "dir",
"path": "../../"
}
]
}
]
}

View File

@@ -44,6 +44,6 @@
<release version="@OBS_VERSION@" date="@APPDATA_RELEASE_DATE@"/>
</releases>
<custom>
<value key="flathub::manifest">https://github.com/obsproject/obs-studio/blob/@GIT_HASH@/CI/flatpak/com.obsproject.Studio.json</value>
<value key="flathub::manifest">https://github.com/obsproject/obs-studio/blob/@GIT_HASH@/build-aux/</value>
</custom>
</component>

24
build-aux/README.md Normal file
View File

@@ -0,0 +1,24 @@
# `build-aux` folder
This folder contains only the Flatpak manifest used to build OBS Studio.
## OBS Studio Flatpak Manifest
The manifest is composed of multiple files:
- The main manifest `com.obsproject.Studio.json`
- The `modules` folder which contains OBS Studio dependencies modules
### Manifest modules
Modules are ordered/dispatched in numbered categories following a short list of rules:
- A module must not depend on another module from the same category, so a module can only depend on modules from lower numbered categories.
- A module without dependencies must be placed in the highest numbered category in use, excluding categories meant for specific types of dependency.
Actual categories:
- `99-`: CEF
- `90-`: Headers-only libraries that are dependencies of only OBS Studio
- `50-`: Modules that are dependencies of only OBS Studio
- `40-`: Modules that are dependencies of the `50-` category
- `30-`: FFmpeg
- `20-`: Modules that are dependencies of FFmpeg
- `10-`: Modules that are dependencies of the `20-` category

View File

@@ -0,0 +1,105 @@
{
"app-id": "com.obsproject.Studio",
"runtime": "org.kde.Platform",
"runtime-version": "6.4",
"sdk": "org.kde.Sdk",
"command": "obs",
"finish-args": [
"--socket=wayland",
"--socket=x11",
"--socket=pulseaudio",
"--device=all",
"--share=network",
"--share=ipc",
"--filesystem=xdg-run/pipewire-0",
"--filesystem=host",
"--talk-name=org.kde.StatusNotifierWatcher",
"--talk-name=org.freedesktop.Flatpak",
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.a11y.Bus",
"--own-name=org.kde.StatusNotifierItem-2-2",
"--system-talk-name=org.freedesktop.Avahi",
"--env=VST_PATH=/app/extensions/Plugins/vst"
],
"add-extensions": {
"com.obsproject.Studio.Plugin": {
"directory": "plugins",
"subdirectories": true,
"add-ld-path": "lib",
"merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
"no-autodownload": true,
"autodelete": true
},
"org.freedesktop.LinuxAudio.Plugins": {
"directory": "extensions/Plugins",
"version": "22.08",
"add-ld-path": "lib",
"merge-dirs": "vst",
"subdirectories": true,
"no-autodownload": true
}
},
"cleanup": [
"/share/man",
"*.la"
],
"modules": [
"modules/10-mbedtls.json",
"modules/20-aom.json",
"modules/20-librist.json",
"modules/20-nv-codec.json",
"modules/20-srt.json",
"modules/20-svt-av1.json",
"modules/20-x264.json",
"modules/30-ffmpeg.json",
"modules/40-luajit.json",
"modules/50-jansson.json",
"modules/50-ntv2.json",
"modules/50-pipewire.json",
"modules/50-swig.json",
"modules/50-v4l-utils.json",
"modules/90-asio.json",
"modules/90-nlohmann-json.json",
"modules/90-websocketpp.json",
"modules/99-cef.json",
{
"name": "obs",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_WAYLAND=ON",
"-DENABLE_BROWSER=ON",
"-DCEF_ROOT_DIR=/app/cef",
"-DUSE_XDG=ON",
"-DENABLE_ALSA=OFF",
"-DENABLE_PULSEAUDIO=ON",
"-DENABLE_JACK=ON",
"-DENABLE_RTMPS=ON",
"-DENABLE_VLC=OFF",
"-DENABLE_AJA=ON",
"-DENABLE_LIBFDK=ON"
],
"secret-opts": [
"-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
"-DRESTREAM_HASH=$RESTREAM_HASH",
"-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
"-DTWITCH_HASH=$TWITCH_HASH",
"-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
"-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
"-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
"-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
],
"post-install": [
"install -d /app/plugins",
"install -d /app/extensions/Plugins"
],
"sources": [
{
"type": "dir",
"path": "../"
}
]
}
]
}

View File

@@ -0,0 +1,24 @@
{
"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": "869298bffeea13b205343361b7a7daf2b210e33d",
"tag": "v3.2.1"
}
]
}

View File

@@ -0,0 +1,26 @@
{
"name": "aom",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON",
"-DENABLE_DOCS=OFF",
"-DENABLE_EXAMPLES=OFF",
"-DENABLE_TESTDATA=OFF",
"-DENABLE_TESTS=OFF",
"-DENABLE_TOOLS=OFF "
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://aomedia.googlesource.com/aom.git",
"tag": "v3.6.0",
"commit": "3c65175b1972da4a1992c1dae2365b48d13f9a8d"
}
]
}

View File

@@ -0,0 +1,22 @@
{
"name": "librist",
"buildsystem": "meson",
"builddir": true,
"config-opts": [
"-Duse_mbedtls=true",
"-Dtest=false",
"-Dbuilt_tools=false",
"-Dbuiltin_cjson=true"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://code.videolan.org/rist/librist.git",
"commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "nv-codec",
"no-autogen": true,
"make-install-args": [
"PREFIX=/app"
],
"cleanup": [
"*"
],
"sources": [
{
"type": "git",
"url": "https://github.com/FFmpeg/nv-codec-headers.git",
"tag": "n12.0.16.0",
"commit": "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
}
]
}

View File

@@ -0,0 +1,23 @@
{
"name": "srt",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_STATIC=OFF",
"-DENABLE_APPS=OFF",
"-DENABLE_LOGGING=OFF"
],
"cleanup": [
"/include",
"/lib/pkgconfig",
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://github.com/Haivision/srt.git",
"tag": "v1.5.1",
"commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
}
]
}

View File

@@ -0,0 +1,25 @@
{
"name": "svt-av1",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON",
"-DBUILD_APPS=OFF",
"-DBUILD_DEC=ON",
"-DBUILD_ENC=ON",
"-DBUILD_TESTING=OFF"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
"tag": "v1.4.1",
"commit": "018276d714ce65d9b586f6205ee016cbd8d5425d"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "x264",
"config-opts": [
"--disable-cli",
"--enable-shared"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://code.videolan.org/videolan/x264.git",
"commit": "eaa68fad9e5d201d42fde51665f2d137ae96baf0"
}
]
}

View File

@@ -0,0 +1,46 @@
{
"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",
"--enable-librist",
"--enable-libaom",
"--enable-libsvtav1"
],
"cleanup": [
"/share/ffmpeg"
],
"sources": [
{
"type": "git",
"url": "https://github.com/FFmpeg/FFmpeg.git",
"commit": "a6dc92968a325d331bb6dcf9b3b2248026cd1d6c",
"disable-shallow-clone": true
},
{
"type": "git",
"dest": "obs-deps",
"url": "https://github.com/obsproject/obs-deps.git",
"tag": "2023-04-12",
"commit": "24e25fd83e6938cfe3cc5020230430b31ba5df59"
},
{
"type": "shell",
"commands": [
"patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch",
"patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"
]
}
]
}

View File

@@ -0,0 +1,24 @@
{
"name": "luajit",
"no-autogen": true,
"cleanup": [
"/bin",
"/include",
"/lib/pkgconfig",
"*.a"
],
"sources": [
{
"type": "git",
"url": "https://luajit.org/git/luajit-2.0.git",
"commit": "505e2c03de35e2718eef0d2d3660712e06dadf1f",
"disable-shallow-clone": true
},
{
"type": "shell",
"commands": [
"sed -i 's|/usr/local|/app|' ./Makefile"
]
}
]
}

View File

@@ -0,0 +1,24 @@
{
"name": "jansson",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DJANSSON_EXAMPLES=OFF",
"-DJANSSON_BUILD_DOCS=OFF",
"-DJANSSON_BUILD_SHARED_LIBS=ON",
"-DJANSSON_WITHOUT_TESTS=ON"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "git",
"url": "https://github.com/akheron/jansson.git",
"tag": "v2.14",
"commit": "684e18c927e89615c2d501737e90018f4930d6c5"
}
]
}

View File

@@ -0,0 +1,22 @@
{
"name": "ntv2",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DAJA_BUILD_OPENSOURCE=ON",
"-DAJA_BUILD_APPS=OFF",
"-DAJA_INSTALL_HEADERS=ON"
],
"cleanup": [
"/include"
],
"sources": [
{
"type": "git",
"url": "https://github.com/aja-video/ntv2.git",
"tag": "v16.2-bugfix5",
"commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
}
]
}

View File

@@ -0,0 +1,32 @@
{
"name": "pipewire",
"buildsystem": "meson",
"config-opts": [
"-Daudiotestsrc=disabled",
"-Droc=disabled",
"-Dvideotestsrc=disabled",
"-Dvolume=disabled",
"-Dvulkan=disabled",
"-Ddocs=disabled",
"-Dman=disabled",
"-Dbluez5-codec-ldac=disabled",
"-Dbluez5-codec-aptx=disabled",
"-Dlibcamera=disabled",
"-Dudevrulesdir=/app/lib/udev/rules.d/",
"-Dsession-managers=[]",
"-Dtests=disabled",
"-Dexamples=disabled",
"-Dpw-cat=disabled"
],
"cleanup": [
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://github.com/pipewire/pipewire.git",
"tag": "0.3.65",
"commit": "9558a5d5e0360d8af822431c76ee858a8c7495ac"
}
]
}

View File

@@ -0,0 +1,21 @@
{
"name": "swig",
"config-opts": [
"--without-boost",
"--without-pcre",
"--without-alllang",
"--with-lua=/app/bin/luajit-2.1.0-beta3",
"--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"
}
]
}

View File

@@ -0,0 +1,22 @@
{
"name": "v4l-utils",
"config-opts": [
"--disable-static",
"--disable-doxygen-doc",
"--disable-libdvbv5",
"--disable-v4l-utils",
"--disable-qv4l2",
"--with-udevdir=/app/lib/udev/"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "archive",
"url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
"sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
}
]
}

View File

@@ -0,0 +1,17 @@
{
"name": "asio",
"buildsystem": "simple",
"build-commands": [
"mkdir -p /app/include",
"cp asio/include/asio.hpp /app/include/",
"cp -R asio/include/asio /app/include/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/chriskohlhoff/asio.git",
"tag": "asio-1-12-1",
"commit": "b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
}
]
}

View File

@@ -0,0 +1,17 @@
{
"name": "nlohmann-json",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DJSON_BuildTests=OFF"
],
"sources": [
{
"type": "git",
"url": "https://github.com/nlohmann/json.git",
"tag": "v3.11.2",
"commit": "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
}
]
}

View File

@@ -0,0 +1,19 @@
{
"name": "websocketpp",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DENABLE_CPP11=ON",
"-DBUILD_EXAMPLES=OFF",
"-DBUILD_TESTS=OFF"
],
"sources": [
{
"type": "git",
"url": "https://github.com/zaphoyd/websocketpp.git",
"tag": "0.8.2",
"commit": "56123c87598f8b1dd471be83ca841ceae07f95ba"
}
]
}

View File

@@ -0,0 +1,28 @@
{
"name": "cef",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"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"
],
"cleanup": [
"*"
],
"sources": [
{
"type": "archive",
"url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
"sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
}
]
}