diff --git a/pkgs/by-name/op/openswitcher/package.nix b/pkgs/by-name/op/openswitcher/package.nix new file mode 100644 index 0000000000000..f8e3a5edef8ec --- /dev/null +++ b/pkgs/by-name/op/openswitcher/package.nix @@ -0,0 +1,80 @@ +{ lib +, python3Packages +, fetchFromSourcehut +, desktop-file-utils +, gobject-introspection +, gtk3 +, libhandy +, meson +, ninja +, pkg-config +, scdoc +, wrapGAppsHook +}: + +python3Packages.buildPythonApplication rec { + pname = "openswitcher"; + version = "0.9.1"; + format = "other"; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "pyatem"; + rev = version; + hash = "sha256-264XqBl+1qsAc5vOxJabbkubY+F72xo06WWishVEQOI="; + }; + + outputs = [ + "out" + "man" + ]; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + gtk3 + meson + ninja + pkg-config + scdoc + wrapGAppsHook + ]; + + dontWrapGApps = true; + + buildInputs = [ + gtk3 + libhandy + ]; + + propagatedBuildInputs = with python3Packages; [ + # for switcher-control, bmd-setup + paho-mqtt + pyatem + pygobject3 + # for atemswitch + requests + # for openswitcher-proxy + toml + ]; + + postInstall = '' + install -Dm644 -t $out/lib/udev/rules.d/ $src/100-blackmagicdesign.rules + ''; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Blackmagic Design mixer control application"; + downloadPage = "https://git.sr.ht/~martijnbraam/pyatem"; + homepage = "https://openswitcher.org/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/pyatem/default.nix b/pkgs/development/python-modules/pyatem/default.nix new file mode 100644 index 0000000000000..5b7749ea57c99 --- /dev/null +++ b/pkgs/development/python-modules/pyatem/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchFromSourcehut + +# build-system +, setuptools + +# dependencies +, pyusb +, tqdm +, zeroconf + +# tests +, pillow +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pyatem"; + version = "0.9.0"; # check latest version in setup.py + pyproject = true; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "pyatem"; + rev = version; + hash = "sha256-ntwUhgC8Cgrim+kU3B3ckgPDmPe+aEHDP4wsB45KbJg="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + pyusb + tqdm + zeroconf + ]; + + nativeCheckInputs = [ + pillow + pytestCheckHook + ]; + + preCheck = '' + TESTDIR=$(mktemp -d) + cp -r pyatem/{test_*.py,fixtures} $TESTDIR/ + pushd $TESTDIR + ''; + + disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ + # colorspace mapping has weird, but constant offsets on aarch64-linux + "test_blueramp" + "test_greenramp" + "test_hues" + "test_primaries" + "test_redramp" + ]; + + postCheck = '' + popd + ''; + + pythonImportsCheck = [ + "pyatem" + ]; + + meta = with lib; { + description = "Library for controlling Blackmagic Design ATEM video mixers"; + homepage = "https://git.sr.ht/~martijnbraam/pyatem"; + license = licenses.lgpl3Only; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b00707ff4ad1a..35c07c5c5a509 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9362,6 +9362,8 @@ self: super: with self; { pyatag = callPackage ../development/python-modules/pyatag { }; + pyatem = callPackage ../development/python-modules/pyatem { }; + pyatome = callPackage ../development/python-modules/pyatome { }; pycketcasts = callPackage ../development/python-modules/pycketcasts { };