diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 454b5f5009..d588bced96 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -132,7 +132,7 @@ For **Qt-UI files** (*.ui*): 2 spaces // Application includes #include "core/Config.h" -#include "core/FilePath.h" +#include "core/Resources.h" // Global includes #include diff --git a/CHANGELOG.md b/CHANGELOG.md index 68ec8f1f61..6971464980 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,26 @@ # Changelog -## 2.6 (unreleased) +## 2.6.0 (unreleased) ### Added - Added CLI db-info command [#4231] +- Switch application icons to Material Design [#4066] +- Health Check report [#551] +- HIBP report: Check passwords against the HIBP online service [#1083] ### Changed - Renamed CLI create command to db-create [#4231] +- Added --set-password option for CLI db-create command +- Added --set-key-file option for CLI db-create command (replacing --key-file option) + +## 2.5.4 (2020-04-09) + +### Fixed + +- Return keyboard focus after saving database edits [#4287] +- Windows: Use bare minimum settings in portable version [#4131] +- Windows: Use SHA256 code signing [#4129] +- macOS: Fix code signing incompatibility in latest macOS release [#4564] ## 2.5.3 (2020-01-19) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b41f39248..f82a08467f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,9 +62,9 @@ endif() if(WITH_CCACHE) # Use the Compiler Cache (ccache) program # (install with: sudo apt get ccache) - find_program (CCACHE_FOUND ccache) + find_program(CCACHE_FOUND ccache) if(CCACHE_FOUND) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_FOUND}) else() message(FATAL_ERROR "ccache requested but cannot be found.") endif() @@ -99,8 +99,8 @@ if(NOT WITH_XC_NETWORKING AND WITH_XC_UPDATECHECK) endif() set(KEEPASSXC_VERSION_MAJOR "2") -set(KEEPASSXC_VERSION_MINOR "5") -set(KEEPASSXC_VERSION_PATCH "3") +set(KEEPASSXC_VERSION_MINOR "6") +set(KEEPASSXC_VERSION_PATCH "0") set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}") set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds") @@ -339,12 +339,13 @@ if(MINGW) set(PLUGIN_INSTALL_DIR ".") set(DATA_INSTALL_DIR "share") elseif(APPLE AND WITH_APP_BUNDLE) - set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") - set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") - set(PROXY_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") - set(BIN_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") - set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns") - set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources") + set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents") + set(CMAKE_INSTALL_MANDIR "${BUNDLE_INSTALL_DIR}/Resources/man") + set(CLI_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS") + set(PROXY_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS") + set(BIN_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS") + set(PLUGIN_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/PlugIns") + set(DATA_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/Resources") else() include(GNUInstallDirs) diff --git a/COPYING b/COPYING index 9202a00235..9d430b7e93 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,5 @@ KeePassXC - http://www.keepassxc.org/ -Copyright (C) 2016-2019 KeePassXC Team +Copyright (C) 2016-2020 KeePassXC Team This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ Copyright: 2010-2012, Felix Geyer 2000-2008, Tom Sato 2013, Laszlo Papp 2013, David Faure - 2016-2019, KeePassXC Team + 2016-2020, KeePassXC Team License: GPL-2 or GPL-3 Comment: The "KeePassXC Team" in every copyright notice is formed by the following people: @@ -180,6 +180,8 @@ Files: share/icons/application/scalable/categories/preferences-other.svg share/icons/application/scalable/actions/favicon-download.svg share/icons/application/scalable/actions/document-open.svg share/icons/application/scalable/actions/document-save-as.svg + share/icons/application/scalable/actions/refresh.svg + share/icons/application/scalable/actions/clipboard-text.svg Copyright: 2019 Austin Andrews License: SIL OPEN FONT LICENSE Version 1.1 Comment: Taken from Material Design icon set (https://github.com/templarian/MaterialDesign/) @@ -228,3 +230,7 @@ License: MIT Files: share/icons/application/scalable/apps/freedesktop.svg Copyright: GPL-2+ Comment: from Freedesktop.org website + +Files: share/icons/application/scalable/actions/hibp.svg +Copyright: GPL-2+ +Comment: from the Simple Icons repo (https://github.com/simple-icons/simple-icons/) diff --git a/cmake/CLangFormat.cmake b/cmake/CLangFormat.cmake index 70169ed72c..c1e9572c28 100644 --- a/cmake/CLangFormat.cmake +++ b/cmake/CLangFormat.cmake @@ -19,7 +19,7 @@ set(EXCLUDED_DIRS # objective-c directories src/touchid/ src/autotype/mac/ - src/gui/macutils/) + src/gui/osutils/macutils/) set(EXCLUDED_FILES # third-party files diff --git a/docs/KEYBINDS.md b/docs/KEYBINDS.md index 968df20377..24f85f68e2 100644 --- a/docs/KEYBINDS.md +++ b/docs/KEYBINDS.md @@ -20,6 +20,8 @@ Copy Password | Ctrl + C Trigger AutoType | Ctrl + Shift - V Open URL | Ctrl + Shift - U Copy URL | Ctrl + U +Add key to SSH Agent | Ctrl + H +Remove key from SSH Agent | Ctrl + Shift + H Show Minimized | Ctrl + M Hide Window | Ctrl + Shift - M Select Next Database Tab | Ctrl + Tab *OR* Ctrl + PGDN diff --git a/release-tool b/release-tool index 48ca14b769..376d0d1217 100755 --- a/release-tool +++ b/release-tool @@ -1210,9 +1210,14 @@ appsign() { exitError "Unpacking failed!" fi - logInfo "Signing app..." - xcrun codesign --sign "${key}" --verbose --deep --entitlements \ - "${real_src_dir}/share/macosx/keepassxc.entitlements" ./app/KeePassXC.app + logInfo "Signing app bundle..." + xcrun codesign --sign "${key}" --verbose --deep --options runtime ./app/KeePassXC.app + + # Sign main binary and libraries independently so we can keep using the convenient --deep + # option while avoiding adding entitlements recursively + logInfo "Signing main binary..." + xcrun codesign --sign "${key}" --verbose --force --options runtime --entitlements \ + "${real_src_dir}/share/macosx/keepassxc.entitlements" ./app/KeePassXC.app/Contents/MacOS/KeePassXC if [ 0 -ne $? ]; then cd "${orig_dir}" diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 3a088bb886..e07e6f0823 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -19,10 +19,6 @@ add_subdirectory(translations) file(GLOB wordlists_files "wordlists/*.wordlist") install(FILES ${wordlists_files} DESTINATION ${DATA_INSTALL_DIR}/wordlists) -file(GLOB DATABASE_ICONS icons/database/*.png) - -install(FILES ${DATABASE_ICONS} DESTINATION ${DATA_INSTALL_DIR}/icons/database) - 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" @@ -39,12 +35,9 @@ if(APPLE) install(FILES macosx/keepassxc.icns DESTINATION ${DATA_INSTALL_DIR}) endif() -install(DIRECTORY docs/ DESTINATION ${DATA_INSTALL_DIR}/docs FILES_MATCHING PATTERN "*.pdf") +install(FILES icons/application/256x256/apps/keepassxc.png DESTINATION ${DATA_INSTALL_DIR}/icons/application/256x256/apps) -install(DIRECTORY wizard/ DESTINATION ${DATA_INSTALL_DIR}/wizard FILES_MATCHING PATTERN "*.png") - -install(DIRECTORY icons/application/ DESTINATION ${DATA_INSTALL_DIR}/icons/application - FILES_MATCHING PATTERN "*.png" PATTERN "*.svg") +install(DIRECTORY docs/ DESTINATION ${DATA_INSTALL_DIR}/docs FILES_MATCHING PATTERN "*.pdf") add_custom_target(icons # SVG to PNGs for KeePassXC diff --git a/share/demo.kdbx b/share/demo.kdbx index 1f37271048..1f2cb14727 100644 Binary files a/share/demo.kdbx and b/share/demo.kdbx differ diff --git a/share/docs/man/keepassxc-cli.1 b/share/docs/man/keepassxc-cli.1 index d1360cd65c..bac9a8d377 100644 --- a/share/docs/man/keepassxc-cli.1 +++ b/share/docs/man/keepassxc-cli.1 @@ -29,7 +29,7 @@ Copies an attribute or the current TOTP (if the \fI-t\fP option is specified) of In interactive mode, closes the currently opened database (see \fIopen\fP). .IP "\fBdb-create\fP [options] " -Creates a new database with a key file and/or password. The key file will be created if the file that is referred to does not exist. If both the key file and password are empty, no database will be created. +Creates a new database with a password and/or a key file. The key file will be created if the file that is referred to does not exist. If both the key file and password are empty, no database will be created. .IP "\fBdb-info\fP [options] " Show a database's information. @@ -185,6 +185,12 @@ Will report an error if no TOTP is configured for the entry. .SS "Create options" +.IP "\fB-k\fP, \fB--set-key-file\fP " +Set the key file for the database. + +.IP "\fB-p\fP, \fB--set-password\fP" +Set a password for the database. + .IP "\fB-t\fP, \fB--decryption-time\fP