commit:     34cf79fccb906b79c9c0fa570d86ce241bd8c199
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 17 03:14:13 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Oct 17 03:14:25 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34cf79fc

dev-ml/ocplib-endian: fix build

In some instances, build fails because of
a compatibility stanza. Let's just drop
it in a patch here and add a lower bound
on OCaml.

Closes: https://bugs.gentoo.org/748549
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/ocplib-endian-1.1-fix-build.patch        | 66 ++++++++++++++++++++++
 ...dian-1.1.ebuild => ocplib-endian-1.1-r1.ebuild} | 11 +++-
 2 files changed, 74 insertions(+), 3 deletions(-)

diff --git a/dev-ml/ocplib-endian/files/ocplib-endian-1.1-fix-build.patch 
b/dev-ml/ocplib-endian/files/ocplib-endian-1.1-fix-build.patch
new file mode 100644
index 00000000000..5c7b1c3cee4
--- /dev/null
+++ b/dev-ml/ocplib-endian/files/ocplib-endian-1.1-fix-build.patch
@@ -0,0 +1,66 @@
+Drop old compatibility code which causes a syntax error (sometimes?)
+https://bugs.gentoo.org/748549
+--- a/src/endianBytes.cppo.ml
++++ b/src/endianBytes.cppo.ml
+@@ -89,26 +89,6 @@ let unsafe_set_char (s:Bytes.t) off v =
+ 
+ #include "common.ml"
+ 
+-#if OCAML_VERSION < (4, 07, 0)
+-
+-external unsafe_get_16 : Bytes.t -> int -> int = "%caml_string_get16u"
+-external unsafe_get_32 : Bytes.t -> int -> int32 = "%caml_string_get32u"
+-external unsafe_get_64 : Bytes.t -> int -> int64 = "%caml_string_get64u"
+-
+-external unsafe_set_16 : Bytes.t -> int -> int -> unit = "%caml_string_set16u"
+-external unsafe_set_32 : Bytes.t -> int -> int32 -> unit = 
"%caml_string_set32u"
+-external unsafe_set_64 : Bytes.t -> int -> int64 -> unit = 
"%caml_string_set64u"
+-
+-external get_16 : Bytes.t -> int -> int = "%caml_string_get16"
+-external get_32 : Bytes.t -> int -> int32 = "%caml_string_get32"
+-external get_64 : Bytes.t -> int -> int64 = "%caml_string_get64"
+-
+-external set_16 : Bytes.t -> int -> int -> unit = "%caml_string_set16"
+-external set_32 : Bytes.t -> int -> int32 -> unit = "%caml_string_set32"
+-external set_64 : Bytes.t -> int -> int64 -> unit = "%caml_string_set64"
+-
+-#else
+-
+ external unsafe_get_16 : Bytes.t -> int -> int = "%caml_bytes_get16u"
+ external unsafe_get_32 : Bytes.t -> int -> int32 = "%caml_bytes_get32u"
+ external unsafe_get_64 : Bytes.t -> int -> int64 = "%caml_bytes_get64u"
+@@ -125,6 +105,4 @@ external set_16 : Bytes.t -> int -> int -> unit = 
"%caml_bytes_set16"
+ external set_32 : Bytes.t -> int -> int32 -> unit = "%caml_bytes_set32"
+ external set_64 : Bytes.t -> int -> int64 -> unit = "%caml_bytes_set64"
+ 
+-#endif
+-
+ #include "common_401.ml"
+--- a/src/endianString.cppo.ml
++++ b/src/endianString.cppo.ml
+@@ -93,18 +93,6 @@ external get_16 : string -> int -> int = 
"%caml_string_get16"
+ external get_32 : string -> int -> int32 = "%caml_string_get32"
+ external get_64 : string -> int -> int64 = "%caml_string_get64"
+ 
+-#if OCAML_VERSION < (4, 07, 0)
+-
+-external unsafe_set_16 : Bytes.t -> int -> int -> unit = "%caml_string_set16u"
+-external unsafe_set_32 : Bytes.t -> int -> int32 -> unit = 
"%caml_string_set32u"
+-external unsafe_set_64 : Bytes.t -> int -> int64 -> unit = 
"%caml_string_set64u"
+-
+-external set_16 : Bytes.t -> int -> int -> unit = "%caml_string_set16"
+-external set_32 : Bytes.t -> int -> int32 -> unit = "%caml_string_set32"
+-external set_64 : Bytes.t -> int -> int64 -> unit = "%caml_string_set64"
+-
+-#else
+-
+ external unsafe_set_16 : Bytes.t -> int -> int -> unit = "%caml_bytes_set16u"
+ external unsafe_set_32 : Bytes.t -> int -> int32 -> unit = 
"%caml_bytes_set32u"
+ external unsafe_set_64 : Bytes.t -> int -> int64 -> unit = 
"%caml_bytes_set64u"
+@@ -113,6 +101,4 @@ external set_16 : Bytes.t -> int -> int -> unit = 
"%caml_bytes_set16"
+ external set_32 : Bytes.t -> int -> int32 -> unit = "%caml_bytes_set32"
+ external set_64 : Bytes.t -> int -> int64 -> unit = "%caml_bytes_set64"
+ 
+-#endif
+-
+ #include "common_401.ml"

diff --git a/dev-ml/ocplib-endian/ocplib-endian-1.1.ebuild 
b/dev-ml/ocplib-endian/ocplib-endian-1.1-r1.ebuild
similarity index 76%
rename from dev-ml/ocplib-endian/ocplib-endian-1.1.ebuild
rename to dev-ml/ocplib-endian/ocplib-endian-1.1-r1.ebuild
index 92a15b5de08..055e97e5c2f 100644
--- a/dev-ml/ocplib-endian/ocplib-endian-1.1.ebuild
+++ b/dev-ml/ocplib-endian/ocplib-endian-1.1-r1.ebuild
@@ -15,9 +15,14 @@ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
 IUSE="+ocamlopt"
 
 # 2 of 70 tests fail
-RESTRICT=test
+RESTRICT="test"
 
-DEPEND="
+# see #748549 for version restriction on OCaml
+BDEPEND="
+       >=dev-lang/ocaml-4.07.0
        >=dev-ml/cppo-1.1.0
 "
-RDEPEND=""
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.1-fix-build.patch"
+)

Reply via email to