ocamlPackages.ctypes: 0.17.1 -> 0.18.0

https://github.com/ocamllabs/ocaml-ctypes/blob/0.18.0/CHANGES.md#ctypes-0180

* ocamlPackages.async_ssl: fix compatibility with ctypes 0.18.0 by using
  ctypes.foreign instead of ctypes.foreign.threaded since the distinction
  between threaded and unthreaded has been removed in this release.
* libbap: link with -thread so linking ctypes.foreign doesn't fail
  https://github.com/BinaryAnalysisPlatform/bap-bindings/issues/18
* ocaml-ng.ocamlPackages_4_07.sodium: patch lib_gen/_tags to also add
  the `package(bigarray)` directive since `ctypes.stubs` no longer
  propgates that, leading to module not found error.
* ocaml-ng.ocamlPackages_4_{04,05,06,07}.async_ssl: mark as broken: due to
  the bigarray-compat dependency, we need dune 2 for ctypes which breaks
  compilation of the legacy async_ssl 0.11 version since we can't
  upgrade to dune 2 for it since that version doesn't support the legacy
  jbuild files.
This commit is contained in:
sternenseemann 2021-03-06 21:17:28 +01:00 committed by Vincent Laporte
parent 336ac16838
commit 1979284362
7 changed files with 38 additions and 6 deletions

View File

@ -12,6 +12,11 @@ stdenv.mkDerivation {
sha256 = "0m4spva3z6fgbwlg4zq53l5p227dic893q2qq65pvzxyf7k7nmil";
};
postPatch = ''
substituteInPlace Makefile.in \
--replace "-linkpkg" "-thread -linkpkg"
'';
nativeBuildInputs = [ autoreconfHook which ];
buildInputs = [ ocaml bap findlib ctypes ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchzip, ocaml, findlib, libffi, pkg-config, ncurses, integers }:
{ lib, stdenv, fetchzip, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
if !lib.versionAtLeast ocaml.version "4.02"
then throw "ctypes is not available for OCaml ${ocaml.version}"
@ -6,16 +6,16 @@ else
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-ctypes-${version}";
version = "0.17.1";
version = "0.18.0";
src = fetchzip {
url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz";
sha256 = "16brmdnz7wi2z25qqhd5s5blyq4app6jbv6g9pa4vyg6h0nzbcys";
sha256 = "03zrbnl16m67ls0yfhq7a4k4238x6x6b3m456g4dw2yqwc153vks";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ ocaml findlib ncurses ];
propagatedBuildInputs = [ integers libffi ];
propagatedBuildInputs = [ integers libffi bigarray-compat ];
buildPhase = ''
make XEN=false libffi.config ctypes-base ctypes-stubs

View File

@ -382,7 +382,12 @@ rec {
async_ssl = janePackage {
pname = "async_ssl";
hash = "02ard8x5q5c42d9jdqmyzfx624yjq8cxxmvq3zb82hf6p8cc57ml";
meta.description = "An Async-pipe-based interface with OpenSSL";
meta = {
description = "An Async-pipe-based interface with OpenSSL";
# ctypes no longer works with dune 1
# dune 2 no longer supports jbuild
broken = true;
};
propagatedBuildInputs = [ async ctypes openssl ];
};

View File

@ -147,6 +147,11 @@ rec {
meta.description = "Async wrappers for SSL";
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [ async ctypes openssl ];
# in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
postPatch = ''
substituteInPlace bindings/dune \
--replace "ctypes.foreign.threaded" "ctypes.foreign"
'';
};
async_unix = janePackage {

View File

@ -417,7 +417,12 @@ rec {
pname = "async_ssl";
hash = "1p83fzfla4rb820irdrz3f2hp8kq5zrhw47rqmfv6qydlca1bq64";
propagatedBuildInputs = [ async ctypes openssl ];
meta.description = "Async wrappers for SSL";
meta = {
description = "Async wrappers for SSL";
# ctypes no longer works with dune 1
# dune 2 no longer supports jbuild
broken = true;
};
};
sexp_pretty = janePackage {

View File

@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
sha256 = "124gpi1jhac46x05gp5viykyrafnlp03v1cmkl13c6pgcs8w04pv";
};
patches = [
# ctypes.stubs no longer pulls in bigarray automatically
./lib-gen-link-bigarray.patch
];
buildInputs = [ ocaml findlib ocamlbuild ];
propagatedBuildInputs = [ ctypes libsodium ];

View File

@ -0,0 +1,7 @@
diff --git a/lib_gen/_tags b/lib_gen/_tags
index 7a7e632..7a4e0b7 100644
--- a/lib_gen/_tags
+++ b/lib_gen/_tags
@@ -1 +1 @@
-<*.{ml,byte,native}>: package(ctypes.stubs)
+<*.{ml,byte,native}>: package(ctypes.stubs), package(bigarray)