Adventures in Debian's Qt Land
perezmeyer.com.ar
perezmeyer.com.ar
"Thanks to The Qt Company and ICS the current Qt 6 version, 6.4.2, is also available as Bullseye's backports. The Qt Company really also helped us here by providing us almost-to-be-released tarballs of Qt 6.4.2 so we were able to push them to unstable and do a transition in time for freeze, thanks a lot for that!"
That they don't release updates for Qt6 anymore (they did)
Yeah, I'd have preferred a more streamlined pipeline like other FOSS projects but still, Qt is like, _the only_ no-nonsense cross-platform option that we got.
In serious GUI libraries space, there is Windows, there is Apple, and...that's pretty much it. I mean unless Elon gonna chip in and pay for development of it, we can't expect competent people work on an alternative to these giants for free.
lol really?! I didn't know! I just plugged in his name since he has become Tony-Stark-archetype for "tech enthusiast" crowd.
No, you misunderstood this one.
A lot of major open source projects have processes where source tarballs are released to distro packagers a short while (e.g. a week or a couple of days) before the public release announcement and public tarball availability. This gets you last-minute testing, and makes the distro partners happy because they get to brag about same-day packages when the release goes live, which also makes the users happy when they read about the shiny new release and wonder if they can get it yet. KDE has been doing this for 20 years via it's packagers mailing list, and so do many others.
If you don't it that way, dumb things happen like distros releasing RC tags as "we have the release now" so they can announce same-day availability, and occasionally bugs slip through. Been there, done that.
You probably understood this as "normally you could just look at the git repo", but that's also true for Qt 6.
Release tarballs are and have been available on download.qt.io. And git repository is also open.
I want to like Qt, but it's difficult. From a pragmatic standpoint, it's just so damn buggy, and rather important issues can take a long time to see any progress. It bums me out that today, QDockWidget is still unusable on Wayland, right now, in the latest Qt 6 release version. Not "ugly" or "janky", but as in, it literally does not work, you can't redock widgets in most cases. Is it because they literally don't care? Nope; in fact, they merged in the fix just five days ago. It does depend on protocol support for fluid animations, but the general concept would've worked from the get-go. But I dunno, it just seems like the priority is and has been quite low for these rather basic usability issues and bugs.
Qt has always been rather buggy and I'd consider it to have been good despite that, but the argument definitely gets harder over time. I think today the only thing I can say is that it's far more mature and full-featured than most other toolkits that are open source, but that's not exactly something to brag about either.
Today if I use Qt I don't bother with the official SDK on any platform, as it's not really worth it. Like, what, do I need to pipe my Qt account credentials into CI? No thanks, I'll build it myself.
On Windows you can just run the installer and then copy the installation directory from one computer to another. I think it doesn't even touch PATH.
Here's one of the latest attempts I've done, although I'll note I still haven't managed to get an actual working Apple Silicon build. It keeps building for x64. The Windows builds were smooth sailing since I didn't need to worry about cross compilation yet, though I'm sure it'll be interesting when I eventually try this for AArch64 Windows.
https://github.com/puyonexus/qt-sdk-builder
(I don't do this for Linux since it's easy to get a Qt SDK on Linux.)
Unlike you, I like the direction that Qt is taking. I think QML and Qt Quick are great. I just implemented a feature in my note-taking app that turns Markdown text into Kanban board using QML and the experience has been great (https://github.com/nuttyartist/notes/pull/574). I'm planning to continue transition from QWidgets to QML/Qt Quick.
I do worry of the continuous friction with open source development and hate the online installers as well. I can recommend this useful tool https://github.com/miurahr/aqtinstall that allows you to easily download prebuilt Qt binaries. I hope they can revert their approach on that.
It is what it is, though.
-The Mac version has historically been a lot less well supported and stable than the Windows version. There have even been gaps where a new major macOS version came out and it was some time before Qt supported it.
-Too much emphasis on all sorts of new shiny things I will probably never use. I really just want the C++ core and widgets to be super stable.
I understand why. Apple is a dumpster fire when it comes to backward compatibility. Also there is probably more money in shiny new features. But, despite these caveats, overall I think Qt is pretty great.
Their commercial licenses are very expensive. Qt charges close to $400 per month per developer, or close to $4000 per year per developer. A small shop is on the hook for $50k/year. That's a very hard pill to swallow.
./configure \ -release \ -no-opengl \ -device linux-arm-generic-g++ \ -device-option CROSS_COMPILE=/usr/local/xcompiler/usr/bin/arm-buildroot-linux-gnueabi- \ -prefix /usr/local/qt512arm \ -opensource -confirm-license \ -make libs \ -nomake tools \ -nomake tests \ -nomake examples \ -skip qtwebengine \ -skip qt3d \ -skip qtandroidextras \ -skip qtcanvas3d \ -skip qtcharts \ -skip qtconnectivity \ -skip qtdatavis3d
and nothing significant has happended to the selected "essential features" subset of Qt since 5.6.
https://wiki.qt.io/QtReleasing
(Disclaimer: I work for the Qt company)
Only run Debian here, but to be clear, Debian supports releases for 1 year after the next release, so typically 3 years max.
Debian LTS is handled by a third party, non-debian org, via donations. All packages are not necessarily covered, it's not the Debian securtiy team.
This is important to understand, as LTS depends upon donations to decide what gets secuirty updates. Donors have a say. So for example, you'll see apache, openssl, php updated, but not obscure pacakges.
Qt 6.2.4 was released at 2022-02-17 and it's the last public available 6.2 version. 6.3 was released at 2022-03-16. For paying customers they released 6.2.8 few months ago, for example, but it's not available for everyone else.
That said, of course having upstream patches available for free, as it was in the past, would even be better.
If Debian supports its releases for longer than the upstream projects do, then that's a (perfectly valid) choice of Debian, but I'm assuming that involves maintaining those projects as well, to the standards of Debian's support policies.
https://mirrors.ocf.berkeley.edu/qt/official_releases/qt/
You can find a more local mirror on the mirror list
Qt Creator is a C/C++ IDE that happens to be written in Qt, and has some extra features that make developing Qt easier, such as a GUI designer for your app's windows. But it's just an IDE, you can use it to write pure C or C++, even in a basic Makefile project, without ever touching Qt, those features appear only when you select a Qt project template. They have a whole bunch of templates.
They are separate things so there's no reason why the version numbers should be kept in sync. Qt Creator could be using an obsolete Qt 3.0 from decades ago, and it wouldn't matter, that's up to the Creator devs and would have zero effect on your experience as an end-user.
If you're a C or C++ user I recommend you try out Creator even if you have zero interest in Qt. I like how fast and responsive it is, the advantage of being written in a native language I guess.