diff options
Diffstat (limited to 'media-sound/mixxx')
-rw-r--r-- | media-sound/mixxx/Manifest | 9 | ||||
-rw-r--r-- | media-sound/mixxx/files/mixxx-2.5.1-x11_opt.patch | 79 | ||||
-rw-r--r-- | media-sound/mixxx/metadata.xml | 1 | ||||
-rw-r--r-- | media-sound/mixxx/mixxx-2.5.0.ebuild | 7 | ||||
-rw-r--r-- | media-sound/mixxx/mixxx-2.5.1.ebuild | 173 | ||||
-rw-r--r-- | media-sound/mixxx/mixxx-9999.ebuild | 29 |
6 files changed, 278 insertions, 20 deletions
diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest index cb9fd2944fb3..895974bba606 100644 --- a/media-sound/mixxx/Manifest +++ b/media-sound/mixxx/Manifest @@ -1,6 +1,9 @@ AUX mixxx-2.5.0-fix-strict-aliasing-kaitai.patch 3470 BLAKE2B a9015ce883eeedbfa4654e0c570e67be0ec56e2cf8a064c04924368ea86211ad5acf3b98c73fbba913eed627f62ecdc4f6e56b2277a01e0873882342e02630d1 SHA512 9cb7f33272cf4cea50fb9a1a296085d5c7019d5abd8f2ded9b2d9885899f5a4cd33828814145dbc4a234db1df58df77ee0cf2ffad3e19018e1bf985fb77e8c57 AUX mixxx-2.5.0-tests.patch 14804 BLAKE2B a34f9c8985a09632a985b1319e4a16a25d68abaa04c9e4d774788f129bdcda533287ad50855a7edcf3cd5369e19bcfc353ce03c23dae42c8b404c5696836beea SHA512 3e2c7b681bf0dab788dbf98fc550c299623576196dd8d257030bc158f3de269f98570c6f610d47c3463b781cd84e618455eb8946d25e51a4cf37e771c1d6279c +AUX mixxx-2.5.1-x11_opt.patch 3047 BLAKE2B dc3b274ffdfb929f9936d89c7afb985950d6a201ce5036f77d097c6364ac5b93bebaa5534f3756a34360d9d5bf07131ce8e8d1c511ca40db74e218159a30ae99 SHA512 dac82141966d17f0ce6608f112fdc5a0a314ea3032ff968d1c645d5c90582800335b029e28e0fe4477edad2cc4fdd03dbec22612b56806e642f1a27c517f68ac DIST mixxx-2.5.0.tar.gz 39580922 BLAKE2B e5c5aa02a4b13228857eb620ad174144562d7b4675a40565fda1e641138e0e65dbb2bbe8c7fb32ead242a5bdf8581368ea604c93afbfc5c991ac92065e7bdae7 SHA512 ee3c682d40267358025aba5bfdc378fee1cb6691dc899280132f7e69d315b9ce3d8568ca182752bac96a38310c2f2d71ddc80eea4448b8b32bf6ec6a61a9d608 -EBUILD mixxx-2.5.0.ebuild 4168 BLAKE2B 54629cdc42e6bc14d46132a2bb15727f63e278266be00e24d3887718b38c63c3d6eeca33a5153d2ab4c4bdc2612ed4545fc508e629090eda673daba5e053cc27 SHA512 151184c294b0289c93c42f7b39f4ec77a7b2656be43627b0ba1e25ca32436d2974d116d0b974e7ab260373a88b988865e8236b9273510dfd4d7a74048ba9d548 -EBUILD mixxx-9999.ebuild 4076 BLAKE2B 8167a113b684b9375a1ac4d159a419a319cac9efccce0f766774ca1c900989f805c8ec5ac6301702d89746ded5c3bcff100ee1a53d435b01b9f40101a2a52e76 SHA512 fdbdb70f8cd72ac3677d8731a2771067b6c46d242bc093be45ada9f5cdeef6381494424f57e4648d135a6e7926b042407b5b6a400cc229b99de3b01bfd81b1d3 -MISC metadata.xml 1167 BLAKE2B 6a5474edd3bad0f22111ce3154b62ac4a3d766edf6720d2adc98296be325bef14c74eb3109d083e0dac45cc3d51b39e13b503fc8dd748b2bf5ab38e0737cbdcf SHA512 4f66ec03c97ef1c154aae13db72a65d587651c586039e1393d6fac7ba96cc656e7b5f1d665f9109821b47d991f26711ee3215426bf198d9a8f5cd7fce388972e +DIST mixxx-2.5.1.tar.gz 39957616 BLAKE2B a1541e74753ba97aa5faf0785f987619b60e061faf21500723568eb599fd72cc03b3948a1a8012dcfeb111a2e2e20256aa39dbeb15e49355830bb94aeef7d625 SHA512 14ca19b58e5f3bb2502a3a79125c2e4f149d002ff6e89bd3bad61a6bb268cfcecaaf1ee31eac3eb39bfdcdf77bae38ea6ef0ad3cdb8df9bfb842070b642b3ffc +EBUILD mixxx-2.5.0.ebuild 4176 BLAKE2B 61cc0ac9d14f50cb54f6d85212499ab3ca7c31a39106f8b9fad846f54e38f5bc7ced623185c46d863772ee936219095a6c7c0cd77223da732e9fa57d845ac877 SHA512 95d3f2bfcbaeec94578607a156c29315f9eb44112e35177b8f01d717d39aba320922ba4f4e6a9ac92be2a2bab6bacaa394a6fdeef22b6d7ba5567ff45f63448f +EBUILD mixxx-2.5.1.ebuild 4322 BLAKE2B 41e52a0284983e8e790008cfb6ef87484c068723785f5b606d461c954120d92f641c6a50e7d13b45d87f41c56c4fd1ad621a934104a8cf8778dab716f60cb85c SHA512 c377d23af600bbf9e1c4b883fa285e458872901ead2037a16f0ad48ea75ae4d7ebff15ea83fe18804599cd8f816b349806e5a4fd56ade233e080563165828eba +EBUILD mixxx-9999.ebuild 4228 BLAKE2B 47c4c3fc52a0d15896d561d35803356946f37194ec1af2ec7eb4a1bf5d29c14aafaded5871b9e8d343589c8b730e896bd3173c65f726837e5a951543c778a9ec SHA512 e99d143ab9650a72ec7503e57d3cc96b3b4ef32ace0b67265a151989c07114a9b8ce8527fbd85231f8acb19c3e04f67a0f8644380f4d5230eba81c786c1d2eb1 +MISC metadata.xml 1264 BLAKE2B b11504a0b1dc39b73861572e15d8215f4ce7f1e925e3305b5f19f6b0a1cb5f89a428f519b38b59d0100f45c2cc95298e5efe42190c37a9f7715b70d962a4c56d SHA512 3f2904c83ce45d52f585a2714e06e71251af65e38da4b0210f97ed302873936cfb0e8f47541be7fe8dc6ad420880c2416ccc28843f241b2cea4c01d3f31dee48 diff --git a/media-sound/mixxx/files/mixxx-2.5.1-x11_opt.patch b/media-sound/mixxx/files/mixxx-2.5.1-x11_opt.patch new file mode 100644 index 000000000000..e6961402b011 --- /dev/null +++ b/media-sound/mixxx/files/mixxx-2.5.1-x11_opt.patch @@ -0,0 +1,79 @@ +https://github.com/mixxxdj/mixxx/pull/14574 +From 9b64781b833fbb13dbcfadf5a936820c2b880f24 Mon Sep 17 00:00:00 2001 +From: Nicolas PARLANT <nicolas.parlant@parhuet.fr> +Date: Mon, 31 Mar 2025 13:33:13 +0000 +Subject: [PATCH] X11-less - Use FindWrapOpenGL + +Use FindWrapOpenGL.cmake. It allows X11-less system. +Set link_target to OpenGL::OpenGL, GLVND-based. If not found, use +OpenGL:GL. + +Furthermore, adding a NOQX11 definition so that the screensaver that +requires Xlib is now optional. + +Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> +--- + CMakeLists.txt | 11 +++++++++-- + src/util/screensaver.cpp | 5 +++-- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b7a48247f97a..81a870534793 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3187,8 +3187,8 @@ else() + set(CMAKE_FIND_FRAMEWORK FIRST) + endif() + set(OpenGL_GL_PREFERENCE "GLVND") +- find_package(OpenGL REQUIRED) + if(EMSCRIPTEN) ++ find_package(OpenGL REQUIRED) + # Emscripten's FindOpenGL.cmake does not create OpenGL::GL + target_link_libraries(mixxx-lib PRIVATE ${OPENGL_gl_LIBRARY}) + target_compile_definitions(mixxx-lib PUBLIC QT_OPENGL_ES_2) +@@ -3200,7 +3200,12 @@ else() + PUBLIC -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2 -sFULL_ES2=1 + ) + else() +- target_link_libraries(mixxx-lib PRIVATE OpenGL::GL) ++ find_package(WrapOpenGL REQUIRED) ++ if(OPENGL_opengl_LIBRARY) ++ target_link_libraries(mixxx-lib PRIVATE OpenGL::OpenGL) ++ else() ++ target_link_libraries(mixxx-lib PRIVATE OpenGL::GL) ++ endif() + endif() + if(UNIX AND QGLES2) + target_compile_definitions(mixxx-lib PUBLIC QT_OPENGL_ES_2) +@@ -3841,6 +3846,8 @@ elseif(UNIX AND NOT APPLE AND NOT EMSCRIPTEN) + if(${X11_FOUND}) + target_include_directories(mixxx-lib SYSTEM PUBLIC "${X11_INCLUDE_DIR}") + target_link_libraries(mixxx-lib PRIVATE "${X11_LIBRARIES}") ++ else() ++ target_compile_definitions(mixxx-lib PUBLIC QNOX11) + endif() + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS DBus REQUIRED) + target_link_libraries(mixxx-lib PUBLIC Qt${QT_VERSION_MAJOR}::DBus) +diff --git a/src/util/screensaver.cpp b/src/util/screensaver.cpp +index 9eae4a1b4cd0..68f705184296 100644 +--- a/src/util/screensaver.cpp ++++ b/src/util/screensaver.cpp +@@ -36,7 +36,8 @@ With the help of the following source codes: + # include <X11/extensions/scrnsaver.h> + #endif + +-#if defined(__LINUX__) || (defined(HAVE_XSCREENSAVER_SUSPEND) && HAVE_XSCREENSAVER_SUSPEND) ++#if (defined(__LINUX__) && !defined(QNOX11)) || \ ++ (defined(HAVE_XSCREENSAVER_SUSPEND) && HAVE_XSCREENSAVER_SUSPEND) + # define None XNone + # define Window XWindow + # include <X11/Xlib.h> +@@ -146,7 +147,7 @@ void ScreenSaverHelper::uninhibitInternal() + s_enabled = false; + } + +-#elif defined(Q_OS_LINUX) ++#elif (defined(Q_OS_LINUX) && !defined(QNOX11)) + const char *SCREENSAVERS[][4] = { + // org.freedesktop.ScreenSaver is the standard. should work for gnome and kde too, + // but I add their specific names too diff --git a/media-sound/mixxx/metadata.xml b/media-sound/mixxx/metadata.xml index 816354871636..d3d428e66ae1 100644 --- a/media-sound/mixxx/metadata.xml +++ b/media-sound/mixxx/metadata.xml @@ -7,6 +7,7 @@ </maintainer> <use> <flag name="benchmark">Build and install benchmark binary: mixxx-test --benchmark</flag> + <flag name="experimental">Add support for experimental-QML-UI. Available with --qml arg</flag> <flag name="keyfinder">Enable musical key detection support via <pkg>media-libs/libkeyfinder</pkg></flag> <flag name="lv2">Add support for Ladspa V2 via <pkg>media-libs/lilv</pkg></flag> <flag name="midi">Enable MIDI support via <pkg>media-libs/portmidi</pkg></flag> diff --git a/media-sound/mixxx/mixxx-2.5.0.ebuild b/media-sound/mixxx/mixxx-2.5.0.ebuild index c4762ac7adb7..938387572f4c 100644 --- a/media-sound/mixxx/mixxx-2.5.0.ebuild +++ b/media-sound/mixxx/mixxx-2.5.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake flag-o-matic toolchain-funcs udev xdg +inherit cmake dot-a udev xdg DESCRIPTION="Advanced Digital DJ tool based on Qt" HOMEPAGE="https://mixxx.org/" @@ -20,6 +20,7 @@ fi LICENSE="GPL-2" SLOT="0" +# gles2-only: at least not before 2.6 for keyworded ebuild IUSE="aac benchmark ffmpeg keyfinder lv2 midi modplug mp3 mp4 opus" IUSE+=" qtkeychain rubberband shout test upower wavpack" REQUIRED_USE=" @@ -34,7 +35,7 @@ RDEPEND=" dev-libs/hidapi dev-libs/protobuf:= dev-qt/qt5compat:6[qml] - dev-qt/qtbase:6[concurrent,dbus,gui,icu,network,opengl,sql,sqlite,ssl,widgets,xml,X] + dev-qt/qtbase:6[concurrent,dbus,-gles2-only,gui,icu,network,opengl,sql,sqlite,ssl,widgets,xml,X] dev-qt/qtdeclarative:6 dev-qt/qtshadertools:6 dev-qt/qtsvg:6 @@ -112,7 +113,7 @@ CMAKE_SKIP_TESTS=( src_configure() { # prevent ld error as package builds static libs. - tc-is-lto && append-flags $(test-flags -ffat-lto-objects) + lto-guarantee-fat local mycmakeargs=( -DBATTERY="$(usex upower)" diff --git a/media-sound/mixxx/mixxx-2.5.1.ebuild b/media-sound/mixxx/mixxx-2.5.1.ebuild new file mode 100644 index 000000000000..d1014377443b --- /dev/null +++ b/media-sound/mixxx/mixxx-2.5.1.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake dot-a udev xdg + +DESCRIPTION="Advanced Digital DJ tool based on Qt" +HOMEPAGE="https://mixxx.org/" +if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + if [[ ${PV} == ?.?.9999 ]] ; then + EGIT_BRANCH=${PV%.9999} + fi + EGIT_REPO_URI="https://github.com/mixxxdj/${PN}.git" +else + SRC_URI="https://github.com/mixxxdj/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +# gles2-only: at least not before 2.6 for keyworded ebuild +IUSE="aac benchmark ffmpeg keyfinder lv2 midi modplug mp3 mp4 opus" +IUSE+=" qtkeychain rubberband shout test upower wavpack +X" +REQUIRED_USE=" + benchmark? ( test ) + qtkeychain? ( shout ) + test? ( aac ffmpeg midi mp3 opus rubberband ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-db/sqlite:3 + dev-cpp/abseil-cpp:= + dev-libs/hidapi + dev-libs/protobuf:= + dev-qt/qt5compat:6 + dev-qt/qtbase:6[concurrent,dbus,-gles2-only,gui,icu,network,opengl,sql,sqlite,ssl,widgets,xml,X?] + dev-qt/qtdeclarative:6 + dev-qt/qtshadertools:6 + dev-qt/qtsvg:6 + media-libs/chromaprint:= + media-libs/flac:= + media-libs/libebur128:= + media-libs/libglvnd[X?] + media-libs/libogg + media-libs/libsndfile + media-libs/libsoundtouch:= + media-libs/libvorbis + media-libs/portaudio + media-libs/taglib:= + media-sound/lame + virtual/libusb:1 + virtual/udev + aac? ( + media-libs/faad2 + media-libs/libmp4v2 + ) + benchmark? ( + dev-cpp/benchmark:= + dev-cpp/gtest:= + dev-util/google-perftools:= + ) + ffmpeg? ( media-video/ffmpeg:= ) + keyfinder? ( media-libs/libkeyfinder ) + lv2? ( media-libs/lilv ) + midi? ( media-libs/portmidi ) + modplug? ( media-libs/libmodplug ) + mp3? ( + media-libs/libid3tag:= + media-libs/libmad + ) + mp4? ( media-libs/libmp4v2 ) + opus? ( + media-libs/opus + media-libs/opusfile + ) + qtkeychain? ( >=dev-libs/qtkeychain-0.14.2:=[qt6(+)] ) + rubberband? ( media-libs/rubberband:= ) + shout? ( dev-libs/openssl:= ) + upower? ( + dev-libs/glib:2 + sys-power/upower:= + ) + wavpack? ( media-sound/wavpack ) + X? ( x11-libs/libX11 ) +" +DEPEND="${RDEPEND} + dev-cpp/gtest + dev-cpp/ms-gsl +" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + # Fix strict-aliasing violations in vendored katai_cpp_stl_runtime + # https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime/commit/c01f530.patch + "${FILESDIR}"/${PN}-2.5.0-fix-strict-aliasing-kaitai.patch + # Try OpenGL::OpenGL first for X11-less system + # Make libX11 optional as it's only required for screensaver. + "${FILESDIR}"/${PN}-2.5.1-x11_opt.patch +) + +CMAKE_SKIP_TESTS=( + # need HID controller + LegacyControllerMappingValidationTest.HidMappingsValid + # randomly fails + # https://github.com/mixxxdj/mixxx/issues/12554 + EngineBufferE2ETest +) + +src_configure() { + # prevent ld error as package builds static libs. + lto-guarantee-fat + + local mycmakeargs=( + -DBATTERY="$(usex upower)" + -DBROADCAST="$(usex shout)" + -DBUILD_SHARED_LIBS=ON + -DBUILD_TESTING="$(usex test)" + -DBUILD_BENCH="$(usex benchmark)" + # prevent duplicate call + -DCCACHE_SUPPORT=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_X11=$(usex !X) + -DENGINEPRIME=OFF + -DFAAD="$(usex aac)" + -DFFMPEG="$(usex ffmpeg)" + -DGPERFTOOLS="$(usex benchmark)" + -DGPERFTOOLSPROFILER="$(usex benchmark)" + -DHID=ON + -DINSTALL_USER_UDEV_RULES=OFF + -DKEYFINDER="$(usex keyfinder)" + -DLILV="$(usex lv2)" + -DMAD="$(usex mp3)" + -DMODPLUG="$(usex modplug)" + -DOPTIMIZE=OFF + -DOPUS="$(usex opus)" + -DPORTMIDI="$(usex midi)" + # new QML-UI, experimental and not functionnal for now + -DQML=OFF + -DQTKEYCHAIN="$(usex qtkeychain)" + -DRUBBERBAND="$(usex rubberband)" + -DVINYLCONTROL=ON + -DWAVPACK="$(usex wavpack)" + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + use benchmark && dobin "${BUILD_DIR}"/mixxx-test + udev_newrules "${S}"/res/linux/mixxx-usb-uaccess.rules 69-mixxx-usb-uaccess.rules +} + +pkg_postinst() { + xdg_pkg_postinst + udev_reload + + elog "Manuals are no longer part of the package." + elog "Please refer to https://downloads.mixxx.org/manual/ for up-to-date manuals." + if use benchmark; then + elog "" + elog "Launch benchmark : ${EROOT}/usr/bin/mixxx-test --benchmark" + elog "Launch Unittests : ${EROOT}/usr/bin/mixxx-test" + elog "Some test suites may not be available without source files." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + udev_reload +} diff --git a/media-sound/mixxx/mixxx-9999.ebuild b/media-sound/mixxx/mixxx-9999.ebuild index f443853c094a..80c60309d29e 100644 --- a/media-sound/mixxx/mixxx-9999.ebuild +++ b/media-sound/mixxx/mixxx-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake flag-o-matic toolchain-funcs udev xdg +inherit cmake dot-a udev xdg DESCRIPTION="Advanced Digital DJ tool based on Qt" HOMEPAGE="https://mixxx.org/" @@ -20,7 +20,8 @@ fi LICENSE="GPL-2" SLOT="0" -IUSE="aac benchmark ffmpeg keyfinder lv2 midi modplug mp3 mp4 opus" +# gles2-only: at least not before 2.6 for keyworded ebuild +IUSE="aac benchmark experimental ffmpeg gles2-only keyfinder lv2 midi modplug mp3 mp4 opus" IUSE+=" qtkeychain rubberband shout test upower wavpack" REQUIRED_USE=" benchmark? ( test ) @@ -31,10 +32,11 @@ RESTRICT="!test? ( test )" RDEPEND=" dev-db/sqlite:3 + dev-cpp/abseil-cpp:= dev-libs/hidapi dev-libs/protobuf:= - dev-qt/qt5compat:6[qml] - dev-qt/qtbase:6[concurrent,dbus,gui,icu,network,opengl,sql,sqlite,ssl,widgets,xml,X] + dev-qt/qt5compat:6 + dev-qt/qtbase:6[concurrent,dbus,gles2-only=,gui,icu,network,opengl,sql,sqlite,ssl,widgets,xml,X] dev-qt/qtdeclarative:6 dev-qt/qtshadertools:6 dev-qt/qtsvg:6 @@ -47,9 +49,8 @@ RDEPEND=" media-libs/libsoundtouch:= media-libs/libvorbis media-libs/portaudio - <media-libs/taglib-2 + media-libs/taglib:= media-sound/lame - virtual/glu virtual/libusb:1 virtual/udev x11-libs/libX11 @@ -59,9 +60,10 @@ RDEPEND=" ) benchmark? ( dev-cpp/benchmark:= - dev-cpp/gtest + dev-cpp/gtest:= dev-util/google-perftools:= ) + experimental? ( dev-qt/qt5compat:6[qml] ) ffmpeg? ( media-video/ffmpeg:= ) keyfinder? ( media-libs/libkeyfinder ) lv2? ( media-libs/lilv ) @@ -86,13 +88,10 @@ RDEPEND=" wavpack? ( media-sound/wavpack ) " DEPEND="${RDEPEND} + dev-cpp/gtest dev-cpp/ms-gsl - test? ( dev-cpp/gtest ) -" -BDEPEND=" - dev-util/spirv-tools - virtual/pkgconfig " +BDEPEND="virtual/pkgconfig" PATCHES=( # Fix strict-aliasing violations in vendored katai_cpp_stl_runtime @@ -110,7 +109,7 @@ CMAKE_SKIP_TESTS=( src_configure() { # prevent ld error as package builds static libs. - tc-is-lto && append-flags $(test-flags -ffat-lto-objects) + lto-guarantee-fat local mycmakeargs=( -DBATTERY="$(usex upower)" @@ -134,7 +133,9 @@ src_configure() { -DOPTIMIZE=OFF -DOPUS="$(usex opus)" -DPORTMIDI="$(usex midi)" - -DQML=ON + -DQGLES2="$(usex gles2-only)" + # new QML-UI, experimental and not functionnal for now + -DQML=$(usex experimental) -DQTKEYCHAIN="$(usex qtkeychain)" -DRUBBERBAND="$(usex rubberband)" -DVINYLCONTROL=ON |