about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/misc/tuxclocker/default.nix66
-rw-r--r--pkgs/by-name/tu/tuxclocker-nvidia-plugin/no-cpu-plugin.patch14
-rw-r--r--pkgs/by-name/tu/tuxclocker-nvidia-plugin/package.nix34
-rw-r--r--pkgs/by-name/tu/tuxclocker-plugins-with-unfree/package.nix16
-rw-r--r--pkgs/by-name/tu/tuxclocker-plugins/package.nix42
-rw-r--r--pkgs/top-level/all-packages.nix6
6 files changed, 178 insertions, 0 deletions
diff --git a/pkgs/applications/misc/tuxclocker/default.nix b/pkgs/applications/misc/tuxclocker/default.nix
new file mode 100644
index 0000000000000..5592c8e2cdec5
--- /dev/null
+++ b/pkgs/applications/misc/tuxclocker/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, boost
+, fetchFromGitHub
+, git
+, makeWrapper
+, meson
+, ninja
+, pkg-config
+, python3
+, qtbase
+, qtcharts
+, tuxclocker-plugins
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tuxclocker";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "Lurkki14";
+    repo = "tuxclocker";
+    fetchSubmodules = true;
+    rev = "${finalAttrs.version}";
+    hash = "sha256-8dtuZXBWftXNQpqYgNQOayPGfvEIu9QfbqDShfkt1qA=";
+  };
+
+  # Meson doesn't find boost without these
+  BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
+  BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+
+  nativeBuildInputs = [
+    git
+    makeWrapper
+    meson
+    ninja
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    boost
+    qtbase
+    qtcharts
+  ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/tuxclockerd" \
+      --prefix "TEXTDOMAINDIR" : "${tuxclocker-plugins}/share/locale" \
+      --prefix "TUXCLOCKER_PLUGIN_PATH" : "${tuxclocker-plugins}/lib/tuxclocker/plugins" \
+      --prefix "PYTHONPATH" : "${python3.pkgs.hwdata}/${python3.sitePackages}"
+  '';
+
+  mesonFlags = [
+    "-Dplugins=false"
+  ];
+
+  meta = with lib; {
+    description = "Qt overclocking tool for GNU/Linux";
+    homepage = "https://github.com/Lurkki14/tuxclocker";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ lurkki ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/tu/tuxclocker-nvidia-plugin/no-cpu-plugin.patch b/pkgs/by-name/tu/tuxclocker-nvidia-plugin/no-cpu-plugin.patch
new file mode 100644
index 0000000000000..d6d864fb97899
--- /dev/null
+++ b/pkgs/by-name/tu/tuxclocker-nvidia-plugin/no-cpu-plugin.patch
@@ -0,0 +1,14 @@
+diff --git a/src/plugins/meson.build b/src/plugins/meson.build
+index cdd3b5b..a5a2174 100644
+--- a/src/plugins/meson.build
++++ b/src/plugins/meson.build
+@@ -63,9 +63,3 @@ if all_nvidia_linux_libs
+ 		install : true,
+ 		link_with : libtuxclocker)
+ endif
+-
+-shared_library('cpu', 'CPU.cpp', 'Utils.cpp',
+-        include_directories : [incdir, fplus_inc],
+-        install_dir : get_option('libdir') / 'tuxclocker' / 'plugins',
+-        install : true,
+-        link_with : libtuxclocker)
diff --git a/pkgs/by-name/tu/tuxclocker-nvidia-plugin/package.nix b/pkgs/by-name/tu/tuxclocker-nvidia-plugin/package.nix
new file mode 100644
index 0000000000000..dac3b342c4c2a
--- /dev/null
+++ b/pkgs/by-name/tu/tuxclocker-nvidia-plugin/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, boost
+, libX11
+, libXext
+, linuxPackages
+, openssl
+, tuxclocker-plugins
+}:
+
+stdenv.mkDerivation {
+  pname = "tuxclocker-nvidia-plugin";
+
+  inherit (tuxclocker-plugins) src version meta BOOST_INCLUDEDIR BOOST_LIBRARYDIR nativeBuildInputs;
+
+  buildInputs = [
+    boost
+    libX11
+    libXext
+    linuxPackages.nvidia_x11
+    linuxPackages.nvidia_x11.settings.libXNVCtrl
+    openssl
+  ];
+
+  # Build doesn't have a way to disable building the CPU plugin, which is already
+  # provided by 'tuxclocker-plugins'
+  patches = [ ./no-cpu-plugin.patch ];
+
+  mesonFlags = [
+    "-Ddaemon=false"
+    "-Dgui=false"
+    "-Drequire-nvidia=true"
+  ];
+}
diff --git a/pkgs/by-name/tu/tuxclocker-plugins-with-unfree/package.nix b/pkgs/by-name/tu/tuxclocker-plugins-with-unfree/package.nix
new file mode 100644
index 0000000000000..f055cf111fa3b
--- /dev/null
+++ b/pkgs/by-name/tu/tuxclocker-plugins-with-unfree/package.nix
@@ -0,0 +1,16 @@
+{ symlinkJoin
+, tuxclocker-nvidia-plugin
+, tuxclocker-plugins
+}:
+
+symlinkJoin rec {
+  inherit (tuxclocker-plugins) version meta;
+
+  pname = "tuxclocker-plugins-with-unfree";
+  name = "${pname}-${version}";
+
+  paths = [
+    tuxclocker-nvidia-plugin
+    tuxclocker-plugins
+  ];
+}
diff --git a/pkgs/by-name/tu/tuxclocker-plugins/package.nix b/pkgs/by-name/tu/tuxclocker-plugins/package.nix
new file mode 100644
index 0000000000000..19c8fa52441bc
--- /dev/null
+++ b/pkgs/by-name/tu/tuxclocker-plugins/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, boost
+, cmake
+, gettext
+, git
+, libdrm
+, meson
+, ninja
+, openssl
+, pkg-config
+, python3
+, tuxclocker
+}:
+
+stdenv.mkDerivation {
+  inherit (tuxclocker) src version meta BOOST_INCLUDEDIR BOOST_LIBRARYDIR;
+
+  pname = "tuxclocker-plugins";
+
+  nativeBuildInputs = [
+    gettext
+    git
+    meson
+    ninja
+    pkg-config
+    (python3.withPackages(p: [ p.hwdata ]))
+  ];
+
+  buildInputs = [
+    boost
+    libdrm
+    openssl
+  ];
+
+  mesonFlags = [
+    "-Ddaemon=false"
+    "-Dgui=false"
+    "-Drequire-amd=true"
+    "-Drequire-python-hwdata=true"
+  ];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a4dc0714382d9..600ddd963931f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -36016,6 +36016,12 @@ with pkgs;
 
   tut = callPackage ../applications/misc/tut { };
 
+  tuxclocker = libsForQt5.callPackage ../applications/misc/tuxclocker {
+    tuxclocker-plugins = tuxclocker-plugins-with-unfree;
+  };
+
+  tuxclocker-without-unfree = libsForQt5.callPackage ../applications/misc/tuxclocker { };
+
   tuxedo-rs = callPackage ../os-specific/linux/tuxedo-rs { };
 
   tuxguitar = callPackage ../applications/editors/music/tuxguitar {