git: fd8eef851a1d - main - graphics/py-simplejpeg: New port: Simple package for fast JPEG encoding and decoding

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 17 Sep 2024 17:29:42 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fd8eef851a1d73866993a69697dde17a6243de34

commit fd8eef851a1d73866993a69697dde17a6243de34
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-09-17 15:14:12 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-09-17 17:29:39 +0000

    graphics/py-simplejpeg: New port: Simple package for fast JPEG encoding and decoding
---
 graphics/Makefile                                 |  1 +
 graphics/py-simplejpeg/Makefile                   | 32 ++++++++++++++++++++
 graphics/py-simplejpeg/distinfo                   |  3 ++
 graphics/py-simplejpeg/files/patch-pyproject.toml | 16 ++++++++++
 graphics/py-simplejpeg/files/patch-setup.py       | 37 +++++++++++++++++++++++
 graphics/py-simplejpeg/pkg-descr                  |  2 ++
 6 files changed, 91 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index f67b23bc5d26..13b6645db286 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -991,6 +991,7 @@
     SUBDIR += py-s2
     SUBDIR += py-scikit-image
     SUBDIR += py-seqdiag
+    SUBDIR += py-simplejpeg
     SUBDIR += py-sorl-thumbnail
     SUBDIR += py-spectra
     SUBDIR += py-sqlalchemy-imageattach
diff --git a/graphics/py-simplejpeg/Makefile b/graphics/py-simplejpeg/Makefile
new file mode 100644
index 000000000000..b06da1ed1e81
--- /dev/null
+++ b/graphics/py-simplejpeg/Makefile
@@ -0,0 +1,32 @@
+PORTNAME=	simplejpeg
+DISTVERSION=	1.7.6
+CATEGORIES=	graphics python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Simple package for fast JPEG encoding and decoding
+WWW=		https://gitlab.com/jfolz/simplejpeg
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		cmake:devel/cmake-core \
+		${PYTHON_PKGNAMEPREFIX}cython3>0:lang/cython3@${PY_FLAVOR} \
+		${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/test
+
+post-extract: # force cythonization because pre-cythonized _jpeg.c fails to complile
+	@${RM} ${WRKSRC}/simplejpeg/_jpeg.c
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/simplejpeg/_jpeg${PYTHON_EXT_SUFFIX}.so
+
+.include <bsd.port.mk>
diff --git a/graphics/py-simplejpeg/distinfo b/graphics/py-simplejpeg/distinfo
new file mode 100644
index 000000000000..d31095353615
--- /dev/null
+++ b/graphics/py-simplejpeg/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1726565663
+SHA256 (simplejpeg-1.7.6.tar.gz) = 89ea4784eaa09edd11b0caded9c40326c4872ba9232ff1705d5b732492e7aca8
+SIZE (simplejpeg-1.7.6.tar.gz) = 5793293
diff --git a/graphics/py-simplejpeg/files/patch-pyproject.toml b/graphics/py-simplejpeg/files/patch-pyproject.toml
new file mode 100644
index 000000000000..eef10ae684eb
--- /dev/null
+++ b/graphics/py-simplejpeg/files/patch-pyproject.toml
@@ -0,0 +1,16 @@
+--- pyproject.toml.orig	2024-09-17 16:08:16 UTC
++++ pyproject.toml
+@@ -29,11 +29,10 @@ requires = [
+ 
+ [build-system]
+ requires = [
+-    "setuptools>=74.1.1",
++    "setuptools",
+     "wheel",
+-    "cmake>=3.6.3",
+     "cython~=3.0.0",
+-    "numpy>=2.0.0",
++    "numpy",
+ ]
+ build-backend = "setuptools.build_meta"
+ 
diff --git a/graphics/py-simplejpeg/files/patch-setup.py b/graphics/py-simplejpeg/files/patch-setup.py
new file mode 100644
index 000000000000..6b25aa003388
--- /dev/null
+++ b/graphics/py-simplejpeg/files/patch-setup.py
@@ -0,0 +1,37 @@
+--- setup.py.orig	2024-09-17 09:48:31 UTC
++++ setup.py
+@@ -8,7 +8,6 @@ import subprocess
+ import sysconfig
+ import subprocess
+ 
+-from cmake import CMAKE_BIN_DIR
+ from setuptools import setup
+ from setuptools import find_packages
+ from setuptools import Extension
+@@ -82,7 +81,7 @@ def make_type():
+ 
+ 
+ def make_type():
+-    if OS in ('linux', 'darwin'):
++    if OS in ('linux', 'darwin', 'freebsd'):
+         return 'Unix Makefiles'
+     elif OS == 'windows':
+         return 'NMake Makefiles'
+@@ -152,7 +151,7 @@ class cmake_build_ext(build_ext):
+         os.chdir(build_dir)
+         config = 'Debug' if self.debug else 'Release'
+         env = dict(os.environ, **(env or {}))
+-        cmake = pt.join(CMAKE_BIN_DIR, 'cmake')
++        cmake = 'cmake'
+         subprocess.check_call([
+             cmake,
+             '-G' + make_type(), '-Wno-dev',
+@@ -172,7 +171,7 @@ def _staticlib():
+ 
+ 
+ def _staticlib():
+-    if OS in ('linux', 'darwin'):
++    if OS in ('linux', 'darwin', 'freebsd'):
+         return 'libturbojpeg.a'
+     elif OS == 'windows':
+         return 'turbojpeg-static.lib'
diff --git a/graphics/py-simplejpeg/pkg-descr b/graphics/py-simplejpeg/pkg-descr
new file mode 100644
index 000000000000..18eb7c2afe7b
--- /dev/null
+++ b/graphics/py-simplejpeg/pkg-descr
@@ -0,0 +1,2 @@
+simplejpeg is a simple package based on recent versions of libturbojpeg for fast
+JPEG encoding and decoding.