Files
2025-10-23 08:17:51 +01:00

63 lines
1.4 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
cmake,
rapidjson,
replaceVars,
libb64,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "msgpack-tools";
version = "0.6";
src = fetchFromGitHub {
owner = "ludocode";
repo = "msgpack-tools";
rev = "v${finalAttrs.version}";
hash = "sha256-RT85vw6QeVkuNC2mtoT/BJyU0rdQVfz6ZBJf+ouY8vk=";
};
mpack = fetchurl {
url = "https://github.com/ludocode/mpack/archive/df17e83f0fa8571b9cd0d8ccf38144fa90e244d1.tar.gz";
hash = "sha256-hyiXygbAHnNgF4TIg+DemBvtdBnSgJ7fAhknVuL+T/c=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
rapidjson
libb64
];
patches = [
./cmake-v4.patch
(replaceVars ./use-nix-deps.patch {
rapidjson = "${rapidjson}";
libb64 = "${libb64}";
})
];
postUnpack = ''
mkdir $sourceRoot/contrib
cp ${finalAttrs.mpack} $sourceRoot/contrib/mpack-df17e83f0fa8571b9cd0d8ccf38144fa90e244d1.tar.gz
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/json2msgpack";
versionCheckProgramArg = "-v";
doInstallCheck = true;
meta = {
description = "Command-line tools for converting between MessagePack and JSON";
homepage = "https://github.com/ludocode/msgpack-tools";
license = lib.licenses.mit;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ deejayem ];
};
})