commit:     4a39c33fef9b18d41f8f03a327bb2e95243ed684
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Sun Nov  9 05:41:14 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Nov 10 22:24:47 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a39c33f

media-video/avidemux: add 2.8.1_p20251019

* remove debug, w/o effect
* deps/useflags :
   opengl (add glu/libglvnd)
   sdl, update to libsdl2
   xv (add libXext/libXv)
   these last three are only available w/ gui/Qt enabled
   align nvenc, vaapi and vdpau with avidemux-core, options are forced by core
   in /usr/include/avidemux/2.8/ADM_coreConfig.h
   force X support w/ a patch, wayland is not ready
   avoid automagic for SDL w/ a patch
* configure reworked to set options only for the right target (Cli/Qt)

Thanks to MeisterP/Poncho:
* add snapshot, switch to qt6
* prevent CMake < 3.10 warnings
* drop gcc workaround

Closes: https://bugs.gentoo.org/678082
Closes: https://bugs.gentoo.org/918604
Closes: https://bugs.gentoo.org/955254
Closes: https://bugs.gentoo.org/957606
Co-authored-by: Poncho <poncho <AT> spahan.ch>
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/44572
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-video/avidemux/Manifest                      |   2 +
 .../avidemux/avidemux-2.8.1_p20251019.ebuild       | 148 +++++++++++++++++++++
 .../files/avidemux-2.8.1_p20251019-cmake.patch     |  17 +++
 .../avidemux-2.8.1_p20251019-optional_sdl2.patch   |  12 ++
 .../files/avidemux-2.8.1_p20251019-qtengine.patch  |  71 ++++++++++
 5 files changed, 250 insertions(+)

diff --git a/media-video/avidemux/Manifest b/media-video/avidemux/Manifest
index f5f42f32459c..ff56c3c39056 100644
--- a/media-video/avidemux/Manifest
+++ b/media-video/avidemux/Manifest
@@ -1,2 +1,4 @@
 DIST avidemux-2.8.1.tar.gz 23207741 BLAKE2B 
766ae9b159d2e48a3d14bdfccf9c665b95ed056831b515d53837bf2bae20baf9b01d15d551b62fb96f3c0cf50b0138448a133bc62e6202af744de558e0fbfe4f
 SHA512 
e7105e555e04dd6768336bdb246037e91045de2e1f572ae362d985424def65499c7f25d92d376ea98af09b436d89e9eb4a5424e93b11df14f2d67ac35661a8a3
+DIST avidemux-2.8.1_p20251019.tar.gz 25080573 BLAKE2B 
a9c25bf6549ceeefc4259a5483de74edc87e30e6c6c0cbc739df254e7e1b5a07b5cb364073c642a2a64d384725ce84a88c5e4178a3d06007e4b697460223ac02
 SHA512 
ef28dc79b6fd2ab0492132292f066c2b0985364bbd9b3555d9813b0919ff63ba0b05b2c15419037fa67345831068bb2a85a1778b10cff5a40407a64aed114878
 DIST avidemux-i18n-2.8.1.tar.gz 2765272 BLAKE2B 
ecca8a3d6f278e02e37059c1c1dce4d8164661548f29d5e51273d76e46434bc349d93701209fd6a009364244540d75cae09ce456e968d1761ca5540acc4ba678
 SHA512 
aa93add0d72170abf009e5bd86eeb5198907ee8961e366ad396d85315b9908f8f94bf920ba2a0cf9c351dd9c50f7ef883480d88e7475f48d085648bfbfa1f4d4
+DIST avidemux-i18n-2.8.1_p20251019.tar.gz 2997536 BLAKE2B 
445cc5b531397e6852f466c049fb406a9d22e87dd7bda577c15fd361f0a66f7712da5646d70eb88f41ce2d3d2005a2402c71ce9146c390e38a845a573c7dfb6f
 SHA512 
f9a78ee9089fe69fe378b3e1c673ad82415511ff6a0f3f5309efc830595e843cc7863312a01c4f8fedee05d5faf420fce4f5030e13011622bdfd0b7b0ee7264c

diff --git a/media-video/avidemux/avidemux-2.8.1_p20251019.ebuild 
b/media-video/avidemux/avidemux-2.8.1_p20251019.ebuild
new file mode 100644
index 000000000000..aed0e8fefd08
--- /dev/null
+++ b/media-video/avidemux/avidemux-2.8.1_p20251019.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR="emake"
+inherit cmake flag-o-matic qmake-utils xdg
+
+MY_COMMIT="376c1469eebedcc724dbbcc0d45030f32c9d13f5"
+MY_COMMIT_LANG="b7393340eda6fa2aebaeeeae9014b923ad82e407"
+DESCRIPTION="Video editor designed for simple cutting, filtering and encoding 
tasks"
+HOMEPAGE="http://fixounet.free.fr/avidemux/";
+SRC_URI="
+       https://github.com/mean00/avidemux2/archive/${MY_COMMIT}.tar.gz -> 
avidemux-${PV}.tar.gz
+       
https://github.com/mean00/avidemux2_i18n/archive/${MY_COMMIT_LANG}.tar.gz -> 
${PN}-i18n-${PV}.tar.gz
+"
+S="${WORKDIR}/avidemux2-${MY_COMMIT}"
+
+# Multiple licenses because of all the bundled stuff.
+# See License.txt.
+LICENSE="GPL-2 MIT PSF-2 LGPL-2 OFL-1.1"
+SLOT="2.7"
+KEYWORDS="~amd64 ~x86"
+IUSE="gui nls nvenc opengl sdl vaapi vdpau xv"
+
+BDEPEND="
+       dev-lang/yasm[nls=]
+       gui? ( dev-qt/qttools:6[linguist] )
+"
+DEPEND="
+       ~media-libs/avidemux-core-${PV}:${SLOT}[nls?,nvenc=,vaapi=,vdpau=,xv?]
+       gui? (
+               dev-qt/qtbase:6[gui,network,opengl,widgets,X]
+               opengl? (
+                       media-libs/glu
+                       media-libs/libglvnd
+               )
+               sdl? ( media-libs/libsdl2[sound,video] )
+               xv? (
+                       x11-libs/libX11
+                       x11-libs/libXext
+                       x11-libs/libXv
+               )
+       )
+"
+RDEPEND="
+       ${DEPEND}
+       nls? ( virtual/libintl )
+       !<media-video/avidemux-${PV}
+"
+PDEPEND="~media-libs/avidemux-plugins-${PV}:${SLOT}[opengl?,gui?]"
+
+PATCHES=(
+       "${FILESDIR}/avidemux-2.8.1_p20251019-cmake.patch"
+       "${FILESDIR}/avidemux-2.8.1_p20251019-optional_sdl2.patch"
+       "${FILESDIR}/avidemux-2.8.1_p20251019-qtengine.patch"
+)
+
+src_unpack() {
+       default
+       mv -f -T avidemux2_i18n-"${MY_COMMIT_LANG}" "${S}"/avidemux/qt4/i18n 
>/dev/null || die
+}
+
+src_prepare() {
+       default
+
+       TARGETDIRS=(
+               buildCli:avidemux/cli
+               $(usev gui buildQt4:avidemux/qt4)
+       )
+
+       local target
+       for target in "${TARGETDIRS[@]}"; do
+               CMAKE_USE_DIR="${S}/${target#*:}" cmake_prepare
+       done
+
+       # Remove "Build Option" dialog because it doesn't reflect
+       # what the GUI can or has been built with. (Bug #463628)
+       sed -i -e '/Build Option/d' avidemux/qt4/ADM_commonUI/myOwnMenu.h || 
die "Couldn't remove \"Build Option\" dialog."
+}
+
+src_configure() {
+       # -Werror=odr
+       # https://bugs.gentoo.org/915773
+       #
+       # Upstream has abandoned sourceforge for github. And doesn't enable 
github issues.
+       # Message received, no bug reported.
+       filter-lto
+
+       # See bug 432322.
+       use x86 && replace-flags -O0 -O1
+
+       # Enable X11 only for now, wayland is not ready
+       use gui && append-cppflags -DUSE_X11
+
+       # buildCli / buildQt4
+       local all_mycmakeargs=(
+               -DVERBOSE=ON
+               -DGETTEXT="$(usex nls)"
+               -DNVENC="$(usex nvenc)"
+       )
+
+       # buildCli
+       local cli_mycmakeargs=(
+               "${all_mycmakeargs[@]}"
+       )
+
+       # buildQt4
+       local gui_mycmakeargs=(
+               "${all_mycmakeargs[@]}"
+               -DENABLE_QT4=OFF
+               -DENABLE_QT5=OFF
+               -DENABLE_QT6=True
+               -DLRELEASE_EXECUTABLE="$(qt6_get_bindir)/lrelease"
+               -DOPENGL="$(usex opengl)"
+               -DSDL="$(usex sdl)"
+               -DXVIDEO="$(usex xv)"
+       )
+
+       local target
+       local mycmakeargs
+       for target in "${TARGETDIRS[@]}" ; do
+               case "${target%%:*}" in
+                       "buildCli")
+                               mycmakeargs=( "${cli_mycmakeargs[@]}" ) ;;
+                       "buildQt4")
+                               mycmakeargs=( "${gui_mycmakeargs[@]}" ) ;;
+                       *)
+                               die "target not available" ;;
+               esac
+               CMAKE_USE_DIR="${S}/${target#*:}" 
BUILD_DIR="${WORKDIR}/${P}_build/${target%%:*}" cmake_src_configure
+       done
+}
+
+multi_targets() {
+       local target
+       for target in "${TARGETDIRS[@]}" ; do
+               BUILD_DIR="${WORKDIR}/${P}_build/${target%%:*}" "${@}"
+       done
+}
+
+src_compile() {
+       multi_targets cmake_src_compile
+}
+
+src_install() {
+       multi_targets cmake_src_install
+}

diff --git a/media-video/avidemux/files/avidemux-2.8.1_p20251019-cmake.patch 
b/media-video/avidemux/files/avidemux-2.8.1_p20251019-cmake.patch
new file mode 100644
index 000000000000..21afe19a8d65
--- /dev/null
+++ b/media-video/avidemux/files/avidemux-2.8.1_p20251019-cmake.patch
@@ -0,0 +1,17 @@
+From 520c52dfa1afae2b33097a5aa5d4f1551f66f41c Mon Sep 17 00:00:00 2001
+From: Poncho <[email protected]>
+Date: Sun, 26 Oct 2025 08:47:14 +0100
+Subject: [PATCH 1/3] avidemux/qt4/xdg_data: bump cmake_minimum_required to
+ 3.20
+
+--- a/avidemux/qt4/xdg_data/CMakeLists.txt
++++ b/avidemux/qt4/xdg_data/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.7)
++cmake_minimum_required(VERSION 3.20)
+ string(TIMESTAMP BUILD_DATE "%Y-%m-%d")
+ 
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/org.avidemux.Avidemux.appdata.xml.in 
${CMAKE_CURRENT_SOURCE_DIR}/org.avidemux.Avidemux.appdata.xml)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/org.avidemux.Avidemux.desktop.in 
${CMAKE_CURRENT_SOURCE_DIR}/org.avidemux.Avidemux.desktop)
+-- 
+2.51.0
+

diff --git 
a/media-video/avidemux/files/avidemux-2.8.1_p20251019-optional_sdl2.patch 
b/media-video/avidemux/files/avidemux-2.8.1_p20251019-optional_sdl2.patch
new file mode 100644
index 000000000000..6cf6844b9155
--- /dev/null
+++ b/media-video/avidemux/files/avidemux-2.8.1_p20251019-optional_sdl2.patch
@@ -0,0 +1,12 @@
+Find SDL2 only if enabled
+--- a/avidemux/qt4/CMakeLists.txt
++++ b/avidemux/qt4/CMakeLists.txt
+@@ -102,7 +102,7 @@ ENDIF()
+ 
+ # Qt4 openGL
+ INCLUDE(admCheckOpenGl)
+-IF(NOT APPLE)
++IF(SDL AND NOT APPLE)
+   INCLUDE(FindSDL2)
+ ENDIF()
+ #

diff --git a/media-video/avidemux/files/avidemux-2.8.1_p20251019-qtengine.patch 
b/media-video/avidemux/files/avidemux-2.8.1_p20251019-qtengine.patch
new file mode 100644
index 000000000000..184f11026dd5
--- /dev/null
+++ b/media-video/avidemux/files/avidemux-2.8.1_p20251019-qtengine.patch
@@ -0,0 +1,71 @@
+avoid deps for both X11 and Wayland
+X11 linker is no longer forced (Qt makes the job if needed)
+--- a/avidemux/qt4/ADM_qt/src/ADM_qtx.cpp
++++ b/avidemux/qt4/ADM_qt/src/ADM_qtx.cpp
+@@ -24,21 +24,29 @@ QT_LINUX_WINDOW_ENGINE admDetectQtEngine()
+     QString pname = currentQApplication()->platformName();
+     ADM_info("Running on platform %s\n", pname.toLatin1().constData());
+ #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
++#if defined USE_X11
+     auto x11 = 
currentQApplication()->nativeInterface<QNativeInterface::QX11Application>();
+     if (x11)
+     {
+         ADM_info("Running on X11\n");
+         qtEngine = QT_X11_ENGINE;
+     }
++#endif // USE_X11
++#if defined USE_WAYLAND
++#if defined USE_X11
+     else
+     {
++#endif // USE_X11
+         auto wayland = 
currentQApplication()->nativeInterface<QNativeInterface::QWaylandApplication>();
+         if (wayland)
+         {
+             ADM_info("Running on Wayland\n");
+             qtEngine = QT_WAYLAND_ENGINE;
+         }
++#if defined USE_X11
+     }
++#endif // USE_X11
++#endif // USE_WAYLAND
+ #else
+     if (!strncmp(pname.toLatin1().constData(), "xcb", 3))
+         qtEngine = QT_X11_ENGINE;
+--- a/avidemux/qt4/ADM_userInterfaces/ADM_gui/T_preview.cpp
++++ b/avidemux/qt4/ADM_userInterfaces/ADM_gui/T_preview.cpp
+@@ -265,6 +265,7 @@ static void systemWindowInfo(GUI_WindowInfo *xinfo)
+         ADM_info("Running on platform %s\n", 
currentQApplication()->platformName().toLatin1().data());
+         switch (admDetectQtEngine())
+         {
++#if defined USE_X11
+         case QT_X11_ENGINE: {
+             auto x11 = 
currentQApplication()->nativeInterface<QNativeInterface::QX11Application>();
+             if (x11)
+@@ -274,6 +275,8 @@ static void systemWindowInfo(GUI_WindowInfo *xinfo)
+             }
+         }
+         break;
++#endif // USE_X11
++#if defined USE_WAYLAND
+         case QT_WAYLAND_ENGINE:
+ 
+         {
+@@ -285,6 +288,7 @@ static void systemWindowInfo(GUI_WindowInfo *xinfo)
+             }
+         }
+         break;
++#endif // USE_WAYLAND
+         default:
+             ADM_warning("Cannot get qt engine infos\n");
+             myDisplay = NULL;
+--- a/avidemux/qt4/cmake/adm_default.cmake
++++ b/avidemux/qt4/cmake/adm_default.cmake
+@@ -3,7 +3,6 @@
+ #
+ MACRO(ADM_PREBUILD)
+         LIST(APPEND PlatformLibs   "-lm -lstdc++")
+-        LIST(APPEND PlatformLibs   "X11") # Linux, BSD
+ ENDMACRO(ADM_PREBUILD)
+ #
+ #

Reply via email to