From fc909087cc3386955f21b4665731dbdaceefb1d8 Mon Sep 17 00:00:00 2001 From: Evan Stoll Date: Thu, 9 Jun 2022 16:50:42 -0400 Subject: [PATCH] polychromatic: init at 0.7.3 (#176932) * polychromatic: init at unstable-2020-03-10 use dev-1.0.0 branch * polychromatic: use webkitgtk instead of webkit (package-list-no-aliases) * polychromatic: use python3Packages.callPackage instead of callPackage * polychromatic: add meta * polychromatic: add usbutils to propagatedBuildInputs polychromatic-tray-applet needs to be wrapped with lsusub from usbutils * polychromatic: use pkgs.meson, not python3Packages.meson * bump to 0.7.0 * rebase on master (python3.7 -> python3.9) * ensure expression compiles at a minimum * polychromatic: bump to 0.7.2; fix build * 0.7.0 -> 0.7.2 * add `qtWrapperArgs` to `makeWrapperArgs` * format with `nixpkgs-fmt` * call `scripts/build-styles.sh` during `postPatch` * patch `sassc` and `sass` references to point directly to binary from `sassc` input * polychromatic: remove `pkgconfig` from imports * polychromatic: remove trailing whitespace * polychromatic: 0.7.2 -> 0.7.3 * Apply various suggestions * `xorg.libxcb` -> `libxcb`: `libxcb` can now be referenced directly * Move various script patching functions from `postPatch` to `preConfigure` * `nativePropagatedBuildInputs` -> `propagatedNativeBuildInputs` * Ensure expression is not modified by `nixpkgs-fmt` * Apply recommended changes * Move `nativeBuildInputs` before `propagatedNativeBuildInputs` * Move all scripts but `scripts/build-styles.sh` back to `postPatch` phase * Remove explicit `meson`, `wrapGAppsHook` imports from top-level package attribute --- .../misc/polychromatic/default.nix | 108 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 110 insertions(+) create mode 100644 pkgs/applications/misc/polychromatic/default.nix diff --git a/pkgs/applications/misc/polychromatic/default.nix b/pkgs/applications/misc/polychromatic/default.nix new file mode 100644 index 00000000000..f27902a8aac --- /dev/null +++ b/pkgs/applications/misc/polychromatic/default.nix @@ -0,0 +1,108 @@ +{ lib +, fetchFromGitHub +, bash +, cairo +, glib +, qt5 +, hicolor-icon-theme +, gdk-pixbuf +, imagemagick +, desktop-file-utils +, ninja +, meson +, sassc +, ibus +, usbutils +, libxcb +, python3Packages +, gobject-introspection +, gtk3 +, wrapGAppsHook +, libappindicator-gtk3 +}: + +python3Packages.buildPythonApplication rec { + name = "polychromatic"; + version = "0.7.3"; + + format = "other"; + + src = fetchFromGitHub { + owner = "polychromatic"; + repo = "polychromatic"; + rev = "v${version}"; + sha256 = "sha256-H++kQ3Fxw56avEsSE1ctu5p0s50s0eQ+jL5zXS3AA94="; + }; + + postPatch = '' + patchShebangs scripts + + substituteInPlace scripts/build-styles.sh \ + --replace '$(which sassc 2>/dev/null)' '${sassc}/bin/sassc' \ + --replace '$(which sass 2>/dev/null)' '${sassc}/bin/sass' + + substituteInPlace pylib/common.py --replace "/usr/share/polychromatic" "$out/share/polychromatic" + ''; + + preConfigure = '' + scripts/build-styles.sh + ''; + + buildInputs = [ + cairo + hicolor-icon-theme + ]; + + pythonPath = with python3Packages; [ + openrazer + pyqt5 + pyqtwebengine + ]; + + propagatedBuildInputs = with python3Packages; [ + libxcb + colour + colorama + setproctitle + openrazer + openrazer-daemon + requests + ibus + usbutils + pyqt5 + libappindicator-gtk3 + ]; + + nativeBuildInputs = with python3Packages; [ + pyqt5 + desktop-file-utils + qt5.wrapQtAppsHook + wrapGAppsHook + ninja + meson + sassc + ]; + + propagatedNativeBuildInputs = [ + gobject-introspection + gtk3 + gdk-pixbuf + imagemagick + ]; + + makeWrapperArgs = [ + "\${qtWrapperArgs[@]}" + ]; + + meta = with lib; { + homepage = "https://polychromatic.app/"; + description = "Graphical front-end and tray applet for configuring Razer peripherals on GNU/Linux."; + longDescription = '' + Polychromatic is a frontend for OpenRazer that enables Razer devices + to control lighting effects and more on GNU/Linux. + ''; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ evanjs ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ea1d91c782f..168367a8a59 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24731,6 +24731,8 @@ with pkgs; poly = callPackage ../data/fonts/poly { }; + polychromatic = libsForQt5.callPackage ../applications/misc/polychromatic { }; + polytopes_db = callPackage ../data/misc/polytopes_db { }; pop-gtk-theme = callPackage ../data/themes/pop-gtk { };