diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/liboqs')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/liboqs/default.nix | 40 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/liboqs/fix-openssl-detection.patch | 36 |
2 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/liboqs/default.nix b/nixpkgs/pkgs/development/libraries/liboqs/default.nix new file mode 100644 index 000000000000..4962f9459d79 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/liboqs/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, openssl +, enableStatic ? stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "liboqs"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "open-quantum-safe"; + repo = pname; + rev = version; + sha256 = "sha256-h3mXoGRYgPg0wKQ1u6uFP7wlEUMQd5uIBt4Hr7vjNtA="; + }; + + patches = [ ./fix-openssl-detection.patch ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ openssl ]; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=${if enableStatic then "OFF" else "ON"}" + "-DOQS_DIST_BUILD=ON" + "-DOQS_BUILD_ONLY_LIB=ON" + ]; + + dontFixCmake = true; # fix CMake file will give an error + + meta = with lib; { + description = "C library for prototyping and experimenting with quantum-resistant cryptography"; + homepage = "https://openquantumsafe.org"; + license = licenses.mit; + platforms = platforms.all; + maintainers = []; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/liboqs/fix-openssl-detection.patch b/nixpkgs/pkgs/development/libraries/liboqs/fix-openssl-detection.patch new file mode 100644 index 000000000000..33be7188370f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/liboqs/fix-openssl-detection.patch @@ -0,0 +1,36 @@ +From 6bdcf53de74ac2afba42deea63522939ca51f871 Mon Sep 17 00:00:00 2001 +From: Raphael Robatsch <raphael-git@tapesoftware.net> +Date: Mon, 25 Dec 2023 16:15:29 +0000 +Subject: [PATCH] Do not forcibly set OPENSSL_ROOT_DIR. + +CMake can already find OpenSSL via pkg-config. Setting OPENSSL_ROOT_DIR +forcibly to "/usr" breaks this. +--- + CMakeLists.txt | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 288bcbe8..9750fae6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -119,17 +119,6 @@ include(.CMake/compiler_opts.cmake) + include(.CMake/alg_support.cmake) + + if(${OQS_USE_OPENSSL}) +- if(NOT DEFINED OPENSSL_ROOT_DIR) +- if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin") +- if(EXISTS "/usr/local/opt/openssl@1.1") +- set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@1.1") +- elseif(EXISTS "/opt/homebrew/opt/openssl@1.1") +- set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@1.1") +- endif() +- elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux") +- set(OPENSSL_ROOT_DIR "/usr") +- endif() +- endif() + find_package(OpenSSL 1.1.1 REQUIRED) + endif() + +-- +2.42.0 + |