about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-16 14:32:49 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-16 14:32:49 +0200
commitaeecec1ccb8945517e38466a44594444c1af43a2 (patch)
treef84d6086445e74389292e9bafd8412a0efd4ada7
parenttreewide: Update (diff)
downloadnixos-config-aeecec1ccb8945517e38466a44594444c1af43a2.zip
pkgs/yt: v1.5.0 -> v1.6.0
-rw-r--r--pkgs/by-name/yt/yt/package.nix85
1 files changed, 55 insertions, 30 deletions
diff --git a/pkgs/by-name/yt/yt/package.nix b/pkgs/by-name/yt/yt/package.nix
index d73776c5..07a0bb3d 100644
--- a/pkgs/by-name/yt/yt/package.nix
+++ b/pkgs/by-name/yt/yt/package.nix
@@ -8,41 +8,57 @@
 # 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,
   fetchgit,
-  ffmpeg,
   gitUpdater,
-  glibc,
-  lib,
-  llvmPackages_latest,
-  makeWrapper,
+  # buildInputs
   mpv-unwrapped,
-  python3,
-  rustPlatform,
+  python3Packages,
+  ffmpeg,
+  openssl,
+  libffi,
+  # NativeBuildInputs
+  makeWrapper,
+  llvmPackages_latest,
+  glibc,
   sqlite,
   fd,
+  pkg-config,
+  SDL2,
 }: let
-  version = "1.5.0";
-
-  src = fetchgit {
-    url = "https://git.foss-syndicate.org/bpeetz/clients/yt";
-    rev = "v${version}";
-    hash = "sha256-P/mpF2KPjoC7XZ6juJubeGEHhL2ajdOeiuIEb5sYrS0=";
-  };
-
-  buildInputs = [
-    (python3.withPackages (ps: [ps.yt-dlp]))
-    mpv-unwrapped.dev
-    ffmpeg
-  ];
+  version = "1.6.0";
 in
-  rustPlatform.buildRustPackage {
-    inherit version src buildInputs;
+  rustPlatform.buildRustPackage (finalAttrs: {
+    inherit version;
     pname = "yt";
 
+    src = fetchgit {
+      url = "https://git.foss-syndicate.org/bpeetz/clients/yt";
+      tag = "v${version}";
+      hash = "sha256-i87xssodfVNat/YRWJRMiuNjd1R5T0NRbAzTPxWEIuo=";
+    };
+
+    buildInputs = [
+      python3Packages.yt-dlp
+      mpv-unwrapped.dev
+      ffmpeg
+      openssl
+      libffi
+    ];
+
     nativeBuildInputs = [
+      installShellFiles
       makeWrapper
       sqlite
       fd
+      pkg-config
+    ];
+
+    checkInputs = [
+      # Needed for the tests in `libmpv2`
+      SDL2
     ];
 
     passthru.updateScript = gitUpdater {rev-prefix = "v";};
@@ -52,27 +68,36 @@ in
         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}";
-      PYO3_PYTHON = lib.getExe (python3.withPackages (ps: [ps.yt-dlp]));
 
+      # Needed for the libmpv2.
       C_INCLUDE_PATH = "${glibc.dev}/include";
-      DATABASE_URL = "sqlite://target/database.sqlx";
       LIBCLANG_INCLUDE_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/clang/${clang_version}/include";
       LIBCLANG_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/libclang.so";
     };
 
-    # Some tests depend on network access, others require a special library.
-    doCheck = false;
+    doCheck = true;
 
     prePatch = ''
+      # Generate the sqlite db, so that we can run the comp-time sqlite checks.
       bash ./scripts/mkdb.sh
     '';
 
-    useFetchCargoVendor = true;
-    cargoHash = "sha256-0XTbC+mFsczUFXqAtiQ+BIsCfKilerhlzE41pzVjLVs=";
+    cargoHash = "sha256-MRbyWchMM1GPaWTLZt5Bgk/ry6k89woDdpQz0+mi09E=";
 
     postInstall = ''
+      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 buildInputs}
+        --prefix PATH : ${lib.makeBinPath finalAttrs.buildInputs} \
+        --set YTDLP_NO_PLUGINS 1
     '';
-  }
+  })