uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,36 @@
From 0de0a90f8fe5e1e48fa4ec7aa7c825ef88770f9d Mon Sep 17 00:00:00 2001
From: Ryan Foster <RytoEX@gmail.com>
Date: Mon, 9 Sep 2019 23:55:02 -0400
Subject: [PATCH] Enable file access and universal access for file URLs
When loading a local file, instead of disabling CEF's web security,
enable file access and universal access for file URLs. This should allow
local files to make CORS requests without completely disabling CEF's
security model.
---
obs-browser-source.cpp | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/obs-browser-source.cpp b/obs-browser-source.cpp
index ab1181e..c775283 100644
--- a/plugins/obs-browser/obs-browser-source.cpp
+++ b/plugins/obs-browser/obs-browser-source.cpp
@@ -179,9 +179,12 @@ bool BrowserSource::CreateBrowser()
#if ENABLE_LOCAL_FILE_URL_SCHEME
if (is_local) {
- /* Disable web security for file:// URLs to allow
- * local content access to remote APIs */
- cefBrowserSettings.web_security = STATE_DISABLED;
+ /* Enable file access and universal access from file://
+ * URLs to allow local content access to remote APIs */
+ cefBrowserSettings.file_access_from_file_urls =
+ STATE_ENABLED;
+ cefBrowserSettings.universal_access_from_file_urls =
+ STATE_ENABLED;
}
#endif
--
2.31.1

View file

@ -0,0 +1,148 @@
{ config
, lib
, stdenv
, mkDerivation
, fetchFromGitHub
, addOpenGLRunpath
, cmake
, fdk_aac
, ffmpeg_4
, jansson
, libjack2
, libxkbcommon
, libpthreadstubs
, libXdmcp
, qtbase
, qtx11extras
, qtsvg
, speex
, libv4l
, x264
, curl
, wayland
, xorg
, pkg-config
, libvlc
, mbedtls
, wrapGAppsHook
, scriptingSupport ? true
, luajit
, swig
, python3
, alsaSupport ? stdenv.isLinux
, alsa-lib
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
, libpulseaudio
, libcef
, pciutils
, pipewireSupport ? stdenv.isLinux
, pipewire
, libdrm
}:
let
inherit (lib) optional optionals;
in
mkDerivation rec {
pname = "obs-studio";
version = "27.2.4";
src = fetchFromGitHub {
owner = "obsproject";
repo = "obs-studio";
rev = version;
sha256 = "sha256-OiSejQovSmhItrnrQlcVp9PCDRgAhuxTinSpXbH8bo0=";
fetchSubmodules = true;
};
patches = [
# Lets obs-browser build against CEF 90.1.0+
./Enable-file-access-and-universal-access-for-file-URL.patch
];
nativeBuildInputs = [
addOpenGLRunpath
cmake
pkg-config
wrapGAppsHook
]
++ optional scriptingSupport swig;
buildInputs = [
curl
fdk_aac
ffmpeg_4
jansson
libcef
libjack2
libv4l
libxkbcommon
libpthreadstubs
libXdmcp
qtbase
qtx11extras
qtsvg
speex
wayland
x264
libvlc
mbedtls
pciutils
]
++ optionals scriptingSupport [ luajit python3 ]
++ optional alsaSupport alsa-lib
++ optional pulseaudioSupport libpulseaudio
++ optionals pipewireSupport [ pipewire libdrm ];
# Copied from the obs-linuxbrowser
postUnpack = ''
mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
for i in ${libcef}/share/cef/*; do
cp -r $i cef/Release/
cp -r $i cef/Resources/
done
cp -r ${libcef}/lib/libcef.so cef/Release/
cp -r ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
cp -r ${libcef}/include cef/
'';
# obs attempts to dlopen libobs-opengl, it fails unless we make sure
# DL_OPENGL is an explicit path. Not sure if there's a better way
# to handle this.
cmakeFlags = [
"-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\""
"-DOBS_VERSION_OVERRIDE=${version}"
"-Wno-dev" # kill dev warnings that are useless for packaging
# Add support for browser source
"-DBUILD_BROWSER=ON"
"-DCEF_ROOT_DIR=../../cef"
];
dontWrapGApps = true;
preFixup = ''
qtWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libX11 libvlc ]}"
''${gappsWrapperArgs[@]}
)
'';
postFixup = lib.optionalString stdenv.isLinux ''
addOpenGLRunpath $out/lib/lib*.so
addOpenGLRunpath $out/lib/obs-plugins/*.so
'';
meta = with lib; {
description = "Free and open source software for video recording and live streaming";
longDescription = ''
This project is a rewrite of what was formerly known as "Open Broadcaster
Software", software originally designed for recording and streaming live
video content, efficiently
'';
homepage = "https://obsproject.com";
maintainers = with maintainers; [ jb55 MP2E V ];
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
mainProgram = "obs";
};
}

View file

@ -0,0 +1,13 @@
{ callPackage, libsForQt5 }:
{
obs-gstreamer = callPackage ./obs-gstreamer.nix {};
obs-move-transition = callPackage ./obs-move-transition.nix {};
obs-multi-rtmp = libsForQt5.callPackage ./obs-multi-rtmp.nix {};
obs-ndi = libsForQt5.callPackage ./obs-ndi.nix {};
obs-websocket = libsForQt5.callPackage ./obs-websocket.nix {};
wlrobs = callPackage ./wlrobs.nix {};
looking-glass-obs = callPackage ./looking-glass-obs.nix {};
obs-nvfbc = callPackage ./obs-nvfbc.nix {};
obs-vkcapture = callPackage ./obs-vkcapture.nix {};
}

View file

@ -0,0 +1,13 @@
diff --git a/external/FindLibObs.cmake b/external/FindLibObs.cmake
index ab0a3de..19c63ee 100644
--- a/external/FindLibObs.cmake
+++ b/external/FindLibObs.cmake
@@ -95,7 +95,7 @@ if(LIBOBS_FOUND)
set(LIBOBS_INCLUDE_DIRS ${LIBOBS_INCLUDE_DIR} ${W32_PTHREADS_INCLUDE_DIR})
set(LIBOBS_LIBRARIES ${LIBOBS_LIB} ${W32_PTHREADS_LIB})
- include(${LIBOBS_INCLUDE_DIR}/../cmake/external/ObsPluginHelpers.cmake)
+ include(external/ObsPluginHelpers.cmake)
# allows external plugins to easily use/share common dependencies that are often included with libobs (such as FFmpeg)
if(NOT DEFINED INCLUDED_LIBOBS_CMAKE_MODULES)

View file

@ -0,0 +1,17 @@
diff --git a/src/obs-ndi.cpp b/src/obs-ndi.cpp
index 493831c..7b0f8db 100644
--- a/src/obs-ndi.cpp
+++ b/src/obs-ndi.cpp
@@ -197,11 +197,7 @@ const char* obs_module_description()
const NDIlib_v4* load_ndilib()
{
QStringList locations;
- locations << QString(qgetenv(NDILIB_REDIST_FOLDER));
-#if defined(__linux__) || defined(__APPLE__)
- locations << "/usr/lib";
- locations << "/usr/local/lib";
-#endif
+ locations << "@NDI@/lib";
for (QString path : locations) {
blog(LOG_INFO, "Trying '%s'", path.toUtf8().constData());

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchFromGitHub, cmake, libbfd, SDL2, obs-studio
, looking-glass-client }:
stdenv.mkDerivation {
pname = "looking-glass-obs";
version = looking-glass-client.version;
src = looking-glass-client.src;
sourceRoot = "source/obs";
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio libbfd SDL2 ];
NIX_CFLAGS_COMPILE = "-mavx";
installPhase = ''
mkdir -p $out/lib/obs-plugins/
mv liblooking-glass-obs.so $out/lib/obs-plugins/
'';
meta = with lib; {
description = "Plugin for OBS Studio for efficient capturing of looking-glass";
homepage = "https://looking-glass.io/docs/stable/obs/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ babbaj ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,32 @@
{ lib
, stdenv
, fetchFromGitHub
, gst_all_1
, pkg-config
, meson
, ninja
, obs-studio
}:
stdenv.mkDerivation rec {
pname = "obs-gstreamer";
version = "0.3.3";
src = fetchFromGitHub {
owner = "fzwoch";
repo = "obs-gstreamer";
rev = "v${version}";
hash = "sha256-KhSBZcV2yILTf5+aNoYWDfNwPiJoyYPeIOQMDFvOusg=";
};
nativeBuildInputs = [ pkg-config meson ninja ];
buildInputs = with gst_all_1; [ gstreamer gst-plugins-base obs-studio ];
meta = with lib; {
description = "An OBS Studio source, encoder and video filter plugin to use GStreamer elements/pipelines in OBS Studio";
homepage = "https://github.com/fzwoch/obs-gstreamer";
maintainers = with maintainers; [ ahuzik ];
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,34 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6d8fa3..5f0657d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,17 @@
+if (POLICY CMP0048)
+ cmake_policy(SET CMP0048 NEW)
+endif (POLICY CMP0048)
+
project(move-transition VERSION 2.4.3)
set(PROJECT_FULL_NAME "Move Transition")
+include(FindLibobs.cmake)
+find_package(LibObs REQUIRED)
+
+include_directories(
+ "${LIBOBS_INCLUDE_DIR}/../plugins/obs-transitions"
+ "${LIBOBS_INCLUDE_DIR}/../UI/obs-frontend-api")
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/version.h)
set(move-transition_HEADERS
@@ -38,4 +49,10 @@ target_link_libraries(move-transition
libobs)
set_target_properties(move-transition PROPERTIES FOLDER "plugins/exeldro")
-install_obs_plugin_with_data(move-transition data)
+set_target_properties(move-transition PROPERTIES PREFIX "")
+
+install(TARGETS move-transition
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/obs-plugins)
+
+install(DIRECTORY data/locale/
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/obs/obs-plugins/move-transition/locale")

View file

@ -0,0 +1,49 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, fetchurl
, cmake
, obs-studio
}:
stdenv.mkDerivation rec {
pname = "obs-move-transition";
version = "2.4.3";
src = fetchFromGitHub {
owner = "exeldro";
repo = "obs-move-transition";
rev = version;
sha256 = "sha256-/6PcNLOnBBqLZHVKMg1tdX9OktcllEEqnL93nXpuXL0=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio ];
cmakeFlags = with lib; [
"-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
"-Wno-dev"
];
preConfigure = ''
cp ${obs-studio.src}/cmake/external/FindLibobs.cmake FindLibobs.cmake
'';
patches = [ ./obs-move-transition-use-FindLibobs.cmake.patch ];
postPatch = ''
substituteInPlace move-source-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
substituteInPlace move-value-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
substituteInPlace move-transition.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
substituteInPlace audio-move.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
'';
meta = with lib; {
description = "Plugin for OBS Studio to move source to a new position during scene transition";
homepage = "https://github.com/exeldro/obs-move-transition";
maintainers = with maintainers; [ starcraft66 ];
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,31 @@
{ lib, stdenv, fetchFromGitHub, obs-studio, cmake, qtbase }:
stdenv.mkDerivation rec {
pname = "obs-multi-rtmp";
version = "0.2.8.1";
src = fetchFromGitHub {
owner = "sorayuki";
repo = "obs-multi-rtmp";
rev = version;
sha256 = "sha256-OhatuSlDJ2VDNorM4QfoKPYKyv5YpN8EnIelLdBTlZ0=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio qtbase ];
cmakeFlags = [
"-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs"
];
dontWrapQtApps = true;
meta = with lib; {
homepage = "https://github.com/sorayuki/obs-multi-rtmp/";
changelog = "https://github.com/sorayuki/obs-multi-rtmp/releases/tag/${version}";
description = "Multi-site simultaneous broadcast plugin for OBS Studio";
license = licenses.gpl2Only;
maintainers = with maintainers; [ jk ];
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchFromGitHub, obs-studio, cmake, qtbase, ndi }:
stdenv.mkDerivation rec {
pname = "obs-ndi";
version = "4.9.1";
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio qtbase ndi ];
src = fetchFromGitHub {
owner = "Palakis";
repo = "obs-ndi";
rev = version;
sha256 = "1y3xdqp55jayhg4sinwiwpk194zc4f4jf0abz647x2fprsk9jz7s";
};
patches = [ ./fix-search-path.patch ./hardcode-ndi-path.patch ];
postPatch = "sed -i -e s,@NDI@,${ndi},g src/obs-ndi.cpp";
cmakeFlags = [
"-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs"
"-DLIBOBS_LIB=${obs-studio}/lib"
"-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
];
dontWrapQtApps = true;
meta = with lib; {
description = "Network A/V plugin for OBS Studio";
homepage = "https://github.com/Palakis/obs-ndi";
maintainers = with maintainers; [ jshcmpbll ];
license = licenses.gpl2;
platforms = with platforms; linux;
};
}

View file

@ -0,0 +1,25 @@
{ stdenv, lib, fetchFromGitLab, meson, ninja, pkg-config
, obs-studio, libGL, libX11
}:
stdenv.mkDerivation rec {
pname = "obs-nvfbc";
version = "0.0.5";
src = fetchFromGitLab {
owner = "fzwoch";
repo = "obs-nvfbc";
rev = "v${version}";
sha256 = "sha256-Si+TGYWpNPtUUFT+M571lCYslPyeYX92MdYV9EGgcyQ=";
};
nativeBuildInputs = [ meson pkg-config ninja ];
buildInputs = [ obs-studio libGL libX11 ];
meta = with lib; {
description = "OBS Studio source plugin for NVIDIA FBC API";
license = licenses.gpl2Only;
maintainers = with maintainers; [ babbaj ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,35 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, ninja
, wayland
, obs-studio
, libX11
, vulkan-headers
, vulkan-loader
, libGL
}:
stdenv.mkDerivation rec {
pname = "obs-vkcapture";
version = "1.1.3";
src = fetchFromGitHub {
owner = "nowrep";
repo = pname;
rev = "v${version}";
sha256 = "sha256-iIV9ke2yPEt2Lf4bwiEHFip4tLhMS4raWGyCWpao74w=";
};
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libGL libX11 obs-studio vulkan-headers vulkan-loader wayland ];
meta = with lib; {
description = "OBS Linux Vulkan/OpenGL game capture";
homepage = "https://github.com/nowrep/obs-vkcapture";
maintainers = with maintainers; [ atila ];
license = licenses.gpl2Only;
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,63 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, qtbase
, qtsvg
, obs-studio
, asio_1_10
, websocketpp
, nlohmann_json
}:
stdenv.mkDerivation rec {
pname = "obs-websocket";
# We have updated to the alpha version when OBS Studio 27.2 was
# released, because this is the only version of obs-websocket that
# builds against the new OBS Studio.
version = "5.0.0-alpha3";
src = fetchFromGitHub {
owner = "Palakis";
repo = "obs-websocket";
rev = version;
sha256 = "Lr6SBj5rRTAWmn9Tnlu4Sl7SAkOCRCTP6sFWSp4xB+I=";
fetchSubmodules = true;
};
patches = [
# This patch can be dropped when obs-websocket is updated to the
# next version.
(fetchpatch {
url = "https://github.com/obsproject/obs-websocket/commit/13c7b83c34eb67b2ee80af05071d81f10d0d2997.patch";
sha256 = "TNap/T8+058vhfWzRRr4vmlblFk9tHMUNyG6Ob5PwiM=";
name = "obs-addref-werror-fix.patch";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [
qtbase
qtsvg
obs-studio
asio_1_10
websocketpp
nlohmann_json
];
dontWrapQtApps = true;
cmakeFlags = [
"-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
];
meta = with lib; {
description = "Remote-control OBS Studio through WebSockets";
homepage = "https://github.com/Palakis/obs-websocket";
maintainers = with maintainers; [ erdnaxe ];
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,26 @@
{ lib, stdenv, fetchhg
, meson, pkg-config, ninja
, wayland, obs-studio, libX11
}:
stdenv.mkDerivation {
pname = "wlrobs";
version = "unstable-2021-05-13";
src = fetchhg {
url = "https://hg.sr.ht/~scoopta/wlrobs";
rev = "4184a4a8ea7dc054c993efa16007f3a75b2c6f51";
sha256 = "146xirzd3nw1sd216y406v1riky9k08b6a0j4kwxrif5zyqa3adc";
};
nativeBuildInputs = [ meson pkg-config ninja ];
buildInputs = [ wayland obs-studio libX11 ];
meta = with lib; {
description = "An obs-studio plugin that allows you to screen capture on wlroots based wayland compositors";
homepage = "https://hg.sr.ht/~scoopta/wlrobs";
maintainers = with maintainers; [ grahamc V ];
license = licenses.gpl3Plus;
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,21 @@
{ obs-studio, symlinkJoin, makeWrapper }:
{ plugins ? [] }:
symlinkJoin {
name = "wrapped-${obs-studio.name}";
nativeBuildInputs = [ makeWrapper ];
paths = [ obs-studio ] ++ plugins;
postBuild = ''
wrapProgram $out/bin/obs \
--set OBS_PLUGINS_PATH "$out/lib/obs-plugins" \
--set OBS_PLUGINS_DATA_PATH "$out/share/obs/obs-plugins"
'';
inherit (obs-studio) meta;
passthru = obs-studio.passthru // {
passthru.unwrapped = obs-studio;
};
}