diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libfido2')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libfido2/default.nix | 57 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libfido2/detect_apple_ld.patch | 11 |
2 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libfido2/default.nix b/nixpkgs/pkgs/development/libraries/libfido2/default.nix new file mode 100644 index 000000000000..d5d2b18e5ed5 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libfido2/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, fetchurl +, fetchpatch +, cmake +, pkgconfig +, libcbor +, openssl +, udev +, IOKit }: + +stdenv.mkDerivation rec { + pname = "libfido2"; + version = "1.3.1"; + src = fetchurl { + url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz"; + sha256 = "0hdgxbmjbnm9kjwc07nrl2zy87qclvb3rzvdwr5iw35n2qhf4dds"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + + buildInputs = [ libcbor openssl ] + ++ stdenv.lib.optionals stdenv.isLinux [ udev ] + ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ]; + + patches = [ + # fix build on darwin + (fetchpatch { + url = "https://github.com/Yubico/libfido2/commit/916ebd18a89e4028de203d603726805339be7a5b.patch"; + sha256 = "07f0xpxnq02cccmqcric87b6pms7k7ssvdw722zr970a6qs8p6i7"; + }) + # allow attestation using any supported algorithm + (fetchpatch { + url = "https://github.com/Yubico/libfido2/commit/f7a9471fa0588cb91cbefffb13c1e4d06c2179b7.patch"; + sha256 = "02qbw9bqy3sixvwig6az7v3vimgznxnfikn9p1jczm3d7mn8asw2"; + }) + # fix EdDSA attestation signature verification bug + (fetchpatch { + url = "https://github.com/Yubico/libfido2/commit/95126eea52294419515e6540dfd7220f35664c48.patch"; + sha256 = "076mwpl9xndjhy359jdv2drrwyq7wd3pampkn28mn1rlwxfgf0d0"; + }) + ]; + + cmakeFlags = [ + "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" + "-DCMAKE_INSTALL_LIBDIR=lib" + ]; + + meta = with stdenv.lib; { + description = '' + Provides library functionality for FIDO 2.0, including communication with a device over USB. + ''; + homepage = https://github.com/Yubico/libfido2; + license = licenses.bsd2; + maintainers = with maintainers; [ dtzWill prusnak ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libfido2/detect_apple_ld.patch b/nixpkgs/pkgs/development/libraries/libfido2/detect_apple_ld.patch new file mode 100644 index 000000000000..de972e0f3586 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libfido2/detect_apple_ld.patch @@ -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") |