summary refs log tree commit diff
path: root/pkgs/tools/misc/youtube-dl/default.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2016-08-30 14:36:16 +0200
committerFranz Pletz <fpletz@fnordicwalking.de>2016-08-30 14:36:16 +0200
commite1e96a8210cb753b8ea345146a46db3269147e72 (patch)
tree4b7ab692c025313e713c3d74ad626601944c9ff4 /pkgs/tools/misc/youtube-dl/default.nix
parentf254db331e8cec6f36a32e42d0ed9ef96d760f2e (diff)
downloadnixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar.gz
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar.bz2
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar.lz
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar.xz
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.tar.zst
nixpkgs-e1e96a8210cb753b8ea345146a46db3269147e72.zip
youtube-dl: wrap with atomicparsley (#18066)
Otherwise --embed-thumbnail will crash youtube-dl while running.
Rewrite the module arguments to be semantic and not fail with null
pointer errors.
Diffstat (limited to 'pkgs/tools/misc/youtube-dl/default.nix')
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix30
1 files changed, 18 insertions, 12 deletions
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 12ecf11517c..a4f837bf833 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchurl, buildPythonApplication, makeWrapper, ffmpeg, zip
-, pandoc ? null
+{ stdenv, fetchurl, buildPythonApplication, makeWrapper, zip, ffmpeg, pandoc
+, atomicparsley
+# Pandoc is required to build the package's man page. Release tarballs contain a
+# formatted man page already, though, it will still be installed. We keep the
+# manpage argument in place in case someone wants to use this derivation to
+# build a Git version of the tool that doesn't have the formatted man page
+# included.
+, generateManPage ? false
+, ffmpegSupport ? true
 }:
 
-# Pandoc is required to build the package's man page. Release tarballs
-# contain a formatted man page already, though, so it's fine to pass
-# "pandoc = null" to this derivation; the man page will still be
-# installed. We keep the pandoc argument and build input in place in
-# case someone wants to use this derivation to build a Git version of
-# the tool that doesn't have the formatted man page included.
+with stdenv.lib;
 
 buildPythonApplication rec {
 
@@ -19,16 +21,20 @@ buildPythonApplication rec {
     sha256 = "017x2hqc2bacypjmn9ac9f91y9y6afydl0z7dich5l627494hvfg";
   };
 
-  buildInputs = [ makeWrapper zip pandoc ];
+  buildInputs = [ makeWrapper zip ] ++ optional generateManPage pandoc;
 
   # Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
-  postInstall = stdenv.lib.optionalString (ffmpeg != null)
-    ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg.bin}/bin"'';
+  # atomicparsley for embedding thumbnails
+  postInstall = let
+    packagesthatwillbeusedbelow = [ atomicparsley ] ++ optional ffmpegSupport ffmpeg;
+  in ''
+    wrapProgram $out/bin/youtube-dl --prefix PATH : "${makeBinPath packagesthatwillbeusedbelow}"
+  '';
 
   # Requires network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = {
     homepage = http://rg3.github.io/youtube-dl/;
     repositories.git = https://github.com/rg3/youtube-dl.git;
     description = "Command-line tool to download videos from YouTube.com and other sites";