Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 stdenv, 3 gcc13Stdenv, 4 lib, 5 makeWrapper, 6 fetchzip, 7 ocaml, 8 findlib, 9 tcl, 10 tk, 11}: 12 13let 14 defaultStdenv = stdenv; 15 params = 16 let 17 mkNewParam = 18 { 19 version, 20 sha256, 21 rev ? version, 22 stdenv ? defaultStdenv, 23 }: 24 { 25 inherit stdenv version; 26 src = fetchzip { 27 url = "https://github.com/garrigue/labltk/archive/${rev}.tar.gz"; 28 inherit sha256; 29 }; 30 }; 31 in 32 rec { 33 "4.06" = mkNewParam { 34 version = "8.06.4"; 35 rev = "labltk-8.06.4"; 36 sha256 = "03xwnnnahb2rf4siymzqyqy8zgrx3h26qxjgbp5dh1wdl7n02c7g"; 37 stdenv = gcc13Stdenv; 38 }; 39 "4.07" = mkNewParam { 40 version = "8.06.5"; 41 rev = "1b71e2c6f3ae6847d3d5e79bf099deb7330fb419"; 42 sha256 = "02vchmrm3izrk7daldd22harhgrjhmbw6i1pqw6hmfmrmrypypg2"; 43 stdenv = gcc13Stdenv; 44 }; 45 _8_06_7 = mkNewParam { 46 version = "8.06.7"; 47 sha256 = "1cqnxjv2dvw9csiz4iqqyx6rck04jgylpglk8f69kgybf7k7xk2h"; 48 stdenv = gcc13Stdenv; 49 }; 50 "4.08" = _8_06_7; 51 "4.09" = _8_06_7; 52 "4.10" = mkNewParam { 53 version = "8.06.8"; 54 sha256 = "0lfjc7lscq81ibqb3fcybdzs2r1i2xl7rsgi7linq46a0pcpkinw"; 55 }; 56 "4.11" = mkNewParam { 57 version = "8.06.9"; 58 sha256 = "1k42k3bjkf22gk39lwwzqzfhgjyhxnclslldrzpg5qy1829pbnc0"; 59 }; 60 "4.12" = mkNewParam { 61 version = "8.06.10"; 62 sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a"; 63 }; 64 "4.13" = mkNewParam { 65 version = "8.06.11"; 66 sha256 = "1zjpg9jvs6i9jvbgn6zgispwqiv8rxvaszxcx9ha9fax3wzhv9qy"; 67 }; 68 "4.14" = mkNewParam { 69 version = "8.06.12"; 70 sha256 = "sha256:17fmb13l18isgwr38hg9r5a0nayf2hhw6acj5153cy1sygsdg3b5"; 71 }; 72 "5.0" = mkNewParam { 73 version = "8.06.13"; 74 sha256 = "sha256-Vpf13g3DEWlUI5aypiowGp2fkQPK0cOGv2XiRUY/Ip4="; 75 }; 76 "5.2" = mkNewParam { 77 version = "8.06.14"; 78 sha256 = "sha256-eVSQetk+i3KObjHfsvnD615cIsq3aZ7IxycX42cuPIU="; 79 }; 80 "5.3" = mkNewParam { 81 version = "8.06.15"; 82 sha256 = "sha256-I/y5qr5sasCtlrwxL/Lex79rg0o4tzDMBmQY7MdpU2w="; 83 }; 84 }; 85 param = 86 params.${lib.versions.majorMinor ocaml.version} 87 or (throw "labltk is not available for OCaml ${ocaml.version}"); 88in 89 90param.stdenv.mkDerivation { 91 inherit (param) version src; 92 pname = "ocaml${ocaml.version}-labltk"; 93 94 strictDeps = true; 95 96 nativeBuildInputs = [ 97 ocaml 98 findlib 99 makeWrapper 100 ]; 101 buildInputs = [ 102 tcl 103 tk 104 ]; 105 106 configureFlags = [ 107 "--use-findlib" 108 "--installbindir" 109 "$(out)/bin" 110 ]; 111 dontAddPrefix = true; 112 dontAddStaticConfigureFlags = true; 113 configurePlatforms = [ ]; 114 115 buildFlags = [ 116 "all" 117 "opt" 118 ]; 119 120 createFindlibDestdir = true; 121 122 postInstall = '' 123 mkdir -p $OCAMLFIND_DESTDIR/stublibs 124 mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/ 125 for p in $out/bin/* 126 do 127 wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs 128 done 129 ''; 130 131 meta = { 132 description = "OCaml interface to Tcl/Tk, including OCaml library explorer OCamlBrowser"; 133 homepage = "http://labltk.forge.ocamlcore.org/"; 134 license = lib.licenses.lgpl21; 135 inherit (ocaml.meta) platforms; 136 maintainers = [ lib.maintainers.vbgl ]; 137 }; 138}