From 1f7e1e05ed097f9f30aee24892a2708063d57d23 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 30 Jan 2018 13:05:23 +0100 Subject: Install udev file (CMake) Signed-off-by: Szczepan Zalega --- CMakeLists.txt | 19 +++++++++++++++++++ data/41-nitrokey.rules | 23 +++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 data/41-nitrokey.rules diff --git a/CMakeLists.txt b/CMakeLists.txt index 360c391..5a4ebb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,6 +119,25 @@ file(GLOB LIB_INCLUDES "include/*.h" "NK_C_API.h") install (FILES ${LIB_INCLUDES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) install (TARGETS nitrokey DESTINATION ${CMAKE_INSTALL_LIBDIR}) +IF(NOT WIN32) + # Install Nitrokey udev rules + set(PKG_GET_UDEV_DIR ${PKG_CONFIG_EXECUTABLE} --variable=udevdir udev) + execute_process(COMMAND ${PKG_GET_UDEV_DIR} RESULT_VARIABLE ERR OUTPUT_VARIABLE UDEV_MAIN_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) + IF(${ERR}) + set(UDEV_MAIN_DIR "lib/udev/rules.d") + ELSE() + set(UDEV_MAIN_DIR "${UDEV_MAIN_DIR}/rules.d") + ENDIF() + string(REGEX REPLACE "^/" "" UDEV_MAIN_DIR "${UDEV_MAIN_DIR}") + string(REGEX REPLACE "^usr/" "" UDEV_MAIN_DIR "${UDEV_MAIN_DIR}") # usual prefix is usr/local + message(STATUS "Setting udev rules dir to ${UDEV_MAIN_DIR}") + + install(FILES + ${CMAKE_SOURCE_DIR}/data/41-nitrokey.rules + DESTINATION ${UDEV_MAIN_DIR} + ) +ENDIF() + # configure and install pkg-config file configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libnitrokey.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libnitrokey-1.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnitrokey-1.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/data/41-nitrokey.rules b/data/41-nitrokey.rules new file mode 100644 index 0000000..764f4bf --- /dev/null +++ b/data/41-nitrokey.rules @@ -0,0 +1,23 @@ +# Nitrokey U2F +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0" + +SUBSYSTEM!="usb", GOTO="gnupg_rules_end" +ACTION!="add", GOTO="gnupg_rules_end" + +# USB SmartCard Readers +## Crypto Stick 1.2 +ATTR{idVendor}=="20a0", ATTR{idProduct}=="4107", ENV{ID_SMARTCARD_READER}="1", ENV{ID_SMARTCARD_READER_DRIVER}="gnupg", GROUP+="plugdev", TAG+="uaccess" +## Nitrokey Pro +ATTR{idVendor}=="20a0", ATTR{idProduct}=="4108", ENV{ID_SMARTCARD_READER}="1", ENV{ID_SMARTCARD_READER_DRIVER}="gnupg", GROUP+="plugdev", TAG+="uaccess" +## Nitrokey Storage +ATTR{idVendor}=="20a0", ATTR{idProduct}=="4109", ENV{ID_SMARTCARD_READER}="1", ENV{ID_SMARTCARD_READER_DRIVER}="gnupg", GROUP+="plugdev", TAG+="uaccess" +## Nitrokey Start +ATTR{idVendor}=="20a0", ATTR{idProduct}=="4211", ENV{ID_SMARTCARD_READER}="1", ENV{ID_SMARTCARD_READER_DRIVER}="gnupg", GROUP+="plugdev", TAG+="uaccess" +## Nitrokey HSM +ATTR{idVendor}=="20a0", ATTR{idProduct}=="4230", ENV{ID_SMARTCARD_READER}="1", ENV{ID_SMARTCARD_READER_DRIVER}="gnupg", GROUP+="plugdev", TAG+="uaccess" + +LABEL="gnupg_rules_end" + + +# Nitrokey Storage dev Entry +KERNEL=="sd?1", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4109", SYMLINK+="nitrospace" -- cgit v1.2.1