Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / ffmpy / default.nix
blob8e00a4678ebff8551b23b32a880da28576c420bc
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , pythonOlder
5 , setuptools
6 , pytestCheckHook
7 , go
8 , ffmpeg-headless
9 }:
11 buildPythonPackage rec {
12   pname = "ffmpy";
13   version = "0.3.2";
14   pyproject = true;
16   disabled = pythonOlder "3.6";
18   src = fetchFromGitHub {
19     owner = "Ch00k";
20     repo = "ffmpy";
21     rev = "refs/tags/${version}";
22     hash = "sha256-q41JjAWcIiD2nJck5Zzb/lhfIZ3xJGU1I2crsMN0T8Q=";
23   };
25   postPatch = ''
26     # default to store ffmpeg
27     substituteInPlace ffmpy.py \
28       --replace 'executable="ffmpeg",' 'executable="${ffmpeg-headless}/bin/ffmpeg",'
30     #  The tests test a mock that does not behave like ffmpeg. If we default to the nix-store ffmpeg they fail.
31     for fname in tests/*.py; do
32       echo 'FFmpeg.__init__.__defaults__ = ("ffmpeg", *FFmpeg.__init__.__defaults__[1:])' >>"$fname"
33     done
34   '';
36   pythonImportsCheck = [ "ffmpy" ];
38   nativeBuildInputs = [
39     setuptools
40   ];
42   nativeCheckInputs = [
43     pytestCheckHook
44     go
45   ];
47   # the vendored ffmpeg mock binary assumes FHS
48   preCheck = ''
49     rm -v tests/ffmpeg/ffmpeg
50     HOME=$(mktemp -d) go build -o ffmpeg tests/ffmpeg/ffmpeg.go
51     export PATH=".:$PATH"
52   '';
54   meta = with lib; {
55     description = "A simple python interface for FFmpeg/FFprobe";
56     homepage = "https://github.com/Ch00k/ffmpy";
57     license = licenses.mit;
58     maintainers = with maintainers; [ pbsds ];
59   };