package/python-pymupdf: new package.
authorRaphaël Mélotte <raphael.melotte@essensium.com>
Fri, 7 Feb 2020 09:37:05 +0000 (10:37 +0100)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Wed, 26 May 2021 20:04:36 +0000 (22:04 +0200)
Python bindings for the PDF rendering library MuPDF.

Signed-off-by: Raphaël Mélotte <raphael.melotte@essensium.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Arnout:
 - propagate harfbuzz dependencies;
 - add comment to mupdf to keep versions in sync;
 - clarify license situation + lack of license file]

DEVELOPERS
package/Config.in
package/mupdf/mupdf.mk
package/python-pymupdf/Config.in [new file with mode: 0644]
package/python-pymupdf/python-pymupdf.hash [new file with mode: 0644]
package/python-pymupdf/python-pymupdf.mk [new file with mode: 0644]

index 2a7a64ce15cda9406a80a71eb1025c0a411cff5e..a0a9cebfe6ea807728e769459b47d9993b4db095 100644 (file)
@@ -2254,6 +2254,7 @@ F:        package/mupdf/
 F:     package/python-boto3/
 F:     package/python-botocore/
 F:     package/python-jmespath/
+F:     package/python-pymupdf/
 F:     package/python-s3transfer/
 
 N:     Refik Tuzakli <tuzakli.refik@gmail.com>
index c30ceb03b4d238b39438a767258d895977dcf624..e42f579494973cf536340b85b57170d5e4c60084 100644 (file)
@@ -1138,6 +1138,7 @@ menu "External python modules"
        source "package/python-pylibftdi/Config.in"
        source "package/python-pylru/Config.in"
        source "package/python-pymodbus/Config.in"
+       source "package/python-pymupdf/Config.in"
        source "package/python-pymysql/Config.in"
        source "package/python-pynacl/Config.in"
        source "package/python-pyopenssl/Config.in"
index 6058b8579273f69b9729070518d523ec74400ee5..5a905f79038b2ba46f2c5803ca7b2a0a43af330b 100644 (file)
@@ -4,6 +4,7 @@
 #
 ################################################################################
 
+# python-pymupdf's version must match exactly mupdf's version
 MUPDF_VERSION = 1.16.0
 MUPDF_SOURCE = mupdf-$(MUPDF_VERSION)-source.tar.gz
 MUPDF_SITE = https://mupdf.com/downloads/archive
diff --git a/package/python-pymupdf/Config.in b/package/python-pymupdf/Config.in
new file mode 100644 (file)
index 0000000..cd4c8cf
--- /dev/null
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_PYTHON_PYMUPDF
+       bool "python-pymupdf"
+       depends on BR2_INSTALL_LIBSTDCPP # mupdf -> harfbuzz
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4 # mupdf -> harfbuzz
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # mupdf -> harfbuzz
+       depends on BR2_PACKAGE_XORG7
+       select BR2_PACKAGE_MUPDF
+       select BR2_PACKAGE_ZLIB
+       help
+         Python bindings for the PDF rendering library MuPDF.
+
+         https://github.com/pymupdf/PyMuPDF
+
+comment "python-pymupdf needs Xorg"
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       depends on !BR2_PACKAGE_XORG7
+
+comment "python-pymupdf needs a toolchain w/ C++, gcc >= 4.8"
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       depends on !BR2_INSTALL_LIBSTDCPP || \
+               !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/python-pymupdf/python-pymupdf.hash b/package/python-pymupdf/python-pymupdf.hash
new file mode 100644 (file)
index 0000000..6729c6b
--- /dev/null
@@ -0,0 +1,3 @@
+# md5, sha256 from https://pypi.org/pypi/pymupdf/json
+md5    0e924bbb7364ba63df65d33fee9656f0  PyMuPDF-1.16.0.tar.gz
+sha256 1a6cc5b8b0fb9aa16bfa453fdfed445398f00d2556e78d90ba54cdce8d900857  python-pymupdf-1.16.0.tar.gz
diff --git a/package/python-pymupdf/python-pymupdf.mk b/package/python-pymupdf/python-pymupdf.mk
new file mode 100644 (file)
index 0000000..9f8d174
--- /dev/null
@@ -0,0 +1,26 @@
+################################################################################
+#
+# python-pymupdf
+#
+################################################################################
+
+# python-pymupdf's version must match exactly mupdf's version
+PYTHON_PYMUPDF_VERSION = 1.16.0
+PYTHON_PYMUPDF_SOURCE = PyMuPDF-$(PYTHON_PYMUPDF_VERSION).tar.gz
+PYTHON_PYMUPDF_SITE = https://files.pythonhosted.org/packages/d2/da/692102b6e6868a57d1dc7f98d07413116a02493b3b49a798dcd6f676d368
+PYTHON_PYMUPDF_SETUP_TYPE = distutils
+PYTHON_PYMUPDF_LICENSE = GPL-3.0, AGPL-3.0+ (code generated from mupdf)
+# No license file included in pip, but it's present on github
+PYTHON_PYMUPDF_DEPENDENCIES = mupdf zlib
+
+PYTHON_PYMUPDF_ENV = CFLAGS="-I$(STAGING_DIR)/usr/include/mupdf"
+
+# We need to remove the original paths as we provide them in the CFLAGS:
+define PYTHON_PYMUPDF_REMOVE_PATHS
+       sed -i "s:\/usr\/include\/mupdf::g" $(@D)/setup.py
+       sed -i "s:\/usr\/local\/include\/mupdf::g" $(@D)/setup.py
+endef
+
+PYTHON_PYMUPDF_POST_PATCH_HOOKS = PYTHON_PYMUPDF_REMOVE_PATHS
+
+$(eval $(python-package))