1{ lib
2, stdenv
3, fetchFromGitHub
4, autoreconfHook
5, sqlite
6}:
7
8stdenv.mkDerivation rec {
9 pname = "mps";
10 version = "1.118.0";
11
12 src = fetchFromGitHub {
13 owner = "Ravenbrook";
14 repo = "mps";
15 rev = "refs/tags/release-${version}";
16 hash = "sha256-3ql3jWLccgnQHKf23B1en+nJ9rxqmHcWd7aBr93YER0=";
17 };
18
19 postPatch = ''
20 # Disable -Werror to avoid biuld failure on fresh toolchains like
21 # gcc-13.
22 substituteInPlace code/gc.gmk --replace-fail '-Werror ' ' '
23 substituteInPlace code/gp.gmk --replace-fail '-Werror ' ' '
24 substituteInPlace code/ll.gmk --replace-fail '-Werror ' ' '
25 '';
26
27 nativeBuildInputs = [ autoreconfHook ];
28 buildInputs = [ sqlite ];
29
30 meta = {
31 description = "Flexible memory management and garbage collection library";
32 homepage = "https://www.ravenbrook.com/project/mps";
33 license = lib.licenses.sleepycat;
34 platforms = lib.platforms.linux;
35 maintainers = [ lib.maintainers.thoughtpolice ];
36 };
37}