media-libs/libopenshot
Video editing library used by OpenShot Video Editor
ChangeLog
commit f3347026e71a43967faf99cdf735eedbebaf7b58
Author: lucascouts <lucascs@protonmail.com>
Date: Tue Sep 1 12:24:18 2026 -0300
add(net-libs/cppzmq-4.11.0, media-libs/{libopenshot-audio-1.0.0, libopenshot-1.0.0}, media-video/openshot-4.0.0), mod(.autoupdate/packages.toml)
Reintroduce the OpenShot stack, which ::gentoo last-rited on 2024-03-26 and
removed on 2024-05-08 (bug #909996). The two reasons given there were a
deprecated distutils-r1 API and a dev-qt/qtwebengine:5 dependency; the 4.x
series resolves both. Verified against the v4.0.0 tarball: no occurrence of
WebEngine under src/ and no .html file anywhere in the tree -- the timeline,
previously rendered in QtWebEngine, is now native Qt.
net-libs/cppzmq is new to this overlay and to ::gentoo. It is not optional
despite upstream probing it with find_package(cppzmq QUIET): libopenshot's
ZmqLogger.h does #include <zmq.hpp>, a header net-libs/zeromq does not install.
Measured with g++: the include is a fatal error without it.
libopenshot carries two patches, each covering one end of USE=opencv:
guard-tracked-object-mask fixes an upstream bug. The 1.0.0-new
EffectBase::TrackedObjectMask() calls TrackedObjectBBox::Contains() and
::GetBox() without the "#ifdef USE_OPENCV" guard that Clip.cpp and
Timeline.cpp use. TrackedObjectBBox.cpp only enters the build through
OPENSHOT_CV_SOURCES, so with USE=-opencv libopenshot.so ships three undefined
symbols (confirmed with nm -DC) and every downstream link fails. A control
build without the patch reproduces exactly those three symbols.
opencv5-cxx20 ports to OpenCV 5, which this overlay ships. opencv is
SLOT="0/$", so 4 and 5 cannot coexist and upstream's
find_package(OpenCV 4) rejects the 5. The patch also raises
CMAKE_CXX_STANDARD to 20, required by abseil/protobuf 7.x -- note that
-DCMAKE_CXX_STANDARD=20 on the command line does not work, the set() in
CMakeLists.txt wins. Diagnosis trap worth recording: under C++17 the abseil
headers fail to parse and emit ~690 errors that read as OpenCV errors
("cv::boundingRect is not a member"). Fix the standard first.
dev-python/pyqt6[scxml] is load-bearing and not obvious: openshot's qt_api.py
aborts the launch with "PyQt6 QtStateMachine module not available" without it,
and scxml is not default-on. The resolver independently demands
>=dev-python/pyqt6-6.11.0-r1 scxml.
Two build-breaking defects found only by building, both invisible to pkgcheck
and emerge -pv: openshot-qt ships an installer/__init__.py at the top of $
that shadows dev-python/installer and kills gpep517 install-wheel, and its
setup.py runs update-mime-database and update-desktop-database against the live
prefix whenever euid is 0 (it only self-disarms on FAKEROOTKEY, which Portage
never sets). Both are handled in src_prepare behind grep/die guards so a
version bump cannot silently turn them into no-ops.
libopenshot-audio drops a dead JuceLibraryCode oboe CMakeLists.txt: it is never
add_subdirectory()'d, but cmake.eclass scans every CMakeLists.txt under $,
finds its cmake_minimum_required(VERSION 3.4.1) and pushes
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 onto the whole build.
Verified by real builds on this host (GCC 16.2, CMake 4.3.4, Qt 6.11.2,
FFmpeg 8.1.2, OpenCV 5.0.0, Python 3.14, SWIG 4.4.1):
cppzmq build + 107/107 tests
libopenshot-audio ebuild install, SONAME 10, NEEDED = libasound + libz
libopenshot 106/106 with USE=-opencv, 138/138 with USE=opencv
openshot build through src_install, 7260-file image
runtime openshot-qt 4.0.0 starts against the patched library
under QT_QPA_PLATFORM=offscreen with no traceback
Nothing was merged into the live system: this host has no sudo, so USE=doc and
USE=test on libopenshot remain unexecuted.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: lucascouts <lucascs@protonmail.com>
Date: Tue Sep 1 12:24:18 2026 -0300
add(net-libs/cppzmq-4.11.0, media-libs/{libopenshot-audio-1.0.0, libopenshot-1.0.0}, media-video/openshot-4.0.0), mod(.autoupdate/packages.toml)
Reintroduce the OpenShot stack, which ::gentoo last-rited on 2024-03-26 and
removed on 2024-05-08 (bug #909996). The two reasons given there were a
deprecated distutils-r1 API and a dev-qt/qtwebengine:5 dependency; the 4.x
series resolves both. Verified against the v4.0.0 tarball: no occurrence of
WebEngine under src/ and no .html file anywhere in the tree -- the timeline,
previously rendered in QtWebEngine, is now native Qt.
net-libs/cppzmq is new to this overlay and to ::gentoo. It is not optional
despite upstream probing it with find_package(cppzmq QUIET): libopenshot's
ZmqLogger.h does #include <zmq.hpp>, a header net-libs/zeromq does not install.
Measured with g++: the include is a fatal error without it.
libopenshot carries two patches, each covering one end of USE=opencv:
guard-tracked-object-mask fixes an upstream bug. The 1.0.0-new
EffectBase::TrackedObjectMask() calls TrackedObjectBBox::Contains() and
::GetBox() without the "#ifdef USE_OPENCV" guard that Clip.cpp and
Timeline.cpp use. TrackedObjectBBox.cpp only enters the build through
OPENSHOT_CV_SOURCES, so with USE=-opencv libopenshot.so ships three undefined
symbols (confirmed with nm -DC) and every downstream link fails. A control
build without the patch reproduces exactly those three symbols.
opencv5-cxx20 ports to OpenCV 5, which this overlay ships. opencv is
SLOT="0/$", so 4 and 5 cannot coexist and upstream's
find_package(OpenCV 4) rejects the 5. The patch also raises
CMAKE_CXX_STANDARD to 20, required by abseil/protobuf 7.x -- note that
-DCMAKE_CXX_STANDARD=20 on the command line does not work, the set() in
CMakeLists.txt wins. Diagnosis trap worth recording: under C++17 the abseil
headers fail to parse and emit ~690 errors that read as OpenCV errors
("cv::boundingRect is not a member"). Fix the standard first.
dev-python/pyqt6[scxml] is load-bearing and not obvious: openshot's qt_api.py
aborts the launch with "PyQt6 QtStateMachine module not available" without it,
and scxml is not default-on. The resolver independently demands
>=dev-python/pyqt6-6.11.0-r1 scxml.
Two build-breaking defects found only by building, both invisible to pkgcheck
and emerge -pv: openshot-qt ships an installer/__init__.py at the top of $
that shadows dev-python/installer and kills gpep517 install-wheel, and its
setup.py runs update-mime-database and update-desktop-database against the live
prefix whenever euid is 0 (it only self-disarms on FAKEROOTKEY, which Portage
never sets). Both are handled in src_prepare behind grep/die guards so a
version bump cannot silently turn them into no-ops.
libopenshot-audio drops a dead JuceLibraryCode oboe CMakeLists.txt: it is never
add_subdirectory()'d, but cmake.eclass scans every CMakeLists.txt under $,
finds its cmake_minimum_required(VERSION 3.4.1) and pushes
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 onto the whole build.
Verified by real builds on this host (GCC 16.2, CMake 4.3.4, Qt 6.11.2,
FFmpeg 8.1.2, OpenCV 5.0.0, Python 3.14, SWIG 4.4.1):
cppzmq build + 107/107 tests
libopenshot-audio ebuild install, SONAME 10, NEEDED = libasound + libz
libopenshot 106/106 with USE=-opencv, 138/138 with USE=opencv
openshot build through src_install, 7260-file image
runtime openshot-qt 4.0.0 starts against the patched library
under QT_QPA_PLATFORM=offscreen with no traceback
Nothing was merged into the live system: this host has no sudo, so USE=doc and
USE=test on libopenshot remain unexecuted.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


View
Download
Browse