git: 07270c2f7156 - main - graphics/natron: New port: Video compositing software

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Sun, 22 Dec 2024 18:08:22 UTC
The branch main has been updated by vvd:

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

commit 07270c2f715607adf7fec5b4a2bd0625a16586a3
Author:     Martin Filla <freebsd@sysctl.cz>
AuthorDate: 2024-12-22 18:05:27 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2024-12-22 18:05:27 +0000

    graphics/natron: New port: Video compositing software
    
    Natron is a free, open-source (GPLv2 license) video compositor, similar
    in functionality to Adobe After Effects, Foundry's Nuke, or Blackmagic
    Fusion.
    
    https://github.com/NatronGitHub/Natron
    https://www.natron.fr
    
    PR:     282802
---
 graphics/Makefile                                 |  1 +
 graphics/natron/Makefile                          | 64 +++++++++++++++++++++++
 graphics/natron/distinfo                          | 17 ++++++
 graphics/natron/files/patch-Engine_CMakeLists.txt | 22 ++++++++
 graphics/natron/pkg-descr                         |  2 +
 graphics/natron/pkg-plist                         |  8 +++
 6 files changed, 114 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 46dc71554900..dee02183a60b 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -611,6 +611,7 @@
     SUBDIR += mypaint-brushes2
     SUBDIR += nanort
     SUBDIR += nanosvg
+    SUBDIR += natron
     SUBDIR += netpbm
     SUBDIR += nip2
     SUBDIR += noaa-apt
diff --git a/graphics/natron/Makefile b/graphics/natron/Makefile
new file mode 100644
index 000000000000..9ded1921888c
--- /dev/null
+++ b/graphics/natron/Makefile
@@ -0,0 +1,64 @@
+PORTNAME=	natron
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.5.1-pre2
+CATEGORIES=	graphics
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	freebsd@sysctl.cz
+COMMENT=	Compositing software Video
+WWW=		https://www.natron.fr/
+
+LICENSE=	GPLv2
+
+BUILD_DEPENDS=	bash:shells/bash \
+		gsed:textproc/gsed
+
+LIB_DEPENDS=	libboost_serialization.so:devel/boost-libs \
+		libboost_system.so:devel/boost-libs \
+		libcairo.so:graphics/cairo \
+		libexpat.so:textproc/expat2 \
+		libfontconfig.so:x11-fonts/fontconfig \
+		libfreetype.so:print/freetype2 \
+		libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2@${PY_FLAVOR} \
+		libshiboken2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/shiboken2@${PY_FLAVOR}
+
+RUN_DEPENDS=	${LOCALBASE}/OFX/Plugins/Shadertoy.ofx.bundle/Contents/Info.plist:graphics/openfx-misc \
+		${LOCALBASE}/OFX/Plugins/Arena.ofx.bundle/Contents/Info.plist:graphics/openfx-arena \
+		ffmpeg>0:multimedia/ffmpeg
+
+USES=		cmake compiler:c++17-lang desktop-file-utils pkgconfig python \
+		qt:5 shared-mime-info shebangfix xorg
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	NatronGitHub
+GH_PROJECT=	Natron
+GH_TUPLE=	NatronGitHub:google-breakpad:9474c3f7f9939391f281d46c42bfe20cc0f0abd9:google_breakpad/libs/google-breakpad \
+		NatronGitHub:google-mock:17945db42c0b42496b2f3c6530307979f2e2a5ce:google_mock/Tests/google-mock \
+		NatronGitHub:google-test:50d6fc317c843a2e40dbf08c2efd3f068801ae6d:google_test/Tests/google-test \
+		NatronGitHub:OpenColorIO-Configs:557b981:OpenColorIO_Configs/OpenColorIO-Configs \
+		NatronGitHub:openfx:0759758d0fb57932b5c4698fff9ef6b4a3132309:openfx/libs/OpenFX \
+		NatronGitHub:SequenceParsing:3c93fcc488632b0bdfeee3181586809932357598:SequenceParsing/libs/SequenceParsing \
+		NatronGitHub:tinydir:3aae922:tinydir/libs/SequenceParsing/tinydir
+
+USE_PYTHON=	flavors
+USE_QT=		concurrent core gui network widgets buildtools:build qmake:build
+USE_XORG=	ice pixman sm x11 xext
+
+SHEBANG_FILES=	OpenColorIO-Configs/nuke-default/make.py
+
+BINARY_ALIAS=	python-config=python${PYTHON_VER}-config \
+		python=python${PYTHON_VER} \
+		sed=gsed
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|/usr/OFX/Plugins|${PREFIX}/OFX/Plugins|g' \
+		${WRKSRC}/libs/OpenFX/Examples/Makefile.master \
+		${WRKSRC}/libs/OpenFX/Support/Plugins/Makefile.master \
+		${WRKSRC}/libs/OpenFX/HostSupport/src/ofxhPluginCache.cpp \
+		${WRKSRC}/Engine/Settings.cpp
+	@${REINPLACE_CMD} -e 's|/usr/share/|${PREFIX}/share/|g' \
+		${WRKSRC}/Engine/AppManager.cpp \
+		${WRKSRC}/Engine/Settings.cpp \
+		${WRKSRC}/Natron.spec
+
+.include <bsd.port.mk>
diff --git a/graphics/natron/distinfo b/graphics/natron/distinfo
new file mode 100644
index 000000000000..a6bfd831759c
--- /dev/null
+++ b/graphics/natron/distinfo
@@ -0,0 +1,17 @@
+TIMESTAMP = 1731608910
+SHA256 (NatronGitHub-Natron-v2.5.1-pre2_GH0.tar.gz) = ef17cbd89fd6c8c89caec9a9681763a13ab1e4ccf40ed34e31bf0ed4d7d6a916
+SIZE (NatronGitHub-Natron-v2.5.1-pre2_GH0.tar.gz) = 31486167
+SHA256 (NatronGitHub-google-breakpad-9474c3f7f9939391f281d46c42bfe20cc0f0abd9_GH0.tar.gz) = d2f22ce15aec2efd085e2ea1317ca2a5773e7faaa0aff297b0f2f4839a439f2d
+SIZE (NatronGitHub-google-breakpad-9474c3f7f9939391f281d46c42bfe20cc0f0abd9_GH0.tar.gz) = 4891139
+SHA256 (NatronGitHub-google-mock-17945db42c0b42496b2f3c6530307979f2e2a5ce_GH0.tar.gz) = 25c9f97ca781e8e50e653c1d4638e90718a8aaa5341423b3ef889c5e4c59ee03
+SIZE (NatronGitHub-google-mock-17945db42c0b42496b2f3c6530307979f2e2a5ce_GH0.tar.gz) = 299646
+SHA256 (NatronGitHub-google-test-50d6fc317c843a2e40dbf08c2efd3f068801ae6d_GH0.tar.gz) = ed7ae95f3f6b810dd74202e78d40cf0f076ebd6f1a76da71f3c8bdb94fb07c03
+SIZE (NatronGitHub-google-test-50d6fc317c843a2e40dbf08c2efd3f068801ae6d_GH0.tar.gz) = 474810
+SHA256 (NatronGitHub-OpenColorIO-Configs-557b981_GH0.tar.gz) = 5fc2456c5be991f5508715b28ef9b2ee05aacef83a68ce8f9722129ed4291ccc
+SIZE (NatronGitHub-OpenColorIO-Configs-557b981_GH0.tar.gz) = 292560783
+SHA256 (NatronGitHub-openfx-0759758d0fb57932b5c4698fff9ef6b4a3132309_GH0.tar.gz) = 8b9935fac81be1ceb2d632135748c9a1b22a37b873c18022e09a637a3a00918b
+SIZE (NatronGitHub-openfx-0759758d0fb57932b5c4698fff9ef6b4a3132309_GH0.tar.gz) = 10707420
+SHA256 (NatronGitHub-SequenceParsing-3c93fcc488632b0bdfeee3181586809932357598_GH0.tar.gz) = b3a2db99901e3edaadb301c91f845db832559ad3c003a13d45e74b6816d2f67f
+SIZE (NatronGitHub-SequenceParsing-3c93fcc488632b0bdfeee3181586809932357598_GH0.tar.gz) = 16064
+SHA256 (NatronGitHub-tinydir-3aae922_GH0.tar.gz) = eb816fff00d9713742a1f1367432fee0ea73ccb0f458c90035543e923e8e55d1
+SIZE (NatronGitHub-tinydir-3aae922_GH0.tar.gz) = 24552
diff --git a/graphics/natron/files/patch-Engine_CMakeLists.txt b/graphics/natron/files/patch-Engine_CMakeLists.txt
new file mode 100644
index 000000000000..0057dc5b4a1b
--- /dev/null
+++ b/graphics/natron/files/patch-Engine_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- Engine/CMakeLists.txt.orig	2024-09-13 07:39:11 UTC
++++ Engine/CMakeLists.txt
+@@ -74,12 +74,17 @@ add_library(NatronEngine STATIC ${NatronEngine_HEADERS
+     ../libs/SequenceParsing/SequenceParsing.cpp
+ )
+ add_library(NatronEngine STATIC ${NatronEngine_HEADERS} ${NatronEngine_SOURCES})
++
++find_package(
++  Boost 1.85 REQUIRED
++  COMPONENTS serialization system)
++
++
+ target_link_libraries(NatronEngine
+     PUBLIC
+         HostSupport
+-        Boost::headers
+-        Boost::serialization
+         PkgConfig::Cairo
++        ${Boost_LIBRARIES}
+     PRIVATE
+         Shiboken2::libshiboken
+         PySide2::pyside2
diff --git a/graphics/natron/pkg-descr b/graphics/natron/pkg-descr
new file mode 100644
index 000000000000..d01a57abb47b
--- /dev/null
+++ b/graphics/natron/pkg-descr
@@ -0,0 +1,2 @@
+Node-graph based video compositing software. Similar in functionalities to Adobe
+After Effects and Foundry Nuke.
diff --git a/graphics/natron/pkg-plist b/graphics/natron/pkg-plist
new file mode 100644
index 000000000000..0573f4bfbd43
--- /dev/null
+++ b/graphics/natron/pkg-plist
@@ -0,0 +1,8 @@
+bin/Natron
+bin/NatronRenderer
+bin/natron-python
+share/applications/fr.natron.Natron.desktop
+share/metainfo/fr.natron.Natron.appdata.xml
+share/mime/x-natron.xml
+share/pixmaps/natronIcon256_linux.png
+share/pixmaps/natronProjectIcon_linux.png