Skip to content

Commit

Permalink
Merge branch 'develop' into feature/async-password-entropy-check
Browse files Browse the repository at this point in the history
  • Loading branch information
libklein authored Apr 10, 2022
2 parents 776bd8f + 5916a8f commit 6788a67
Show file tree
Hide file tree
Showing 92 changed files with 2,223 additions and 1,652 deletions.
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Changelog

## 2.7.1 (2022-04-05)

### Changes
- Show when tags are changed in entry history [#7638]
- Improve tags editing and allow spaces in tags [#7708]
- Improve layout of entry preview panel [#7767]
- Incorporate patches to support Flatpak distribution [#7728]
- Add expiration presets for 12 and 24 hours [#7738]

### Fixes
- Fix crash when building history change list [#7638]
- Fix hiding password on database unlock [#7725]
- Fix AES KDF slow transform speed [#7755]
- Auto-Type: Correct timing issue on macOS and Linux that prevented typing [#7588]
- Auto-Type: Fix use of Ctrl/Alt/Shift/Win modifiers on Windows [#7629]
- Auto-Type: Reduce/eliminate delay when searching for entries [#7598]
- Auto-Type: Map ASCII dead keys on Linux for international keyboards [#7614]
- CLI: Fix detection of hardware keys (YubiKey) [#7593]
- CLI: Add missing parameter `-c` to add/edit entries command [#7594]
- Secret Service: Fix crash when multiple prompts are shown [#7786]
- SSH Agent: Fix default agent selection on Windows [#7764]
- Fix database unlock dialog not being the top window on Linux [#7771]
- Fix drag/drop entries between tabs on Wayland [#7628]
- Fix compiling with minizip-ng [#7638]

## 2.7.0 (2022-03-21)

### Major Additions
Expand Down
21 changes: 14 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
cmake_minimum_required(VERSION 3.3.0)

project(KeePassXC)
set(APP_ID "org.keepassxc.${PROJECT_NAME}")

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
Expand Down Expand Up @@ -92,7 +93,7 @@ endif()

set(KEEPASSXC_VERSION_MAJOR "2")
set(KEEPASSXC_VERSION_MINOR "7")
set(KEEPASSXC_VERSION_PATCH "0")
set(KEEPASSXC_VERSION_PATCH "1")
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds")

Expand All @@ -118,7 +119,8 @@ execute_process(COMMAND git tag --points-at HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG
ERROR_QUIET)
if(GIT_TAG)
string(REGEX REPLACE "latest" "" GIT_TAG "${GIT_TAG}")
if(GIT_TAG MATCHES "[0-9]+\.[0-9]+\.[0-9]+")
string(STRIP "${GIT_TAG}" GIT_TAG)
set(OVERRIDE_VERSION ${GIT_TAG})
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
Expand All @@ -127,14 +129,14 @@ endif()

string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}")
if(OVERRIDE_VERSION)
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$")
set(KEEPASSXC_BUILD_TYPE PreRelease)
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-beta[0-9]*")
set(KEEPASSXC_BUILD_TYPE "PreRelease")
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$")
set(KEEPASSXC_BUILD_TYPE Release)
set(KEEPASSXC_BUILD_TYPE "Release")
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
else()
set(KEEPASSXC_BUILD_TYPE Snapshot)
set(KEEPASSXC_BUILD_TYPE "Snapshot")
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
endif()
else()
Expand All @@ -158,11 +160,13 @@ message(STATUS "Setting up build for KeePassXC v${KEEPASSXC_VERSION}\n")
# Distribution info
set(KEEPASSXC_DIST ON)
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution Type")
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Other)
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Flatpak Other)
if(KEEPASSXC_DIST_TYPE STREQUAL "Snap")
set(KEEPASSXC_DIST_SNAP ON)
elseif(KEEPASSXC_DIST_TYPE STREQUAL "AppImage")
set(KEEPASSXC_DIST_APPIMAGE ON)
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Flatpak")
set(KEEPASSXC_DIST_FLATPAK ON)
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Other")
unset(KEEPASSXC_DIST)
endif()
Expand Down Expand Up @@ -245,6 +249,9 @@ macro(check_add_gcc_compiler_flag FLAG)
endmacro(check_add_gcc_compiler_flag)

add_definitions(-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
if(NOT IS_DEBUG_BUILD)
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif()

if(WITH_APP_BUNDLE)
add_definitions(-DWITH_APP_BUNDLE)
Expand Down
Binary file modified docs/images/database_view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/main_interface.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/sshagent_application_settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions docs/topics/AutoType.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,18 @@ image::autotype_entry_sequences.png[]
|{PICKCHARS} |Pick specific password characters from a dialog
|{MODE=VIRTUAL} |(Experimental) Use virtual key presses on Windows, useful for virtual machines
|===
+
[grid=rows, frame=none, width=90%]
|===
|Modifier |Description

|+ |SHIFT
|^ |CTRL
|% |ALT
|# |WIN/CMD
|===

TIP: Use modifiers to hold down special keys before typing the next character. For example, to type *CTRL+SHIFT+D* use: `^+d`. This is useful if you need to activate certain actions in a program or on your desktop.

=== Performing Global Auto-Type
The global Auto-Type keyboard shortcut is used when you have focus on the window you want to type into. To make use of this feature, you must have previously configured an Auto-Type hotkey.
Expand Down
2 changes: 1 addition & 1 deletion docs/topics/DatabaseOperations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ image::clone_entry.png[]
2. The clone dialog will appear.
+
.Clone entry dialog
image::clone_entry_dialog.png[,70%]
image::clone_entry_dialog.png[,50%]
* Select the Append ‘ - Clone’ to title check-box to create a new entry with the word Clone as the suffix to the name of the new entry.
* Select the Replace username and password with references check-box to create the new entry where the username and the password fields contain the references to the username and password to the master entry.
* Select the Copy history checkbox to copy the history of the master entry to the clone.
Expand Down
4 changes: 2 additions & 2 deletions docs/topics/PasswordGenerator.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Word Count slider.
3. In the Word Separator field, enter a character, word, number, or space that you want to use as a separator between the words in your passphrase.
4. _(Optional)_ You can choose a word case between lower, upper, and title case options.
5. _(Optional)_ You can also load your own custom word lists. Click the plus sign button to the right of the wordlist selection dialog to choose a custom word list. You can download alternative lists from the https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases[EFF's Website] or from https://github.com/redacted/XKCD-password-generator#additional-languages[GitHub].
4. Click the Regenerate button (Ctrl + R) to generate a new random passphrase.
5. Click the Clipboard button (Ctrl + C) to copy the passphrase to the clipboard.
6. Click the Regenerate button (Ctrl + R) to generate a new random passphrase.
7. Click the Clipboard button (Ctrl + C) to copy the passphrase to the clipboard.
// end::advanced[]
// end::content[]
9 changes: 9 additions & 0 deletions docs/topics/Reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,15 @@ Examples: +
|{PICKCHARS} |Pick specific password characters from a dialog
|===

[grid=rows, frame=none, width=90%]
|===
|Modifier |Description

|+ |SHIFT
|^ |CTRL
|% |ALT
|# |WIN/CMD
|===
*Text Conversions:*

`{T-CONV:/<PLACEHOLDER>/<METHOD>/}` +
Expand Down
2 changes: 1 addition & 1 deletion docs/topics/SSHAgent.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ image::sshagent_application_settings.png[]
On the settings page you can enable the integration by checking _Enable SSH Agent integration_.
When the integration is enabled coming back to the settings page also shows if connection to the agent is working.

On Windows you have the option to select between _Pageant_ and _OpenSSH for Windows_ and on other platforms the settings page shows the current value of _SSH_AUTH_SOCK_ environment variable which is used to connect to the running agent and an option to manually override the automatically detected path.
On Windows, you have the option to select _Pageant_ and/or _OpenSSH for Windows_. On macOS and Linux, the system ssh-agent will be used automatically and the settings page shows the current value of _SSH_AUTH_SOCK_ environment variable which is used to connect to the running agent and an option to manually override the automatically detected path.

If the value of _SSH_AUTH_SOCK_ is empty it means the agent is not properly configured and KeePassXC will be unable to connect to it unless you provide a static override path to the socket.

Expand Down
46 changes: 37 additions & 9 deletions share/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,43 @@ install(FILES ${wordlists_files} DESTINATION ${DATA_INSTALL_DIR}/wordlists)
file(COPY "wordlists" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

if(UNIX AND NOT APPLE AND NOT HAIKU)
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "keepassx*.png" PATTERN "keepassx*.svg"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "application-x-keepassxc.png" PATTERN "application-x-keepassxc.svg"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(FILES linux/org.keepassxc.KeePassXC.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES linux/org.keepassxc.KeePassXC.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
install(FILES linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages)
# Flatpak requires all host accessible files to use filenames based upon the app id
if(KEEPASSXC_DIST_FLATPAK)
set(APP_ICON_NAME "${APP_ID}")
set(MIME_ICON "${APP_ID}-application-x-keepassxc")
configure_file(linux/keepassxc.xml.in ${CMAKE_CURRENT_BINARY_DIR}/linux/${APP_ID}.xml @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/linux/${APP_ID}.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages)

file(GLOB_RECURSE ICON_FILES LIST_DIRECTORIES false
"icons/application/*/keepassxc*.png"
"icons/application/*/*keepassxc*.svg")
foreach(icon_match ${ICON_FILES})
get_filename_component(icon_name ${icon_match} NAME)
get_filename_component(icon_dir ${icon_match} DIRECTORY)
# Prefix all icons with application id: "org.keepassxc.KeePassXC"
string(REGEX REPLACE "^keepassxc(.*)?(\\.png|\\.svg)$" "${APP_ID}\\1\\2" icon_name ${icon_name})
string(REGEX REPLACE "^(application-x-keepassxc\\.svg)$" "${APP_ID}-\\1" icon_name ${icon_name})
# Find icon sub dir ex. "scalable/mimetypes/"
file(RELATIVE_PATH icon_subdir ${CMAKE_CURRENT_SOURCE_DIR}/icons/application ${icon_dir})
install(FILES ${icon_match} DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${icon_subdir}
RENAME ${icon_name})
endforeach()
else()
set(APP_ICON_NAME "keepassxc")
set(MIME_ICON "application-x-keepassxc")
configure_file(linux/keepassxc.xml.in ${CMAKE_CURRENT_BINARY_DIR}/linux/keepassxc.xml @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages)

install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "keepassx*.png" PATTERN "keepassx*.svg"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "application-x-keepassxc.svg" PATTERN "status"
EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
endif(KEEPASSXC_DIST_FLATPAK)
configure_file(linux/${APP_ID}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/linux/${APP_ID}.desktop @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/linux/${APP_ID}.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES linux/${APP_ID}.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
endif(UNIX AND NOT APPLE AND NOT HAIKU)

if(APPLE)
Expand Down
2 changes: 1 addition & 1 deletion share/linux/keepassxc.xml → share/linux/keepassxc.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
<mime-type type="application/x-keepass2">
<comment>KeePass 2 Database</comment>
<glob pattern="*.kdbx"/>
<icon name="application-x-keepassxc"/>
<icon name="@MIME_ICON@"/>
</mime-type>
</mime-info>
27 changes: 26 additions & 1 deletion share/linux/org.keepassxc.KeePassXC.appdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,31 @@
</screenshots>

<releases>
<release version="2.7.1" date="2022-04-05">
<description>
<ul>
<li>Show when tags are changed in entry history [#7638]</li>
<li>Improve tags editing and allow spaces in tags [#7708]</li>
<li>Improve layout of entry preview panel [#7767]</li>
<li>Incorporate patches to support Flatpak distribution [#7728]</li>
<li>Add expiration presets for 12 and 24 hours [#7738]</li>
<li>Fix crash when building history change list [#7638]</li>
<li>Fix hiding password on database unlock [#7725]</li>
<li>Fix AES KDF slow transform speed [#7755]</li>
<li>Auto-Type: Correct timing issue on macOS and Linux that prevented typing [#7588]</li>
<li>Auto-Type: Fix use of Ctrl/Alt/Shift/Win modifiers on Windows [#7629]</li>
<li>Auto-Type: Reduce/eliminate delay when searching for entries [#7598]</li>
<li>Auto-Type: Map ASCII dead keys on Linux for international keyboards [#7614]</li>
<li>CLI: Fix detection of hardware keys (YubiKey) [#7593]</li>
<li>CLI: Add missing parameter `-c` to add/edit entries command [#7594]</li>
<li>Secret Service: Fix crash when multiple prompts are shown [#7786]</li>
<li>SSH Agent: Fix default agent selection on Windows [#7764]</li>
<li>Fix database unlock dialog not being the top window on Linux [#7771]</li>
<li>Fix drag/drop entries between tabs on Wayland [#7628]</li>
<li>Fix compiling with minizip-ng [#7638]</li>
</ul>
</description>
</release>
<release version="2.7.0" date="2022-03-21">
<description>
<ul>
Expand Down Expand Up @@ -94,7 +119,7 @@
<li>FdoSecrets: Major Refactor and Code Consolidation [#5747][#5660][#7043][#6915]</li>
<li>FdoSecrets: Implement unlock before search [#6943]</li>
<li>Reports: Add browser statistics report [#7197]</li>
<li>Port crypto backend to [Botan](https://github.com/randombit/botan) [#6209]</li>
<li>Port crypto backend to Botan [#6209]</li>
<li>Improve attachment handling and security [#6606][#5034][#7083]</li>
<li>Allow selecting any open database in unlock dialog [#5427]</li>
<li>KeeShare: Remove checking signed container and QuaZip dependency [#7223]</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Comment[et]=Kogukonna arendatav port Windowsi programmist KeePass Password Safe
Comment[ru]=Разработанный сообществом порт Windows-приложения KeePass Password Safe
Exec=keepassxc %f
TryExec=keepassxc
Icon=keepassxc
Icon=@APP_ICON_NAME@
StartupWMClass=keepassxc
StartupNotify=true
Terminal=false
Expand Down
26 changes: 17 additions & 9 deletions share/translations/keepassxc_bg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</message>
<message>
<source>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;See Contributions on GitHub&lt;/a&gt;</source>
<translation>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;Вижте контрибутурите в GitHub&lt;/a&gt;</translation>
<translation>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;Вижте сътрудниците в GitHub&lt;/a&gt;</translation>
</message>
<message>
<source>Debug Info</source>
Expand Down Expand Up @@ -150,6 +150,10 @@
<source>SSH Agent connection is working!</source>
<translation>SSH Agent връзката работи!</translation>
</message>
<message>
<source>Use both agents</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>ApplicationSettingsWidget</name>
Expand Down Expand Up @@ -2532,10 +2536,6 @@ Would you like to correct it?</source>
<source>Hide</source>
<translation>Скриване</translation>
</message>
<message>
<source>Tomorrow</source>
<translation>Утре</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation><numerusform>%n седмица(а)</numerusform><numerusform>%n седмица(и)</numerusform></translation>
Expand All @@ -2548,6 +2548,10 @@ Would you like to correct it?</source>
<source>%n year(s)</source>
<translation><numerusform>%n година(а)</numerusform><numerusform>%n година(е)</numerusform></translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
</context>
<context>
<name>EditEntryWidgetAdvanced</name>
Expand Down Expand Up @@ -3655,6 +3659,10 @@ Error: %1</source>
<source>Auto-Type</source>
<translation>Auto-Type</translation>
</message>
<message>
<source>Tags</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EntryModel</name>
Expand Down Expand Up @@ -7211,10 +7219,6 @@ Please consider generating a new key file.</source>
<source>Invalid YubiKey serial %1</source>
<translation>Невалиден YubiKey сериен номер %1</translation>
</message>
<message>
<source>Please present or touch your YubiKey to continue…</source>
<translation type="unfinished"/>
</message>
<message>
<source>Enter password to encrypt database (optional): </source>
<translation>Въведете парола за шифроване на база данни (незадължително):</translation>
Expand Down Expand Up @@ -7692,6 +7696,10 @@ Kernel: %3 %4</source>
<source>Failed to sign challenge using Windows Hello.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please present or touch your YubiKey to continue.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
Expand Down
Loading

0 comments on commit 6788a67

Please sign in to comment.