Refactor: move to simple default builds#11003
Conversation
|
Why is KeeShare considered basic? It would argue that it's an advanced niche feature. It's not needed for most single-user use, and it requires network access. I would also argue that Secret Service is rather basic for Linux users, as it's the main method for client applications to store and retrieve their credentials. Though I agree that it's less basic than Auto-Type and Yubikey support. And I agree that it can be grouped with SSH Agent and Browser integration, since they all add an IPC layer. I would group these features like so:
(Technically, browser integration is also rather useless without network access, but as I understand the network access isn't done by KPXC itself.) |
|
Browser Integration still requires including networking to the code (even if it doesn't make any connections outside, it creates local sockets), so maybe it wouldn't fit to "no networking" category. |
a42b85d to
304d3b7
Compare
|
|
It absolutely does not require network access. KeeShare is going to be rebranded as simply "Sharing" when it gets refactored. Don't get hung up on the Basic/Advanced wording, thought of a couple different buckets but they were all too much. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #11003 +/- ##
===========================================
- Coverage 63.05% 62.92% -0.13%
===========================================
Files 362 361 -1
Lines 37727 37545 -182
===========================================
- Hits 23787 23624 -163
+ Misses 13940 13921 -19 ☔ View full report in Codecov by Sentry. |
30d2a5d to
2569be3
Compare
| * make (>= 4.2) or ninja (>= 1.10) | ||
| * g++ (>= 4.9) or clang++ (>= 6.0) | ||
| * g++ (>= 9.3.0) or clang++ (>= 10.0) | ||
| * asciidoctor (>= 2.0) |
There was a problem hiding this comment.
Could we also mention the minimum versions of required libraries (e.g. Qt, Botan) in here?
| mkdir build | ||
| cd build | ||
| cmake -DWITH_XC_ALL=ON .. | ||
| cmake .. | ||
| make |
There was a problem hiding this comment.
Or:
| mkdir build | |
| cd build | |
| cmake -DWITH_XC_ALL=ON .. | |
| cmake .. | |
| make | |
| cmake -B ./build | |
| cmake --build ./build |
This way it also works with alternative "generators", such as Ninja instead of Make.
|
|
||
| If you have `vcpkg` installed, add `-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake` to the `cmake` command to automatically download and install all required build and runtime dependencies locally to your build directory before compiling KeePassXC. Using `vcpkg` is the preferred way to install dependencies on macOS and required on Windows if using the MSVC toolchain. | ||
|
|
||
| For more detailed build instructions for each platform, please refer to the [GitHub wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC). |
There was a problem hiding this comment.
That wiki page has a lot of info duplicated. It would be nice to standardise on a single place.
| setFocusProxy(m_ui->entryTabWidget); | ||
|
|
||
| #if !defined(WITH_XC_KEESHARE) | ||
| removeTab(m_ui->groupTabWidget, m_ui->groupShareTab); |
There was a problem hiding this comment.
The removeTab function can now be removed.
e983223 to
76624f6
Compare
76624f6 to
9a353b4
Compare
3aaba9d to
9b8be59
Compare
* 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.
9b8be59 to
6d141d4
Compare
|
This branch definitely needs a rebase. I have a few compile errors with both minimal ON and OFF. |
|
This is needed for this branch too: |
KPXC_MINIMALflag that removes advanced features from the build. Basic features are no longer guarded by feature flags.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.
Testing strategy
Tested locally and with existing CI
Type of change