summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/imageio-ffmpeg
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/imageio-ffmpeg')
-rw-r--r--pkgs/development/python-modules/imageio-ffmpeg/default.nix39
-rw-r--r--pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch39
2 files changed, 65 insertions, 13 deletions
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index db59ba70bb26..bb186d6594c0 100644
--- a/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -1,29 +1,42 @@
{ lib
, buildPythonPackage
-, fetchPypi
-, fetchpatch
, isPy3k
+, fetchPypi
+, substituteAll
+, ffmpeg
+, python
}:
buildPythonPackage rec {
pname = "imageio-ffmpeg";
- version = "0.4.2";
+ version = "0.4.3";
+
+ disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
- sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
+ sha256 = "f826260a3207b872f1a4ba87ec0c8e02c00afba4fd03348a59049bdd8215841e";
};
- patches = [ (fetchpatch {
- # Fixes compatibility with python3.9
- # Should be included in the next release after 0.4.2
- url = "https://github.com/imageio/imageio-ffmpeg/pull/43/commits/b90c39fe3d29418d67d953588ed9fdf4d848f811.patch";
- sha256 = "0d9kf4w6ldwag3s2dr9zjin6wrj66fnl4fn8379ci4q4qfsqgx3f";
- })];
- disabled = !isPy3k;
+ patches = [
+ (substituteAll {
+ src = ./ffmpeg-path.patch;
+ ffmpeg = "${ffmpeg}/bin/ffmpeg";
+ })
+ ];
+
+ checkPhase = ''
+ runHook preCheck
+
+ ${python.interpreter} << EOF
+ from imageio_ffmpeg import get_ffmpeg_version
+ assert get_ffmpeg_version() == '${ffmpeg.version}'
+ EOF
+
+ runHook postCheck
+ '';
- # No test infrastructure in repository.
- doCheck = false;
+ pythonImportsCheck = [ "imageio_ffmpeg" ];
meta = with lib; {
description = "FFMPEG wrapper for Python";
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch b/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
new file mode 100644
index 000000000000..d193ec199f9b
--- /dev/null
+++ b/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
@@ -0,0 +1,39 @@
+diff --git a/imageio_ffmpeg/_utils.py b/imageio_ffmpeg/_utils.py
+index 1399cfd..c0eb9be 100644
+--- a/imageio_ffmpeg/_utils.py
++++ b/imageio_ffmpeg/_utils.py
+@@ -23,33 +23,7 @@ def get_ffmpeg_exe():
+ if exe:
+ return exe
+
+- plat = get_platform()
+-
+- # 2. Try from here
+- bin_dir = resource_filename("imageio_ffmpeg", "binaries")
+- exe = os.path.join(bin_dir, FNAME_PER_PLATFORM.get(plat, ""))
+- if exe and os.path.isfile(exe) and _is_valid_exe(exe):
+- return exe
+-
+- # 3. Try binary from conda package
+- # (installed e.g. via `conda install ffmpeg -c conda-forge`)
+- if plat.startswith("win"):
+- exe = os.path.join(sys.prefix, "Library", "bin", "ffmpeg.exe")
+- else:
+- exe = os.path.join(sys.prefix, "bin", "ffmpeg")
+- if exe and os.path.isfile(exe) and _is_valid_exe(exe):
+- return exe
+-
+- # 4. Try system ffmpeg command
+- exe = "ffmpeg"
+- if _is_valid_exe(exe):
+- return exe
+-
+- # Nothing was found
+- raise RuntimeError(
+- "No ffmpeg exe could be found. Install ffmpeg on your system, "
+- "or set the IMAGEIO_FFMPEG_EXE environment variable."
+- )
++ return '@ffmpeg@'
+
+
+ def _popen_kwargs(prevent_sigint=False):