nixpkgs/pkgs/tools/system/gkraken/default.nix
OPNA2608 901a78b6ad gkraken: Fix wrapping
Fixes the following error when trying to run the final script:

Traceback (most recent call last):
  File "/nix/store/z1klbgg6p9v3vszjyvsjix9s4blsl7mv-gkraken-1.2.0/bin/.gkraken-wrapped", line 45, in <module>
    gi.require_version('Gtk', '3.0')
  File "/nix/store/k46f21qglnnl2grkx6gq6j6jlawfkgpw-python3.10-pygobject-3.42.2/lib/python3.10/site-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gtk not available

See https://github.com/NixOS/nixpkgs/issues/56943
2022-12-19 02:06:51 +01:00

88 lines
1.7 KiB
Nix

{ python3Packages
, lib
, fetchFromGitLab
, meson
, pkg-config
, glib
, ninja
, desktop-file-utils
, gobject-introspection
, gtk3
, libnotify
, dbus
, wrapGAppsHook
}:
python3Packages.buildPythonApplication rec {
pname = "gkraken";
version = "1.2.0";
src = fetchFromGitLab {
owner = "leinardi";
repo = "gkraken";
rev = version;
sha256 = "0hxlh0319rl28iba02917z3n6d5cq2qcgpj2ng31bkjjhlvvfm2g";
};
format = "other";
postPatch = ''
patchShebangs scripts/meson_post_install.py
'';
nativeBuildInputs = [
meson
pkg-config
gobject-introspection
glib
ninja
gtk3
desktop-file-utils
wrapGAppsHook
];
buildInputs = [
gobject-introspection
glib
gtk3
libnotify
dbus
];
propagatedBuildInputs = with python3Packages; [
pygobject3
peewee
rx
injector
liquidctl
pyxdg
requests
matplotlib
dbus-python
];
dontWrapGApps = true;
# Extract udev rules from python code
postInstall = ''
mkdir -p $out/lib/udev/rules.d
sed -e '/\s*\(from\|@singleton\|@inject\)/d' $src/gkraken/interactor/udev_interactor.py > udev_interactor.py
python -c 'from udev_interactor import _UDEV_RULE; print(_UDEV_RULE)' > $out/lib/udev/rules.d/60-gkraken.rules
'';
preFixup = ''
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
)
'';
meta = with lib; {
description = "GUI that allows to control the cooling (fan and/or pump profiles) of NZXT Kraken AIO liquid coolers from Linux";
homepage = "https://gitlab.com/leinardi/gkraken";
changelog = "https://gitlab.com/leinardi/gkraken/-/tags/${version}";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.linux;
};
}