mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-25 13:35:13 +00:00
Merge pull request #247618 from Majiir/streamdeck-ui-3.0.1
streamdeck-ui: 2.0.6 -> 3.0.1
This commit is contained in:
commit
024c8c2bd4
@ -24,7 +24,7 @@ in
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cfg.package
|
cfg.package
|
||||||
(mkIf cfg.autoStart (makeAutostartItem { name = "streamdeck-ui"; package = cfg.package; }))
|
(mkIf cfg.autoStart (makeAutostartItem { name = "streamdeck-ui-noui"; package = cfg.package; }))
|
||||||
];
|
];
|
||||||
|
|
||||||
services.udev.packages = [ cfg.package ];
|
services.udev.packages = [ cfg.package ];
|
||||||
|
@ -1,48 +1,46 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, python3Packages
|
, python3Packages
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, copyDesktopItems
|
, copyDesktopItems
|
||||||
, wrapQtAppsHook
|
|
||||||
, writeText
|
, writeText
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
, xvfb-run
|
, xvfb-run
|
||||||
, qt5
|
, qt6
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "streamdeck-ui";
|
pname = "streamdeck-ui";
|
||||||
version = "2.0.6";
|
version = "3.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = pname;
|
repo = "streamdeck-linux-gui";
|
||||||
owner = "timothycrosley";
|
owner = "streamdeck-linux-gui";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-5dk+5oefg5R68kv038gsZ2p5ixmpj/vBLBp/V7Sdos8=";
|
sha256 = "sha256-nLtWExxufxT5nRiEYLGNeMhFhvlGzYKA+crA74Yt4ck=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
# nixpkgs has a newer pillow version
|
||||||
name = "use-poetry-core.patch";
|
./update-pillow.patch
|
||||||
url = "https://github.com/timothycrosley/streamdeck-ui/commit/e271656c1f47b1619d1b942e2ebb01ab2d6a68a9.patch";
|
|
||||||
hash = "sha256-wqYwX6eSqMnW6OG7wSprD62Dz818ayFduVrqW9E/ays=";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "update-python-xlib-0.33.patch";
|
|
||||||
url = "https://github.com/timothycrosley/streamdeck-ui/commit/07d7fdd33085b413dd26b02d8a02820edad2d568.patch";
|
|
||||||
hash = "sha256-PylTrbfB8RJ0+kbgJlRdcvfdahGoob8LabwhuFNsUpY=";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
desktopItems = [ (makeDesktopItem {
|
desktopItems = let
|
||||||
|
common = {
|
||||||
name = "streamdeck-ui";
|
name = "streamdeck-ui";
|
||||||
desktopName = "Stream Deck UI";
|
desktopName = "Stream Deck UI";
|
||||||
icon = "streamdeck-ui";
|
icon = "streamdeck-ui";
|
||||||
exec = "streamdeck --no-ui";
|
exec = "streamdeck";
|
||||||
comment = "UI for the Elgato Stream Deck";
|
comment = "UI for the Elgato Stream Deck";
|
||||||
categories = [ "Utility" ];
|
categories = [ "Utility" ];
|
||||||
|
};
|
||||||
|
in builtins.map makeDesktopItem [
|
||||||
|
common
|
||||||
|
(common // {
|
||||||
|
name = "${common.name}-noui";
|
||||||
|
exec = "${common.exec} --no-ui";
|
||||||
noDisplay = true;
|
noDisplay = true;
|
||||||
}) ];
|
})
|
||||||
|
];
|
||||||
|
|
||||||
postInstall =
|
postInstall =
|
||||||
let
|
let
|
||||||
@ -51,6 +49,10 @@ python3Packages.buildPythonApplication rec {
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
|
mkdir -p $out/lib/systemd/user
|
||||||
|
substitute scripts/streamdeck.service $out/lib/systemd/user/streamdeck.service \
|
||||||
|
--replace '<path to streamdeck>' $out/bin/streamdeck
|
||||||
|
|
||||||
mkdir -p "$out/etc/udev/rules.d"
|
mkdir -p "$out/etc/udev/rules.d"
|
||||||
cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
|
cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ python3Packages.buildPythonApplication rec {
|
|||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
python3Packages.poetry-core
|
python3Packages.poetry-core
|
||||||
copyDesktopItems
|
copyDesktopItems
|
||||||
wrapQtAppsHook
|
qt6.wrapQtAppsHook
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
@ -75,11 +77,11 @@ python3Packages.buildPythonApplication rec {
|
|||||||
cairosvg
|
cairosvg
|
||||||
pillow
|
pillow
|
||||||
pynput
|
pynput
|
||||||
pyside2
|
pyside6
|
||||||
streamdeck
|
streamdeck
|
||||||
xlib
|
xlib
|
||||||
] ++ lib.optionals stdenv.isLinux [
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
qt5.qtwayland
|
qt6.qtwayland
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
@ -89,18 +91,15 @@ python3Packages.buildPythonApplication rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Ignored tests are not in a running or passing state.
|
# Ignored tests are not in a running or passing state.
|
||||||
# Fixes have been merged upstream but not yet released.
|
|
||||||
# Revisit these ignored tests on each update.
|
# Revisit these ignored tests on each update.
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
xvfb-run pytest tests \
|
xvfb-run pytest tests \
|
||||||
--ignore=tests/test_api.py \
|
--ignore=tests/test_api.py
|
||||||
--ignore=tests/test_filter.py \
|
|
||||||
--ignore=tests/test_stream_deck_monitor.py
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Linux compatible UI for the Elgato Stream Deck";
|
description = "Linux compatible UI for the Elgato Stream Deck";
|
||||||
homepage = "https://timothycrosley.github.io/streamdeck-ui/";
|
homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ majiir ];
|
maintainers = with maintainers; [ majiir ];
|
||||||
};
|
};
|
||||||
|
13
pkgs/applications/misc/streamdeck-ui/update-pillow.patch
Normal file
13
pkgs/applications/misc/streamdeck-ui/update-pillow.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/pyproject.toml b/pyproject.toml
|
||||||
|
index 0aff29e..4371616 100644
|
||||||
|
--- a/pyproject.toml
|
||||||
|
+++ b/pyproject.toml
|
||||||
|
@@ -14,7 +14,7 @@ packages = [
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = ">=3.8,<3.12"
|
||||||
|
streamdeck = "^0.9.3"
|
||||||
|
-pillow = "^9.4.0"
|
||||||
|
+pillow = "^10.0.0"
|
||||||
|
pynput = "^1.7.6"
|
||||||
|
pyside6 = "^6.4.2"
|
||||||
|
CairoSVG = "^2.5.2"
|
@ -9,6 +9,7 @@
|
|||||||
, libglvnd
|
, libglvnd
|
||||||
, darwin
|
, darwin
|
||||||
, buildPackages
|
, buildPackages
|
||||||
|
, python3
|
||||||
|
|
||||||
# options
|
# options
|
||||||
, developerBuild ? false
|
, developerBuild ? false
|
||||||
@ -24,7 +25,7 @@ let
|
|||||||
addPackages = self: with self;
|
addPackages = self: with self;
|
||||||
let
|
let
|
||||||
callPackage = self.newScope ({
|
callPackage = self.newScope ({
|
||||||
inherit qtModule srcs;
|
inherit qtModule srcs python3;
|
||||||
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
|
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
, stdenv
|
, stdenv
|
||||||
, cmake
|
, cmake
|
||||||
, ninja
|
, ninja
|
||||||
, qt6
|
|
||||||
, python
|
, python
|
||||||
, moveBuildTree
|
, moveBuildTree
|
||||||
, shiboken6
|
, shiboken6
|
||||||
@ -34,9 +33,12 @@ stdenv.mkDerivation rec {
|
|||||||
moveBuildTree
|
moveBuildTree
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = with qt6; [
|
buildInputs = with python.pkgs.qt6; [
|
||||||
# required
|
# required
|
||||||
qtbase
|
qtbase
|
||||||
|
python.pkgs.ninja
|
||||||
|
python.pkgs.packaging
|
||||||
|
python.pkgs.setuptools
|
||||||
] ++ lib.optionals stdenv.isLinux [
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
# optional
|
# optional
|
||||||
qt3d
|
qt3d
|
||||||
@ -69,6 +71,12 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
dontWrapQtApps = true;
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
cd ../../..
|
||||||
|
${python.pythonForBuild.interpreter} setup.py egg_info --build-type=pyside6
|
||||||
|
cp -r PySide6.egg-info $out/${python.sitePackages}/
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Python bindings for Qt";
|
description = "Python bindings for Qt";
|
||||||
license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
|
license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
, fetchurl
|
, fetchurl
|
||||||
, llvmPackages
|
, llvmPackages
|
||||||
, python
|
, python
|
||||||
, qt6
|
|
||||||
, cmake
|
, cmake
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, stdenv
|
, stdenv
|
||||||
@ -38,7 +37,10 @@ stdenv'.mkDerivation rec {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
llvmPackages.llvm
|
llvmPackages.llvm
|
||||||
llvmPackages.libclang
|
llvmPackages.libclang
|
||||||
qt6.qtbase
|
python.pkgs.qt6.qtbase
|
||||||
|
python.pkgs.ninja
|
||||||
|
python.pkgs.packaging
|
||||||
|
python.pkgs.setuptools
|
||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
@ -57,6 +59,12 @@ stdenv'.mkDerivation rec {
|
|||||||
patchelf $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir}
|
patchelf $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
cd ../../..
|
||||||
|
${python.pythonForBuild.interpreter} setup.py egg_info --build-type=shiboken6
|
||||||
|
cp -r shiboken6.egg-info $out/${python.sitePackages}/
|
||||||
|
'';
|
||||||
|
|
||||||
dontWrapQtApps = true;
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -32782,7 +32782,7 @@ with pkgs;
|
|||||||
|
|
||||||
srain = callPackage ../applications/networking/irc/srain { };
|
srain = callPackage ../applications/networking/irc/srain { };
|
||||||
|
|
||||||
streamdeck-ui = libsForQt5.callPackage ../applications/misc/streamdeck-ui { };
|
streamdeck-ui = callPackage ../applications/misc/streamdeck-ui { };
|
||||||
|
|
||||||
super-productivity = callPackage ../applications/office/super-productivity { };
|
super-productivity = callPackage ../applications/office/super-productivity { };
|
||||||
|
|
||||||
|
@ -9900,7 +9900,7 @@ self: super: with self; {
|
|||||||
});
|
});
|
||||||
|
|
||||||
pyside6 = toPythonModule (callPackage ../development/python-modules/pyside6 {
|
pyside6 = toPythonModule (callPackage ../development/python-modules/pyside6 {
|
||||||
inherit (pkgs) cmake ninja qt6;
|
inherit (pkgs) cmake ninja;
|
||||||
});
|
});
|
||||||
|
|
||||||
pysigma = callPackage ../development/python-modules/pysigma { };
|
pysigma = callPackage ../development/python-modules/pysigma { };
|
||||||
@ -10910,6 +10910,10 @@ self: super: with self; {
|
|||||||
|
|
||||||
qt5reactor = callPackage ../development/python-modules/qt5reactor { };
|
qt5reactor = callPackage ../development/python-modules/qt5reactor { };
|
||||||
|
|
||||||
|
qt6 = pkgs.qt6.override {
|
||||||
|
python3 = self.python;
|
||||||
|
};
|
||||||
|
|
||||||
qtawesome = callPackage ../development/python-modules/qtawesome { };
|
qtawesome = callPackage ../development/python-modules/qtawesome { };
|
||||||
|
|
||||||
qtconsole = callPackage ../development/python-modules/qtconsole { };
|
qtconsole = callPackage ../development/python-modules/qtconsole { };
|
||||||
@ -11737,7 +11741,7 @@ self: super: with self; {
|
|||||||
});
|
});
|
||||||
|
|
||||||
shiboken6 = toPythonModule (callPackage ../development/python-modules/shiboken6 {
|
shiboken6 = toPythonModule (callPackage ../development/python-modules/shiboken6 {
|
||||||
inherit (pkgs) cmake llvmPackages qt6;
|
inherit (pkgs) cmake llvmPackages;
|
||||||
});
|
});
|
||||||
|
|
||||||
shippai = callPackage ../development/python-modules/shippai { };
|
shippai = callPackage ../development/python-modules/shippai { };
|
||||||
|
Loading…
Reference in New Issue
Block a user