Files
2025-12-25 14:03:25 +08:00

50 lines
1.3 KiB
Nix

{
lib,
stdenv,
fetchurl,
fetchpatch,
cctools,
disablePosixThreads ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libmcrypt";
version = "2.5.8";
src = fetchurl {
url = "mirror://sourceforge/mcrypt/Libmcrypt/${finalAttrs.version}/libmcrypt-${finalAttrs.version}.tar.gz";
hash = "sha256-5OtsB0u6sWisR7lHwZX/jO+dUaIRzdGMqcnvNNJ6Nz4=";
};
patches = [
# Fix build with GCC 15
(fetchpatch {
url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/v20251224/community/libmcrypt/c23.patch";
hash = "sha256-yTBCi5f0s8SiM5aq8X135E2Wwl7S2sO1tsVDthCdAMg=";
})
];
buildInputs = lib.optional stdenv.hostPlatform.isDarwin cctools;
configureFlags =
lib.optionals disablePosixThreads [ "--disable-posix-threads" ]
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# AC_FUNC_MALLOC is broken on cross builds.
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-implicit-function-declaration"
"-Wno-implicit-int"
];
meta = {
description = "Replacement for the old crypt() package and crypt(1) command, with extensions";
mainProgram = "libmcrypt-config";
homepage = "https://mcrypt.sourceforge.net";
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.all;
};
})