In trying to fix something in the CMake files, it turns out that we had 
accidentally disabled a part of our IPv6 support on some platforms. I'm trying 
to fix it with
https://codereview.qt-project.org/c/qt/qtbase/+/499560
https://codereview.qt-project.org/c/qt/qtbase/+/499601
https://codereview.qt-project.org/c/qt/qtbase/+/499549

This may take a few days, but at the end of it I plan to have it back to 
working order in all platforms (except the untestable ones).

IPv6 support is mandatory for Qt in any and all OSes that support IPv6. And 
since we are right now in 2023, which is 12.5 years after IANA ran out of 
blocks to allocate to the local registries, and nearly 4 years since RIPE NCC 
(the registry for Europe) ran completely out, If you live in Europe and you 
want an IPv4 block, you have to wait for some company to return some or go 
bankrupt. I wouldn't touch with a long pole any OS that fails that, if I were 
making an application.

I've already found failures for QNX and Android.

For Android, it appears we have a defective support in QNetworkInterface. 
Linux does have a proper API for querying and getting IPv6 addresses out of 
the interfaces, which we have in Qt (qnetworkinterface_linux.cpp), but Android 
has decided to block us from it (see QTBUG-96974). That being an OS policy, 
there's nothing I can do about it. If there's another way to get to those 
addresses, I don't know about it and don't plan on investigating anyway.

However, Android does support IPv6. It just lacks proper QNetworkInterface 
support to detect the addresses that the system may have. The tests seem to be 
otherwise passing.

Then there's QNX. It not only seems to have the same QNetworkInterface 
shortcoming, but some QUdpSocket and QTcpSocket tests fail, though not all so 
it seems the IPv6 stack is there. Whatever the problem is, it's not apparent 
from the logs. Debugging this via the CI is time-consuming and frustrating, so 
I won't do any more of that. And since there's no SDK I can use, I won't fix 
this at all. I've just added a "return false" to QtNetworkSettings::hasIPv6().

No other OSes should be allowed this exception. This means INTEGRITY and 
VxWorks: the former is supported by Qt but not tested in the CI, whereas the 
latter is being re-added. They will need to fix the issues, not add more 
exceptions.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering

Attachment: smime.p7s
Description: S/MIME cryptographic signature

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to