diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-17 09:06:36 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-17 09:06:36 +0200 |
commit | 9fbbd3e71f2d7286e9ef1cbdbdea4020bd511308 (patch) | |
tree | 126a50b3bebd544d3faaacd9a21d9378d93c3516 /package | |
parent | fix(package): Set the PYTHONPATH ourselves (diff) | |
download | yt-9fbbd3e71f2d7286e9ef1cbdbdea4020bd511308.zip |
refactor(nix/package): Avoid the duplicated `package` name
Diffstat (limited to 'package')
-rw-r--r-- | package/package.nix | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/package/package.nix b/package/package.nix deleted file mode 100644 index f4d6eac..0000000 --- a/package/package.nix +++ /dev/null @@ -1,144 +0,0 @@ -# yt - A fully featured command line YouTube client -# -# Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de> -# SPDX-License-Identifier: GPL-3.0-or-later -# -# This file is part of Yt. -# -# You should have received a copy of the License along with this program. -# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. -{ - lib, - rustPlatform, - installShellFiles, - # buildInputs - mpv-unwrapped, - python3Packages, - python3, - ffmpeg, - openssl, - libffi, - # NativeBuildInputs - makeWrapper, - llvmPackages_latest, - glibc, - sqlite, - fd, - pkg-config, - SDL2, - # Passthru - tree-sitter-yts, -}: -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" - ]) - || (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 - ]; - - 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"; - - # Required by yt_dlp - FFMPEG_LOCATION = "${lib.getExe ffmpeg}"; - - # 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"; - }; - - doCheck = true; - - prePatch = '' - # Generate the sqlite db, so that we can run the comp-time sqlite checks. - bash ./scripts/mkdb.sh - ''; - - passthru = { - inherit tree-sitter-yts; - }; - - cargoLock = { - lockFile = ../Cargo.lock; - outputHashes = { - "ruff_python_ast-0.0.0" = "sha256-/CVpNBOBpvQhz7X80nUHC2x7ZxxCJH8O0WAABJKEriA="; - "rustpython-0.4.0" = "sha256-hsWqLRiqA0pUNFkHPwvu+Myh5a3p/VXotkPq5ZexqaQ="; - "rustpython-doc-0.3.0" = "sha256-34ERuLFKzUD9Xmf1zlafe42GLWZfUlw17ejf/NN6yH4="; - }; - }; - - postInstall = let - collectDeps = pkg: let - next = pkg.propagatedBuildInputs or []; - in - [pkg] - ++ next - ++ (lib.flatten (builtins.map collectDeps next)); - - loadPythonDep = der: "${der}/lib/python${lib.versions.majorMinor python3.version}/site-packages"; - - pythonPath = builtins.concatStringsSep ":" (lib.lists.unique ( - builtins.map loadPythonDep ( - (collectDeps python3Packages.yt-dlp) - ++ [ - # HACK(@bpeetz): These packages are not picked up in the traversal up top. <2025-06-16> - python3Packages.chardet - ] - ) - )); - in '' - installShellCompletion --cmd yt \ - --bash <(COMPLETE=bash $out/bin/yt) \ - --fish <(COMPLETE=fish $out/bin/yt) \ - --zsh <(COMPLETE=zsh $out/bin/yt) - - # 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 \ - --set PYTHONPATH ${pythonPath} - ''; -}) |