summaryrefslogtreecommitdiff
path: root/media-sound/mixxx
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/mixxx')
-rw-r--r--media-sound/mixxx/Manifest9
-rw-r--r--media-sound/mixxx/files/mixxx-2.5.0-fix-strict-aliasing-kaitai.patch115
-rw-r--r--media-sound/mixxx/files/mixxx-2.5.0-tests.patch444
-rw-r--r--media-sound/mixxx/files/mixxx-9999-docs.patch28
-rw-r--r--media-sound/mixxx/metadata.xml6
-rw-r--r--media-sound/mixxx/mixxx-2.5.0.ebuild172
-rw-r--r--media-sound/mixxx/mixxx-9999.ebuild159
7 files changed, 839 insertions, 94 deletions
diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest
index a1d8fa4827ee..95074b8b2fa9 100644
--- a/media-sound/mixxx/Manifest
+++ b/media-sound/mixxx/Manifest
@@ -1,8 +1,10 @@
AUX mixxx-2.3.0-cmake.patch 556 BLAKE2B 2757a1c72f4ad052aacd17fba1934a106c34971ac3fb0af2b3a65ebc0eacdcc9809949697aaba6166ae45ab1876a4cc6e6759eb90317efff73b8ab629b506078 SHA512 277fe726ad2d656f97a7350bf6e32bc77b93fb5d6ccddf5bacb7cfa35a9e78dd772b9823097b672ce6a0a4ef8d62222629a375b77ed6cd4e3d201593833d6252
AUX mixxx-2.3.0-docs.patch 626 BLAKE2B 73eca9849d69112edd254bd28329b360c31434eb1a4bcb626ca9fcfc0b00dee2c9f9d81d83302fbe0718be9e5a47a1748835013f20398eeb4e50c5e81b78a172 SHA512 2de279b48463d214ef7c9da58c58fb10d0fb300afe80b01e1981f4df15a5f7da1079b53ca1422dc0d69da8a367fe4693ba002a351e57f95fa1b24d5ec7fb12a4
AUX mixxx-2.3.1-benchmark_compile_fix.patch 220 BLAKE2B 28c5a7fe5e6e465bd7d9445e741d366341fadcb8d142961cf25d6b57aabcc453f74cbb0d3f63b01df5e65e7151a9e59545c50b52e732234ae6a734eb171cef82 SHA512 d301a87760a0162a9e09e08dd544183219776c61d2810d75c37d39a9ac9fcf8a329681e53ca922864ccafeb98231cbeea565db2196e56bf62417a09b40bae4b8
-AUX mixxx-9999-docs.patch 695 BLAKE2B 5f639550ff8aca7f7aeed8d4d6dfd44e2b0eb8c3cc3f5c6578ff802dfd4c11fa8a9fdf3f820ec8e4fdb1449abcc50673a06b4dac74ba4916b6111e8117474002 SHA512 cd34b4faeb939a1d802936b9b4f740f252ba572926815726f1957df6cc07a362ae03d9772484188dfc0ebcc942808c06ef2c9bab8df6164de4b2b65a447d9f92
+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
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
@@ -27,5 +29,6 @@ DIST mixxx-manual-2.3-tr.pdf 34062405 BLAKE2B 69b5f76b4e74aa0d48636ae3914a6f40e0
DIST mixxx-manual-2.3-zh-CN.pdf 34165133 BLAKE2B 58e717082ace6824532392a282cd1452c279410c547fabc333b6adccaf47fb8e4bbac0c612f9679c8d85317e9b706e5fe10b7c1fc11a4325a14c5b3faafdda46 SHA512 995fb6c9bf1f729eaa08cd5b2003f21c76274f8f3046bd85b771cb86c429fa65cc50f0f4a36396e654a4378125157777b2f0f04a9343b20aa3aef76281395aec
DIST mixxx-manual-2.3-zh-TW.pdf 34135938 BLAKE2B b5747b2156d686bb84166beb2c1552e0d998f3c402793444631c1f146c93fd8f6addb5fc34c0f59b16b2866994b8f64ee5670ab26c683d51b0c36d3f247dcf70 SHA512 55a5c3d5064c021f73a48dab5fb93094bc0f9220a1790518b043a21900dc6792a2fc01ee5c6def6338a3df09bcbb7441e1c8b2f23aac2aad2b2a5974babb8a9f
EBUILD mixxx-2.3.6-r2.ebuild 3789 BLAKE2B d0cd7dc74efb4ada400784f34aa6d2a740fa574f80779bf6a6b3e7c0bf9b75c81699ef817d733a79d3e221f2765bee1856d29e31384ce016a701e6a6ef275344 SHA512 7e104c7e527fd2970da7bd8b8e8257078dc05396abdaad3b5b3e15b4ea5dfa9c5430ed35a9ec6487b67186a63987dc5030861bdd349b5a956f0a4062c4f2a34e
-EBUILD mixxx-9999.ebuild 2832 BLAKE2B aa5912396d6b736384284cf140501481c49209c8176c341b569142259871733b93dc52d060142b10db930cb4b5d1e70c04f42dc458c2eaac3d70bacb8c3bba01 SHA512 311efcdad637026d8fa1b26a1f94a74cf1ed70cb15813f5d52b4406184371ce1db716c0e210ab72855cd81f08435f2751f0469fad7d5869e679b53d0ca7c2766
-MISC metadata.xml 903 BLAKE2B 1fd2e01da4d96a257d0ba595e67005e5233503f54ea17c81f65d105a61dc42f84df601cc112ff0a5e99393cbc53a0130b890d96a47cc2b88b59cbe7b9779654d SHA512 7e9dfd69240a57efbdaceb4dcfe71549d7a8c2edba5c81f956407e101cb62a0c51cf231e1e68c029783340189139309dde4fa3e995a231856ea094df09288cd8
+EBUILD mixxx-2.5.0.ebuild 4170 BLAKE2B 4885247215b20cf699905386827f11ddba97e071729a12dbc7d870d6928a3a74a7e7403dccaf3c6c8ff984c1353479033aab14a27c6d4c9598d7115a8ebdde47 SHA512 5424973ab91f6fc46eca96bf268455cbb1f2109c52ee4b78c90d2f6696c11bae487022d89ffaab240d8e919939489d56a619d88f86c0d096cea7e0c63d4e9ff1
+EBUILD mixxx-9999.ebuild 4076 BLAKE2B 8167a113b684b9375a1ac4d159a419a319cac9efccce0f766774ca1c900989f805c8ec5ac6301702d89746ded5c3bcff100ee1a53d435b01b9f40101a2a52e76 SHA512 fdbdb70f8cd72ac3677d8731a2771067b6c46d242bc093be45ada9f5cdeef6381494424f57e4648d135a6e7926b042407b5b6a400cc229b99de3b01bfd81b1d3
+MISC metadata.xml 1223 BLAKE2B 4766cdc5a3a4baac92ea43893535bcfc70a13a4ff5ba07b1e29df361e5b32108df91a1899d25f312be77b45bbae8ba949847a47ec50782c64eaae3b9f76764d5 SHA512 f7e87ed465425aca876e44db06e0c02237f54fc6ae7b5b44c81dec1e33cc8e63194013092149e56d07ff8b083deae1afe270b2ff46344c08f5b3147f51fe429b
diff --git a/media-sound/mixxx/files/mixxx-2.5.0-fix-strict-aliasing-kaitai.patch b/media-sound/mixxx/files/mixxx-2.5.0-fix-strict-aliasing-kaitai.patch
new file mode 100644
index 000000000000..2f06bbbb9c78
--- /dev/null
+++ b/media-sound/mixxx/files/mixxx-2.5.0-fix-strict-aliasing-kaitai.patch
@@ -0,0 +1,115 @@
+https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime/commit/c01f5300159a698b6e706caba21e1965d5fc94a7.patch
+diff --git a/lib/kaitai/kaitai/kaitaistream.cpp b/lib/kaitai/kaitai/kaitaistream.cpp
+index bd914c3..d3b2fcd 100644
+--- a/lib/kaitai/kaitai/kaitaistream.cpp
++++ b/lib/kaitai/kaitai/kaitaistream.cpp
+@@ -32,10 +32,57 @@
+ #include <byteswap.h>
+ #endif
+
++#include <cstring> // std::memcpy
+ #include <iostream>
+ #include <vector>
+ #include <stdexcept>
+
++#ifdef KAITAI_STREAM_H_CPP11_SUPPORT
++#include <type_traits> // std::enable_if, std::is_trivially_copyable, std::is_trivially_constructible
++
++// Taken from https://en.cppreference.com/w/cpp/numeric/bit_cast#Possible_implementation
++// (only adjusted for C++11 compatibility)
++template<class To, class From>
++typename std::enable_if<
++ sizeof(To) == sizeof(From) &&
++ std::is_trivially_copyable<From>::value &&
++ std::is_trivially_copyable<To>::value,
++ To
++>::type
++// constexpr support needs compiler magic
++static bit_cast(const From &src) noexcept
++{
++ static_assert(std::is_trivially_constructible<To>::value,
++ "This implementation additionally requires "
++ "destination type to be trivially constructible");
++
++ To dst;
++ std::memcpy(&dst, &src, sizeof(To));
++ return dst;
++}
++#else
++// The following implementation of `StaticAssert` was inspired by https://stackoverflow.com/a/6765840
++
++// empty default template
++template <bool b>
++struct StaticAssert;
++
++// template specialized on true
++template <>
++struct StaticAssert<true> {};
++
++template<class To, class From>
++To
++static bit_cast(const From &src)
++{
++ StaticAssert<sizeof(To) == sizeof(From)>();
++
++ To dst;
++ std::memcpy(&dst, &src, sizeof(To));
++ return dst;
++}
++#endif
++
+ kaitai::kstream::kstream(std::istream *io) {
+ m_io = io;
+ init();
+@@ -263,7 +310,7 @@ float kaitai::kstream::read_f4be() {
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ t = bswap_32(t);
+ #endif
+- return reinterpret_cast<float &>(t);
++ return bit_cast<float>(t);
+ }
+
+ double kaitai::kstream::read_f8be() {
+@@ -272,7 +319,7 @@ double kaitai::kstream::read_f8be() {
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ t = bswap_64(t);
+ #endif
+- return reinterpret_cast<double &>(t);
++ return bit_cast<double>(t);
+ }
+
+ // ........................................................................
+@@ -285,7 +332,7 @@ float kaitai::kstream::read_f4le() {
+ #if __BYTE_ORDER == __BIG_ENDIAN
+ t = bswap_32(t);
+ #endif
+- return reinterpret_cast<float &>(t);
++ return bit_cast<float>(t);
+ }
+
+ double kaitai::kstream::read_f8le() {
+@@ -294,7 +341,7 @@ double kaitai::kstream::read_f8le() {
+ #if __BYTE_ORDER == __BIG_ENDIAN
+ t = bswap_64(t);
+ #endif
+- return reinterpret_cast<double &>(t);
++ return bit_cast<double>(t);
+ }
+
+ // ========================================================================
+diff --git a/lib/kaitai/kaitai/kaitaistream.h b/lib/kaitai/kaitai/kaitaistream.h
+index c8b5a3a..d58ae8e 100644
+--- a/lib/kaitai/kaitai/kaitaistream.h
++++ b/lib/kaitai/kaitai/kaitaistream.h
+@@ -4,6 +4,11 @@
+ // Kaitai Struct runtime API version: x.y.z = 'xxxyyyzzz' decimal
+ #define KAITAI_STRUCT_VERSION 11000L
+
++// check for C++11 support - https://stackoverflow.com/a/40512515
++#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900)
++#define KAITAI_STREAM_H_CPP11_SUPPORT
++#endif
++
+ #include <istream>
+ #include <sstream>
+ #include <stdint.h>
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/files/mixxx-9999-docs.patch b/media-sound/mixxx/files/mixxx-9999-docs.patch
deleted file mode 100644
index 0ac74959df2e..000000000000
--- a/media-sound/mixxx/files/mixxx-9999-docs.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e35d8dd4e1..798179955c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1504,23 +1504,6 @@ install(
- "${MIXXX_INSTALL_LICENSEDIR}"
- )
-
--# Documentation
--install(
-- FILES
-- "${CMAKE_CURRENT_SOURCE_DIR}/README.md"
-- "${CMAKE_CURRENT_SOURCE_DIR}/res/Mixxx-Keyboard-Shortcuts.pdf"
-- DESTINATION
-- "${MIXXX_INSTALL_DOCDIR}"
--)
--if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/res/Mixxx-Manual.pdf")
-- install(
-- FILES
-- "${CMAKE_CURRENT_SOURCE_DIR}/res/Mixxx-Manual.pdf"
-- DESTINATION
-- "${MIXXX_INSTALL_DOCDIR}"
-- )
--endif()
--
- # Additional Linux-only files
- if(UNIX AND NOT APPLE)
- # .desktop file for KDE/GNOME menu
diff --git a/media-sound/mixxx/metadata.xml b/media-sound/mixxx/metadata.xml
index 38deddc8020f..8b62b2d0884f 100644
--- a/media-sound/mixxx/metadata.xml
+++ b/media-sound/mixxx/metadata.xml
@@ -6,15 +6,19 @@
<name>Gentoo ProAudio Project</name>
</maintainer>
<use>
+ <flag name="benchmark">Build and install benchmark binary: mixxx-test --benchmark</flag>
<flag name="hid">Enable HID controller support</flag>
<flag name="keyfinder">Enable musical key detection support via <pkg>media-libs/libkeyfinder</pkg></flag>
- <flag name="modplug">Add libmodplug support</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>
+ <flag name="modplug">Add libmodplug support</flag>
<flag name="qtkeychain">Enable Secure credential storage support via <pkg>dev-libs/qtkeychain</pkg></flag>
+ <flag name="rubberband">Enable audio pitch-shifting via <pkg>media-libs/rubberband</pkg></flag>
<flag name="shout">Enable broadcasting support via <pkg>media-libs/libshout</pkg></flag>
</use>
<upstream>
<remote-id type="sourceforge">mixxx</remote-id>
<remote-id type="github">mixxxdj/mixxx</remote-id>
+ <doc>https://downloads.mixxx.org/manual/</doc>
</upstream>
</pkgmetadata>
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
+}
diff --git a/media-sound/mixxx/mixxx-9999.ebuild b/media-sound/mixxx/mixxx-9999.ebuild
index cf915aaeb49f..f443853c094a 100644
--- a/media-sound/mixxx/mixxx-9999.ebuild
+++ b/media-sound/mixxx/mixxx-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit cmake xdg udev
+inherit cmake flag-o-matic toolchain-funcs udev xdg
DESCRIPTION="Advanced Digital DJ tool based on Qt"
HOMEPAGE="https://mixxx.org/"
@@ -14,119 +14,154 @@ if [[ ${PV} == *9999 ]] ; then
fi
EGIT_REPO_URI="https://github.com/mixxxdj/${PN}.git"
else
- SRC_URI="https://github.com/mixxxdj/${PN}/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}/${PN}-release-${PV}"
- KEYWORDS="~amd64 ~x86"
+ 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 doc ffmpeg hid keyfinder lv2 mp3 mp4 opus qtkeychain shout wavpack"
+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
- dev-libs/glib:2
+ dev-db/sqlite:3
+ dev-libs/hidapi
dev-libs/protobuf:=
- dev-qt/qtconcurrent:5
- dev-qt/qtcore:5
- dev-qt/qtdbus:5
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtopengl:5
- dev-qt/qtscript:5[scripttools]
- dev-qt/qtsql:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- dev-qt/qtxml:5
- media-libs/chromaprint
+ 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/libid3tag:=
+ media-libs/libebur128:=
+ media-libs/libglvnd[X]
media-libs/libogg
media-libs/libsndfile
- media-libs/libsoundtouch
+ media-libs/libsoundtouch:=
media-libs/libvorbis
media-libs/portaudio
- media-libs/portmidi
- media-libs/rubberband
<media-libs/taglib-2
- media-libs/vamp-plugin-sdk
- sci-libs/fftw:3.0=
- sys-power/upower
+ media-sound/lame
virtual/glu
virtual/libusb:1
- virtual/opengl
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:= )
- hid? ( dev-libs/hidapi )
keyfinder? ( media-libs/libkeyfinder )
lv2? ( media-libs/lilv )
- mp3? ( media-libs/libmad )
- mp4? ( media-libs/libmp4v2:= )
- opus? ( media-libs/opusfile )
- qtkeychain? ( dev-libs/qtkeychain:=[qt5(+)] )
- shout? ( >=media-libs/libshout-2.4.5 )
+ 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-qt/qttest:5
- dev-qt/qtxmlpatterns:5
+ dev-util/spirv-tools
virtual/pkgconfig
"
PATCHES=(
- "${FILESDIR}"/${PN}-9999-docs.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=(
- -DFAAD="$(usex aac on off)"
- -DFFMPEG="$(usex ffmpeg on off)"
- -DHID="$(usex hid on off)"
- -DLILV="$(usex lv2 on off)"
- -DMAD="$(usex mp3 on off)"
- -DOPTIMIZE="off"
- -DCCACHE_SUPPORT="off"
- -DOPUS="$(usex opus on off)"
- -DBROADCAST="$(usex shout on off)"
- -DVINYLCONTROL="on"
+ -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
- -DWAVPACK="$(usex wavpack on off)"
- -DQTKEYCHAIN="$(usex qtkeychain on off)"
- -DKEYFINDER="$(usex keyfinder on off)"
- -DDOWNLOAD_MANUAL=OFF
- -DBUILD_SHARED_LIBS=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)"
)
- if [[ ${PV} == 9999 ]] ; then
- mycmakeargs+=(
- -DENGINEPRIME="OFF"
- )
- fi
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
-
- if use doc ; then
- dodoc README res/Mixxx-Keyboard-Shortcuts.pdf
- fi
}
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() {