From 46e9f8243e0205dbc81a4b2452a0e692199590d6 Mon Sep 17 00:00:00 2001 From: Jussi Kuokkanen Date: Thu, 14 Dec 2023 10:19:27 +0200 Subject: [PATCH] tuxclocker: init at 1.4.0 --- pkgs/applications/misc/tuxclocker/default.nix | 66 +++++++++++++++++++ .../no-cpu-plugin.patch | 14 ++++ .../tu/tuxclocker-nvidia-plugin/package.nix | 34 ++++++++++ .../package.nix | 16 +++++ .../by-name/tu/tuxclocker-plugins/package.nix | 42 ++++++++++++ pkgs/top-level/all-packages.nix | 6 ++ 6 files changed, 178 insertions(+) create mode 100644 pkgs/applications/misc/tuxclocker/default.nix create mode 100644 pkgs/by-name/tu/tuxclocker-nvidia-plugin/no-cpu-plugin.patch create mode 100644 pkgs/by-name/tu/tuxclocker-nvidia-plugin/package.nix create mode 100644 pkgs/by-name/tu/tuxclocker-plugins-with-unfree/package.nix create mode 100644 pkgs/by-name/tu/tuxclocker-plugins/package.nix diff --git a/pkgs/applications/misc/tuxclocker/default.nix b/pkgs/applications/misc/tuxclocker/default.nix new file mode 100644 index 000000000000..5592c8e2cdec --- /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 000000000000..d6d864fb9789 --- /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 000000000000..dac3b342c4c2 --- /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 000000000000..f055cf111fa3 --- /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 000000000000..19c8fa52441b --- /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 a4dc0714382d..600ddd963931 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 {