1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5}:
6
7stdenv.mkDerivation {
8 pname = "miniscript";
9 version = "0-unstable-2023-03-16";
10
11 src = fetchFromGitHub {
12 owner = "sipa";
13 repo = "miniscript";
14 rev = "6806dfb15a1fafabf7dd28aae3c9d2bc49db01f1";
15 sha256 = "sha256-qkYDzsl2Y4WEDDXs9cE/jIXm01jclkYUQbDGe1S0wYs=";
16 };
17
18 postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
19 # Replace hardcoded g++ with c++ so clang can be used
20 # on darwin
21 substituteInPlace Makefile \
22 --replace-fail 'g++' 'c++'
23 '';
24
25 installPhase = ''
26 runHook preInstall
27 mkdir -p $out/bin
28 cp miniscript $out/bin/miniscript
29 runHook postInstall
30 '';
31
32 meta = with lib; {
33 description = "Compiler and inspector for the miniscript Bitcoin policy language";
34 longDescription = "Miniscript is a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more.";
35 homepage = "https://bitcoin.sipa.be/miniscript/";
36 license = licenses.mit;
37 maintainers = with maintainers; [
38 RaghavSood
39 jb55
40 ];
41 mainProgram = "miniscript";
42 };
43}