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) + # + #
