git: 1466c6a0e00d - main - audio/py-essentia: New port: Python bindings for essentia, C++ library for audio and music analysis

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 08 Nov 2022 20:47:05 UTC
The branch main has been updated by yuri:

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

commit 1466c6a0e00d5bd7d44fcd6830318310190c7ba3
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-11-08 15:03:00 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-11-08 20:46:54 +0000

    audio/py-essentia: New port: Python bindings for essentia, C++ library for audio and music analysis
---
 audio/Makefile              |  1 +
 audio/py-essentia/Makefile  | 40 ++++++++++++++++++++++++++++++++++++++++
 audio/py-essentia/distinfo  |  3 +++
 audio/py-essentia/pkg-descr |  2 ++
 audio/py-essentia/pkg-plist | 43 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 89 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index fcc53f18435d..218b1aa88b58 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -641,6 +641,7 @@
     SUBDIR += py-audioread
     SUBDIR += py-discid
     SUBDIR += py-discogs-client
+    SUBDIR += py-essentia
     SUBDIR += py-eyed3
     SUBDIR += py-fmoo-audiotools
     SUBDIR += py-gtts
diff --git a/audio/py-essentia/Makefile b/audio/py-essentia/Makefile
new file mode 100644
index 000000000000..9bc813ad67dc
--- /dev/null
+++ b/audio/py-essentia/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	essentia
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.1_beta5-859
+DISTVERSIONSUFFIX=	-gb247091f
+CATEGORIES=	audio
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Python bindings for essentia, C++ library for audio and music analysis
+WWW=		https://essentia.upf.edu/
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/COPYING.txt
+
+BUILD_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
+LIB_DEPENDS=	libessentia.so:audio/essentia
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR}
+
+USES=		eigen:3 pkgconfig python
+USE_PYTHON=	pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	MTG
+
+do-configure:
+	@cd ${BUILD_WRKSRC} && ${SETENV} ${BUILD_ENV} ${PYTHON_CMD} waf configure --only-python
+
+do-build:
+	@cd ${BUILD_WRKSRC} && ${SETENV} ${BUILD_ENV} ${PYTHON_CMD} waf build --only-python
+
+do-install:
+	# install
+	cd ${BUILD_WRKSRC} && ${SETENV} ${BUILD_ENV} ${PYTHON_CMD} waf install --only-python --prefix ${PREFIX} --destdir ${STAGEDIR}
+	# strip
+	${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/essentia/_essentia${PYTHON_EXT_SUFFIX}.so
+
+.include <bsd.port.mk>
diff --git a/audio/py-essentia/distinfo b/audio/py-essentia/distinfo
new file mode 100644
index 000000000000..4b17dd5f1088
--- /dev/null
+++ b/audio/py-essentia/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1667811160
+SHA256 (MTG-essentia-v2.1_beta5-859-gb247091f_GH0.tar.gz) = 41428252b36bcd20288fd85bcaf981aa039c0a4a9be32b840ddfdfa68fc9b969
+SIZE (MTG-essentia-v2.1_beta5-859-gb247091f_GH0.tar.gz) = 92213394
diff --git a/audio/py-essentia/pkg-descr b/audio/py-essentia/pkg-descr
new file mode 100644
index 000000000000..06b242ab53d0
--- /dev/null
+++ b/audio/py-essentia/pkg-descr
@@ -0,0 +1,2 @@
+Essentia is an open-source library and tools for audio and music analysis,
+description and synthesis.
diff --git a/audio/py-essentia/pkg-plist b/audio/py-essentia/pkg-plist
new file mode 100644
index 000000000000..4ffd0349478e
--- /dev/null
+++ b/audio/py-essentia/pkg-plist
@@ -0,0 +1,43 @@
+%%PYTHON_SITELIBDIR%%/essentia/__init__.py
+%%PYTHON_SITELIBDIR%%/essentia/_essentia%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/essentia/algorithms.py
+%%PYTHON_SITELIBDIR%%/essentia/common.py
+%%PYTHON_SITELIBDIR%%/essentia/essentia_extractor.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/__init__.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/average_loudness.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/beats.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/chords.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/chords_dissonance_table.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/highlevel.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/lowlevel.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/onsetdetection.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/panning.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/relativeioi.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/scales.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/segmentation.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/segmentation_bic.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/segmentation_max_energy.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/segmentation_simple.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/sfx.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/squeezeInto.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/tempotap.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/thumbnail.py
+%%PYTHON_SITELIBDIR%%/essentia/extractor/tonal.py
+%%PYTHON_SITELIBDIR%%/essentia/plotting.py
+%%PYTHON_SITELIBDIR%%/essentia/pool.py
+%%PYTHON_SITELIBDIR%%/essentia/progress.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/__init__.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/batch_extractors.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/extractors/__init__.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/extractors/melspectrogram.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/extractors/music_extractor.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/io.py
+%%PYTHON_SITELIBDIR%%/essentia/pytools/spectral.py
+%%PYTHON_SITELIBDIR%%/essentia/standard.py
+%%PYTHON_SITELIBDIR%%/essentia/streaming.py
+%%PYTHON_SITELIBDIR%%/essentia/translate.py
+%%PYTHON_SITELIBDIR%%/essentia/utils.py
+%%PYTHON_SITELIBDIR%%/essentia/weka/__init__.py
+%%PYTHON_SITELIBDIR%%/essentia/weka/arff2matlab.py
+%%PYTHON_SITELIBDIR%%/essentia/weka/convert_essentia_to_weka.py
+%%PYTHON_SITELIBDIR%%/essentia/weka/wekafile.py