Mailing List Archive

Master / QT6
Are there any configure inputs required to build mythtv master with QT6?

I've put together a set of QT6 ports for macports (
https://github.com/macports/macports-ports/pull/12676) and was hoping to
test them with mythfrontend on macOS.

Currently I can't get out of the configure erroring out at libudfread as
follows:

ar rc libmythdvdnav-32.a obj/dvdnav.o obj/read_cache.o obj/navigation.o
obj/vm_serialize.o obj/getset.o obj/play.o obj/vmget.o obj/highlight.o
obj/searching.o obj/settings.o obj/decoder.o obj/vm.o obj/vmcmd.o
obj/dvd_reader.o obj/nav_read.o obj/ifo_read.o obj/dvd_input.o
obj/dvd_udf.o obj/md5.o obj/nav_print.o obj/ifo_print.o obj/bitreader.o

ranlib libmythdvdnav-32.a

/Applications/Xcode.app/Contents/Developer/usr/bin/make -C libudfread all

make[2]: *** No rule to make target `all'. Stop.

make[1]: *** [libudfread-all] Error 2

make: *** [external] Error 2

Compiling Mythtv failed
Re: Master / QT6 [ In reply to ]
On Tue, Oct 26, 2021 at 10:59 AM John Hoyt <john.hoyt@gmail.com> wrote:
>
> Are there any configure inputs required to build mythtv master with QT6?
>

Well, only the devel/qt6 branch will compile with Qt6,
and there are a number of code sections simplify
ifdef'ed out to allow it to do so because (at least at
the time) Qt6 had not yet ported some necessary
Qt6 modules.

I occasionally compile the devel/qt6 branch under
linux using my packaging repo targeted to fedora
(primarily to make sure the packaging repo does
not need additional rework).

Under Linux, the primary configure change is
--qmake=qmake6
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Master / QT6 [ In reply to ]
On Tue, Oct 26, 2021 at 8:20 AM Gary Buhrmaster <gary.buhrmaster@gmail.com>
wrote:

> On Tue, Oct 26, 2021 at 10:59 AM John Hoyt <john.hoyt@gmail.com> wrote:
> >
> > Are there any configure inputs required to build mythtv master with QT6?
> >
>
> Well, only the devel/qt6 branch will compile with Qt6,
> and there are a number of code sections simplify
> ifdef'ed out to allow it to do so because (at least at
> the time) Qt6 had not yet ported some necessary
> Qt6 modules.
>
> I occasionally compile the devel/qt6 branch under
> linux using my packaging repo targeted to fedora
> (primarily to make sure the packaging repo does
> not need additional rework).
>
> Under Linux, the primary configure change is
> --qmake=qmake6
>

Thanks Gary - setting git to clone the devel/qt6 branch is clearly where I
was messing up. I was under the wrong assumption that the changes got
factored into master.

Thanks for the tip on qmake6 too.
Re: Master / QT6 [ In reply to ]
On Tue, 2021-10-26 at 08:39 -0400, John Hoyt wrote:
>
>
> On Tue, Oct 26, 2021 at 8:20 AM Gary Buhrmaster
> <gary.buhrmaster@gmail.com> wrote:
> > On Tue, Oct 26, 2021 at 10:59 AM John Hoyt <john.hoyt@gmail.com>
> > wrote:
> > >
> > > Are there any configure inputs required to build mythtv master
> > > with
> > QT6?
> > >
> >
> > Well, only the devel/qt6 branch will compile with Qt6,
> > and there are a number of code sections simplify
> > ifdef'ed out to allow it to do so because (at least at
> > the time) Qt6 had not yet ported some necessary
> > Qt6 modules.
> >
> > I occasionally compile the devel/qt6 branch under
> > linux using my packaging repo targeted to fedora
> > (primarily to make sure the packaging repo does
> > not need additional rework).
> >
> > Under Linux, the primary configure change is
> >   --qmake=qmake6
> >
>
>
> Thanks Gary - setting git to clone the devel/qt6 branch is clearly
> where I was messing up. I was under the wrong assumption that the
> changes got factored into master. 

All the changes are in the main branch but one, and that one is a hack-
n-slash to remove any references to QWebKit and QtScript. Both of those
components were removed in Qt6. Once the new web server is committed to
the main branch and the old one removed, it should be possible to build
a qt6 version of main without the hack-n-slash patch.

David


_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Master / QT6 [ In reply to ]
>
>
> All the changes are in the main branch but one, and that one is a hack-
> n-slash to remove any references to QWebKit and QtScript. Both of those
> components were removed in Qt6. Once the new web server is committed to
> the main branch and the old one removed, it should be possible to build
> a qt6 version of main without the hack-n-slash patch.
>
>
Thanks David. It looks like my real problem was that I needed to add the
qt5compat module to my ports.

After that I tripped on this error with Apple Remote Listener:

ccache clang++ -c -pipe -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -DPIC
-std=c++17 -faligned-new -DNDEBUG -fomit-frame-pointer -fPIC
-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -msse -pthread
-I/opt/local/include/soundtouch -g -Wall -Wextra -Wpointer-arith
-Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments
-Wimplicit-fallthrough -std=gnu++1z -arch x86_64 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk
-mmacosx-version-min=10.14 -fPIC -DMMX -DUSING_APPLEREMOTE -D_GNU_SOURCE
-DUSING_DBUS -DUSING_OPENGL -DUSING_QTWEBKIT -DMUI_API -DQT_NO_DEBUG
-DQT_WIDGETS_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE5COMPAT_LIB
-DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I.
-I/opt/local/libexec/qt6/include -I/opt/local/include/libxml2 -Iopengl
-Iplatforms -Iplatforms/drm -Idevices -Ivulkan -I../libmythbase -I../..
-I.. -I/opt/local/libexec/qt6/lib/QtWidgets.framework/Headers
-I/opt/local/libexec/qt6/lib/QtOpenGL.framework/Headers
-I/opt/local/libexec/qt6/lib/QtGui.framework/Headers
-I/opt/local/libexec/qt6/lib/QtCore5Compat.framework/Headers
-I/opt/local/libexec/qt6/lib/QtXml.framework/Headers
-I/opt/local/libexec/qt6/lib/QtSql.framework/Headers
-I/opt/local/libexec/qt6/lib/QtNetwork.framework/Headers
-I/opt/local/libexec/qt6/lib/QtDBus.framework/Headers
-I/opt/local/libexec/qt6/lib/QtCore.framework/Headers -Imoc
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers
-I/opt/local/libexec/qt6/mkspecs/macx-clang -F/opt/local/libexec/qt6/lib -o
obj/AppleRemoteListener.o devices/AppleRemoteListener.cpp

devices/AppleRemoteListener.cpp:60:13: error: no viable conversion from
'QKeyCombination' to 'int'

int keycode = a[i];

^ ~~~~

1 error generated.

make[2]: *** [obj/AppleRemoteListener.o] Error 1

make[1]: *** [sub-libmythui-make_first] Error 2

make: *** [libs] Error 2

Commenting out appleremote got me much further.

ccache clang++ -c -pipe -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -DPIC
-std=c++17 -faligned-new -DNDEBUG -fomit-frame-pointer -fPIC
-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -msse -pthread
-I/opt/local/include/soundtouch -g -Wall -Wextra -Wpointer-arith
-Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments
-Wimplicit-fallthrough -std=gnu++1z -arch x86_64 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk
-mmacosx-version-min=10.14 -fPIC -DMMX -D_GNU_SOURCE -DMYTH_API
-DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE5COMPAT_LIB
-DQT_NETWORK_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I.
-I/opt/local/libexec/qt6/include -I/opt/local/include/libxml2
-I../libmythfreesurround -I../libmythbase -I../.. -I.. -I. -I../libmythupnp
-I../libmythui -I../.. -I../../external/FFmpeg -I../libmythservicecontracts
-I/opt/local/libexec/qt6/lib/QtWidgets.framework/Headers
-I/opt/local/libexec/qt6/lib/QtGui.framework/Headers
-I/opt/local/libexec/qt6/lib/QtCore5Compat.framework/Headers
-I/opt/local/libexec/qt6/lib/QtNetwork.framework/Headers
-I/opt/local/libexec/qt6/lib/QtXml.framework/Headers
-I/opt/local/libexec/qt6/lib/QtSql.framework/Headers
-I/opt/local/libexec/qt6/lib/QtDBus.framework/Headers
-I/opt/local/libexec/qt6/lib/QtCore.framework/Headers -Imoc
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers
-I/opt/local/libexec/qt6/mkspecs/macx-clang -F/opt/local/libexec/qt6/lib -o
obj/audiooutputca.o audio/audiooutputca.cpp

audio/audiooutputca.cpp:578:30: error: invalid operands to binary
expression ('QString *' and 'const QString')

if (name && name == deviceName)

~~~~ ^ ~~~~~~~~~~

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:875:17:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
QString' for 1st argument; dereference the argument with *

friend bool operator==(const QString &s1, const QString &s2) noexcept

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:894:17:
note: candidate
function not viable: no known conversion from 'QString *' to
'QLatin1String' for 1st argument

friend bool operator==(QLatin1String s1, const QString &s2) noexcept {
return s2 == s1; }

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:908:17:
note: candidate
function not viable: no known conversion from 'QString *' to
'std::nullptr_t' (aka 'nullptr_t') for 1st argument

friend bool operator==(std::nullptr_t, const QString &s2) noexcept {
return s2 == nullptr; }

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:922:17:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
char16_t *' for 1st argument

friend bool operator==(const char16_t *s1, const QString &s2) noexcept
{ return s2 == s1; }

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:930:24:
note: candidate
function not viable: no known conversion from 'QString *' to 'QChar' for
1st argument

friend inline bool operator==(QChar lhs, const QString &rhs) noexcept

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:1006:36: note:
candidate function not viable: no known conversion from 'QString *' to
'const char *' for 1st argument

QT_ASCII_CAST_WARN friend bool operator==(const char *s1, const QString
&s2)

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:884:17:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
QString' for 1st argument; dereference the argument with *

friend bool operator==(const QString &s1, QLatin1String s2) noexcept

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:902:17:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
QString' for 1st argument; dereference the argument with *

friend bool operator==(const QString &s1, std::nullptr_t) noexcept {
return s1.isEmpty(); }

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:915:17:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
QString' for 1st argument; dereference the argument with *

friend bool operator==(const QString &s1, const char16_t *s2) noexcept
{ return s1 == QStringView(s2); }

^

/opt/local/libexec/qt6/lib/QtCore.framework/Headers/qstring.h:941:24:
note: candidate
function not viable: no known conversion from 'QString *' to 'const
QString' for 1st argument; dereference the argument with *

friend inline bool operator==(const QString &lhs, QChar rhs) noexcept {
return rhs == lhs; }

^

1 error generated.

make[2]: *** [obj/audiooutputca.o] Error 1

make[1]: *** [sub-libmyth-make_first] Error 2

make: *** [libs] Error 2

I'm wondering if I'm missing another module or just in uncharted territory.
Re: Master / QT6 [ In reply to ]
On Tue, Oct 26, 2021 at 10:54 PM John Hoyt <john.hoyt@gmail.com> wrote:

> Thanks David. It looks like my real problem was that I needed to add the qt5compat module to my ports.
>
> After that I tripped on this error with Apple Remote Listener:
>
...
>
> devices/AppleRemoteListener.cpp:60:13: error: no viable conversion from 'QKeyCombination' to 'int'
>
> int keycode = a[i];

int keycode = a[i].toCombined; // This needs to be
explicit as of Qt 6 ??????

.......

The second one mentions what change needs to be made.

........

> I'm wondering if I'm missing another module or just in uncharted territory.

I am guessing uncharted territory? These are macOS
only code fragments and likely you are the first there.....
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Master / QT6 [ In reply to ]
On Tue, 2021-10-26 at 18:53 -0400, John Hoyt wrote:
> >
> > All the changes are in the main branch but one, and that one is a
> > hack-
> > n-slash to remove any references to QWebKit and QtScript. Both of
> > those
> > components were removed in Qt6. Once the new web server is
> > committed
> > to
> > the main branch and the old one removed, it should be possible to
> > build
> > a qt6 version of main without the hack-n-slash patch.
> >
> >
>
>  
> Thanks David.  It looks like my real problem was that I needed to add
> the qt5compat module to my ports.
>
> After that I tripped on this error with Apple Remote Listener:
> ccache clang++ -c -pipe -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -DPIC -
> std=c++17 -faligned-new -DNDEBUG -fomit-frame-pointer -fPIC -
> DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -msse -pthread -
> I/opt/local/include/soundtouch -g -Wall -Wextra -Wpointer-arith -Wno-
> constant-logical-operand -Wno-unused-value -Qunused-arguments -
> Wimplicit-fallthrough -std=gnu++1z  -arch x86_64 -isysroot
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/
> Developer/SDKs/MacOSX12.0.sdk -mmacosx-version-min=10.14 -fPIC -DMMX
> -DUSING_APPLEREMOTE -D_GNU_SOURCE -DUSING_DBUS -DUSING_OPENGL -
> DUSING_QTWEBKIT -DMUI_API -DQT_NO_DEBUG -DQT_WIDGETS_LIB -
> DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE5COMPAT_LIB -DQT_XML_LIB -
> DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -
> I/opt/local/libexec/qt6/include -I/opt/local/include/libxml2 -Iopengl
> -Iplatforms -Iplatforms/drm -Idevices -Ivulkan -I../libmythbase -
> I../.. -I.. -I/opt/local/libexec/qt6/lib/QtWidgets.framework/Headers
> -I/opt/local/libexec/qt6/lib/QtOpenGL.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtGui.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtCore5Compat.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtXml.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtSql.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtNetwork.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtDBus.framework/Headers -
> I/opt/local/libexec/qt6/lib/QtCore.framework/Headers -Imoc -
> I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
> /Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.frame
> work/Headers -
> I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
> /Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framewor
> k/Headers -
> I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
> /Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.frame
> work/Headers -
> I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
> /Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framewor
> k/Headers -I/opt/local/libexec/qt6/mkspecs/macx-clang -
> F/opt/local/libexec/qt6/lib -o obj/AppleRemoteListener.o
> devices/AppleRemoteListener.cpp
> devices/AppleRemoteListener.cpp:60:13: error: no viable conversion
> from 'QKeyCombination' to 'int'
>         int keycode = a[i];
>             ^         ~~~~
> 1 error generated.
> make[2]: *** [obj/AppleRemoteListener.o] Error 1
> make[1]: *** [sub-libmythui-make_first] Error 2
> make: *** [libs] Error 2
>  
> Commenting out appleremote got me much further.
> ...
> I'm wondering if I'm missing another module or just in uncharted
> territory.

I have not tried building with qt6 on OSX since qt6 isn't yet supported
in macports. I saw your pull request, but I just don't have time to
figure out how to compile qt6 locally and get it installed. Once qt6
gets into macports it will be easier for me to test. Sorry.

David


_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org