about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/mission-center/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/mission-center/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/mission-center/default.nix124
1 files changed, 124 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/mission-center/default.nix b/nixpkgs/pkgs/applications/misc/mission-center/default.nix
new file mode 100644
index 000000000000..3c4a81a509a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mission-center/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchFromGitHub
+, cargo
+, libxml2
+, meson
+, ninja
+, pkg-config
+, python311
+, rustPlatform
+, symlinkJoin
+, rustc
+, wrapGAppsHook4
+, appstream-glib
+, blueprint-compiler
+, cairo
+, cmake
+, desktop-file-utils
+, dmidecode
+, gdk-pixbuf
+, gettext
+, glib
+, graphene
+, gtk4
+, libadwaita
+, libdrm
+, mesa
+, pango
+, sqlite
+, udev
+, wayland
+}:
+
+let
+  nvtop = fetchFromGitHub {
+    owner = "Syllo";
+    repo = "nvtop";
+    rev = "9a8458b541a195a0c5cadafb66e240962c852b39";
+    hash = "sha256-iFBZbESRTuwgLSUuHnjcXwmpvdeQrd3oUJd7BRyxu84=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "mission-center";
+  version = "0.2.5";
+
+  src = fetchFromGitLab {
+    owner = "mission-center-devs";
+    repo = "mission-center";
+    rev = "v${version}";
+    hash = "sha256-f6GkwF+3USl60pUxxTu90KzdsfxBiAkiqnBSTTmC2Lc=";
+  };
+
+  cargoDeps = symlinkJoin {
+    name = "cargo-vendor-dir";
+    paths = [
+      (rustPlatform.importCargoLock {
+        lockFile = ./Cargo.lock;
+        outputHashes = {
+         "pathfinder_canvas-0.5.0" = "sha256-k2Sj69hWA0UzRfv91aG1TAygVIuOX3gmipcDbuZxxc8=";
+        };
+      })
+      (rustPlatform.importCargoLock {
+        lockFile = ./proxy-Cargo.lock;
+      })
+    ];
+  };
+
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    cargo
+    libxml2
+    meson
+    ninja
+    pkg-config
+    python311
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    appstream-glib
+    blueprint-compiler
+    cairo
+    cmake
+    desktop-file-utils
+    dmidecode
+    gdk-pixbuf
+    gettext
+    glib
+    graphene
+    gtk4
+    libadwaita
+    libdrm
+    mesa
+    pango
+    sqlite
+    udev
+    wayland
+  ];
+
+  postPatch = ''
+    echo -e "[wrap-file]\ndirectory = nvtop-src\n[provide]\ndependency_names = nvtop" > ./subprojects/nvtop.wrap
+    cp -r --no-preserve=mode,ownership "${nvtop}" ./subprojects/nvtop-src
+    cd ./subprojects/nvtop-src
+    mkdir -p include/libdrm
+    for patchfile in $(ls ../packagefiles/nvtop*.patch); do
+      patch -p1 < $patchfile
+    done
+    cd ../..
+    patchShebangs data/hwdb/generate_hwdb.py
+    sed -i 's|cmd.arg("dmidecode")|cmd.arg("${dmidecode}/bin/dmidecode")|g' src/sys_info_v2/mem_info.rs
+  '';
+
+  meta = with lib; {
+    description = "Monitor your CPU, Memory, Disk, Network and GPU usage";
+    homepage = "https://gitlab.com/mission-center-devs/mission-center";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ GaetanLepage ];
+    platforms = platforms.linux;
+  };
+}