public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/mixxx/files/, media-sound/mixxx/
Date: Mon, 10 Feb 2025 20:42:22 +0000 (UTC)	[thread overview]
Message-ID: <1739220110.539b05c45b2d0f5800ae69e2e0865e0b9dd64d30.asturm@gentoo> (raw)

commit:     539b05c45b2d0f5800ae69e2e0865e0b9dd64d30
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Tue Jan 21 16:41:39 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Feb 10 20:41:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=539b05c4

media-sound/mixxx: add 2.5.0

sync with live
patch for tests/benchmark

Bug: https://bugs.gentoo.org/899564
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Closes: https://github.com/gentoo/gentoo/pull/40226
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-sound/mixxx/Manifest                      |   1 +
 media-sound/mixxx/files/mixxx-2.5.0-tests.patch | 444 ++++++++++++++++++++++++
 media-sound/mixxx/mixxx-2.5.0.ebuild            | 172 +++++++++
 3 files changed, 617 insertions(+)

diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest
index 4ed0e4c162a6..39003609bcc1 100644
--- a/media-sound/mixxx/Manifest
+++ b/media-sound/mixxx/Manifest
@@ -1,4 +1,5 @@
 DIST mixxx-2.3.6.tar.gz 41285084 BLAKE2B 35bedb5f41a56577bc59411ca979e3e780c1da2420bc0a7ad98d998c89f8c272202ba42e8b8089904ca8e1a1b6ac5155d08d556538245ce3242b4ea5a670e6d2 SHA512 a92c2c92dc7619ac135d940f23ffdc101c528eca6322517805afb9eb48a84c6339cefb88b96bdac6ffb23967c2f93f621daf3e98bfecbf7f3fe7626ddcec4398
+DIST mixxx-2.5.0.tar.gz 39580922 BLAKE2B e5c5aa02a4b13228857eb620ad174144562d7b4675a40565fda1e641138e0e65dbb2bbe8c7fb32ead242a5bdf8581368ea604c93afbfc5c991ac92065e7bdae7 SHA512 ee3c682d40267358025aba5bfdc378fee1cb6691dc899280132f7e69d315b9ce3d8568ca182752bac96a38310c2f2d71ddc80eea4448b8b32bf6ec6a61a9d608
 DIST mixxx-manual-2.3-ca.pdf 34083768 BLAKE2B 0572da067016d6fd1a0e955cfa9daad319e633357532bad1143333a277d3dee1876709447ecfb954b5294f5fd176af229884e11a8e2fd40d03c12a6cf80bf01c SHA512 965f2f344bfa57531974362de889a92bb8b3024e527158f6c1819e285f70078762e958f7805ff1f833e7310646925cb8120eb3010f8600aa2cd21b2266a9333b
 DIST mixxx-manual-2.3-cs.pdf 8358958 BLAKE2B de00e08468fed15670751b0997759af0eca71b041d0366ad0e8cf2297fe27368eb6340a3f109b3f992a6f01a99f0d04ba7962c983756cdca2121bf9ca025aa76 SHA512 648eedde674155094b4fa9605422032e71427c95580ffe3f01c8d41a26495bd9bd2d8d7dff38e99bdfbba3a46aee9ca6a6e1c9327b8d1d503310e4c669755068
 DIST mixxx-manual-2.3-de.pdf 34069018 BLAKE2B bdcc970d37e43c2f1244aa1f03bc07287581711e534419caada3aabbc585e3006ec489e752142b5b50e526646d3d5431e0ec5924b9d6b31a92de4e7cc7efcc86 SHA512 fbbf27c4b898f856e61301bd1f26a3523bb97c133d96c8d94f1267c15ef63aa03313c18ebec62d4380c423c3896067ed1cedccbc775e5abc6d14e1baf8b668fc

diff --git a/media-sound/mixxx/files/mixxx-2.5.0-tests.patch b/media-sound/mixxx/files/mixxx-2.5.0-tests.patch
new file mode 100644
index 000000000000..05c0a9924991
--- /dev/null
+++ b/media-sound/mixxx/files/mixxx-2.5.0-tests.patch
@@ -0,0 +1,444 @@
+https://github.com/mixxxdj/mixxx/pull/14269.patch
+From 78a45819563ff4ff49e8806c49d8a680a9481b0b Mon Sep 17 00:00:00 2001
+From: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
+Date: Fri, 31 Jan 2025 16:28:10 +0000
+Subject: [PATCH 1/2] Building without tests-tools
+
+Today, we can't build mixxx without links to gtest/gperftools/benchmark
+
+This PR allows building only mixxx and mixxx-lib targets without
+tests-tools.
+
+Two common cmake-definitions are added :
+* BUILD_TESTING
+* BUILD_BENCH
+
+And one compile definition for test.main.cpp :
+* USE_BENCH
+
+This is helpful for packaging (gentoo here).
+
+The negative effect is sorting of tests source files as soon
+as they are called by mixxx-benchmark target.
+---
+ CMakeLists.txt | 344 +++++++++++++++++++++++++++----------------------
+ 1 file changed, 193 insertions(+), 151 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a0c12a0f267..89abbdfc6d4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2061,156 +2061,194 @@ endif()
+ # Tests
+ #
+ 
+-add_executable(mixxx-test
+-  src/test/analyserwaveformtest.cpp
+-  src/test/analyzersilence_test.cpp
+-  src/test/audiotaperpot_test.cpp
+-  src/test/autodjprocessor_test.cpp
+-  src/test/beatgridtest.cpp
+-  src/test/beatmaptest.cpp
+-  src/test/beatstest.cpp
+-  src/test/beatstranslatetest.cpp
+-  src/test/bpmtest.cpp
+-  src/test/bpmcontrol_test.cpp
+-  src/test/broadcastprofile_test.cpp
+-  src/test/broadcastsettings_test.cpp
+-  src/test/cache_test.cpp
+-  src/test/channelhandle_test.cpp
+-  src/test/chrono_clock_resolution_test.cpp
+-  src/test/colorconfig_test.cpp
+-  src/test/colormapperjsproxy_test.cpp
+-  src/test/colorpalette_test.cpp
+-  src/test/configobject_test.cpp
+-  src/test/controller_mapping_validation_test.cpp
+-  src/test/controller_mapping_settings_test.cpp
+-  src/test/controllers/controller_columnid_regression_test.cpp
+-  src/test/controllerscriptenginelegacy_test.cpp
+-  src/test/controlobjecttest.cpp
+-  src/test/controlobjectaliastest.cpp
+-  src/test/controlobjectscripttest.cpp
+-  src/test/controlpotmetertest.cpp
+-  src/test/coreservicestest.cpp
+-  src/test/coverartcache_test.cpp
+-  src/test/coverartutils_test.cpp
+-  src/test/cratestorage_test.cpp
+-  src/test/cue_test.cpp
+-  src/test/cuecontrol_test.cpp
+-  src/test/dbconnectionpool_test.cpp
+-  src/test/dbidtest.cpp
+-  src/test/directorydaotest.cpp
+-  src/test/duration_test.cpp
+-  src/test/durationutiltest.cpp
+-  #TODO: write useful tests for refactored effects system
+-  #src/test/effectchainslottest.cpp
+-  src/test/enginebufferscalelineartest.cpp
+-  src/test/enginebuffertest.cpp
+-  src/test/engineeffectsdelay_test.cpp
+-  src/test/enginefilterbiquadtest.cpp
+-  src/test/enginemixertest.cpp
+-  src/test/enginemicrophonetest.cpp
+-  src/test/enginesynctest.cpp
+-  src/test/fileinfo_test.cpp
+-  src/test/frametest.cpp
+-  src/test/globaltrackcache_test.cpp
+-  src/test/hotcuecontrol_test.cpp
+-  src/test/imageutils_test.cpp
+-  src/test/indexrange_test.cpp
+-  src/test/itunesxmlimportertest.cpp
+-  src/test/keyfactorytest.cpp
+-  src/test/keyutilstest.cpp
+-  src/test/lcstest.cpp
+-  src/test/learningutilstest.cpp
+-  src/test/libraryscannertest.cpp
+-  src/test/librarytest.cpp
+-  src/test/looping_control_test.cpp
+-  src/test/main.cpp
+-  src/test/mathutiltest.cpp
+-  src/test/metadatatest.cpp
+-  #TODO: make this build again
+-  #src/test/metaknob_link_test.cpp
+-  src/test/midicontrollertest.cpp
+-  src/test/mixxxtest.cpp
+-  src/test/mock_networkaccessmanager.cpp
+-  src/test/movinginterquartilemean_test.cpp
+-  src/test/musicbrainzrecordingstasktest.cpp
+-  src/test/nativeeffects_test.cpp
+-  src/test/performancetimer_test.cpp
+-  src/test/playcountertest.cpp
+-  src/test/playermanagertest.cpp
+-  src/test/playlisttest.cpp
+-  src/test/portmidicontroller_test.cpp
+-  src/test/portmidienumeratortest.cpp
+-  src/test/queryutiltest.cpp
+-  src/test/rangelist_test.cpp
+-  src/test/readaheadmanager_test.cpp
+-  src/test/replaygaintest.cpp
+-  src/test/rescalertest.cpp
+-  src/test/rgbcolor_test.cpp
+-  src/test/ringdelaybuffer_test.cpp
+-  src/test/samplebuffertest.cpp
+-  src/test/sampleutiltest.cpp
+-  src/test/schemamanager_test.cpp
+-  src/test/searchqueryparsertest.cpp
+-  src/test/seratobeatgridtest.cpp
+-  src/test/seratomarkerstest.cpp
+-  src/test/seratomarkers2test.cpp
+-  src/test/seratotagstest.cpp
+-  src/test/signalpathtest.cpp
+-  src/test/skincontext_test.cpp
+-  src/test/softtakeover_test.cpp
+-  src/test/soundproxy_test.cpp
+-  src/test/soundsourceproviderregistrytest.cpp
+-  src/test/sqliteliketest.cpp
+-  src/test/synccontroltest.cpp
+-  src/test/synctrackmetadatatest.cpp
+-  src/test/tableview_test.cpp
+-  src/test/taglibtest.cpp
+-  src/test/trackdao_test.cpp
+-  src/test/trackexport_test.cpp
+-  src/test/trackmetadata_test.cpp
+-  src/test/trackmetadataexport_test.cpp
+-  src/test/tracknumberstest.cpp
+-  src/test/trackreftest.cpp
+-  src/test/trackupdate_test.cpp
+-  src/test/uuid_test.cpp
+-  src/test/wbatterytest.cpp
+-  src/test/wpushbutton_test.cpp
+-  src/test/wwidgetstack_test.cpp
+-  src/util/moc_included_test.cpp
+-)
+-target_precompile_headers(mixxx-test REUSE_FROM mixxx-lib)
+-find_package(GTest CONFIG REQUIRED)
+-set_target_properties(mixxx-test PROPERTIES AUTOMOC ON)
+-target_link_libraries(mixxx-test PRIVATE mixxx-lib mixxx-gitinfostore GTest::gtest GTest::gmock)
++find_package(GTest CONFIG)
++default_option(BUILD_TESTING "Build with Unittests" "GTest_FOUND")
++if(BUILD_TESTING)
++  if(GTest_FOUND)
++    message(STATUS "Found GTest: Unittests enabled")
++  else()
++    message(FATAL_ERROR "GTest: not found")
++  endif()
++endif()
+ 
+ find_package(benchmark)
+-target_link_libraries(mixxx-test PRIVATE benchmark::benchmark)
+-
+-# Test Suite
+-include(CTest)
+-include(GoogleTest)
+-enable_testing()
+-gtest_add_tests(
+-  TARGET mixxx-test
+-  EXTRA_ARGS --logLevel info
+-  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+-  TEST_LIST testsuite
+-)
+-if (NOT WIN32)
+-  # Default to offscreen rendering during tests.
+-  # This is required if the build system like Fedora koji/mock does not
+-  # allow to pass environment variables into the ctest macro expansion.
+-  set_tests_properties(${testsuite} PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
+-endif()
++default_option(BUILD_BENCH "Build mixxx-benchmark" "benchmark_FOUND")
++if(BUILD_BENCH AND BUILD_TESTING)
++  if(benchmark_FOUND)
++    message(STATUS "Found google-benchmark: mixxx-benchmark enabled")
++  else()
++    message(FATAL_ERROR "google-benchmark: not found")
++  endif()
++elseif(BUILD_BENCH AND NOT BUILD_TESTING)
++  message(FATAL_ERROR "Benchmark needs Unittests (-DBUILD_TESTING=ON)")
++endif()
++
++if(BUILD_TESTING)
++  set(
++    src-mixxx-test
++    src/test/analyserwaveformtest.cpp
++    src/test/analyzersilence_test.cpp
++    src/test/audiotaperpot_test.cpp
++    src/test/autodjprocessor_test.cpp
++    src/test/beatgridtest.cpp
++    src/test/beatmaptest.cpp
++    src/test/beatstest.cpp
++    src/test/beatstranslatetest.cpp
++    src/test/bpmtest.cpp
++    src/test/bpmcontrol_test.cpp
++    src/test/broadcastprofile_test.cpp
++    src/test/broadcastsettings_test.cpp
++    src/test/cache_test.cpp
++    src/test/channelhandle_test.cpp
++    src/test/chrono_clock_resolution_test.cpp
++    src/test/colorconfig_test.cpp
++    src/test/colormapperjsproxy_test.cpp
++    src/test/colorpalette_test.cpp
++    src/test/configobject_test.cpp
++    src/test/controller_mapping_validation_test.cpp
++    src/test/controller_mapping_settings_test.cpp
++    src/test/controllers/controller_columnid_regression_test.cpp
++    src/test/controllerscriptenginelegacy_test.cpp
++    src/test/controlobjecttest.cpp
++    src/test/controlobjectaliastest.cpp
++    src/test/controlobjectscripttest.cpp
++    src/test/controlpotmetertest.cpp
++    src/test/coreservicestest.cpp
++    src/test/coverartcache_test.cpp
++    src/test/coverartutils_test.cpp
++    src/test/cratestorage_test.cpp
++    src/test/cue_test.cpp
++    src/test/cuecontrol_test.cpp
++    src/test/dbconnectionpool_test.cpp
++    src/test/dbidtest.cpp
++    src/test/directorydaotest.cpp
++    src/test/duration_test.cpp
++    src/test/durationutiltest.cpp
++    #TODO: write useful tests for refactored effects system
++    #src/test/effectchainslottest.cpp
++    src/test/enginebufferscalelineartest.cpp
++    src/test/enginebuffertest.cpp
++    src/test/enginefilterbiquadtest.cpp
++    src/test/enginemixertest.cpp
++    src/test/enginemicrophonetest.cpp
++    src/test/enginesynctest.cpp
++    src/test/fileinfo_test.cpp
++    src/test/frametest.cpp
++    src/test/globaltrackcache_test.cpp
++    src/test/hotcuecontrol_test.cpp
++    src/test/imageutils_test.cpp
++    src/test/indexrange_test.cpp
++    src/test/itunesxmlimportertest.cpp
++    src/test/keyfactorytest.cpp
++    src/test/keyutilstest.cpp
++    src/test/lcstest.cpp
++    src/test/learningutilstest.cpp
++    src/test/libraryscannertest.cpp
++    src/test/librarytest.cpp
++    src/test/looping_control_test.cpp
++    src/test/main.cpp
++    src/test/mathutiltest.cpp
++    src/test/metadatatest.cpp
++    #TODO: make this build again
++    #src/test/metaknob_link_test.cpp
++    src/test/midicontrollertest.cpp
++    src/test/mixxxtest.cpp
++    src/test/mock_networkaccessmanager.cpp
++    src/test/musicbrainzrecordingstasktest.cpp
++    src/test/performancetimer_test.cpp
++    src/test/playcountertest.cpp
++    src/test/playermanagertest.cpp
++    src/test/playlisttest.cpp
++    src/test/portmidicontroller_test.cpp
++    src/test/portmidienumeratortest.cpp
++    src/test/queryutiltest.cpp
++    src/test/rangelist_test.cpp
++    src/test/readaheadmanager_test.cpp
++    src/test/replaygaintest.cpp
++    src/test/rescalertest.cpp
++    src/test/rgbcolor_test.cpp
++    src/test/samplebuffertest.cpp
++    src/test/schemamanager_test.cpp
++    src/test/searchqueryparsertest.cpp
++    src/test/seratobeatgridtest.cpp
++    src/test/seratomarkerstest.cpp
++    src/test/seratomarkers2test.cpp
++    src/test/seratotagstest.cpp
++    src/test/signalpathtest.cpp
++    src/test/skincontext_test.cpp
++    src/test/softtakeover_test.cpp
++    src/test/soundproxy_test.cpp
++    src/test/soundsourceproviderregistrytest.cpp
++    src/test/sqliteliketest.cpp
++    src/test/synccontroltest.cpp
++    src/test/synctrackmetadatatest.cpp
++    src/test/tableview_test.cpp
++    src/test/taglibtest.cpp
++    src/test/trackdao_test.cpp
++    src/test/trackexport_test.cpp
++    src/test/trackmetadata_test.cpp
++    src/test/trackmetadataexport_test.cpp
++    src/test/tracknumberstest.cpp
++    src/test/trackreftest.cpp
++    src/test/trackupdate_test.cpp
++    src/test/uuid_test.cpp
++    src/test/wbatterytest.cpp
++    src/test/wpushbutton_test.cpp
++    src/test/wwidgetstack_test.cpp
++    src/util/moc_included_test.cpp
++  )
++  if(BUILD_BENCH)
++    set(
++      src-mixxx-test
++      ${src-mixxx-test}
++      src/test/engineeffectsdelay_test.cpp
++      src/test/movinginterquartilemean_test.cpp
++      src/test/nativeeffects_test.cpp
++      src/test/ringdelaybuffer_test.cpp
++      src/test/sampleutiltest.cpp
++    )
++  endif()
+ 
+-# Benchmarking
+-add_custom_target(mixxx-benchmark
+-  COMMAND $<TARGET_FILE:mixxx-test> --benchmark
+-  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+-  COMMENT "Mixxx Benchmarks"
+-  VERBATIM
+-)
+-add_dependencies(mixxx-benchmark mixxx-test)
++  add_executable(mixxx-test ${src-mixxx-test})
++
++  target_precompile_headers(mixxx-test REUSE_FROM mixxx-lib)
++  set_target_properties(mixxx-test PROPERTIES AUTOMOC ON)
++  target_link_libraries(mixxx-test PRIVATE mixxx-lib mixxx-gitinfostore GTest::gtest GTest::gmock)
++
++  if(BUILD_BENCH)
++    add_compile_definitions(USE_BENCH)
++    target_link_libraries(mixxx-test PRIVATE benchmark::benchmark)
++  endif()
++
++  # Test Suite
++  include(CTest)
++  include(GoogleTest)
++  enable_testing()
++  gtest_add_tests(
++    TARGET mixxx-test
++    EXTRA_ARGS --logLevel info
++    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++    TEST_LIST testsuite
++  )
++
++  if (NOT WIN32)
++    # Default to offscreen rendering during tests.
++    # This is required if the build system like Fedora koji/mock does not
++    # allow to pass environment variables into the ctest macro expansion.
++    set_tests_properties(${testsuite} PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
++  endif()
++
++  if(BUILD_BENCH)
++    # Benchmarking
++    add_custom_target(mixxx-benchmark
++      COMMAND $<TARGET_FILE:mixxx-test> --benchmark
++      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++      COMMENT "Mixxx Benchmarks"
++      VERBATIM
++    )
++    add_dependencies(mixxx-benchmark mixxx-test)
++  endif()
++endif() # BUILD_TESTING
+ 
+ #
+ # Resources
+@@ -2245,8 +2283,10 @@ endif()
+ 
+ target_sources(mixxx PRIVATE res/mixxx.qrc)
+ set_target_properties(mixxx PROPERTIES AUTORCC ON)
+-target_sources(mixxx-test PRIVATE res/mixxx.qrc)
+-set_target_properties(mixxx-test PROPERTIES AUTORCC ON)
++if(BUILD_TESTING)
++  target_sources(mixxx-test PRIVATE res/mixxx.qrc)
++  set_target_properties(mixxx-test PROPERTIES AUTORCC ON)
++endif()
+ 
+ if (MIXXX_VERSION_PRERELEASE STREQUAL "")
+    set(MIXXX_VERSION "${CMAKE_PROJECT_VERSION}")
+@@ -3510,7 +3550,7 @@ endif()
+ # Google PerfTools
+ option(GPERFTOOLS "Google PerfTools libtcmalloc linkage" OFF)
+ option(GPERFTOOLSPROFILER "Google PerfTools libprofiler linkage" OFF)
+-if(GPERFTOOLS OR GPERFTOOLSPROFILER)
++if((BUILD_BENCH) AND (GPERFTOOLS OR GPERFTOOLSPROFILER))
+   find_package(GPerfTools REQUIRED)
+   if(GPERFTOOLS)
+     target_link_libraries(mixxx-lib PRIVATE GPerfTools::tcmalloc)
+@@ -3556,7 +3596,9 @@ if(LILV)
+   )
+   target_compile_definitions(mixxx-lib PUBLIC __LILV__)
+   target_link_libraries(mixxx-lib PRIVATE lilv::lilv)
+-  target_link_libraries(mixxx-test PRIVATE lilv::lilv)
++  if(BUILD_TESTING)
++    target_link_libraries(mixxx-test PRIVATE lilv::lilv)
++  endif()
+ endif()
+ 
+ # Live Broadcasting (Shoutcast)
+
+From 25769771e3b70047c8c52256a804454510707e4b Mon Sep 17 00:00:00 2001
+From: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
+Date: Fri, 31 Jan 2025 16:28:31 +0000
+Subject: [PATCH 2/2] Slight adaptation for test.main.cpp
+
+---
+ src/test/main.cpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/test/main.cpp b/src/test/main.cpp
+index 80d58bcd41b..58ba97a85e4 100644
+--- a/src/test/main.cpp
++++ b/src/test/main.cpp
+@@ -1,4 +1,6 @@
++#ifdef USE_BENCH
+ #include <benchmark/benchmark.h>
++#endif
+ 
+ #include "errordialoghandler.h"
+ #include "mixxxtest.h"
+@@ -8,6 +10,7 @@ int main(int argc, char **argv) {
+     // We never want to popup error dialogs when running tests.
+     ErrorDialogHandler::setEnabled(false);
+ 
++#ifdef USE_BENCH
+     bool run_benchmarks = false;
+     for (int i = 0; i < argc; ++i) {
+         if (strcmp(argv[i], "--benchmark") == 0) {
+@@ -33,4 +36,9 @@ int main(int argc, char **argv) {
+     } else {
+         return RUN_ALL_TESTS();
+     }
++#else
++    testing::InitGoogleTest(&argc, argv);
++    MixxxTest::ApplicationScope applicationScope(argc, argv);
++    return RUN_ALL_TESTS();
++#endif
+ }

diff --git a/media-sound/mixxx/mixxx-2.5.0.ebuild b/media-sound/mixxx/mixxx-2.5.0.ebuild
new file mode 100644
index 000000000000..46c613f56911
--- /dev/null
+++ b/media-sound/mixxx/mixxx-2.5.0.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic toolchain-funcs 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"
+IUSE="aac benchmark ffmpeg keyfinder lv2 midi modplug mp3 mp4 opus"
+IUSE+=" qtkeychain rubberband shout test upower wavpack"
+REQUIRED_USE="
+	benchmark? ( test )
+	qtkeychain? ( shout )
+	test? ( aac ffmpeg midi mp3 opus rubberband )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	dev-db/sqlite:3
+	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/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-2
+	media-sound/lame
+	virtual/glu
+	virtual/libusb:1
+	virtual/udev
+	x11-libs/libX11
+	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 )
+"
+DEPEND="${RDEPEND}
+	dev-cpp/ms-gsl
+	test? ( dev-cpp/gtest )
+"
+BDEPEND="
+	dev-util/spirv-tools
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	# Building mixxx-test target only with explicit test useflag
+	"${FILESDIR}"/${P}-tests.patch
+	# 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
+)
+
+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.
+	tc-is-lto && append-flags $(test-flags -ffat-lto-objects)
+
+	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
+		-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)"
+		-DQML=ON
+		-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
+}


             reply	other threads:[~2025-02-10 20:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 20:42 Andreas Sturmlechner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-06-22  9:47 [gentoo-commits] repo/gentoo:master commit in: media-sound/mixxx/files/, media-sound/mixxx/ Sam James
2025-03-10 17:05 Andreas Sturmlechner
2025-02-10 20:42 Andreas Sturmlechner
2025-01-30 22:39 Andreas Sturmlechner
2022-05-10 17:53 Miroslav Šulc
2021-01-04  9:17 Miroslav Šulc
2020-08-11  7:27 Miroslav Šulc
2020-06-08  9:19 Lars Wendler
2020-01-24 22:48 Andreas Sturmlechner
2018-12-26  0:04 Lars Wendler
2016-07-22  0:22 Lars Wendler
2016-07-21 21:16 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1739220110.539b05c45b2d0f5800ae69e2e0865e0b9dd64d30.asturm@gentoo \
    --to=asturm@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox