From d4ffadb99305eed9fca8154687db4fee678115a3 Mon Sep 17 00:00:00 2001 From: quapka Date: Thu, 25 Jul 2024 14:15:21 +0200 Subject: Derive common libs with Nix --- flake.nix | 9 ++++++--- nix/commonlibs.nix | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 nix/commonlibs.nix diff --git a/flake.nix b/flake.nix index b930630..e7adaa9 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,7 @@ outputs = { self, nixpkgs, custom-nixpkgs, flake-utils, gradle2nix, ... }: flake-utils.lib.eachDefaultSystem (system: let + commonLibs = import ./nix/commonlibs.nix { pkgs = pkgs; }; wolfcryptjni = with customPkgs; wolfcrypt-jni.overrideAttrs (final: prev: { src = pkgs.fetchFromGitHub { owner = "wolfSSL"; @@ -133,6 +134,8 @@ gradleBuildFlags = [ "libs" "-PlibName=tomcrypt" ":standalone:uberJar"]; # ":standalone:compileJava" ":standalone:uberJar" ]; "--no-build-cache" src = ./.; + jniLibsPath = "standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/"; + preConfigure = '' cp ${libresslShim.out}/lib/libressl_provider.so standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/ cp ${boringsslShim.out}/lib/boringssl_provider.so standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/ @@ -142,6 +145,7 @@ pushd standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/ make lib_timing.so lib_csignals.so lib_cppsignals.so popd + cp ${commonLibs}/lib/* ${jniLibsPath} ''; nativeBuildInputs = [ @@ -195,12 +199,10 @@ jdk17_headless # libressl opensslx + commonLibs ]; LD_LIBRARY_PATH = lib.makeLibraryPath [ - # libresslShim - boringsslShim - libtommath libtomcrypt botan2 @@ -216,6 +218,7 @@ libgpg-error libconfig wolfcryptjni + commonLibs ]; BORINGSSL_CFLAGS = "${patched_boringssl.dev.outPath}/include"; diff --git a/nix/commonlibs.nix b/nix/commonlibs.nix new file mode 100644 index 0000000..525d4aa --- /dev/null +++ b/nix/commonlibs.nix @@ -0,0 +1,27 @@ +{ + pkgs +}: +with pkgs; stdenv.mkDerivation rec { + name = "Common Libraries"; + src = ../standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni; + + buildInputs = [ + pkg-config + cmake + which + jdk17_headless + ]; + + dontUseCmakeConfigure = true; + + libs = "lib_cppsignals.so lib_csignals.so lib_timing.so"; + + buildPhase = '' + make ${libs} + ''; + + installPhase = '' + mkdir --parents $out/lib + cp ${libs} $out/lib + ''; +} -- cgit v1.3.1