keepassxc: support macOS
Closes #32879, taking the new description from the PR
This commit is contained in:
parent
c47ac0d8bf
commit
b693f989f6
18
pkgs/applications/misc/keepassx/cmake.patch
Normal file
18
pkgs/applications/misc/keepassx/cmake.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Fix "No known features for CXX compiler", see
|
||||||
|
https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at
|
||||||
|
https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -20,10 +20,10 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||||
|
FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-project(KeePassXC)
|
||||||
|
-
|
||||||
|
cmake_minimum_required(VERSION 3.1.0)
|
||||||
|
|
||||||
|
+project(KeePassXC)
|
||||||
|
+
|
||||||
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
# Support Visual Studio Code
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchFromGitHub, fetchpatch,
|
{ stdenv, fetchFromGitHub, cmake, makeWrapper, qttools
|
||||||
cmake, libgcrypt, zlib, libmicrohttpd, libXtst, qtbase, qttools, libgpgerror, glibcLocales, libyubikey, yubikey-personalization, libXi, qtx11extras
|
, libgcrypt, zlib, libmicrohttpd, libXtst, qtbase, libgpgerror, glibcLocales, libyubikey, yubikey-personalization, libXi, qtx11extras
|
||||||
, withKeePassHTTP ? true
|
, withKeePassHTTP ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0q913v2ka6p7jr7c4w9fq8aqh5v6nxqgcv9h7zllk5p0amsf8d80";
|
sha256 = "0q913v2ka6p7jr7c4w9fq8aqh5v6nxqgcv9h7zllk5p0amsf8d80";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [ ./cmake.patch ./darwin.patch ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DWITH_GUI_TESTS=ON"
|
"-DWITH_GUI_TESTS=ON"
|
||||||
"-DWITH_XC_AUTOTYPE=ON"
|
"-DWITH_XC_AUTOTYPE=ON"
|
||||||
@ -28,13 +30,22 @@ stdenv.mkDerivation rec {
|
|||||||
make test ARGS+="-E testgui --output-on-failure"
|
make test ARGS+="-E testgui --output-on-failure"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ cmake libgcrypt zlib qtbase qttools libXtst libmicrohttpd libgpgerror glibcLocales libyubikey yubikey-personalization libXi qtx11extras ];
|
nativeBuildInputs = [ cmake makeWrapper qttools ];
|
||||||
|
|
||||||
|
buildInputs = [ libgcrypt zlib qtbase libXtst libmicrohttpd libgpgerror glibcLocales libyubikey yubikey-personalization libXi qtx11extras ];
|
||||||
|
|
||||||
|
postInstall = optionalString stdenv.isDarwin ''
|
||||||
|
# Make it work without Qt in PATH.
|
||||||
|
wrapProgram $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC \
|
||||||
|
--set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Fork of the keepassX password-manager with additional http-interface to allow browser-integration an use with plugins such as PasslFox (https://github.com/pfn/passifox). See also keepassX2.";
|
description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
|
||||||
homepage = https://github.com/keepassxreboot/keepassxc;
|
longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI and via CLI. Includes optional http-interface to allow browser-integration with plugins like PassIFox (https://github.com/pfn/passifox).";
|
||||||
license = stdenv.lib.licenses.gpl2;
|
homepage = https://keepassxc.org/;
|
||||||
maintainers = with stdenv.lib.maintainers; [ s1lvester jonafato ];
|
license = licenses.gpl2;
|
||||||
platforms = with stdenv.lib.platforms; linux;
|
maintainers = with maintainers; [ s1lvester jonafato ];
|
||||||
|
platforms = with platforms; linux ++ darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
52
pkgs/applications/misc/keepassx/darwin.patch
Normal file
52
pkgs/applications/misc/keepassx/darwin.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
Remove the use of macdeployqt to avoid copying dependencies and
|
||||||
|
reduce installation size from 90 MB to 9 MB.
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -188,8 +188,8 @@ else()
|
||||||
|
set(PROGNAME keepassxc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(APPLE AND WITH_APP_BUNDLE AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
|
||||||
|
- set(CMAKE_INSTALL_PREFIX "/Applications")
|
||||||
|
+if(APPLE AND WITH_APP_BUNDLE)
|
||||||
|
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
@@ -198,7 +198,7 @@ if(MINGW)
|
||||||
|
set(PLUGIN_INSTALL_DIR ".")
|
||||||
|
set(DATA_INSTALL_DIR "share")
|
||||||
|
elseif(APPLE AND WITH_APP_BUNDLE)
|
||||||
|
- set(CLI_INSTALL_DIR "/usr/local/bin")
|
||||||
|
+ set(CLI_INSTALL_DIR "../bin")
|
||||||
|
set(BIN_INSTALL_DIR ".")
|
||||||
|
set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
|
||||||
|
set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources")
|
||||||
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||||
|
index 5255186..0175983 100644
|
||||||
|
--- a/src/CMakeLists.txt
|
||||||
|
+++ b/src/CMakeLists.txt
|
||||||
|
@@ -282,11 +282,6 @@ if(APPLE AND WITH_APP_BUNDLE)
|
||||||
|
if(NOT DEFINED QT_BINARY_DIR)
|
||||||
|
set(QT_BINARY_DIR "/usr/local/opt/qt5/bin" CACHE PATH "QT binary folder")
|
||||||
|
endif()
|
||||||
|
- add_custom_command(TARGET ${PROGNAME}
|
||||||
|
- POST_BUILD
|
||||||
|
- COMMAND ${QT_BINARY_DIR}/macdeployqt ${PROGNAME}.app
|
||||||
|
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
||||||
|
- COMMENT "Deploying app bundle")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt
|
||||||
|
index ac93de0..03d502e 100644
|
||||||
|
--- a/src/autotype/mac/CMakeLists.txt
|
||||||
|
+++ b/src/autotype/mac/CMakeLists.txt
|
||||||
|
@@ -16,7 +16,6 @@ if(WITH_APP_BUNDLE)
|
||||||
|
add_custom_command(TARGET keepassx-autotype-cocoa
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
|
||||||
|
- COMMAND ${QT_BINARY_DIR}/macdeployqt ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
||||||
|
COMMENT "Deploying autotype plugin")
|
||||||
|
else()
|
Loading…
x
Reference in New Issue
Block a user