diff options
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/package.nix | 162 |
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"; + }; +}) |
