about summary refs log tree commit diff stats
path: root/nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix')
-rw-r--r--nix/package.nix162
1 files changed, 46 insertions, 116 deletions
diff --git a/nix/package.nix b/nix/package.nix
index f3d16bf..d0efb16 100644
--- a/nix/package.nix
+++ b/nix/package.nix
@@ -11,129 +11,59 @@
 {
   lib,
   rustPlatform,
-  installShellFiles,
-  # buildInputs
-  mpv-unwrapped,
-  ffmpeg,
-  openssl,
-  libffi,
-  zlib,
-  curl,
-  # NativeBuildInputs
-  makeWrapper,
-  llvmPackages_latest,
-  glibc,
-  sqlite,
-  fd,
+  # nativeBuildInputs
   pkg-config,
-  SDL2,
-  python3,
-  # Passthru
-  tree-sitter-yts,
-}: let
-  python = python3.withPackages (ps: [ps.yt-dlp]);
-in
-  rustPlatform.buildRustPackage (finalAttrs: {
-    pname = "yt";
-    inherit
-      ((builtins.fromTOML (builtins.readFile
-            ../Cargo.toml)).workspace.package)
-      version
-      ;
-
-    src = lib.cleanSourceWith {
-      src = lib.cleanSource ./..;
-      filter = name: type:
-        (type == "directory")
-        || (builtins.elem (builtins.baseNameOf name) [
-          "Cargo.toml"
-          "Cargo.lock"
-          "mkdb.sh"
-          "help.str"
-          "raw_error_warning.txt"
-          "golden.txt"
-        ])
-        || (lib.strings.hasSuffix ".rs" (builtins.baseNameOf name))
-        || (lib.strings.hasSuffix ".h" (builtins.baseNameOf name))
-        || (lib.strings.hasSuffix ".sql" (builtins.baseNameOf name));
-    };
-
-    nativeBuildInputs = [
-      installShellFiles
-      makeWrapper
-      sqlite
-      fd
-      pkg-config
-    ];
-
-    buildInputs = [
-      mpv-unwrapped.dev
-      ffmpeg
-      openssl
-      libffi
-      zlib
-      curl.dev
-      python
-    ];
-
-    checkInputs = [
-      # Needed for the tests in `libmpv2`
-      SDL2
-    ];
-
-    env = let
-      clang_version =
-        lib.versions.major
-        llvmPackages_latest.clang-unwrapped.version;
-    in {
-      # Needed for the compile time sqlite checks.
-      DATABASE_URL = "sqlite://database.sqlx";
+  sqlite,
+}:
+rustPlatform.buildRustPackage (finalAttrs: {
+  pname = "rocie-server";
+  inherit
+    ((builtins.fromTOML (builtins.readFile
+          ../Cargo.toml)).workspace.package)
+    version
+    ;
 
-      # Required by yt_dlp
-      FFMPEG_LOCATION = "${lib.getExe ffmpeg}";
+  src = lib.cleanSourceWith {
+    src = lib.cleanSource ./..;
+    filter = name: type:
+      (type == "directory")
+      || (builtins.elem (builtins.baseNameOf name) [
+        "Cargo.toml"
+        "Cargo.lock"
+        "mkdb.sh"
+      ])
+      || (lib.strings.hasSuffix ".rs" (builtins.baseNameOf name))
+      || (lib.strings.hasSuffix ".sql" (builtins.baseNameOf name));
+  };
 
-      # Tell pyo3 which python to use.
-      PYO3_PYTHON = lib.getExe python;
+  nativeBuildInputs = [
+    pkg-config
+    sqlite
+  ];
 
-      # Needed for the libmpv2.
-      C_INCLUDE_PATH = "${glibc.dev}/include";
-      LIBCLANG_INCLUDE_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/clang/${clang_version}/include";
-      LIBCLANG_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/libclang.so";
-    };
+  buildInputs = [
+  ];
 
-    doCheck = true;
-    checkFlags = [
-      # All of these tests try to connect to the internet to download test data.
-      "--skip=select::base::test_base"
-      "--skip=select::file::test_file"
-      "--skip=select::options::test_options"
-      "--skip=subscriptions::import_export::test_import_export"
-      "--skip=subscriptions::naming_subscriptions::test_naming_subscriptions"
-      "--skip=videos::downloading::test_downloading"
-    ];
+  checkInputs = [
+  ];
 
-    prePatch = ''
-      # Generate the sqlite db, so that we can run the comp-time sqlite checks.
-      bash ./scripts/mkdb.sh
-    '';
+  env = {
+    # Needed for the compile time sqlite checks.
+    DATABASE_URL = "sqlite://database.sqlx";
+  };
 
-    passthru = {
-      inherit tree-sitter-yts;
-    };
+  doCheck = true;
 
-    cargoLock = {
-      lockFile = ../Cargo.lock;
-    };
+  prePatch = ''
+    # Generate the sqlite db, so that we can run the comp-time sqlite checks.
+    bash ./scripts/mkdb.sh
+  '';
 
-    postInstall = ''
-      installShellCompletion --cmd yt \
-        --bash <(COMPLETE=bash $out/bin/yt) \
-        --fish <(COMPLETE=fish $out/bin/yt) \
-        --zsh <(COMPLETE=zsh $out/bin/yt)
+  cargoLock = {
+    lockFile = ../Cargo.lock;
+  };
 
-      # NOTE: We cannot clear the path, because we need access to the $EDITOR. <2025-04-04>
-      wrapProgram $out/bin/yt \
-        --prefix PATH : ${lib.makeBinPath finalAttrs.buildInputs} \
-        --set YTDLP_NO_PLUGINS 1
-    '';
-  })
+  meta = {
+    mainProgram = "rocie-server";
+  };
+})