aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-17 09:06:36 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-17 09:06:36 +0200
commit9fbbd3e71f2d7286e9ef1cbdbdea4020bd511308 (patch)
tree126a50b3bebd544d3faaacd9a21d9378d93c3516 /package
parentfix(package): Set the PYTHONPATH ourselves (diff)
downloadyt-9fbbd3e71f2d7286e9ef1cbdbdea4020bd511308.zip
refactor(nix/package): Avoid the duplicated `package` name
Diffstat (limited to 'package')
-rw-r--r--package/package.nix144
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}
- '';
-})