Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 914764 - media-sound/mixxx-2.5.0 version bump w/ port to Qt6 and dropping dev-qt/qtscript:5
Summary: media-sound/mixxx-2.5.0 version bump w/ port to Qt6 and dropping dev-qt/qtscr...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Professional Audio Applications Maintainers
URL:
Whiteboard:
Keywords: PATCH, PullRequest
: 928275 949196 (view as bug list)
Depends on:
Blocks: qtscript-removal 949928
  Show dependency tree
 
Reported: 2023-09-26 20:05 UTC by jospezial
Modified: 2025-02-18 22:18 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
mixxx-9999.ebuild_qt6.patch (mixxx-9999.ebuild_qt6.patch,3.51 KB, patch)
2024-02-18 15:29 UTC, jospezial
Details | Diff
mixxx-9999.ebuild (mixxx-9999.ebuild,3.00 KB, text/plain)
2024-02-24 23:31 UTC, jospezial
Details
mixxx-9999.ebuild (mixxx-9999.ebuild,3.10 KB, text/plain)
2024-03-14 14:17 UTC, jospezial
Details
docs patch rebased because of stile changes (mixxx-9999-docs.patch,687 bytes, patch)
2024-12-27 21:40 UTC, jospezial
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description jospezial 2023-09-26 20:05:47 UTC
https://github.com/mixxxdj/mixxx/commit/850029cd688155a04991595be58e4adffc9ba183
"CMakeLists: Default QT6 to ON"

Please add QT6 dependencies and a QT5 USE flag to the ebuild.

-DQT6="$(usex QT5 off on)" #-DQT6=OFF if QT5 enabled

qml could also be interesting to enable.
Comment 2 Andreas Sturmlechner gentoo-dev 2023-10-24 19:48:56 UTC
Turns out 2.4-beta and 2.4 branch is a thing. It still supports Qt5, so in a first step, if not providing Qt6, looking at ebuilds without dev-qt/qtscript:5 would be nice.
Comment 3 jospezial 2023-10-24 22:07:10 UTC
I think 2.4-beta is to old with date of May.
Most of the commits go first into 2.4 branch and then into main.
I have the feeling a 2.4 release is near.
https://github.com/mixxxdj/mixxx/projects/3
The 2.3 Branch development seems dead with last commit in August when 2.3.6 was released.

-mixxx-2.3.9999.ebuild
+mixxx-2.4.9999.ebuild
Comment 4 Alfred Wingate 2023-12-03 14:48:40 UTC
https://github.com/mixxxdj/mixxx/commit/94dde618a4e5448c92a24fe77f4ec22a3ef4f7ea

Looks like they want to support qt6 officially in 2.5.
Comment 5 jospezial 2024-01-16 13:52:41 UTC
https://github.com/mixxxdj/mixxx/commit/3f0045b5924131d7664a75ff42e490ed6ef04848
"add qt6-qpa-plugins to dependencies
    main"
Comment 6 Andreas Sturmlechner gentoo-dev 2024-01-16 14:18:46 UTC
(In reply to Alfred Wingate from comment #4)
> https://github.com/mixxxdj/mixxx/commit/
> 94dde618a4e5448c92a24fe77f4ec22a3ef4f7ea
> 
> Looks like they want to support qt6 officially in 2.5.
We need something that can be stabilised and Qt6-based software will not make that cut for a while.
Comment 7 jospezial 2024-02-16 17:55:10 UTC
(In reply to Andreas Sturmlechner from comment #6)
> (In reply to Alfred Wingate from comment #4)
> > https://github.com/mixxxdj/mixxx/commit/
> > 94dde618a4e5448c92a24fe77f4ec22a3ef4f7ea
> > 
> > Looks like they want to support qt6 officially in 2.5.
> We need something that can be stabilised and Qt6-based software will not
> make that cut for a while.

There you have it:
https://github.com/mixxxdj/mixxx/releases/tag/2.4.0

"Mixxx 2.4 does not fully support Qt6, use 2.5/main instead. "
        "Qt6 support is available for CI checks only and requires the environment variable GITHUB_ACTIONS to be set."

I will try to convert the live ebuild to qt6.
Comment 8 jospezial 2024-02-18 15:29:13 UTC
Created attachment 885362 [details, diff]
mixxx-9999.ebuild_qt6.patch

Works with qt6. I did not test with qt5.
Experimental QML gui also works.

The resulting mixxx-9999.ebuild could also work for mixxx-2.4 . You could set qt5 USEflag to +qt5 then.

Would be nice if we could solve Bug 822357 to get rid of the tests and benchmark builds and dependencies.
Comment 9 jospezial 2024-02-24 12:02:12 UTC
Miroslav, what is you opinion? Would you like to merge the patch?
Comment 10 Andreas Sturmlechner gentoo-dev 2024-02-24 12:06:13 UTC
Your patch lacks a bit of alphanumerical sorting and there's at least one error:

> !qt5? ( qtkeychain? ( dev-libs/qtkeychain:=[qt6(+)] ) )

...means that Qt6 functionality will be assumed even in *older* versions of qtkeychain that did not have the flag.
Comment 11 Andreas Sturmlechner gentoo-dev 2024-02-24 20:34:11 UTC
plus it is highly unlikely that dev-cpp/gtest and dev-cpp/benchmark are RDEPENDs.
Comment 12 jospezial 2024-02-24 23:31:04 UTC
Created attachment 885914 [details]
mixxx-9999.ebuild

sorted the deps
It is hard for me to decide whether they are build depends or also run depends and why dev-cpp/ms-gsl is in DEPEND.
Should the cmake args also be sorted? By cmake option?
I think now they are sorted by appearance in cmakelist.txt or logical and a little alphanumerical/USEflags.

I'll attach an ebuild.patch again when all is good.
Comment 13 jospezial 2024-02-27 22:33:01 UTC
Should I add something like --prefix= or ${ED} for the insinto ?
Comment 14 jospezial 2024-03-14 14:17:28 UTC
Created attachment 887644 [details]
mixxx-9999.ebuild

added dep on dev-qt/qtshadertools
https://github.com/mixxxdj/mixxx/commit/bdb6630669edf8aefe9a5f9eb5dda1ecbb812c9f
and dev-qt/qt5compat
Comment 15 jospezial 2024-04-04 11:03:55 UTC
Maybe we need to restrict mixxx to <qt-6.7 until upstream or we have have a patch.
Comment 16 jospezial 2024-07-31 12:46:42 UTC
(In reply to jospezial from comment #15)
> Maybe we need to restrict mixxx to <qt-6.7 until upstream or we have have a
> patch.

https://github.com/mixxxdj/mixxx/releases/tag/2.4.1

That was released in May and fixes the qt-6.7 bug.
Comment 17 Chicago 2024-09-06 06:39:06 UTC
Good build! Thanks for the hard work. I tested with all flags enabled except doc and qt5.

Help -> About -> Git Version 2.6-alpha-83-gcf82b35ea6-modified (HEAD)

I tried to build the 2.4.1 point release too and saw the same message from comment #7.

Regardless, I did have to add a little bit of a patch when I was trying to use a 2.4.1 ebuild because ${S} is different.

--- mixxx-9999.ebuild   2024-09-06 05:07:52.344069547 +0000
+++ mixxx-2.4.1-r2.ebuild       2024-09-06 05:15:13.383797121 +0000
@@ -15,7 +15,7 @@
        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}"
+       S="${WORKDIR}/${PN}-${PV}"
        KEYWORDS="~amd64 ~x86"
 fi


I have not tried a 2.5.9999 and am pretty happy HEAD builds and runs.

Thanks!!
Comment 18 jospezial 2024-09-06 13:20:08 UTC
(In reply to Chicago from comment #17)
> Good build! Thanks for the hard work. I tested with all flags enabled except
> doc and qt5.
> 
> Help -> About -> Git Version 2.6-alpha-83-gcf82b35ea6-modified (HEAD)
> 
> I tried to build the 2.4.1 point release too and saw the same message from
> comment #7.
> 
> Regardless, I did have to add a little bit of a patch when I was trying to
> use a 2.4.1 ebuild because ${S} is different.
> 
> --- mixxx-9999.ebuild   2024-09-06 05:07:52.344069547 +0000
> +++ mixxx-2.4.1-r2.ebuild       2024-09-06 05:15:13.383797121 +0000
> @@ -15,7 +15,7 @@
>         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}"
> +       S="${WORKDIR}/${PN}-${PV}"
>         KEYWORDS="~amd64 ~x86"
>  fi
> 
> 
> I have not tried a 2.5.9999 and am pretty happy HEAD builds and runs.
> 
> Thanks!!

I notice SRC_URI is also wrong. "release" was from mixxx 2.2 time.
Some changes that went into 2.3.x ::gentoo ebuilds in January 2022 (for example disabling the S= line and changed SRC_URI) have not found its way into 9999.

We will have to compare and check which of these changes are still needed for live and latest releases.
Comment 19 jospezial 2024-11-29 14:22:23 UTC
mixxx-2.4.2 has been released.
Comment 20 jospezial 2024-12-27 21:40:22 UTC
Created attachment 915339 [details, diff]
docs patch rebased because of stile changes
Comment 21 Gino McCarty 2024-12-27 23:49:37 UTC
*** Bug 928275 has been marked as a duplicate of this bug. ***
Comment 22 Gino McCarty 2024-12-28 05:21:02 UTC
This is a pretty old ticket but here is a diff that someone asked for in my ebuild proposal for 2.4.0 bumped to 2.5.0

tested against 2.5.0
I dropped qt5 because upstream is already going to drop it and qt6 is stable.


--- /var/db/repos/gentoo/media-sound/mixxx/mixxx-9999.ebuild	2024-12-27 21:02:20.224421134 -0800
+++ /var/db/repos/local/media-sound/mixxx/mixxx-2.5.0.ebuild	2024-12-27 21:07:56.445139368 -0800
@@ -1,10 +1,11 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
 inherit cmake xdg udev
 
+MY_PV=$(ver_cut 1-2)
 DESCRIPTION="Advanced Digital DJ tool based on Qt"
 HOMEPAGE="https://mixxx.org/"
 if [[ ${PV} == *9999 ]] ; then
@@ -14,31 +15,26 @@
 	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/refs/tags/${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 +ffmpeg hid keyfinder lv2 modplug mp3 mp4 opus qtkeychain +rubberband shout test wavpack"
+RESTRICT=""
+S="${WORKDIR}/${P/_/-}"
 
 RDEPEND="
+	dev-cpp/benchmark
+	dev-cpp/gtest
+	dev-cpp/ms-gsl
 	dev-db/sqlite
 	dev-libs/glib:2
 	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
+	dev-qt/qtbase[concurrent,cups,dbus,gui,network,opengl,sql,widgets,xml]
+	dev-qt/qt5compat:6
+	dev-qt/qtsvg:6
+	dev-qt/qtdeclarative:6
 	media-libs/chromaprint
 	media-libs/flac:=
 	media-libs/libebur128
@@ -49,16 +45,19 @@
 	media-libs/libvorbis
 	media-libs/portaudio
 	media-libs/portmidi
-	media-libs/rubberband
-	media-libs/taglib:=
+	rubberband? ( media-libs/rubberband )
+	media-libs/taglib
 	media-libs/vamp-plugin-sdk
-	sci-libs/fftw:3.0=
+	media-sound/lame
 	sys-power/upower
+	sys-libs/zlib
 	virtual/glu
 	virtual/libusb:1
 	virtual/opengl
 	virtual/udev
-	x11-libs/libX11
+	test? (
+		dev-util/gperf
+	)
 	aac? (
 		media-libs/faad2
 		media-libs/libmp4v2
@@ -66,62 +65,86 @@
 	ffmpeg? ( media-video/ffmpeg:= )
 	hid? ( dev-libs/hidapi )
 	keyfinder? ( media-libs/libkeyfinder )
+	!keyfinder? ( sci-libs/fftw:3.0= )
 	lv2? ( media-libs/lilv )
+	modplug? ( media-libs/libmodplug )
 	mp3? ( media-libs/libmad )
 	mp4? ( media-libs/libmp4v2:= )
 	opus? (	media-libs/opusfile )
-	qtkeychain? ( dev-libs/qtkeychain:=[qt5(+)] )
-	shout? ( >=media-libs/libshout-2.4.5 )
+	qtkeychain? (
+		dev-libs/qtkeychain:=[qt6(+)]
+	)
 	wavpack? ( media-sound/wavpack )
 "
+	# libshout-idjc-2.4.6 is required. Please check and re-add once it's
+	# available in ::gentoo
+	# Meanwhile we're using the bundled libshout-idjc. See bug #775443
+	#shout? ( >=media-libs/libshout-idjc-2.4.6 )
+
 DEPEND="${RDEPEND}
-	dev-cpp/ms-gsl
 "
 BDEPEND="
-	dev-qt/qttest:5
-	dev-qt/qtxmlpatterns:5
 	virtual/pkgconfig
 "
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-9999-docs.patch
+	"${FILESDIR}"/${PN}-2.3.0-docs.patch
+	"${FILESDIR}"/${PN}-2.3.0-cmake.patch
 )
 
+PLOCALES="
+	ca cs de en es fi fr gl id it ja nl pl pt ro ru sl sq sr tr
+"
+
+mixxx_set_globals() {
+	local lang
+	local MANUAL_URI_BASE="https://downloads.mixxx.org/manual/${MY_PV}"
+	for lang in ${PLOCALES} ; do
+		SRC_URI+=" l10n_${lang}? ( ${MANUAL_URI_BASE}/${PN}-manual-${MY_PV}-${lang}.pdf )"
+		IUSE+=" l10n_${lang/ en/ +en}"
+	done
+	SRC_URI+=" ${MANUAL_URI_BASE}/${PN}-manual-${MY_PV}-en.pdf"
+}
+mixxx_set_globals
+
 src_configure() {
 	local mycmakeargs=(
+		-DGPERFTOOLS="$(usex test on off)"
+		-DGPERFTOOLSPROFILER="$(usex test on off)"
+		-DBATTERY="off"
+		-DBROADCAST="$(usex shout on off)"
+		-DCCACHE_SUPPORT="off"
+		-DENGINEPRIME="OFF"
 		-DFAAD="$(usex aac on off)"
 		-DFFMPEG="$(usex ffmpeg on off)"
 		-DHID="$(usex hid on off)"
+		-DINSTALL_USER_UDEV_RULES=OFF
+		-DKEYFINDER="$(usex keyfinder on off)"
 		-DLILV="$(usex lv2 on off)"
 		-DMAD="$(usex mp3 on off)"
+		-DMODPLUG="$(usex modplug on off)"
 		-DOPTIMIZE="off"
-		-DCCACHE_SUPPORT="off"
 		-DOPUS="$(usex opus on off)"
-		-DBROADCAST="$(usex shout on off)"
+		-DQT6="on"
+		-DQTKEYCHAIN="$(usex qtkeychain on off)"
+		-DRUBBERBAND="$(usex rubberband on off)"
 		-DVINYLCONTROL="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
 	)
 
-	if [[ ${PV} == 9999 ]] ; then
-		mycmakeargs+=(
-			-DENGINEPRIME="OFF"
-		)
-	fi
 	cmake_src_configure
 }
 
 src_install() {
 	cmake_src_install
 	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
+	dodoc README.md CHANGELOG.md
+	local locale
+	for locale in ${PLOCALES} ; do
+		if use l10n_${locale} ; then
+			dodoc "${DISTDIR}"/${PN}-manual-${MY_PV}-${locale}.pdf
+		fi
+	done
 }
 
 pkg_postinst() {
Comment 24 Alfred Wingate 2025-02-01 15:42:05 UTC
*** Bug 949196 has been marked as a duplicate of this bug. ***
Comment 25 Larry the Git Cow gentoo-dev 2025-02-10 20:42:20 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5184a59aa626c6bda8eee053f633354595687596

commit 5184a59aa626c6bda8eee053f633354595687596
Author:     Nicolas PARLANT <nicolas.parlant@parhuet.fr>
AuthorDate: 2025-01-20 13:08:26 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2025-02-10 20:41:50 +0000

    media-sound/mixxx: update 9999 qt6, tests
    
    *qt6 port
    
    *eclass:
    add flag-o-matic/toolchain-funcs to prevent ld error with lto
    
    *deps:
    add dev-libs/hidapi (required even with HID=OFF)
    add dev-qt/qtbase:6[icu] for utf16 (test too)
    add dev-util/spirv-tools for qsb (bdep)
    add media-libs/libid3tag for mp3 support
    add media-sound/lame, required
    del sci-libs/fftw, only required with static keyfinder
    del virtual/opengl, redundant
    del media-libs/vamp-plugin-sdk is no more a dep (2.3.0)
    del media-libs/libshout, use internal libshout-idjc instead
    
    *deps benchmark:
    add dev-cpp/benchmark
    add dev-cpp/gtest
    add dev-util/gperftools
    
    *useflag:
    add benchmark midi modplug test upower
    del doc because no bdep
    
    Closes: https://bugs.gentoo.org/914764
    Closes: https://bugs.gentoo.org/822357
    Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 .../mixxx-2.5.0-fix-strict-aliasing-kaitai.patch   | 115 +++++++++++++++
 media-sound/mixxx/files/mixxx-9999-docs.patch      |  28 ----
 media-sound/mixxx/metadata.xml                     |   6 +-
 media-sound/mixxx/mixxx-9999.ebuild                | 159 +++++++++++++--------
 4 files changed, 217 insertions(+), 91 deletions(-)