about summary refs log tree commit diff
path: root/pkgs/by-name/fa/fastfetch/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/fa/fastfetch/package.nix')
-rw-r--r--pkgs/by-name/fa/fastfetch/package.nix166
1 files changed, 166 insertions, 0 deletions
diff --git a/pkgs/by-name/fa/fastfetch/package.nix b/pkgs/by-name/fa/fastfetch/package.nix
new file mode 100644
index 0000000000000..2441f765482e6
--- /dev/null
+++ b/pkgs/by-name/fa/fastfetch/package.nix
@@ -0,0 +1,166 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, chafa
+, cmake
+, darwin
+, dbus
+, dconf
+, ddcutil
+, glib
+, hwdata
+, imagemagick_light
+, libXrandr
+, libdrm
+, libglvnd
+, libpulseaudio
+, libselinux
+, libsepol
+, libxcb
+, makeBinaryWrapper
+, networkmanager
+, nix-update-script
+, ocl-icd
+, opencl-headers
+, overrideSDK
+, pcre
+, pcre2
+, pkg-config
+, python3
+, rpm
+, sqlite
+, testers
+, util-linux
+, vulkan-loader
+, wayland
+, xfce
+, xorg
+, yyjson
+, zlib
+, rpmSupport ? false
+, vulkanSupport ? true
+, waylandSupport ? true
+, x11Support ? true
+}:
+let
+  stdenv' = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
+  pname = "fastfetch";
+  version = "2.14.0";
+
+  src = fetchFromGitHub {
+    owner = "fastfetch-cli";
+    repo = "fastfetch";
+    rev = finalAttrs.version;
+    hash = "sha256-RJDRxH9VKNxBSfoFl1rDTeKKyLC3C09F0Z3ksJoMDRk=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [
+    cmake
+    makeBinaryWrapper
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    chafa
+    imagemagick_light
+    pcre
+    pcre2
+    sqlite
+    yyjson
+  ] ++ lib.optionals stdenv.isLinux [
+    dbus
+    dconf
+    ddcutil
+    glib
+    hwdata
+    libdrm
+    libpulseaudio
+    libselinux
+    libsepol
+    networkmanager
+    ocl-icd
+    opencl-headers
+    util-linux
+    zlib
+  ] ++ lib.optionals rpmSupport [
+    rpm
+  ] ++ lib.optionals vulkanSupport [
+    vulkan-loader
+  ] ++ lib.optionals waylandSupport [
+    wayland
+  ] ++ lib.optionals x11Support [
+    libXrandr
+    libglvnd
+    libxcb
+    xorg.libXau
+    xorg.libXdmcp
+    xorg.libXext
+  ] ++ lib.optionals (x11Support && (!stdenv.isDarwin)) [
+    xfce.xfconf
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
+    Apple80211
+    AppKit
+    AVFoundation
+    Cocoa
+    CoreDisplay
+    CoreVideo
+    CoreWLAN
+    DisplayServices
+    IOBluetooth
+    MediaRemote
+    OpenCL
+    SystemConfiguration
+    darwin.moltenvk
+  ]);
+
+  cmakeFlags = [
+    (lib.cmakeOptionType "filepath" "CMAKE_INSTALL_SYSCONFDIR" "${placeholder "out"}/etc")
+    (lib.cmakeBool "ENABLE_DIRECTX_HEADERS" false)
+    (lib.cmakeBool "ENABLE_DRM" false)
+    (lib.cmakeBool "ENABLE_IMAGEMAGICK6" false)
+    (lib.cmakeBool "ENABLE_OSMESA" false)
+    (lib.cmakeBool "ENABLE_SYSTEM_YYJSON" true)
+    (lib.cmakeBool "ENABLE_GLX" x11Support)
+    (lib.cmakeBool "ENABLE_RPM" rpmSupport)
+    (lib.cmakeBool "ENABLE_VULKAN" x11Support)
+    (lib.cmakeBool "ENABLE_WAYLAND" waylandSupport)
+    (lib.cmakeBool "ENABLE_X11" x11Support)
+    (lib.cmakeBool "ENABLE_XCB" x11Support)
+    (lib.cmakeBool "ENABLE_XCB_RANDR" x11Support)
+    (lib.cmakeBool "ENABLE_XFCONF" (x11Support && (!stdenv.isDarwin)))
+    (lib.cmakeBool "ENABLE_XRANDR" x11Support)
+  ] ++ lib.optionals stdenv.isLinux [
+    (lib.cmakeOptionType "filepath" "CUSTOM_PCI_IDS_PATH" "${hwdata}/share/hwdata/pci.ids")
+    (lib.cmakeOptionType "filepath" "CUSTOM_AMDGPU_IDS_PATH" "${libdrm}/share/libdrm/amdgpu.ids")
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/fastfetch \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}"
+    wrapProgram $out/bin/flashfetch \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "fastfetch -v | cut -d '(' -f 1";
+      version = "fastfetch ${finalAttrs.version}";
+    };
+  };
+
+  meta = {
+    description = "Like neofetch, but much faster because written in C";
+    homepage = "https://github.com/fastfetch-cli/fastfetch";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ khaneliman ];
+    platforms = lib.platforms.all;
+    mainProgram = "fastfetch";
+  };
+})