diff options
author | Daniel Schaefer <git@danielschaefer.me> | 2020-02-10 10:09:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-10 10:09:22 +0100 |
commit | f10e240b86ae4072e00c3a1d01a60e672655dc9f (patch) | |
tree | cd8b1279c0531401d08c77f0e562bbe269f96d11 /pkgs/applications | |
parent | 05b4fe20a73f1a00ab760105d862117a4acf4e25 (diff) | |
parent | c6960f41c9f723c677eb31d46869a523038c1f11 (diff) |
Merge pull request #72886 from JohnAZoidberg/manim
manim: init at 0.1.10
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/video/manim/default.nix | 64 | ||||
-rw-r--r-- | pkgs/applications/video/manim/remove-dependency-constraints.patch | 26 |
2 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/applications/video/manim/default.nix b/pkgs/applications/video/manim/default.nix new file mode 100644 index 0000000000000..0d263f402b338 --- /dev/null +++ b/pkgs/applications/video/manim/default.nix @@ -0,0 +1,64 @@ +{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder, file, fetchpatch +, cairo, ffmpeg, sox, xdg_utils, texlive +, colour, numpy, pillow, progressbar, scipy, tqdm, opencv , pycairo, pydub +, pbr, fetchPypi +}: +buildPythonApplication rec { + pname = "manim"; + version = "0.1.10"; + + src = fetchPypi { + pname = "manimlib"; + inherit version; + sha256 = "0vg9b3rwypq5zir74pi0pmj47yqlcg7hrvscwrpjzjbqq2yihn49"; + }; + + patches = [ ./remove-dependency-constraints.patch ]; + + nativeBuildInputs = [ pbr ]; + + propagatedBuildInputs = [ + colour + numpy + pillow + progressbar + scipy + tqdm + opencv + pycairo + pydub + + cairo sox ffmpeg xdg_utils + ]; + + # Test with texlive to see whether it works but don't propagate + # because it's huge and optional + # TODO: Use smaller TexLive distribution + # Doesn't need everything but it's hard to figure out what it needs + checkInputs = [ cairo sox ffmpeg xdg_utils texlive.combined.scheme-full ]; + + # Simple test and complex test with LaTeX + checkPhase = '' + for scene in SquareToCircle OpeningManimExample + do + python3 manim.py example_scenes.py $scene -l + tail -n 20 files/Tex/*.log # Print potential LaTeX erorrs + ${file}/bin/file videos/example_scenes/480p15/$scene.mp4 \ + | tee | grep -F "ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]" + done + ''; + + disabled = pythonOlder "3.7"; + + meta = { + description = "Animation engine for explanatory math videos"; + longDescription = '' + Manim is an animation engine for explanatory math videos. It's used to + create precise animations programmatically, as seen in the videos of + 3Blue1Brown on YouTube. + ''; + homepage = https://github.com/3b1b/manim; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ johnazoidberg ]; + }; +} diff --git a/pkgs/applications/video/manim/remove-dependency-constraints.patch b/pkgs/applications/video/manim/remove-dependency-constraints.patch new file mode 100644 index 0000000000000..4a7da45d0f57b --- /dev/null +++ b/pkgs/applications/video/manim/remove-dependency-constraints.patch @@ -0,0 +1,26 @@ +diff --git i/requirements.txt w/requirements.txt +index 556122ad..11fd49d5 100644 +--- i/requirements.txt ++++ w/requirements.txt +@@ -1,11 +1,10 @@ +-argparse==1.4.0 +-colour==0.1.5 +-numpy==1.15.0 +-Pillow==5.2.0 +-progressbar==2.5 +-scipy==1.1.0 +-tqdm==4.24.0 +-opencv-python==3.4.2.17 +-pycairo==1.17.1; sys_platform == 'linux' +-pycairo>=1.18.0; sys_platform == 'win32' +-pydub==0.23.0 ++colour ++numpy ++Pillow ++progressbar ++scipy ++tqdm ++pycairo ++pycairo>=1.18.1; sys_platform == 'win32' ++pydub ++pyreadline==2.1; sys_platform == 'win32' |