From 2f238d82a0172ab2bcc15ac03cee9085f93c22a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 21 Sep 2013 18:15:18 +0200 Subject: [PATCH 1/9] blockdiag: new package Blockdiag generates block-diagram image from spec-text file (similar to Graphviz). Also add its needed dependencies, funcparserlib and webcolors. --- pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/python-packages.nix | 67 ++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 872ce602035..bd22812316b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -519,6 +519,8 @@ let bfr = callPackage ../tools/misc/bfr { }; + blockdiag = pythonPackages.blockdiag; + bmon = callPackage ../tools/misc/bmon { }; boomerang = callPackage ../development/tools/boomerang { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7c02e5c1f99..3c6d8b84279 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -491,6 +491,34 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + + blockdiag = buildPythonPackage rec { + name = "blockdiag-1.2.4"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/b/blockdiag/${name}.tar.gz"; + md5 = "244334f60cc10b0cb73b5df5279bcdd1"; + }; + + buildInputs = [ pep8 nose unittest2 docutils ]; + + propagatedBuildInputs = [ pil webcolors funcparserlib ]; + + # One test fails: + # ... + # FAIL: test_auto_font_detection (blockdiag.tests.test_boot_params.TestBootParams) + doCheck = false; + + meta = with stdenv.lib; { + description = "Generate block-diagram image from spec-text file (similar to Graphviz)"; + homepage = http://blockdiag.com/; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + bpython = buildPythonPackage rec { name = "bpython-0.12"; src = fetchurl { @@ -1259,6 +1287,24 @@ pythonPackages = modules // import ./python-packages-generated.nix { propagatedBuildInputs = [ sphinx ]; }; + + funcparserlib = buildPythonPackage rec { + name = "funcparserlib-0.3.6"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/f/funcparserlib/${name}.tar.gz"; + md5 = "3aba546bdad5d0826596910551ce37c0"; + }; + + meta = with stdenv.lib; { + description = "Recursive descent parsing library based on functional combinators"; + homepage = https://code.google.com/p/funcparserlib/; + license = licenses.mit; + platforms = platforms.linux; + }; + }; + + googlecl = buildPythonPackage rec { version = "0.9.14"; name = "googlecl-${version}"; @@ -5975,6 +6021,27 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + + webcolors = buildPythonPackage rec { + name = "webcolors-1.4"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/w/webcolors/${name}.tar.gz"; + md5 = "35de9d785b5c04a9cc66a2eae0519254"; + }; + + # error: invalid command 'test' + doCheck = false; + + meta = with stdenv.lib; { + description = "Library for working with color names/values defined by the HTML and CSS specifications"; + homepage = https://bitbucket.org/ubernostrum/webcolors/overview/; + license = licenses.bsd3; + platforms = platforms.linux; + }; + }; + + webob = buildPythonPackage rec { version = "1.2.3"; name = "webob-${version}"; From d048685af58795e9ee7ea5a636eb26b310ad9979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 21 Sep 2013 19:19:42 +0200 Subject: [PATCH 2/9] seqdiag: new package Seqdiag generates sequence-diagram image from spec-text file (similar to Graphviz). --- pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bd22812316b..2cc690ff59c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1709,6 +1709,8 @@ let inherit groff; }; + seqdiag = pythonPackages.seqdiag; + sg3_utils = callPackage ../tools/system/sg3_utils { }; sharutils = callPackage ../tools/archivers/sharutils { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3c6d8b84279..5c6354d6e3a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5165,6 +5165,33 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; + seqdiag = buildPythonPackage rec { + name = "seqdiag-0.8.2"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/s/seqdiag/${name}.tar.gz"; + md5 = "61b3da29b5efaa89701b4db6d2d4d5fa"; + }; + + buildInputs = [ pep8 nose unittest2 docutils ]; + + propagatedBuildInputs = [ blockdiag ]; + + # Some tests fail (because of missing input files?): + # ... + # IOError: [Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.8.2.drv-0/seqdiag-0.8.2/src/seqdiag/tests/diagrams/separators.diag' + doCheck = false; + + meta = with stdenv.lib; { + description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)"; + homepage = http://blockdiag.com/; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + scipy = buildPythonPackage rec { name = "scipy-0.9.0"; From 6f48eb58666671207305a4281482f3d9c1e0dbb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 21 Sep 2013 19:31:40 +0200 Subject: [PATCH 3/9] actdiag: new package Actdiag generates activity-diagram image from spec-text file (similar to Graphviz). --- pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2cc690ff59c..7d9537854bf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -395,6 +395,8 @@ let acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter { }; + actdiag = pythonPackages.actdiag; + aefs = callPackage ../tools/filesystems/aefs { }; aespipe = callPackage ../tools/security/aespipe { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5c6354d6e3a..6754537e72b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -131,6 +131,31 @@ pythonPackages = modules // import ./python-packages-generated.nix { # packages defined here + actdiag = buildPythonPackage rec { + name = "actdiag-0.4.3"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/a/actdiag/${name}.tar.gz"; + md5 = "428aaab849f04668fa12388b964a56ea"; + }; + + buildInputs = [ pep8 nose unittest2 docutils ]; + + propagatedBuildInputs = [ blockdiag ]; + + # One test fails, because of missing simple.diag input file + doCheck = false; + + meta = with stdenv.lib; { + description = "Generate activity-diagram image from spec-text file (similar to Graphviz)"; + homepage = http://blockdiag.com/; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + afew = buildPythonPackage rec { rev = "6bb3915636aaf86f046a017ffffd9a4ef395e199"; name = "afew-1.0_${rev}"; From 6f9821beb7e5fd3cd1687a4464d5f59f6022a9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 21 Sep 2013 19:48:54 +0200 Subject: [PATCH 4/9] nwdiag: new package Nwdiag generates network-diagram image from spec-text file (similar to Graphviz). --- pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7d9537854bf..141434c0a0f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1403,6 +1403,8 @@ let nssmdns = callPackage ../tools/networking/nss-mdns { }; + nwdiag = pythonPackages.nwdiag; + nylon = callPackage ../tools/networking/nylon { }; nzbget = callPackage ../tools/networking/nzbget { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6754537e72b..3955867484d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3618,6 +3618,32 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }); + + nwdiag = buildPythonPackage rec { + name = "nwdiag-0.9.4"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/n/nwdiag/${name}.tar.gz"; + md5 = "199b22f66ec3012c3999177d376a3842"; + }; + + buildInputs = [ pep8 nose unittest2 docutils ]; + + propagatedBuildInputs = [ blockdiag ]; + + # tests fail + doCheck = false; + + meta = with stdenv.lib; { + description = "Generate network-diagram image from spec-text file (similar to Graphviz)"; + homepage = http://blockdiag.com/; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + oauth2 = buildPythonPackage (rec { name = "oauth2-1.5.211"; From 8a2251549fe0f4cb803d402e463aac5a8f3af642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 21 Sep 2013 15:22:12 +0200 Subject: [PATCH 5/9] asciidoc: support extra filters (ditaa, mscgen, diag) Also, slightly change the shebang fixup in the patchPhase so that it handles optional [[:space:]] before the interpreter path (needed for the filters). To enable the extra filters, put this in packageOverrides: asciidoc = pkgs.asciidoc.override { enableDitaaFilter = true; enableMscgenFilter = true; enableDiagFilter = true; }; --- pkgs/tools/typesetting/asciidoc/default.nix | 65 +++++++++++++++++++-- 1 file changed, 59 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix index f392ad065cc..14fb8b1dd2e 100644 --- a/pkgs/tools/typesetting/asciidoc/default.nix +++ b/pkgs/tools/typesetting/asciidoc/default.nix @@ -1,15 +1,70 @@ -{ fetchurl, stdenv, python }: +{ fetchurl, stdenv, python +, unzip ? null +, enableDitaaFilter ? false, jre ? null +, enableMscgenFilter ? false, mscgen ? null +, enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null +}: + +assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter) -> unzip != null; +assert enableDitaaFilter -> jre != null; +assert enableMscgenFilter -> mscgen != null; +assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; + +let + ditaaFilterSrc = fetchurl { + url = "https://asciidoc-ditaa-filter.googlecode.com/files/ditaa-filter-1.1.zip"; + sha256 = "0p7hm2a1xywx982ia3vg4c0lam5sz0xknsc10i2a5vswy026naf6"; + }; + + mscgenFilterSrc = fetchurl { + url = "https://asciidoc-mscgen-filter.googlecode.com/files/mscgen-filter-1.2.zip"; + sha256 = "1nfwmj375gpv5dn9i770pjv59aihzy2kja0fflsk96xwnlqsqq61"; + }; + + diagFilterSrc = fetchurl { + # unfortunately no version number + url = "https://asciidoc-diag-filter.googlecode.com/files/diag_filter.zip"; + sha256 = "1qlqrdbqkdqqgfdhjsgdws1al0sacsyq6jmwxdfy7r8k7bv7n7mm"; + }; + +in stdenv.mkDerivation rec { name = "asciidoc-8.6.8"; + src = fetchurl { url = "mirror://sourceforge/asciidoc/${name}.tar.gz"; sha256 = "ffb67f59dccaf6f15db72fcd04fdf21a2f9b703d31f94fcd0c49a424a9fcfbc4"; }; - patchPhase = '' - for n in `find . -name \*.py `; do - sed -i -e "s,^#!/usr/bin/env python,#!${python}/bin/python,g" "$n" + buildInputs = [ python unzip ]; + + # install filters early, so their shebangs are patched too + patchPhase = with stdenv.lib; '' + mkdir -p "$out/etc/asciidoc/filters" + '' + optionalString enableDitaaFilter '' + echo "Extracting ditaa filter" + unzip -d "$out/etc/asciidoc/filters/ditaa" "${ditaaFilterSrc}" + sed -i -e "s|java -jar|${jre}/bin/java -jar|" \ + "$out/etc/asciidoc/filters/ditaa/ditaa2img.py" + '' + optionalString enableMscgenFilter '' + echo "Extracting mscgen filter" + unzip -d "$out/etc/asciidoc/filters/mscgen" "${mscgenFilterSrc}" + sed -i -e "s|filter-wrapper.py mscgen|filter-wrapper.py ${mscgen}/bin/mscgen|" \ + "$out/etc/asciidoc/filters/mscgen/mscgen-filter.conf" + '' + optionalString enableDiagFilter '' + echo "Extracting diag filter" + unzip -d "$out/etc/asciidoc/filters/diag" "${diagFilterSrc}" + sed -i \ + -e "s|filter='blockdiag|filter=\'${blockdiag}/bin/blockdiag|" \ + -e "s|filter='seqdiag|filter=\'${seqdiag}/bin/seqdiag|" \ + -e "s|filter='actdiag|filter=\'${actdiag}/bin/actdiag|" \ + -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \ + -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \ + "$out/etc/asciidoc/filters/diag/diag-filter.conf" + '' + '' + for n in $(find "$out" . -name \*.py); do + sed -i -e "s,^#![[:space:]]*/usr/bin/env python,#!${python}/bin/python,g" "$n" chmod +x "$n" done sed -i -e "s,/etc/vim,,g" Makefile.in @@ -17,8 +72,6 @@ stdenv.mkDerivation rec { preInstall = "mkdir -p $out/etc/vim"; - buildInputs = [ python ]; - meta = { homepage = "http://www.methods.co.nz/asciidoc/"; description = "ASCII text-based document generation system"; From 1b89cbb0ed798794baf14c7842102de71286760b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 22 Sep 2013 11:26:15 +0200 Subject: [PATCH 6/9] asciidoc: add support for qrcode filter --- pkgs/tools/typesetting/asciidoc/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix index 14fb8b1dd2e..b2d3d182610 100644 --- a/pkgs/tools/typesetting/asciidoc/default.nix +++ b/pkgs/tools/typesetting/asciidoc/default.nix @@ -3,9 +3,10 @@ , enableDitaaFilter ? false, jre ? null , enableMscgenFilter ? false, mscgen ? null , enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null +, enableQrcodeFilter ? false, qrencode ? null }: -assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter) -> unzip != null; +assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter) -> unzip != null; assert enableDitaaFilter -> jre != null; assert enableMscgenFilter -> mscgen != null; assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; @@ -27,6 +28,11 @@ let sha256 = "1qlqrdbqkdqqgfdhjsgdws1al0sacsyq6jmwxdfy7r8k7bv7n7mm"; }; + qrcodeFilterSrc = fetchurl { + url = "https://asciidoc-qrencode-filter.googlecode.com/files/qrcode-filter-1.0.zip"; + sha256 = "0h4bql1nb4y4fmg2yvlpfjhvy22ln8jsaxdr10f8bfcg5lr0zkxs"; + }; + in stdenv.mkDerivation rec { @@ -62,6 +68,11 @@ stdenv.mkDerivation rec { -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \ -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \ "$out/etc/asciidoc/filters/diag/diag-filter.conf" + '' + optionalString enableQrcodeFilter '' + echo "Extracting qrcode filter" + unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}" + sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \ + "$out/etc/asciidoc/filters/qrcode/qrcode2img.py" '' + '' for n in $(find "$out" . -name \*.py); do sed -i -e "s,^#![[:space:]]*/usr/bin/env python,#!${python}/bin/python,g" "$n" From 524315194c77563a3d57724aa41cffdfab1959df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 22 Sep 2013 14:29:43 +0200 Subject: [PATCH 7/9] asciidoc: add support for matplotlib filter --- pkgs/tools/typesetting/asciidoc/default.nix | 18 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix index b2d3d182610..a381fb863eb 100644 --- a/pkgs/tools/typesetting/asciidoc/default.nix +++ b/pkgs/tools/typesetting/asciidoc/default.nix @@ -4,12 +4,14 @@ , enableMscgenFilter ? false, mscgen ? null , enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null , enableQrcodeFilter ? false, qrencode ? null +, enableMatplotlibFilter ? false, matplotlib ? null, numpy ? null }: assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter) -> unzip != null; assert enableDitaaFilter -> jre != null; assert enableMscgenFilter -> mscgen != null; assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; +assert enableMatplotlibFilter -> matplotlib != null && numpy != null; let ditaaFilterSrc = fetchurl { @@ -33,6 +35,13 @@ let sha256 = "0h4bql1nb4y4fmg2yvlpfjhvy22ln8jsaxdr10f8bfcg5lr0zkxs"; }; + # latest commit in master branch as per 2013-09-22 + matplotlibFilterSrc = let commit = "75f0d009629f93f33fab04b83faca20cc35dd358"; in fetchurl rec { + name = "mplw-${commit}.tar.gz"; + url = "https://api.github.com/repos/lvv/mplw/tarball/${commit}"; + sha256 = "0yfhkm2dr8gnp0fcg25x89hwiymkri2m5cyqzmzragzwj0hbmcf1"; + }; + in stdenv.mkDerivation rec { @@ -73,6 +82,15 @@ stdenv.mkDerivation rec { unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}" sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \ "$out/etc/asciidoc/filters/qrcode/qrcode2img.py" + '' + optionalString enableMatplotlibFilter '' + echo "Extracting mpl (matplotlib) filter" + mkdir -p "$out/etc/asciidoc/filters/mpl" + tar xvf "${matplotlibFilterSrc}" -C "$out/etc/asciidoc/filters/mpl" --strip-components=1 + # Add matplotlib and numpy to sys.path + matplotlib_path="$(toPythonPath ${matplotlib})" + numpy_path="$(toPythonPath ${numpy})" + sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \ + "$out/etc/asciidoc/filters/mpl/mplw.py" '' + '' for n in $(find "$out" . -name \*.py); do sed -i -e "s,^#![[:space:]]*/usr/bin/env python,#!${python}/bin/python,g" "$n" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 141434c0a0f..8e4f2488f46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -562,7 +562,9 @@ let mcelog = callPackage ../os-specific/linux/mcelog { }; - asciidoc = callPackage ../tools/typesetting/asciidoc { }; + asciidoc = callPackage ../tools/typesetting/asciidoc { + inherit (pythonPackages) matplotlib numpy; + }; autossh = callPackage ../tools/networking/autossh { }; From 0e9599ca9474c9b85323970b31949d81fb7c6999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 22 Sep 2013 14:53:07 +0200 Subject: [PATCH 8/9] aafigure: new package aafigure is an ASCII art to image converter. Manual and example document: http://launchpad.net/aafigure/trunk/0.5/+download/aafigure.pdf --- pkgs/top-level/python-packages.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3955867484d..9956e43545c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -131,6 +131,36 @@ pythonPackages = modules // import ./python-packages-generated.nix { # packages defined here + aafigure = buildPythonPackage rec { + name = "aafigure-0.5"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/a/aafigure/${name}.tar.gz"; + md5 = "5322888a21eb0bb2e749fbf98eddf574"; + }; + + propagatedBuildInputs = [ pillow ]; + + # error: invalid command 'test' + doCheck = false; + + # Fix impurity. TODO: Do the font lookup using fontconfig instead of this + # manual method. Until that is fixed, we get this whenever we run aafigure: + # WARNING: font not found, using PIL default font + patchPhase = '' + sed -i "s|/usr/share/fonts|/nonexisting-fonts-path|" aafigure/PILhelper.py + ''; + + meta = with stdenv.lib; { + description = "ASCII art to image converter"; + homepage = https://launchpad.net/aafigure/; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + actdiag = buildPythonPackage rec { name = "actdiag-0.4.3"; From ff4b28be4794b1fb99c4aedb5fb979ba734923c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 22 Sep 2013 22:38:23 +0200 Subject: [PATCH 9/9] asciidoc: add support for aafigure filter --- pkgs/tools/typesetting/asciidoc/default.nix | 17 ++++++++++++++++- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix index a381fb863eb..42fcfa57a91 100644 --- a/pkgs/tools/typesetting/asciidoc/default.nix +++ b/pkgs/tools/typesetting/asciidoc/default.nix @@ -5,13 +5,15 @@ , enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null , enableQrcodeFilter ? false, qrencode ? null , enableMatplotlibFilter ? false, matplotlib ? null, numpy ? null +, enableAafigureFilter ? false, aafigure ? null, recursivePthLoader ? null }: -assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter) -> unzip != null; +assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter || enableAafigureFilter) -> unzip != null; assert enableDitaaFilter -> jre != null; assert enableMscgenFilter -> mscgen != null; assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; assert enableMatplotlibFilter -> matplotlib != null && numpy != null; +assert enableAafigureFilter -> aafigure != null && recursivePthLoader != null; let ditaaFilterSrc = fetchurl { @@ -42,6 +44,11 @@ let sha256 = "0yfhkm2dr8gnp0fcg25x89hwiymkri2m5cyqzmzragzwj0hbmcf1"; }; + aafigureFilterSrc = fetchurl { + url = "https://asciidoc-aafigure-filter.googlecode.com/files/aafigure-filter-1.1.zip"; + sha256 = "1hq2s30dvmv5dqvj0xm1qwdwafhgm9w1iyr0lr0c40cyk8h00j8j"; + }; + in stdenv.mkDerivation rec { @@ -91,6 +98,14 @@ stdenv.mkDerivation rec { numpy_path="$(toPythonPath ${numpy})" sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \ "$out/etc/asciidoc/filters/mpl/mplw.py" + '' + optionalString enableAafigureFilter '' + echo "Extracting aafigure filter" + unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}" + # Add aafigure to sys.path (and it needs recursive-pth-loader) + pth_loader_path="$(toPythonPath ${recursivePthLoader})" + aafigure_path="$(toPythonPath ${aafigure})" + sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \ + "$out/etc/asciidoc/filters/aafigure/aafig2img.py" '' + '' for n in $(find "$out" . -name \*.py); do sed -i -e "s,^#![[:space:]]*/usr/bin/env python,#!${python}/bin/python,g" "$n" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e4f2488f46..77d1f2bceef 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -563,7 +563,7 @@ let mcelog = callPackage ../os-specific/linux/mcelog { }; asciidoc = callPackage ../tools/typesetting/asciidoc { - inherit (pythonPackages) matplotlib numpy; + inherit (pythonPackages) matplotlib numpy aafigure recursivePthLoader; }; autossh = callPackage ../tools/networking/autossh { };