Bug 282802 - [NEW PORT] graphics/natron: Video compositing software
Summary: [NEW PORT] graphics/natron: Video compositing software
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Vladimir Druzenko
URL: https://github.com/NatronGitHub/Natro...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-16 22:22 UTC by Martin Filla
Modified: 2024-12-22 18:10 UTC (History)
1 user (show)

See Also:


Attachments
0001-natron-new-port.patch (7.48 KB, patch)
2024-11-16 22:22 UTC, Martin Filla
no flags Details | Diff
natron.tar.xz (2.54 KB, application/x-xz)
2024-12-20 08:52 UTC, Martin Filla
freebsd: maintainer-approval+
Details
natron.tar.xz (2.56 KB, application/x-xz)
2024-12-21 20:43 UTC, Martin Filla
no flags Details
natron.tar.xz (2.53 KB, application/x-xz)
2024-12-21 22:31 UTC, Martin Filla
no flags Details
natron.tar.xz (2.38 KB, application/x-xz)
2024-12-22 08:55 UTC, Martin Filla
no flags Details
v1 (2.45 KB, patch)
2024-12-22 17:21 UTC, Vladimir Druzenko
vvd: maintainer-approval?
Details | Diff
natron.tar.xz (2.40 KB, application/x-xz)
2024-12-22 17:57 UTC, Martin Filla
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Filla 2024-11-16 22:22:51 UTC
Created attachment 255224 [details]
0001-natron-new-port.patch

Hi,
this port natron with qt5 support. I tested natron in poudriere.

Updating database digests format: .......... done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	natron: 2.5.1.p2

Number of packages to be removed: 1

The operation will free 24 MiB.
[141amd64-default] [1/1] Deinstalling natron-2.5.1.p2...
[141amd64-default] [1/1] Deleting files for natron-2.5.1.p2: .......... done
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
===========================================================================
=>> Checking for extra files and directories
[00:12:36] Installing from package
[141amd64-default] Installing natron-2.5.1.p2...
[141amd64-default] Extracting natron-2.5.1.p2: .......... done
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
[00:12:36] Cleaning up
===>  Cleaning for natron-2.5.1.p2
[00:12:36] Deinstalling package
Updating database digests format: . done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	natron: 2.5.1.p2

Number of packages to be removed: 1

The operation will free 24 MiB.
[141amd64-default] [1/1] Deinstalling natron-2.5.1.p2...
[141amd64-default] [1/1] Deleting files for natron-2.5.1.p2: .......... done
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
build of graphics/natron | natron-2.5.1.p2 ended at Sat Nov 16 23:07:24 CET 2024
build time: 00:12:15
Comment 1 Martin Filla 2024-12-20 08:52:10 UTC
Created attachment 255972 [details]
natron.tar.xz
Comment 2 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 12:39:35 UTC
=======================<phase: stage          >============================
===== env: DEVELOPER_MODE=yes STRICT_DEPENDS=yes USER=nobody UID=65534 GID=65534
===>  Staging for natron-2.5.1.p2
===>   natron-2.5.1.p2 depends on file: /usr/local/OFX/Plugins/Shadertoy.ofx.bundle/Contents/Info.plist - found
===>   natron-2.5.1.p2 depends on file: /usr/local/OFX/Plugins/Arena.ofx.bundle/Contents/Info.plist - found
===>   natron-2.5.1.p2 depends on executable: update-desktop-database - found
===>   natron-2.5.1.p2 depends on file: /usr/local/bin/python3.11 - found
===>   natron-2.5.1.p2 depends on executable: update-mime-database - found
===>   natron-2.5.1.p2 depends on file: /usr/local/libdata/pkgconfig/ice.pc - found
===>   natron-2.5.1.p2 depends on file: /usr/local/libdata/pkgconfig/pixman-1.pc - found
===>   natron-2.5.1.p2 depends on file: /usr/local/libdata/pkgconfig/sm.pc - found
===>   natron-2.5.1.p2 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   natron-2.5.1.p2 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===>   Generating temporary packing list
[  0% 1/1] cd /wrkdirs/usr/ports/graphics/natron/work/.build && /usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-- Install configuration: "Release"
-- Installing: /usr/local/bin/natron-python
CMake Error at PythonBin/cmake_install.cmake:47 (file):
  file INSTALL cannot copy file
  "/wrkdirs/usr/ports/graphics/natron/work/.build/PythonBin/natron-python" to
  "/usr/local/bin/natron-python": Permission denied.
Call Stack (most recent call first):
  cmake_install.cmake:57 (include)


FAILED: CMakeFiles/install/strip.util
cd /wrkdirs/usr/ports/graphics/natron/work/.build && /usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make: stopped in /usr/ports/graphics/natron
Comment 3 Martin Filla 2024-12-21 12:42:03 UTC
(In reply to Vladimir Druzenko from comment #2)
Hi Vladimir.
I tested natron in poudriere on 14.2 today. I don't know why is permission denied.
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 13:38:10 UTC
This is copy natron-python directly to ${PREFIX} or ${LOCALBASE} instead of ${STAGEDIR}.
Maybe you have options in poudriere.conf which allow modify ${LOCALBASE}?
Comment 5 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 13:45:17 UTC
Also there are a lot of warnings and errors from portclippy and portlint:
diff -ur graphics/natron.bak/Makefile graphics/natron/Makefile
--- graphics/natron.bak/Makefile
+++ graphics/natron/Makefile
@@ -4,16 +4,16 @@
 CATEGORIES=    graphics

 MAINTAINER=    freebsd@sysctl.cz
-COMMENT=       compositing software Video
+COMMENT=       Compositing software Video
 WWW=           http://www.natron.fr

 LICENSE=       GPLv2

-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyside2>5.14.0:devel/pyside2@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyside2>5.14.0:devel/pyside2@${PY_FLAVOR} \
+               boost-libs>0:devel/boost-libs \
+               bash:shells/bash \
+               gsed:textproc/gsed

-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
-
 LIB_DEPENDS=   libavformat.so:multimedia/ffmpeg \
                libboost_system.so:devel/boost-libs \
                libboost_serialization.so:devel/boost-libs \
@@ -24,12 +24,12 @@
                libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2 \
                libshiboken2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/shiboken2@${PY_FLAVOR}

-BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
-               bash:shells/bash \
-               gsed:textproc/gsed
+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

 USES=          cmake compiler:c++17-lang desktop-file-utils gettext-runtime \
-               pkgconfig localbase python:3.11 qt:5 shared-mime-info shebangfix
+               gl pkgconfig localbase python:3.11 qmake qt:5 shared-mime-info \
+               shebangfix xorg

 USE_GITHUB=    yes
 GH_ACCOUNT=    NatronGitHub
@@ -41,22 +41,25 @@
                NatronGitHub:openfx:0759758d0fb57932b5c4698fff9ef6b4a3132309:openfx/libs/OpenFX \
                NatronGitHub:SequenceParsing:3c93fcc488632b0bdfeee3181586809932357598:SequenceParsing/libs/SequenceParsing \
                NatronGitHub:tinydir:3aae922:tinydir/libs/SequenceParsing/tinydir
-
-USE_QT=                concurrent core gui network opengl widgets buildtools:build qmake:build
-USE_XORG=      pixman sm ice xext x11
+
 USE_GL=                gl
+USE_QT=                concurrent core gui network opengl widgets buildtools:build qmake:build
+USE_XORG=      ice pixman sm x11 xext

-QMAKE_ARGS+=   PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR} PYTHON_LIB=${PYTHON_LIB} \
+SHEBANG_FILES= OpenColorIO-Configs/nuke-default/make.py
+
+QMAKE_ARGS=    PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR} PYTHON_LIB=${PYTHON_LIB} \
                PYTHON_LIBDIR=${PYTHON_LIBDIR} \
                PYTHON_PACKAGES_PATH="${PYTHON_SITELIBDIR}" \
                PYTHON_SHIBOKEN2_INCLUDE="${PYTHONBASE}/include/shiboken2" \
                PYTHON_VER=${PYTHON_VER}

-SHEBANG_FILES=         OpenColorIO-Configs/nuke-default/make.py
-BINARY_ALIAS=          python-config=python${PYTHON_VER}-config \
-                       python=python${PYTHON_VER} \
-                       sed=gsed
-PYTHON_MAKE_ARGS=      PYTHON=0
+BINARY_ALIAS=  python-config=python${PYTHON_VER}-config \
+               python=python${PYTHON_VER} \
+               sed=gsed
+
+#PYTHON_MAKE_ARGS=     PYTHON=0

 post-patch:
        @${REINPLACE_CMD} -e 's|/usr/OFX/Plugins|${PREFIX}/OFX/Plugins|g' \
@@ -69,4 +71,4 @@
                ${WRKSRC}/Engine/Settings.cpp \
                ${WRKSRC}/Natron.spec

-.include <bsd.port.mk>
\ No newline at end of file
+.include <bsd.port.mk>
diff -ur graphics/natron.bak/pkg-descr graphics/natron/pkg-descr
--- graphics/natron.bak/pkg-descr
+++ graphics/natron/pkg-descr
@@ -1,2 +1,2 @@
 Node-graph based video compositing software. Similar in functionalities to Adobe
-After Effects and Foundry Nuke.
\ No newline at end of file
+After Effects and Foundry Nuke.
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 19:19:33 UTC
Why do you added lines:
QMAKE_ARGS+=   PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR} PYTHON_LIB=${PYTHON_LIB} \
               PYTHON_LIBDIR=${PYTHON_LIBDIR} \
               PYTHON_PACKAGES_PATH="${PYTHON_SITELIBDIR}" \
               PYTHON_SHIBOKEN2_INCLUDE="${PYTHONBASE}/include/shiboken2" \
               PYTHON_VER=${PYTHON_VER}
PYTHON_MAKE_ARGS=     PYTHON=0
?
Comment 7 Martin Filla 2024-12-21 19:29:24 UTC
(In reply to Vladimir Druzenko from comment #6)
I will remove these lines because they are for qmake but we are building cmake now.
Comment 8 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 19:48:17 UTC
Don't need:
USES=gettext-runtime
USE_GL=gl
USE_QT=opengl

Why USES=python:3.11? Is it support python3.11 only? Not 3.10, 3.12 and etc?
Comment 9 Martin Filla 2024-12-21 20:06:15 UTC
(In reply to Vladimir Druzenko from comment #8)
Can I add python:3.11+?
Comment 10 Martin Filla 2024-12-21 20:43:00 UTC
Created attachment 256023 [details]
natron.tar.xz

I added new version
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 20:50:11 UTC
(In reply to Martin Filla from comment #9)
https://cgit.freebsd.org/ports/tree/Mk/Uses/python.mk#n17

Also:
1.
- libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2 \
+ libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2@${PY_FLAVOR} \

2. If port have:
LIB_DEPENDS=libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2@${PY_FLAVOR}
then it not need:
BUILD_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}pyside2>5.14.0:devel/pyside2@${PY_FLAVOR}

3. Why in pkg-plist @owner natronProjectIcon_linux.png?

4. Not linked with: LIB_DEPENDS=libavformat.so:multimedia/ffmpeg.
Maybe you mean: RUN_DEPENDS=ffmpeg:multimedia/ffmpeg ?
Comment 12 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 20:51:47 UTC
Maybe add:
USE_PYTHON=     flavors
???
Comment 13 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 21:27:09 UTC
(In reply to Vladimir Druzenko from comment #12)
And:
PKGNAMEPREFIX=  ${PYTHON_PKGNAMEPREFIX}

Where did you get restriction to python version 3.11+?
Comment 14 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 21:35:16 UTC
Why you added localbase? Not need.

Is shared-mime-info necessary?
Comment 15 Martin Filla 2024-12-21 21:56:55 UTC
(In reply to Vladimir Druzenko from comment #13)
I believe the PySide library (py311-pyside) is specifically designed to work with Python 3.11. The name py311 in the port suggests that it should be compatible with Python 3.11. If there are issues, it might be worth verifying if the correct Python version is being used during the build or runtime.
Comment 16 Martin Filla 2024-12-21 22:00:48 UTC
(In reply to Vladimir Druzenko from comment #14)
I remove it.
Comment 17 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 22:31:38 UTC
(In reply to Martin Filla from comment #15)
Do you know how python flavors work?
If you add DEFAULT_VERSIONS+=python=3.X in /usr/local/etc/poudriere.d/make.conf, then all python ports get names "py3X-*" instead of "py311-*".
Comment 18 Martin Filla 2024-12-21 22:31:39 UTC
Created attachment 256029 [details]
natron.tar.xz

I added new version
Comment 19 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 22:43:28 UTC
Why did you added do-install?
Comment 20 Martin Filla 2024-12-21 22:55:27 UTC
(In reply to Vladimir Druzenko from comment #19)
you wrote me a mistake in comment #2. For the right install files, I need to define paths with do-install. or it is a mistake?
Comment 21 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-21 23:48:41 UTC
(In reply to Martin Filla from comment #20)
QMAKE_ARGS require USES=qmake, but after add USES=qmake I got error in comment #2.
After remove QMAKE_ARGS and USES=qmake build fine.
Comment 22 Martin Filla 2024-12-22 08:55:46 UTC
Created attachment 256037 [details]
natron.tar.xz
Comment 23 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-22 17:21:28 UTC
Created attachment 256045 [details]
v1

Check my Makefile.
Comment 24 Martin Filla 2024-12-22 17:57:19 UTC
Created attachment 256046 [details]
natron.tar.xz
Comment 25 commit-hook freebsd_committer freebsd_triage 2024-12-22 18:09:11 UTC
A commit in branch main references this bug:

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 (new)                     | 64 ++++++++++++++++++++++
 graphics/natron/distinfo (new)                     | 17 ++++++
 .../natron/files/patch-Engine_CMakeLists.txt (new) | 22 ++++++++
 graphics/natron/pkg-descr (new)                    |  2 +
 graphics/natron/pkg-plist (new)                    |  8 +++
 6 files changed, 114 insertions(+)
Comment 26 Vladimir Druzenko freebsd_committer freebsd_triage 2024-12-22 18:10:10 UTC
Thanks.