libfido2: add macOS support

* pass IOKit to libfido2
* Add a patch so that cmake uses lld flags when linking
* Upgrade from 1.3.0 to 1.3.1 (based off #80781)
* Specify CMAKE_INSTALL_LIBDIR so that the demo binaries link
  correctly on macOS and libfido2.pc specifies correct arguments
This commit is contained in:
Artemis Tosini 2020-02-23 15:59:41 +00:00
parent d34aa25b1f
commit 099359afc7
No known key found for this signature in database
GPG Key ID: EE5227935FE3FF18
3 changed files with 25 additions and 7 deletions

@ -1,17 +1,22 @@
{ stdenv, fetchurl, cmake, pkgconfig, libcbor, libressl, udev }:
{ stdenv, fetchurl, cmake, pkgconfig, libcbor, libressl, udev, IOKit }:
stdenv.mkDerivation rec {
pname = "libfido2";
version = "1.3.0";
version = "1.3.1";
src = fetchurl {
url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
sha256 = "1izyl3as9rn7zcxpsvgngjwr55gli5gy822ac3ajzm65qiqkcbhb";
sha256 = "0hdgxbmjbnm9kjwc07nrl2zy87qclvb3rzvdwr5iw35n2qhf4dds";
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ libcbor libressl ] ++ stdenv.lib.optionals stdenv.isLinux [ udev ];
buildInputs = [ libcbor libressl ]
++ stdenv.lib.optionals stdenv.isLinux [ udev ]
++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
cmakeFlags = [ "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" ];
patches = [ ./detect_apple_ld.patch ];
cmakeFlags = [ "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
"-DCMAKE_INSTALL_LIBDIR=lib" ];
meta = with stdenv.lib; {
description = ''
@ -20,6 +25,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/Yubico/libfido2;
license = licenses.bsd2;
maintainers = with maintainers; [ dtzWill ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

@ -0,0 +1,11 @@
--- a/CMakeLists.txt 2020-02-19 17:21:59.000000000 +0000
+++ b/CMakeLists.txt 2020-02-23 15:57:34.241115306 +0000
@@ -296,7 +296,7 @@
endif()
# export list
-if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
+if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
# clang + lld
string(CONCAT CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}
" -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/src/export.llvm")

@ -12468,7 +12468,9 @@ in
libfakekey = callPackage ../development/libraries/libfakekey { };
libfido2 = callPackage ../development/libraries/libfido2 { };
libfido2 = callPackage ../development/libraries/libfido2 {
inherit (darwin.apple_sdk.frameworks) IOKit;
};
libfilezilla = callPackage ../development/libraries/libfilezilla { };