aboutsummaryrefslogtreecommitdiffstats
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";
+ };
+})