FTBFS with Qt 5.10 in Debian unstable/sid

Bug #1768148 reported by Matteo F. Vescovi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Invalid
High
Unassigned

Bug Description

While testing both mixxx 2.0.0 and mixxx 2.1.0 as Debian maintainer for mixxx, I faced this bad issue.

Bug reports already filed:

  https://bugs.debian.org/896457

and

  https://bugs.debian.org/897150

come from the same origin: v2.0.0 is not Qt 5.10 compatible.

Ibidem for v2.1.0, as you can see at:

  http://debomatic-amd64.debian.net/distribution#unstable/mixxx/2.1.0~dfsg-1/buildlog

Thanks for your time fixing this.

Cheers.

Tags: qt5
RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 2.1.1
milestone: 2.1.1 → none
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Hi Matteo,

Qt 5 is technically unsupported by Mixxx 2.1. Mixxx 2.2 will be our first release with Qt 5 support. Are you enabling Qt 5 for Mixxx 2.1? We would really rather you not do this, as it is not properly tested with Qt 5. In the worst case, you could trigger crashes for our users, which for live performance software is an unacceptable failure.

That said, I think the build failure you're seeing may be fixed by this PR:
https://github.com/mixxxdj/mixxx/pull/1526

Thanks for your work maintaining our package!

Changed in mixxx:
milestone: none → 2.1.1
tags: added: qt5
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Mixxx 2.0.x is superseded by Mixxx 2.1.x, so we won't be making another release of 2.0.x. We could fix this for 2.1.1, but I'd like to stress again that it's unsupported and unstable! Are Qt 4 packages being removed from Debian unstable?

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote : Re: [Bug 1768148] Re: FTBFS with Qt 5.10 in Debian unstable/sid

Hi!

On 2018-05-01 at 00:59 (GMT), RJ Skerry-Ryan wrote:
> Mixxx 2.0.x is superseded by Mixxx 2.1.x, so we won't be making another
> release of 2.0.x. We could fix this for 2.1.1, but I'd like to stress
> again that it's unsupported and unstable! Are Qt 4 packages being
> removed from Debian unstable?

Yes, see https://lists.debian.org/debian-devel-announce/2017/08/msg00006.html

--
Matteo F. Vescovi

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

On 2018-05-01 at 00:57 (GMT), RJ Skerry-Ryan wrote:
> Hi Matteo,
>
> Qt 5 is technically unsupported by Mixxx 2.1. Mixxx 2.2 will be our
> first release with Qt 5 support. Are you enabling Qt 5 for Mixxx 2.1? We
> would really rather you not do this, as it is not properly tested with
> Qt 5. In the worst case, you could trigger crashes for our users, which
> for live performance software is an unacceptable failure.
>
> That said, I think the build failure you're seeing may be fixed by this PR:
> https://github.com/mixxxdj/mixxx/pull/1526

Attached, you'll find the build log for mixxx 2.1.0 packaged using the
PR above. No luck.

Hope this helps.

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Daniel Schürmann (daschuer) wrote :

now you have both definitions:
-D'Q_ASSERT(x)=(void)(false&&(x))' -D'Q_ASSERT(x)=qt_noop()'

Did you apply the patch correct?

Please try:
-D'Q_ASSERT(x)=static_cast<void>(false && (cond))'

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

On Wed, May 2, 2018 at 12:29 AM, Daniel Schürmann
<email address hidden> wrote:
> now you have both definitions:
> -D'Q_ASSERT(x)=(void)(false&&(x))' -D'Q_ASSERT(x)=qt_noop()'
>
> Did you apply the patch correct?
>
> Please try:
> -D'Q_ASSERT(x)=static_cast<void>(false && (cond))'

Ahh... silly me! Since I cannot cherry-pick the commit easily (been it
a PR), I tried the copy/paste approach, but forgot to drop old
definition.
Sorry for the mess.
At this point, anyway, the package fails to build but due to a missing
recent-enough dependency, that is soundtouch.

Feel free to close this bug report.

Cheers.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

While you have a workaround, we should still fix the build failure :).

On Wed, May 2, 2018 at 5:53 AM, Matteo F. Vescovi <
<email address hidden>> wrote:

> Hi!
>
> On Wed, May 2, 2018 at 12:29 AM, Daniel Schürmann
> <email address hidden> wrote:
> > now you have both definitions:
> > -D'Q_ASSERT(x)=(void)(false&&(x))' -D'Q_ASSERT(x)=qt_noop()'
> >
> > Did you apply the patch correct?
> >
> > Please try:
> > -D'Q_ASSERT(x)=static_cast<void>(false && (cond))'
>
> Ahh... silly me! Since I cannot cherry-pick the commit easily (been it
> a PR), I tried the copy/paste approach, but forgot to drop old
> definition.
> Sorry for the mess.
> At this point, anyway, the package fails to build but due to a missing
> recent-enough dependency, that is soundtouch.
>
> Feel free to close this bug report.
>
> Cheers.
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1768148
>
> Title:
> FTBFS with Qt 5.10 in Debian unstable/sid
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1768148/+subscriptions
>

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

On 2018-05-02 at 16:54 (GMT), RJ Skerry-Ryan wrote:
> While you have a workaround, we should still fix the build failure :).

I have this:

lin64_build/widget/wwidgetstack.o -lX11 -lSoundTouch -lebur128 -lportaudio -lasound -lm -lporttime -lportmidi -lQt5OpenGL -lQt5Xml -lQt5Svg -lQt5Sql -lQt5Script -lQt5Network -lQt5Test -lQt5ScriptTools -lQt5Widgets -lQt5Gui -lQt5Concurrent -lQt5DBus -lQt5Core -lsndfile -lFLAC -lvorbisfile -lvorbis -logg -lvorbisenc -lGL -lGLU -ltag -lprotobuf-lite -lchromaprint -lrubberband -lmad -lid3tag -lhidapi-libusb -lpthread -lrt -lusb-1.0 -lusb-1.0 -lshout -lopusfile -lopus -lvamp-hostsdk -ldl -lfftw3 -lsqlite3 -lupower-glib -lgobject-2.0 -lglib-2.0
lin64_build/engine/enginebuffer.o: In function `EngineBuffer::EngineBuffer(QString, QSharedPointer<ConfigObject<ConfigValue> >, EngineChannel*, EngineMaster*)':
./src/engine/enginebuffer.cpp:250: undefined reference to `EngineBufferScaleST::EngineBufferScaleST(ReadAheadManager*)'
collect2: error: ld returned 1 exit status
scons: *** [lin64_build/mixxx] Error 1
scons: building terminated because of errors.

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Daniel Schürmann (daschuer) wrote :

It looks like there is an issue with this line:
https://github.com/uklotzde/mixxx/blob/f09de7afd999843d9a39dac01136c929ecdebbff/build/depends.py#L518
do you have a lin64_build/engine/enginebufferscalest.o?
Is it build?
is there an issue reported at the very start of the build log?

Changed in mixxx:
importance: Undecided → High
Changed in mixxx:
milestone: 2.1.1 → 2.1.2
Revision history for this message
Be (be.ing) wrote :

The next Debian release isn't scheduled until 2019, by which time we'll have Mixxx 2.2 released with Qt5.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

We never know when the maintainers have time to integrate Mixxx. I would prefer to commit the Qt5 Bugfixes also to the 2.1 branch to have always something to offer for them. Hofully they can than switch to our latest stable just before the release.
Otherwise I am afraid if we fall out the Debian repro, it might e hard to get back.

We might also upset users, because Mixxx Gest uninstalled during an upgrade to a Debian alpha or such.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

It is not much extra effort for us, because whe want to keep 2.1 as a stable branch anyway.

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi again!
Sorry for the late reply.

On 2018-05-06 at 09:24 (GMT), Daniel Schürmann wrote:
> It looks like there is an issue with this line:
> https://github.com/uklotzde/mixxx/blob/f09de7afd999843d9a39dac01136c929ecdebbff/build/depends.py#L518
> do you have a lin64_build/engine/enginebufferscalest.o?
> Is it build?
> is there an issue reported at the very start of the build log?

Please, see the attached build log for mixxx 2.1.0 on amd64.
Hope this helps.

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

Attached, a new build test made against v2.1.1 fails on the same point where v2.1.0 was having issues. At this point, it's not a Qt5 problem anymore, it seems.

Let me know if this bug should be closed and a new one about:

  /usr/bin/ld: lin64_build/engine/enginebuffer.o: in function `EngineBuffer::EngineBuffer(QString, QSharedPointer<ConfigObject<ConfigValue> >, EngineChannel*, EngineMaster*)':
  ./src/engine/enginebuffer.cpp:250: undefined reference to `EngineBufferScaleST::EngineBufferScaleST(ReadAheadManager*)'

should be filed.

Thanks in advance.

Changed in mixxx:
milestone: 2.1.2 → 2.1.3
Revision history for this message
Daniel Schürmann (daschuer) wrote :

I cannot confirm the issue with Mixxx 2.1.2. Can you still confirm it with the recent version?

The missing function is here:
https://github.com/mixxxdj/mixxx/blob/80f3ea50a80086ceb2fa38b2f6256951a744d985/src/engine/enginebufferscalest.cpp#L29

I cannot find enginebufferscalest.cpp compiler call in your log.
Normally it is added here
https://github.com/mixxxdj/mixxx/blob/490e90b1c7b583b351cb4c68bb8dabf9ab046ba1/build/depends.py#L578

Maybe scons is mixed up. Can you restart with an clean build directory?

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi Daniel!

On 2018-08-18 at 23:00 (GMT), Daniel Schürmann wrote:
> I cannot confirm the issue with Mixxx 2.1.2. Can you still confirm it
> with the recent version?

I've just test-checked this latest 2.1.2.0 release and the issue has
moved on, at the linking phase.
Attached, you'll find this new build.

> The missing function is here:
> https://github.com/mixxxdj/mixxx/blob/80f3ea50a80086ceb2fa38b2f6256951a744d985/src/engine/enginebufferscalest.cpp#L29
>
> I cannot find enginebufferscalest.cpp compiler call in your log.
> Normally it is added here
> https://github.com/mixxxdj/mixxx/blob/490e90b1c7b583b351cb4c68bb8dabf9ab046ba1/build/depends.py#L578
>
> Maybe scons is mixed up. Can you restart with an clean build directory?

Every build is made on a clean chroot, we use sbuild[1] for this.

Thanks for your efforts in fixing this, again ;-)

Cheers.

[1] https://tracker.debian.org/pkg/sbuild

--
Matteo F. Vescovi

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi again!

On 2018-08-18 at 23:00 (GMT), Daniel Schürmann wrote:
> I cannot confirm the issue with Mixxx 2.1.2. Can you still confirm it
> with the recent version?

Wait... has mixxx 2.1.x a strict dependency on soundtouch library 2.0.0?

> I cannot find enginebufferscalest.cpp compiler call in your log.
> Normally it is added here
> https://github.com/mixxxdj/mixxx/blob/490e90b1c7b583b351cb4c68bb8dabf9ab046ba1/build/depends.py#L578

I'm asking the above because till 10 days ago we only has v1.8.0 of
soundtouch library in Debian and I had to patch depends.py to avoid the
failure on checking dependencies, aiming to get it working anyway ;-)
But that seems to be a poor try ;-P Now, v2.0.0 has been uploaded on
official archives but discovered only *after* my last build against
mixxx 2.1.2.0. Let's do it again (dropping the patch) and see how it
goes this time.

Sorry for the mess ;-P

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Sébastien BLAISOT (sblaisot) wrote :

Hi Matteo,

Please be aware that we just released Mixxx 2.1.3 today including a bugfix for a severe performance regression in 2.1.2 so better package 2.1.3 than 2.1.2 now.

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi again!

On 2018-08-18 at 23:00 (GMT), Daniel Schürmann wrote:
> I cannot find enginebufferscalest.cpp compiler call in your log.
> Normally it is added here
> https://github.com/mixxxdj/mixxx/blob/490e90b1c7b583b351cb4c68bb8dabf9ab046ba1/build/depends.py#L578

So, the problem here is that in Debian we must use packaged libraries
instead of bundled versions, which usually got mangled and removed while
re-packing source code on import in git repository.

Attached, you'll find the patch that actually tries to achieve this, but
it was created back in time when I was not maintaining the package yet
and the code in the meanwhile has changed a lot, indeed. So, probably
all my efforts to adapt it and get a working patch were mere hopes :-/

Feel free to feedback with a better solution and, as usual, patches are
really very welcome ;-)

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

On 2018-08-20 at 22:13 (GMT), Sébastien BLAISOT wrote:
> Please be aware that we just released Mixxx 2.1.3 today including a
> bugfix for a severe performance regression in 2.1.2 so better package
> 2.1.3 than 2.1.2 now.

Done now. Thanks for the heads up.

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Wait, you use QT5 right. Be aware that 2.1.3 may crash on start-up because of an issue with the preview column. The patch fixing this on Linux with QT5 was identified to cause a a GUI lag on Windows using QT4. The patch was introduced in 2.1.2 and reverted in 2.1.3.

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Changed in mixxx:
milestone: 2.1.3 → 2.1.4
Revision history for this message
Matteo F. Vescovi (mfvescovi) wrote :

Hi!

On 2018-08-20 at 23:47 (GMT), Daniel Schürmann wrote:
> Wait, you use QT5 right. Be aware that 2.1.3 may crash on start-up
> because of an issue with the preview column. The patch fixing this on
> Linux with QT5 was identified to cause a a GUI lag on Windows using QT4.
> The patch was introduced in 2.1.2 and reverted in 2.1.3.

In fact, I'm using v2.1.3 now and after some tweaking on patching
depends.py for SoundTouch library I've been able to build v2.1.3
successfully on Debian.

So, this bug report can now be closed.
Thanks for the amazing patience and help.

Cheers.

--
Matteo F. Vescovi

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Great, Thank you.

Changed in mixxx:
milestone: 2.1.4 → none
status: New → Invalid
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9273

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.