diff options
-rw-r--r-- | dev-libs/libfido2/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/libfido2/files/libfido2-1.3.0-cmakelists.patch | 38 | ||||
-rw-r--r-- | dev-libs/libfido2/files/libfido2-1.3.0-remove-openssh-middleware.patch | 45 | ||||
-rw-r--r-- | dev-libs/libfido2/libfido2-1.3.0.ebuild | 38 | ||||
-rw-r--r-- | dev-libs/libfido2/metadata.xml | 8 |
5 files changed, 130 insertions, 0 deletions
diff --git a/dev-libs/libfido2/Manifest b/dev-libs/libfido2/Manifest new file mode 100644 index 000000000000..153536416738 --- /dev/null +++ b/dev-libs/libfido2/Manifest @@ -0,0 +1 @@ +DIST libfido2-1.3.0.tar.gz 1516842 BLAKE2B 18a0036127a9f643ef7ca917dab909bfa344caecdfdef3f1f0881bd7c84b73ea8273a57a2daccc95cc448d7777c389a8f573f663895abd78c48b3340a45f7764 SHA512 9cfb872b898fb6659e0c5e377b5f80738c22dadc4768be02b8cb5e4f4932cb4edde360cd84aac78eb3e3a57d3bc10b4147740a4830d16adcdefe7c48fa460d36 diff --git a/dev-libs/libfido2/files/libfido2-1.3.0-cmakelists.patch b/dev-libs/libfido2/files/libfido2-1.3.0-cmakelists.patch new file mode 100644 index 000000000000..a5a4b721ed0d --- /dev/null +++ b/dev-libs/libfido2/files/libfido2-1.3.0-cmakelists.patch @@ -0,0 +1,38 @@ +diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt +index 71bc502..ac424d2 100644 +--- a/man/CMakeLists.txt ++++ b/man/CMakeLists.txt +@@ -2,11 +2,12 @@ + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. + ++include(GNUInstallDirs) ++ + find_program(MANDOC_PATH mandoc) + message(STATUS "MANDOC_PATH: ${MANDOC_PATH}") + + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- find_program(GZIP_PATH gzip) + message(STATUS "GZIP_PATH: ${GZIP_PATH}") + endif() + +@@ -301,16 +302,16 @@ elseif(NOT MSVC) + foreach(f ${MAN_SOURCES}) + if (${f} MATCHES ".1$") + install(FILES ${CMAKE_BINARY_DIR}/man/${f} +- DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man1") ++ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") + elseif(${f} MATCHES ".3$") + install(FILES ${CMAKE_BINARY_DIR}/man/${f} +- DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man3") ++ DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") + endif() + endforeach() + foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) + math(EXPR j "${i} + 1") + list(GET MAN_ALIAS ${j} DST) + install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3 +- DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man3) ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) + endforeach() + endif() diff --git a/dev-libs/libfido2/files/libfido2-1.3.0-remove-openssh-middleware.patch b/dev-libs/libfido2/files/libfido2-1.3.0-remove-openssh-middleware.patch new file mode 100644 index 000000000000..7dec27b861f9 --- /dev/null +++ b/dev-libs/libfido2/files/libfido2-1.3.0-remove-openssh-middleware.patch @@ -0,0 +1,45 @@ +diff --git a/README.adoc b/README.adoc +index 8693417..023f2e9 100644 +--- a/README.adoc ++++ b/README.adoc +@@ -71,18 +71,3 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \ + On Windows 1903 and newer versions, access to FIDO devices has been restricted + to applications using the operating system's native API. Use of *libfido2* + is still possible in privileged applications. +- +-=== OpenSSH Integration +- +-*libfido2* includes middleware allowing https://www.openssh.com[OpenSSH] to +-talk to U2F/FIDO2 devices. Note that server support is required for +-authentication. In a nutshell: +- +-==== Key Generation +- +- $ ssh-keygen -t [ecdsa-sk|ed25519-sk] -w /path/to/libsk-libfido2.so +- +-==== Authentication +- +- $ ssh-agent -P /path/to/libsk-libfido2.so +- $ ssh-add -S /path/to/libsk-libfido2.so +diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt +index 5f27e88..c44d1df 100644 +--- a/tools/CMakeLists.txt ++++ b/tools/CMakeLists.txt +@@ -49,17 +49,9 @@ add_executable(fido2-token + ${COMPAT_SOURCES} + ) + +-add_library(sk-libfido2 MODULE sk-libfido2.c) +-set_target_properties(sk-libfido2 PROPERTIES +- COMPILE_FLAGS "-DSK_STANDALONE -DWITH_OPENSSL" +- OUTPUT_NAME sk-libfido2 +-) +- + target_link_libraries(fido2-cred ${CRYPTO_LIBRARIES} fido2_shared) + target_link_libraries(fido2-assert ${CRYPTO_LIBRARIES} fido2_shared) + target_link_libraries(fido2-token ${CRYPTO_LIBRARIES} fido2_shared) +-target_link_libraries(sk-libfido2 ${CRYPTO_LIBRARIES} fido2_shared) + + install(TARGETS fido2-cred fido2-assert fido2-token + DESTINATION ${CMAKE_INSTALL_BINDIR}) +-install(TARGETS sk-libfido2 DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/dev-libs/libfido2/libfido2-1.3.0.ebuild b/dev-libs/libfido2/libfido2-1.3.0.ebuild new file mode 100644 index 000000000000..5c54a13fba26 --- /dev/null +++ b/dev-libs/libfido2/libfido2-1.3.0.ebuild @@ -0,0 +1,38 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake-utils + +DESCRIPTION="Provides library functionality for FIDO 2.0" +HOMEPAGE="https://github.com/Yubico/libfido2" +SRC_URI="https://github.com/Yubico/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0/1" +KEYWORDS="~amd64 ~x86" +IUSE="libressl +static-libs" + +DEPEND=" + dev-libs/libcbor:= + virtual/libudev:= + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/libfido2-1.3.0-cmakelists.patch" + + # from upstream git, no longer needed with openssh-8.2 + "${FILESDIR}/libfido2-1.3.0-remove-openssh-middleware.patch" +) + +src_install() { + cmake-utils_src_install + + if ! use static-libs; then + rm -f "${D}/$(get_libdir)"/*.a || die + fi +} diff --git a/dev-libs/libfido2/metadata.xml b/dev-libs/libfido2/metadata.xml new file mode 100644 index 000000000000..4eb20a048df2 --- /dev/null +++ b/dev-libs/libfido2/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> +</pkgmetadata> |