Unverified Commit 024c8c2b authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #247618 from Majiir/streamdeck-ui-3.0.1

streamdeck-ui: 2.0.6 -> 3.0.1
parents 364ba4fc 44813a8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ in
  config = mkIf cfg.enable {
    environment.systemPackages = with pkgs; [
      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 ];
+33 −34
Original line number Diff line number Diff line
{ lib
, python3Packages
, fetchFromGitHub
, fetchpatch
, copyDesktopItems
, wrapQtAppsHook
, writeText
, makeDesktopItem
, xvfb-run
, qt5
, qt6
}:

python3Packages.buildPythonApplication rec {
  pname = "streamdeck-ui";
  version = "2.0.6";
  version = "3.0.1";

  src = fetchFromGitHub {
    repo = pname;
    owner = "timothycrosley";
    repo = "streamdeck-linux-gui";
    owner = "streamdeck-linux-gui";
    rev = "v${version}";
    sha256 = "sha256-5dk+5oefg5R68kv038gsZ2p5ixmpj/vBLBp/V7Sdos8=";
    sha256 = "sha256-nLtWExxufxT5nRiEYLGNeMhFhvlGzYKA+crA74Yt4ck=";
  };

  patches = [
    (fetchpatch {
      name = "use-poetry-core.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=";
    })
    # nixpkgs has a newer pillow version
    ./update-pillow.patch
  ];

  desktopItems = [ (makeDesktopItem {
  desktopItems = let
    common = {
      name = "streamdeck-ui";
      desktopName = "Stream Deck UI";
      icon = "streamdeck-ui";
    exec = "streamdeck --no-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
@@ -51,6 +49,10 @@ python3Packages.buildPythonApplication rec {
      '';
    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

@@ -66,7 +68,7 @@ python3Packages.buildPythonApplication rec {
  nativeBuildInputs = [
    python3Packages.poetry-core
    copyDesktopItems
    wrapQtAppsHook
    qt6.wrapQtAppsHook
  ];

  propagatedBuildInputs = with python3Packages; [
@@ -75,11 +77,11 @@ python3Packages.buildPythonApplication rec {
    cairosvg
    pillow
    pynput
    pyside2
    pyside6
    streamdeck
    xlib
  ] ++ lib.optionals stdenv.isLinux [
    qt5.qtwayland
    qt6.qtwayland
  ];

  nativeCheckInputs = [
@@ -89,18 +91,15 @@ python3Packages.buildPythonApplication rec {
  ];

  # 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.
  checkPhase = ''
    xvfb-run pytest tests \
      --ignore=tests/test_api.py \
      --ignore=tests/test_filter.py \
      --ignore=tests/test_stream_deck_monitor.py
      --ignore=tests/test_api.py
  '';

  meta = with lib; {
    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;
    maintainers = with maintainers; [ majiir ];
  };
+13 −0
Original line number Diff line number Diff line
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"
+2 −1
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
, libglvnd
, darwin
, buildPackages
, python3

  # options
, developerBuild ? false
@@ -24,7 +25,7 @@ let
  addPackages = self: with self;
    let
      callPackage = self.newScope ({
        inherit qtModule srcs;
        inherit qtModule srcs python3;
        stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
      });
    in
+10 −2
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
, stdenv
, cmake
, ninja
, qt6
, python
, moveBuildTree
, shiboken6
@@ -34,9 +33,12 @@ stdenv.mkDerivation rec {
    moveBuildTree
  ];

  buildInputs = with qt6; [
  buildInputs = with python.pkgs.qt6; [
    # required
    qtbase
    python.pkgs.ninja
    python.pkgs.packaging
    python.pkgs.setuptools
  ] ++ lib.optionals stdenv.isLinux [
    # optional
    qt3d
@@ -69,6 +71,12 @@ stdenv.mkDerivation rec {

  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; {
    description = "Python bindings for Qt";
    license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
Loading