Conan package manager pilot to end in December
September 19, 2022 by Tino Pyssysalo | Comments
We have piloted a Conan-based package manager as an alternative way to get the Qt binaries since the beginning of this year. While we have gotten a lot of good feedback and some users have found this approach valuable, overall, there has not been as much interest in Conan as we expected. We, therefore, plan to end the pilot by December 2022. No new Qt versions will be offered via Conan package manager, and we will take the experimental Conan server offline by the end of the year. Note that this does not affect the recipes on ConanCenter, which are maintained independently.
Most Qt users install Qt via our online installer and many also build themselves for source packages or directly from the repository. For those who prefer package managers, platform-specific package managers like Debian and RPM are a lot more popular than Conan. During the pilot, there have been over 1000 external users who have at least once downloaded Qt via the Conan package manager. This is far less than what we set as our goal. The package download numbers from the server have been rather low as well.
Conan provides a nice feature set that seemed to match our needs well, so we decided to start investigating it a few years ago for Qt. It’s a cross-platform package manager, supporting both source and binary distributions. It could have been used to distribute the latest 3rd party libraries with critical fixes as well, instead of bundling the libraries into Qt. Source distribution helps when using Qt modules for the targets not officially supported as well as for embedded targets.
Compared to the open-source Conan server (conan.io), our server provides a Qt Conan package per git repository and the idea was to continue this per Qt module level (Qt SCXML implemented this already). In addition, The Qt Company Conan packages contain all configuration options and features in recipes, not only a subset like in recipes in conan.io.
We will keep the existing Qt 6.3.x Conan recipes in the repos to enable the possibility to continue the work if Conan will become more popular in the future. We are not going to create recipes for Qt 6.4 or continue maintaining the existing recipes. We may let the community continue maintaining the recipes, but this has not been decided yet.
In case you want to continue using existing recipes, you need to export (using the export cmd) the Conan packages per the Qt git repository (qt-conan-common) and per each conanfile.py in each Qt6 submodule. In addition, you need to host the packages (e.g., using the Conan server) for your team or organization.
We want to thank all of you who have participated in the Conan package manager pilot.
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.9 Now!
Download the latest release here: www.qt.io/download.
Qt 6.9 is now available, with new features and improvements for application developers and device creators.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Commenting for this post has ended.
I always prefer the vcpkg package manager, it's pure cmake so it's relatively simple to work with it.
Oh, I always though that the packages on conan center came from the Qt company. I didn't even know there was a seperate qt conan repository.
I guess that was main issue... Beside i believe two blog posts it wasn't advertised too much....
Completely agree. It would be very useful for us to have access to Qt through Conan. Sad to discover this service as it's closing :'(
I too thought the Qt packages on Conan Center were the only available packages. As of this date, there have been over 24,000 downloads of Qt 6.3.1 from Conan Center. My development team makes heavy use of Conan so that our builds are repeatable and we can minimize the development packages we need to install on our development machines and CI. Please consider adopting Conan Center as the supported way to obtain Qt in addition to the existing platform-specific installers.
How about more support for vcpkg? It has ports for building Qt open source from source, but it would be great to have ports that install the commercial build, especially from the official binaries.
I think the main problem for the official binaries within vcpkg is that the layout isn't the same and it would require a lot of moving stuff around and fixing cmake files to make it work correctly. moving the debug binaries into the /debug/ subfolder and doing the same for the plugins would probably be already quite annoying.
I would also like to see some more attention to vcpkg as the way to obtain Qt libraries. I use x64-linux vcpkg triplet with the following additions:
if(PORT MATCHES "qt" OR PORT MATCHES "sqlite") message(STATUS "Building dynamic...") set(VCPKG_FIXUP_ELF_RPATH ON) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_BUILD_TYPE release) endif()
So I link all other (more permissive, e.g. MIT-licensed) libraries statically while linking Qt dynamically to more easily comply with LGPL. Everything compiles and works, but if I manually add Qt Creator kit "installed/x64-linux/tools/Qt6/bin/qmake", it is marked as invalid, so QML debugging is not working. It works on Windows, though.
Maybe collaborate with the Conan and vcpkg folks to support their offerings? I didn't even know there was a Qt server until now.
is there a summarized list somewhere so I can add all those to vcpkg ;). Searching through the configure.cmake files is really annoying.
There is https://github.com/qt/qtbase/blob/dev/cmake/configure-cmake-mapping.md, but it isn't comprehensive. The have custom GUI for configuring Qt build, but is available only in commercial version. I guess they don't want easy access to the list of all options to encourage people to buy it.
Exactly. Another step in the direction to encourage (or force??) to buy it. Thanks to A Neumann to point this out elegantly.
Thanks for pointing out that we missed the chance to make
configure -list-features
a commercial-only argument. /sTry
configure -list-features
andqt-configure-module -list-features
.