Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Qt6 transition #11651

Open
wants to merge 13 commits into
base: develop
Choose a base branch
from
Open

Conversation

varjolintu
Copy link
Member

Continues work from #10267, using #11003 as the base.

Fixes #7774.

Type of change

  • ✅ Refactor (significant modification to existing code)

droidmonkey and others added 10 commits January 2, 2025 23:38
* Remove individual feature flags in favor of a single `KPXC_MINIMAL` flag that removes advanced features from the build. Basic features are no longer guarded by feature flags.
* Basic features: Auto-Type, Yubikey, KeeShare
* Advanced features include: Browser (and passkeys), SSH Agent, and Secret Service
* Networking, Documentation, and Update Checking remain as feature flags to accommodate various distro requirements.

This change also cleans up the main CMakeLists.txt by re-arranging some content and placing macros into a dedicated include file. The minimum CMake version was bumped to 3.16.0 to conform to our minimum Ubuntu support of Focal (20.04). This also allows us to default to C++20, we fall back to C++17 for Qt versions less than 5.15.0 due to lack of support.

Lastly this change removes the KEEPASSXC_BUILD_TYPE="PreRelease" which is never used. We only support "Snapshot" and "Release" now.
Co-authored-by: Carlo Teubner <carlo@cteubner.net>
- Fix missing X11 library for linker
- Other Linux fixes

NOTE: FDOSECRETS CURRENTLY CRASHES WHEN ATTEMPTING TO BE USED
@varjolintu varjolintu added pr: refactoring Pull request that refactors code Qt labels Jan 12, 2025
@varjolintu varjolintu added this to the v2.8.0 milestone Jan 12, 2025
@varjolintu varjolintu mentioned this pull request Jan 12, 2025
7 tasks
@varjolintu varjolintu changed the title Qt6 ver2 WIP: Qt6 transition Jan 12, 2025
droidmonkey and others added 3 commits January 12, 2025 09:38
* Also reduce minimum Qt version to 6.4.2 to align with Ubuntu 24.04
Comment on lines +479 to +481
# Find PCSC and LibUSB for hardware key support
find_package(PCSC REQUIRED)
include_directories(SYSTEM ${PCSC_INCLUDE_DIRS})
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to be wrapped in if(WITH_XC_YUBIKEY)

Copy link
Member

@droidmonkey droidmonkey Feb 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yubikey is actually standard feature for 2.8.0 so this won't get wrapped. We have removed several feature flags.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to ask you to please reconsider this choice. I am building this on a Gentoo system with limited resources. I do not have a YubiKey, nor am I likely to get one. Compiling and installing libraries for hardware that I do not own places an unnecessary burden on my system, impacting performance and efficiency. I am sure many other users feel the same.

Copy link
Member

@droidmonkey droidmonkey Feb 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libpcsc is hardly a burden on the system, especially since we use Qt which is about 1000x bigger. You are welcome to patch out the change if you are compiling this for yourself

# TODO: Increase minimum to 2.19.1 and drop Argon2 package
find_package(Botan REQUIRED)
if(BOTAN_VERSION VERSION_GREATER_EQUAL "3.0.0")
set(WITH_BOTAN3 TRUE)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is still a reference to the old define in src/fdosecrets/objects/SessionCipher.cpp:#ifdef WITH_XC_BOTAN3

@Hasshu
Copy link

Hasshu commented Feb 16, 2025

Any chance of this making it into v2.7.10? Apparently, Qt 5 is pretty much unsupported at this point.

@varjolintu
Copy link
Member Author

Any chance of this making it into v2.7.10? Apparently, Qt 5 is pretty much unsupported at this point.

No. This needs more work.

@Hasshu
Copy link

Hasshu commented Feb 17, 2025

@varjolintu Gotcha. Keep up the good work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high priority 🚨 pr: refactoring Pull request that refactors code Qt
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Qt 6 upgrade
4 participants