<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5f87cfe5c6ca9aae8c6169b5fc3da8ff0bf339e8">https://github.com/macports/macports-ports/commit/5f87cfe5c6ca9aae8c6169b5fc3da8ff0bf339e8</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 5f87cfe5c6c KeePassXC-devel: update to latest devel & update patch
</span>5f87cfe5c6c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5f87cfe5c6ca9aae8c6169b5fc3da8ff0bf339e8
</span>Author: tenzap <fabstz-it@yahoo.fr>
AuthorDate: Fri Nov 11 22:36:29 2022 +0100

<span style='display:block; white-space:pre;color:#404040;'>    KeePassXC-devel: update to latest devel & update patch
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Update patch to fix build on macos
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes these build errors on macos 10.8
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    /src/touchid/TouchID.mm:132:5: error: unknown type name 'SecAccessControlCreateFlags'
</span><span style='display:block; white-space:pre;color:#404040;'>    /src/touchid/TouchID.mm:148:4: error: use of undeclared identifier 'SecAccessControlRef'
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fix build when built with Qt5.6 (used on macos 10.7)
</span>---
 security/KeePassXC/Portfile                        |  13 ++-
 ...ouch-id.diff => add_support_for_old_macos.diff} | 130 +++++++++++++++++----
 .../files/devel/add_support_for_qt5.6.diff         |  38 ++++++
 3 files changed, 153 insertions(+), 28 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/KeePassXC/Portfile b/security/KeePassXC/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e56eb8329f3..05cb9bec571 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/KeePassXC/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/KeePassXC/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,22 +64,23 @@ if {${subport} eq ${name}} {
</span>     }
 } else {
     # devel subport
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup        keepassxreboot keepassxc d83743ea0b207e4a5c034af6a049ba157470e093
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup        keepassxreboot keepassxc 9ba88e2f13695add13f0391badf49aedae115b6f
</span>     set githash         [string range ${github.version} 0 6]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    version             20221023.git${githash}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version             20221102.git${githash}
</span>     revision            0
 
     conflicts           KeePassXC
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums           rmd160  90569580342ee0acd98e05a0ffaa442ac0f99bf3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  80b279e1e173c2693bddc098036054d771fcfbc161fc34e4b59571f1ea698b4d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    11243794
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums           rmd160  6b8b9a94b886e3062553b14ec1507324e7f7ec15 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  13a870d347837c6c8769dbf3f9ea9f074d0a9d039e4e7b11ac65187eb1520c66 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    11421690
</span> 
     gpg_verify.use_gpg_verification \
                         no
 
     patchfiles-append    devel/patch-no-findpackage-path.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                         devel/patch-touch-id.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         devel/add_support_for_old_macos.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         devel/add_support_for_qt5.6.diff
</span> }
 
 if {[option gpg_verify.use_gpg_verification]} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/KeePassXC/files/devel/patch-touch-id.diff b/security/KeePassXC/files/devel/add_support_for_old_macos.diff
</span>similarity index 57%
rename from security/KeePassXC/files/devel/patch-touch-id.diff
rename to security/KeePassXC/files/devel/add_support_for_old_macos.diff
<span style='display:block; white-space:pre;color:#808080;'>index 41b4388b3f0..630f51c88c7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/KeePassXC/files/devel/patch-touch-id.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/KeePassXC/files/devel/add_support_for_old_macos.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,28 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur CMakeLists.txt CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: tenzap <fabstz-it@yahoo.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 13 Nov 2022 09:38:48 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix build failure on macos versions < 10.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch will permit to fix build issues on macos versions < 10.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Strategy is to check at configure time which functions are available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Those that are not available, are hidden by preprocessor checks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream doesn't want to merge patches to build on versions prior to macos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+10.13, so this patch is not forwarded upstream.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See: https://github.com/keepassxreboot/keepassxc/pull/8650#issuecomment-1291750066
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> --- CMakeLists.txt
 +++ CMakeLists.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -81,6 +81,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,6 +81,42 @@ if(APPLE)
</span>         ${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/
         ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_watch_support.mm)
      message(STATUS "Apple watch compiler support: ${XC_APPLE_COMPILER_SUPPORT_WATCH}")
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    try_compile(XC_APPLE_COMPILER_SUPPORT_errSecUserCanceled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_CURRENT_BINARY_DIR}/errSecUserCanceled_test/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_errSecUserCanceled_support.mm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "errSecUserCanceled compiler support: ${XC_APPLE_COMPILER_SUPPORT_errSecUserCanceled}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +    try_compile(XC_APPLE_COMPILER_SUPPORT_LocalAuthentication
 +       ${CMAKE_CURRENT_BINARY_DIR}/LocalAuthentication_test/
 +       ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_LocalAuthentication_support.mm)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,12 +47,39 @@ diff -Naur CMakeLists.txt CMakeLists.txt
</span> +       ${CMAKE_CURRENT_BINARY_DIR}/kSecUseOperationPrompt_test/
 +       ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm)
 +    message(STATUS "kSecUseOperationPrompt compiler support: ${XC_APPLE_COMPILER_SUPPORT_kSecUseOperationPrompt}")
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    try_compile(XC_APPLE_COMPILER_SUPPORT_SecAccessControlRef
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_CURRENT_BINARY_DIR}/SecAccessControlRef_test/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_SecAccessControlRef_support.mm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "SecAccessControlRef compiler support: ${XC_APPLE_COMPILER_SUPPORT_SecAccessControlRef}")
</span> +
  endif()
  
  if(WITH_CCACHE)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur cmake/compiler-checks/macos/control_kSecAttrAccessControl_support.mm cmake/compiler-checks/macos/control_kSecAttrAccessControl_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/compiler-checks/macos/control_kSecAttrAccessControl_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/compiler-checks/macos/control_LocalAuthentication_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <LocalAuthentication/LocalAuthentication.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main() { return 0; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/compiler-checks/macos/control_SecAccessControlRef_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Security/Security.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   SecAccessControlRef;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/compiler-checks/macos/control_errSecUserCanceled_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Security/Security.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   errSecUserCanceled;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span> +++ cmake/compiler-checks/macos/control_kSecAttrAccessControl_support.mm
 @@ -0,0 +1,6 @@
 +#include <Security/Security.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,8 +88,7 @@ diff -Naur cmake/compiler-checks/macos/control_kSecAttrAccessControl_support.mm
</span> +   kSecAttrAccessControl;
 +   return 0;
 +}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur cmake/compiler-checks/macos/control_kSecAttrSynchronizable_support.mm cmake/compiler-checks/macos/control_kSecAttrSynchronizable_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/compiler-checks/macos/control_kSecAttrSynchronizable_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span> +++ cmake/compiler-checks/macos/control_kSecAttrSynchronizable_support.mm
 @@ -0,0 +1,6 @@
 +#include <Security/Security.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,8 +97,7 @@ diff -Naur cmake/compiler-checks/macos/control_kSecAttrSynchronizable_support.mm
</span> +   kSecAttrSynchronizable;
 +   return 0;
 +}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur cmake/compiler-checks/macos/control_kSecUseAuthenticationUI_support.mm cmake/compiler-checks/macos/control_kSecUseAuthenticationUI_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/compiler-checks/macos/control_kSecUseAuthenticationUI_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span> +++ cmake/compiler-checks/macos/control_kSecUseAuthenticationUI_support.mm
 @@ -0,0 +1,6 @@
 +#include <Security/Security.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,8 +106,7 @@ diff -Naur cmake/compiler-checks/macos/control_kSecUseAuthenticationUI_support.m
</span> +   kSecUseAuthenticationUI;
 +   return 0;
 +}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span> +++ cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm
 @@ -0,0 +1,6 @@
 +#include <Security/Security.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -74,37 +115,33 @@ diff -Naur cmake/compiler-checks/macos/control_kSecUseOperationPrompt_support.mm
</span> +   kSecUseOperationPrompt;
 +   return 0;
 +}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur cmake/compiler-checks/macos/control_localAuthentication_support.mm cmake/compiler-checks/macos/control_localAuthentication_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/compiler-checks/macos/control_LocalAuthentication_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ cmake/compiler-checks/macos/control_LocalAuthentication_support.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <LocalAuthentication/LocalAuthentication.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int main() { return 0; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur src/config-keepassx.h.cmake src/config-keepassx.h.cmake
</span> --- src/config-keepassx.h.cmake
 +++ src/config-keepassx.h.cmake
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -41,10 +41,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,10 +41,24 @@
</span>  #cmakedefine01 XC_APPLE_COMPILER_SUPPORT_BIOMETRY()
  #cmakedefine01 XC_APPLE_COMPILER_SUPPORT_TOUCH_ID()
  #cmakedefine01 XC_APPLE_COMPILER_SUPPORT_WATCH()
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_errSecUserCanceled()
</span> +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_LocalAuthentication()
 +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_kSecAttrSynchronizable()
 +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_kSecUseAuthenticationUI()
 +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_kSecAttrAccessControl()
 +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_kSecUseOperationPrompt()
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_SecAccessControlRef()
</span>  
  #define XC_COMPILER_SUPPORT(X) XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_##X()
  #define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_APPLE_BIOMETRY() XC_APPLE_COMPILER_SUPPORT_BIOMETRY()
  #define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_TOUCH_ID() XC_APPLE_COMPILER_SUPPORT_TOUCH_ID()
  #define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_WATCH_UNLOCK() XC_APPLE_COMPILER_SUPPORT_WATCH()
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_errSecUserCanceled() XC_APPLE_COMPILER_SUPPORT_errSecUserCanceled()
</span> +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_LocalAuthentication() XC_APPLE_COMPILER_SUPPORT_LocalAuthentication()
 +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_kSecAttrSynchronizable() XC_APPLE_COMPILER_SUPPORT_kSecAttrSynchronizable()
 +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_kSecUseAuthenticationUI() XC_APPLE_COMPILER_SUPPORT_kSecUseAuthenticationUI()
 +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_kSecAttrAccessControl() XC_APPLE_COMPILER_SUPPORT_kSecAttrAccessControl()
 +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_kSecUseOperationPrompt() XC_APPLE_COMPILER_SUPPORT_kSecUseOperationPrompt()
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_SecAccessControlRef() XC_APPLE_COMPILER_SUPPORT_SecAccessControlRef()
</span>  
  #endif // KEEPASSX_CONFIG_KEEPASSX_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur src/touchid/TouchID.mm src/touchid/TouchID.mm
</span> --- src/touchid/TouchID.mm
 +++ src/touchid/TouchID.mm
 @@ -9,7 +9,9 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -117,7 +154,33 @@ diff -Naur src/touchid/TouchID.mm src/touchid/TouchID.mm
</span>  #include <Security/Security.h>
  
  #include <QCoreApplication>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -164,9 +166,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,7 +133,9 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // We need both runtime and compile time checks here to solve the following problems:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // - Not all flags are available in all OS versions, so we have to check it at compile time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // - Requesting Biometry/TouchID when to fingerprint sensor is available will result in runtime error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if XC_COMPILER_SUPPORT(SecAccessControlRef)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SecAccessControlCreateFlags accessControlFlags = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (isTouchIdAvailable()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if XC_COMPILER_SUPPORT(APPLE_BIOMETRY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        // Prefer the non-deprecated flag when available
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,6 +151,7 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if XC_COMPILER_SUPPORT(SecAccessControlRef)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        kCFAllocatorDefault, kSecAttrAccessibleWhenUnlockedThisDeviceOnly, accessControlFlags, &error);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -155,6 +160,7 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         debug("TouchID::storeKey - Error creating security flags: %s", e.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString *accountName = keyName.toNSString(); // The NSString is released by Qt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -168,15 +174,23 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe
</span>      CFDictionarySetValue(attributes, kSecClass, kSecClassGenericPassword);
      CFDictionarySetValue(attributes, kSecAttrAccount, (__bridge CFStringRef) accountName);
      CFDictionarySetValue(attributes, kSecValueData, (__bridge CFDataRef) keychainValueData);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -127,13 +190,21 @@ diff -Naur src/touchid/TouchID.mm src/touchid/TouchID.mm
</span> +#if XC_COMPILER_SUPPORT(kSecUseAuthenticationUI)
      CFDictionarySetValue(attributes, kSecUseAuthenticationUI, kSecUseAuthenticationUIAllow);
 +#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if XC_COMPILER_SUPPORT(kSecAttrAccessControl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if XC_COMPILER_SUPPORT(kSecAttrAccessControl) && XC_COMPILER_SUPPORT(SecAccessControlRef)
</span>      CFDictionarySetValue(attributes, kSecAttrAccessControl, sacObject);
 +#endif
  
      // add to KeyChain
      OSStatus status = SecItemAdd(attributes, NULL);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -218,7 +226,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LogStatusError("TouchID::storeKey - Status adding new entry", status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if XC_COMPILER_SUPPORT(SecAccessControlRef)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CFRelease(sacObject);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CFRelease(attributes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (status != errSecSuccess) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -222,18 +236,23 @@ bool TouchID::getKey(const QString& databasePath, QByteArray& passwordKey) const
</span>      CFDictionarySetValue(query, kSecClass, kSecClassGenericPassword);
      CFDictionarySetValue(query, kSecAttrAccount, (__bridge CFStringRef) accountName);
      CFDictionarySetValue(query, kSecReturnData, kCFBooleanTrue);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,3 +214,18 @@ diff -Naur src/touchid/TouchID.mm src/touchid/TouchID.mm
</span>  
      // get data from the KeyChain
      CFTypeRef dataTypeRef = NULL;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+     OSStatus status = SecItemCopyMatching(query, &dataTypeRef);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CFRelease(query);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if XC_COMPILER_SUPPORT(errSecUserCanceled)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (status == errSecUserCanceled) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // user canceled the authentication, return true with empty key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         debug("TouchID::getKey - User canceled authentication");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } else if (status != errSecSuccess || dataTypeRef == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (status != errSecSuccess || dataTypeRef == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         LogStatusError("TouchID::getKey - key query error", status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/KeePassXC/files/devel/add_support_for_qt5.6.diff b/security/KeePassXC/files/devel/add_support_for_qt5.6.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..23878330aeb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/KeePassXC/files/devel/add_support_for_qt5.6.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,38 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: tenzap <fabstz-it@yahoo.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 13 Nov 2022 09:38:48 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix build failure with Qt5.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+On macos 10.7 which uses Qt 5.6, build fails with this error:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+src/gui/tag/TagView.cpp:79:38: error: no matching constructor for initialization of 'QAction'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Search"))}, mapToGlobal(pos));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is because in Qt 5.6, the 3rd argument is not optional. Starting from Qt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+5.7 the default value for the 3rd argument is nullptr, so setting it to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+nullptr.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://doc.qt.io/archives/qt-5.6/qaction.html#QAction-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://doc.qt.io/archives/qt-5.7/qaction.html#QAction-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream doesn't want to merge patches to build on versions prior to macos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+10.13, so this patch is not forwarded upstream.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/gui/tag/TagView.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/gui/tag/TagView.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,14 +76,14 @@ void TagView::contextMenuRequested(const QPoint& pos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (type == TagModel::SAVED_SEARCH) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Allow deleting saved searches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         QMenu menu;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Search"))}, mapToGlobal(pos));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Search"), nullptr)}, mapToGlobal(pos));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (action) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             m_db->metadata()->deleteSavedSearch(index.data(Qt::DisplayRole).toString());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (type == TagModel::TAG) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Allow removing tags from all entries in a database
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         QMenu menu;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Tag"))}, mapToGlobal(pos));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Tag"), nullptr)}, mapToGlobal(pos));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (action) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto tag = index.data(Qt::DisplayRole).toString();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto ans = MessageBox::question(this,
</span></pre><pre style='margin:0'>

</pre>