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.
This commit is contained in:
@@ -1,13 +1,15 @@
|
|||||||
{ stdenv, fetchurl, buildPythonApplication, makeWrapper, ffmpeg, zip
|
{ stdenv, fetchurl, buildPythonApplication, makeWrapper, zip, ffmpeg, pandoc
|
||||||
, pandoc ? null
|
, 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
|
with stdenv.lib;
|
||||||
# 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.
|
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
|
|
||||||
@@ -19,16 +21,20 @@ buildPythonApplication rec {
|
|||||||
sha256 = "017x2hqc2bacypjmn9ac9f91y9y6afydl0z7dich5l627494hvfg";
|
sha256 = "017x2hqc2bacypjmn9ac9f91y9y6afydl0z7dich5l627494hvfg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper zip pandoc ];
|
buildInputs = [ makeWrapper zip ] ++ optional generateManPage pandoc;
|
||||||
|
|
||||||
# Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
|
# Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
|
||||||
postInstall = stdenv.lib.optionalString (ffmpeg != null)
|
# atomicparsley for embedding thumbnails
|
||||||
''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg.bin}/bin"'';
|
postInstall = let
|
||||||
|
packagesthatwillbeusedbelow = [ atomicparsley ] ++ optional ffmpegSupport ffmpeg;
|
||||||
|
in ''
|
||||||
|
wrapProgram $out/bin/youtube-dl --prefix PATH : "${makeBinPath packagesthatwillbeusedbelow}"
|
||||||
|
'';
|
||||||
|
|
||||||
# Requires network
|
# Requires network
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = {
|
||||||
homepage = http://rg3.github.io/youtube-dl/;
|
homepage = http://rg3.github.io/youtube-dl/;
|
||||||
repositories.git = https://github.com/rg3/youtube-dl.git;
|
repositories.git = https://github.com/rg3/youtube-dl.git;
|
||||||
description = "Command-line tool to download videos from YouTube.com and other sites";
|
description = "Command-line tool to download videos from YouTube.com and other sites";
|
||||||
|
|||||||
@@ -25188,17 +25188,10 @@ in modules // {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
youtube-dl = callPackage ../tools/misc/youtube-dl {
|
youtube-dl = callPackage ../tools/misc/youtube-dl {};
|
||||||
# Release versions don't need pandoc because the formatted man page
|
|
||||||
# is included in the tarball.
|
|
||||||
pandoc = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
youtube-dl-light = callPackage ../tools/misc/youtube-dl {
|
youtube-dl-light = callPackage ../tools/misc/youtube-dl {
|
||||||
# Release versions don't need pandoc because the formatted man page
|
ffmpegSupport = false;
|
||||||
# is included in the tarball.
|
|
||||||
ffmpeg = null;
|
|
||||||
pandoc = null;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
zbase32 = buildPythonPackage (rec {
|
zbase32 = buildPythonPackage (rec {
|
||||||
|
|||||||
Reference in New Issue
Block a user