botan3: 3.8.1 -> 3.9.0

Release notes: https://botan.randombit.net/news.html#version-3-9-0-2025-08-05

Notable changes:
- Support for RFC3779
- Speedups for various algorithms with vector instructions (SHA-1, ECC,
  ...)
- better cmake support

nixpkgs:
- add support for building botan3 with mingw

Signed-off-by: Markus Theil <theil.markus@gmail.com>
This commit is contained in:
Markus Theil 2025-08-05 15:54:00 +02:00
parent 2e63b1b5e3
commit 1a4f70d6a6
No known key found for this signature in database
GPG Key ID: FEE64346C8BF92AE

View File

@ -12,6 +12,7 @@
esdm, esdm,
tpm2-tss, tpm2-tss,
static ? stdenv.hostPlatform.isStatic, # generates static libraries *only* static ? stdenv.hostPlatform.isStatic, # generates static libraries *only*
windows,
# build ESDM RNG plugin # build ESDM RNG plugin
withEsdm ? false, withEsdm ? false,
@ -73,11 +74,14 @@ let
++ lib.optionals (stdenv.hostPlatform.isLinux && withTpm2) [ ++ lib.optionals (stdenv.hostPlatform.isLinux && withTpm2) [
tpm2-tss tpm2-tss
] ]
++ lib.optionals (lib.versionAtLeast version "3.6.0") [ ++ lib.optionals (lib.versionAtLeast version "3.6.0" && !stdenv.hostPlatform.isMinGW) [
jitterentropy jitterentropy
] ]
++ lib.optionals (lib.versionAtLeast version "3.7.0" && withEsdm) [ ++ lib.optionals (lib.versionAtLeast version "3.7.0" && withEsdm && !stdenv.hostPlatform.isMinGW) [
esdm esdm
]
++ lib.optionals (stdenv.hostPlatform.isMinGW) [
windows.pthreads
]; ];
buildTargets = [ buildTargets = [
@ -105,10 +109,10 @@ let
++ lib.optionals (stdenv.hostPlatform.isLinux && withTpm2) [ ++ lib.optionals (stdenv.hostPlatform.isLinux && withTpm2) [
"--with-tpm2" "--with-tpm2"
] ]
++ lib.optionals (lib.versionAtLeast version "3.6.0") [ ++ lib.optionals (lib.versionAtLeast version "3.6.0" && !stdenv.hostPlatform.isMinGW) [
"--enable-modules=jitter_rng" "--enable-modules=jitter_rng"
] ]
++ lib.optionals (lib.versionAtLeast version "3.7.0" && withEsdm) [ ++ lib.optionals (lib.versionAtLeast version "3.7.0" && withEsdm && !stdenv.hostPlatform.isMinGW) [
"--enable-modules=esdm_rng" "--enable-modules=esdm_rng"
] ]
++ lib.optionals (lib.versionAtLeast version "3.8.0" && policy != null) [ ++ lib.optionals (lib.versionAtLeast version "3.8.0" && policy != null) [
@ -117,6 +121,9 @@ let
++ lib.optionals (lib.versionAtLeast version "3.8.0" && policy == "bsi") [ ++ lib.optionals (lib.versionAtLeast version "3.8.0" && policy == "bsi") [
"--enable-module=ffi" "--enable-module=ffi"
"--enable-module=shake" "--enable-module=shake"
]
++ lib.optionals (stdenv.hostPlatform.isMinGW) [
"--os=mingw"
]; ];
configurePhase = '' configurePhase = ''
@ -151,15 +158,15 @@ let
thillux thillux
nikstur nikstur
]; ];
platforms = platforms.unix; platforms = platforms.unix ++ lib.optionals (lib.versionAtLeast version "3.0") platforms.windows;
license = licenses.bsd2; license = licenses.bsd2;
}; };
}); });
in in
{ {
botan3 = common { botan3 = common {
version = "3.8.1"; version = "3.9.0";
hash = "sha256-sDloHUuGGi9YU3Rti6gG9VPiOGntctie2/o8Pb+hfmg="; hash = "sha256-jD8oS1jd1C6OQ+n6hqcSnYfqfD93aoDT2mPsIHIrCIM=";
}; };
botan2 = common { botan2 = common {