streamcontroller: 1.5.0-beta.7 -> 1.5.0-beta.8

This commit is contained in:
Ulrik Strid
2025-03-17 15:43:15 +01:00
parent ce52a4d87a
commit 2096eeca7b
+40 -25
View File
@@ -1,6 +1,7 @@
{
stdenv,
lib,
isKde ? false,
python3Packages,
fetchFromGitHub,
copyDesktopItems,
@@ -12,20 +13,23 @@
libportal-gtk4,
xdg-desktop-portal,
xdg-desktop-portal-gtk,
kdotool,
}:
stdenv.mkDerivation rec {
let
# We have to hardcode revision because upstream often create multiple releases for the same version number.
# This is the commit hash that maps to 1.5.0-beta.8 released on 2025-03-12
rev = "de11d84afac7873044568606a8468c78d57aceda";
in
stdenv.mkDerivation {
pname = "streamcontroller";
version = "1.5.0-beta.7";
# We have to hardcode revision because upstream often create multiple releases for the same version number.
# This is the commit hash that maps to 1.5.0-beta.7 released on 2024-11-20
rev = "45b5bc72f617c5aea306450d6592da66ade53568";
version = "1.5.0-beta.8";
src = fetchFromGitHub {
repo = "StreamController";
owner = "StreamController";
inherit rev;
hash = "sha256-tgbqURtqp1KbzOfXo4b4Dp3N8Sg8xcUSTwdEFXq+f6w=";
hash = "sha256-pE92/oX9iZYCIhwDkPkjPq/cDUQLUGs+Ou5rjFEIBpo=";
};
# The installation method documented upstream
@@ -34,37 +38,48 @@ stdenv.mkDerivation rec {
# Due to how the code is structured upstream, it's infeasible to use `buildPythonApplication`.
dontBuild = true;
installPhase = ''
runHook preInstall
installPhase =
# Some plugins needs to load things dynamically and in that case we won't find python3 without this
let
binPath =
[
python3Packages.python.interpreter
]
# Allows automatic detection of windows to switch pages on KDE
++ lib.optional isKde kdotool;
in
''
runHook preInstall
mkdir -p $out/usr/lib/streamcontroller
cp -r ./* $out/usr/lib/streamcontroller/
mkdir -p $out/usr/lib/streamcontroller
cp -r ./* $out/usr/lib/streamcontroller/
mkdir -p $out/bin/
mkdir -p $out/bin/
# Note that the implementation of main.py assumes
# working directory to be at the root of the project's source code
makeWrapper \
${python3Packages.python.interpreter} \
$out/bin/streamcontroller \
--add-flags main.py \
--chdir $out/usr/lib/streamcontroller \
--prefix PYTHONPATH : "$PYTHONPATH"
# Note that the implementation of main.py assumes
# working directory to be at the root of the project's source code
makeWrapper \
${python3Packages.python.interpreter} \
$out/bin/streamcontroller \
--add-flags main.py \
--chdir $out/usr/lib/streamcontroller \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix PATH : "$PATH:${lib.makeBinPath binPath}"
mkdir -p "$out/etc/udev/rules.d"
cp ./udev.rules $out/etc/udev/rules.d/70-streamcontroller.rules
mkdir -p "$out/etc/udev/rules.d"
cp ./udev.rules $out/etc/udev/rules.d/70-streamcontroller.rules
install -D ./flatpak/icon_256.png $out/share/icons/hicolor/256x256/apps/streamcontroller.png
install -D ./flatpak/icon_256.png $out/share/icons/hicolor/256x256/apps/com.core447.StreamController.png
runHook postInstall
'';
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "StreamController";
desktopName = "StreamController";
exec = "streamcontroller";
icon = "streamcontroller";
icon = "com.core447.StreamController";
comment = "Control your Elgato Stream Decks";
categories = [ "Utility" ];
})