Merge pull request #318899 from ulrikstrid/ulrikstrid--streamdeck-ui-4_1_2

streamdeck-ui: 3.1.0 -> 4.1.2
This commit is contained in:
superherointj 2024-06-12 20:22:01 -03:00 committed by GitHub
commit 29616b7af3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 139 additions and 121 deletions

View File

@ -1,106 +0,0 @@
{ lib
, python3Packages
, fetchFromGitHub
, copyDesktopItems
, writeText
, makeDesktopItem
, wrapGAppsHook3
, xvfb-run
, qt6
}:
python3Packages.buildPythonApplication rec {
pname = "streamdeck-ui";
version = "3.1.0";
src = fetchFromGitHub {
repo = "streamdeck-linux-gui";
owner = "streamdeck-linux-gui";
rev = "v${version}";
sha256 = "sha256-AIE9j022L4WSlHBAu3TT5uE4Ilgk/jYSmU03K8Hs8xY=";
};
patches = [
# nixpkgs has a newer pillow version
./update-pillow.patch
];
desktopItems = let
common = {
name = "streamdeck-ui";
desktopName = "Stream Deck UI";
icon = "streamdeck-ui";
exec = "streamdeck";
comment = "UI for the Elgato Stream Deck";
categories = [ "Utility" ];
};
in builtins.map makeDesktopItem [
common
(common // {
name = "${common.name}-noui";
exec = "${common.exec} --no-ui";
noDisplay = true;
})
];
postInstall =
let
udevRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
'';
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"
cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
mkdir -p "$out/share/pixmaps"
cp streamdeck_ui/logo.png $out/share/pixmaps/streamdeck-ui.png
'';
dontWrapQtApps = true;
dontWrapGApps = true;
makeWrapperArgs = [ "\${qtWrapperArgs[@]}" "\${gappsWrapperArgs[@]}"];
format = "pyproject";
nativeBuildInputs = [
python3Packages.poetry-core
copyDesktopItems
qt6.wrapQtAppsHook
wrapGAppsHook3
];
propagatedBuildInputs = with python3Packages; [
setuptools
filetype
cairosvg
pillow
pynput
pyside6
streamdeck
xlib
] ++ lib.optionals stdenv.isLinux [
qt6.qtwayland
];
nativeCheckInputs = [
xvfb-run
python3Packages.pytest
];
checkPhase = ''
xvfb-run pytest tests
'';
meta = with lib; {
description = "Linux compatible UI for the Elgato Stream Deck";
homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
license = licenses.mit;
mainProgram = "streamdeck";
maintainers = with maintainers; [ majiir ];
};
}

View File

@ -1,13 +0,0 @@
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"

View File

@ -0,0 +1,139 @@
{
copyDesktopItems,
fetchFromGitHub,
fetchPypi,
lib,
makeDesktopItem,
python3Packages,
qt6,
wrapGAppsHook3,
writeText,
xvfb-run,
}:
let
# There are breaking changes between 6 and 7
importlib-metadata_6 = python3Packages.importlib-metadata.overrideAttrs (_: rec {
version = "6.9.0";
src = fetchPypi {
pname = "importlib_metadata";
inherit version;
hash = "sha256-6Ky1I8M1qRgiZ04Um0bAOZ7E0yjE0fbknCc9pf8CAbk=";
};
});
in
python3Packages.buildPythonApplication rec {
pname = "streamdeck-ui";
version = "4.1.2";
src = fetchFromGitHub {
repo = "streamdeck-linux-gui";
owner = "streamdeck-linux-gui";
rev = "v${version}";
hash = "sha256-CSsFPGnKVQUCND6YOA9kfO41KS85C57YL9LcrWlQRKo=";
};
format = "pyproject";
pythonRelaxDeps = [ "pillow" ];
nativeBuildInputs = [
python3Packages.poetry-core
python3Packages.pythonRelaxDepsHook
copyDesktopItems
qt6.wrapQtAppsHook
wrapGAppsHook3
];
propagatedBuildInputs =
with python3Packages;
[
setuptools
filetype
cairosvg
pillow
pynput
pyside6
streamdeck
xlib
importlib-metadata_6
evdev
]
++ lib.optionals stdenv.isLinux [ qt6.qtwayland ];
nativeCheckInputs =
[ xvfb-run ]
++ (with python3Packages; [
pytest
pytest-qt
pytest-mock
]);
checkPhase = ''
runHook preCheck
# The tests needs to find the log file
export STREAMDECK_UI_LOG_FILE=$(pwd)/.streamdeck_ui.log
xvfb-run pytest tests
runHook preCheck
'';
postInstall =
let
udevRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
'';
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"
cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
mkdir -p "$out/share/pixmaps"
cp streamdeck_ui/logo.png $out/share/pixmaps/streamdeck-ui.png
'';
desktopItems =
let
common = {
name = "streamdeck-ui";
desktopName = "Stream Deck UI";
icon = "streamdeck-ui";
exec = "streamdeck";
comment = "UI for the Elgato Stream Deck";
categories = [ "Utility" ];
};
in
builtins.map makeDesktopItem [
common
(
common
// {
name = "${common.name}-noui";
exec = "${common.exec} --no-ui";
noDisplay = true;
}
)
];
dontWrapQtApps = true;
dontWrapGApps = true;
makeWrapperArgs = [
"\${qtWrapperArgs[@]}"
"\${gappsWrapperArgs[@]}"
];
meta = {
description = "Linux compatible UI for the Elgato Stream Deck";
downloadPage = "https://github.com/streamdeck-linux-gui/streamdeck-linux-gui/";
homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
license = lib.licenses.mit;
mainProgram = "streamdeck";
maintainers = with lib.maintainers; [ majiir ];
};
}

View File

@ -31667,8 +31667,6 @@ with pkgs;
srain = callPackage ../applications/networking/irc/srain { };
streamdeck-ui = callPackage ../applications/misc/streamdeck-ui { };
super-productivity = callPackage ../applications/office/super-productivity { };
inherit (callPackages ../development/libraries/wlroots {})