Opened 9 years ago
Closed 3 years ago
#12661 closed Bug Report - General (Trac EOL)
mythtv fails to build against anything that's not x86/amd64/armhf
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | minor | Milestone: | 29.2 |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
configure has a hard time finding qt5. Ubuntu guys had dug into what was going on in configure. Snippet of conversation:
12:36:46 <xnox> cjwatson, superm1 - ok found it. Mythtv plugins are funky and did tricks behind our back with iterating: 12:36:47 <xnox> if [ x"$qmake" = "xqmake" ]; then 12:36:47 <xnox> CHECK_QMAKE="qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/lib/i386-linux-gnu/qt5/bin/qmake /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake /usr/local/lib/qt5/bin/qmake $\ 12:36:47 <xnox> qmake qmake-qt4" 12:36:54 <xnox> in case of "qmake" default qmake specified. 12:37:10 <xnox> and thus it "worked" on x86_64, i386, armhf only =) 12:37:21 <xnox> exporting QT_SELECT=5 would have been a better trick. 12:37:34 <xnox> or like querying the triplet from gcc. 12:38:02 <xnox> Mirv, our qt is fine, it's mythtv which is funny.
So the ask would be to explicitly export:
QT_SELECT=5
when running the build for configure to properly find qt5 without looking around all the various paths for every architecture known to man.
We can of course override this at packaging level too, but this should really work properly in the configure script.
Change History (10)
comment:1 Changed 9 years ago by
comment:2 follow-up: 3 Changed 9 years ago by
Considering that I think this might be a more elegant way of solving the problem:
diff --git a/mythtv/configure b/mythtv/configure index c539b29..1768bfb 100755 --- a/mythtv/configure +++ b/mythtv/configure @@ -5678,10 +5678,11 @@ is_qmake5(){ } # qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/x86_64-linux-gnu/qt5/bin/qmake +TRIPLET=`gcc -print-multiarch` if [ x"$qmake" = "xqmake" ]; then - CHECK_QMAKE="qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/lib/i386-linux-gnu/qt5/bin/qmake /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake /usr/local/lib/qt5/bin/qmake + CHECK_QMAKE="qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/$TRIPLET/qt5/bin/qmake /usr/local/lib/qt5/bin/qmake $qmake" else - CHECK_QMAKE="$qmake qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/lib/i386-linux-gnu/qt5/bin/qmake /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake /usr/local/lib/qt5/bi + CHECK_QMAKE="$qmake qmake-qt5 /usr/lib64/qt5/bin/qmake /usr/lib/$TRIPLET/qt5/bin/qmake /usr/local/lib/qt5/bin/qmake" fi # try to find a qt5 qmake to use found_qmake=''
comment:3 Changed 9 years ago by
Replying to superm1@…:
Considering that I think this might be a more elegant way of solving the problem:
(I have not really worked this through, but) What happens if you do not have gcc installed but are using clang or some other compiler (icc)? You likely need to validate that you are using gcc before following down the gcc path. Of course, I do not like the various hard coded paths either. Rock, meet rock.
comment:4 Changed 9 years ago by
I know clang supports outputting something similar. So I guess the first question is going to be: What compilers are supported for MythTV build today? Not theoretical some day it might work, stuff that people use day to day and should keep on working in this setup?
We can probably come up with a way to query triplets on the various ones and identify which one is in use.
comment:5 Changed 9 years ago by
Milestone: | unknown → 0.29 |
---|---|
Version: | Unspecified → Master Head |
I think to start with, querying the compiler architecture is the best way to go. I knew when I added the search via explicit paths it was a bit of a hack.
Anything else non standard should just explicitly set qmake, and configure will use that.
comment:7 Changed 7 years ago by
Milestone: | 29.0 → 29.1 |
---|
comment:8 Changed 7 years ago by
Milestone: | 29.1 → 0.28.2 |
---|
Moving remaining open tickets to 0.28.2 milestone
comment:9 Changed 7 years ago by
Milestone: | 0.28.2 → 29.2 |
---|
Moving remaining open tickets to 29.2 milestone
comment:10 Changed 3 years ago by
Resolution: | → Trac EOL |
---|---|
Status: | new → closed |
We have moved all bug tracking to github [1]
If you continue to have this issue, please open a new issue at github, referencing this ticket.
The QT_SELECT environmental variable seems to be specific to Ubuntu or Debian based systems because qmake is actually a link to qtchooser in those distributions.
Since it's distribution specific it cannot entirely replace the current check.