Subject: [alpine-aports] [PATCH] testing/unison: new aport

From: Jean-Louis Fuchs <[email-masked]>
Date: Tue, 24 Jan 2017 16:19:08 +0100

---
Uses new testing/lablgtk.

 testing/unison/APKBUILD                | 60 ++++++++++++++++++++++++++++++++++
 testing/unison/bytearray_stubs_c.patch | 45 +++++++++++++++++++++++++
 testing/unison/fix_inotify_check.patch | 13 ++++++++
 3 files changed, 118 insertions(+)
 create mode 100644 testing/unison/APKBUILD
 create mode 100644 testing/unison/bytearray_stubs_c.patch
 create mode 100644 testing/unison/fix_inotify_check.patch

diff --git a/testing/unison/APKBUILD b/testing/unison/APKBUILD
new file mode 100644
index 0000000000..8af14ecaa4
--- /dev/null
+++ b/testing/unison/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Jean-Louis Fuchs <[email-masked]>
+# Maintainer: Jean-Louis Fuchs <[email-masked]>
+pkgname=unison
+pkgver=2.48.4
+pkgrel=0
+pkgdesc="Unison - efficient file-synchronization tool"
+url="https://www.cis.upenn.edu/~bcpierce/unison/"
+arch="all"
+license="GPL"
+depends=""
+makedepends="ocaml lablgtk linux-headers emacs-nox"
+install=""
+subpackages="$pkgname-doc"
+source="http://www.seas.upenn.edu/~bcpierce/unison/download/releases/stable/unison-$pkgver.tar.gz
+	http://www.seas.upenn.edu/~bcpierce/unison/download/releases/stable/unison-$pkgver-manual.html
+	fix_inotify_check.patch
+	bytearray_stubs_c.patch"
+builddir="$srcdir/src"
+
+build() {
+	cd "$builddir"
+	# ocamlopt doesn't know -Os nor -fomit-frame-pointer
+	export CFLAGS="-ccopt -Os -ccopt -fomit-frame-pointer"
+	for ui in text gtk2; do
+		make clean
+		make mkProjectInfo 
+		make UISTYLE=$ui DEBUGGING=false THREADS=true || return 1
+		mv unison unison-$ui
+	done
+}
+
+doc() {
+	pkgdesc="Unison - efficient file-synchronization tool (documentation)"
+	_docdir="$subpkgdir"/usr/share/doc/$pkgname/
+	mkdir -p "$_docdir"
+	cd "$srcdir"
+	cp unison-$pkgver-manual.html "$_docdir"
+}
+
+package() {
+	cd "$builddir"
+	install -d "${pkgdir}"/usr/bin
+	install -m755 unison-* "${pkgdir}"/usr/bin
+	cd "${pkgdir}"/usr/bin
+	ln -s unison-text unison
+	ln -s unison unison-${pkgver%.*}
+}
+
+md5sums="5334b78c7e68169df7de95f4c6c4b60f  unison-2.48.4.tar.gz
+3dc5de6c0609ae2e3019d22f76345b91  unison-2.48.4-manual.html
+2e119ce09b903763fb859d24d573f4f1  bytearray_stubs_c.patch
+c40a53099c98f7a82eaad52b7e5d0df2  fix_inotify_check.patch"
+sha256sums="30aa53cd671d673580104f04be3cf81ac1e20a2e8baaf7274498739d59e99de8  unison-2.48.4.tar.gz
+2b5674e2fd7751148784a716ce5a03f8cd0a321c8a3bd4343832ed9b83d2d404  unison-2.48.4-manual.html
+e475883bb55280f88cdd49688c1609a02d58eccbee9030546becc793b0645d6f  bytearray_stubs_c.patch
+ef0371e70c94250ca04e80a5fddf61f3edab1c6ec0854e9bf5b2edd6dd18e986  fix_inotify_check.patch"
+sha512sums="c8e7bd2b14edae31e7d08154cdc2dce8173546b6163b9e5f4f2b1c8255792a7645d8449da88d7acfcbf498746481d24d0a3936978969920530a15a16bcbc6024  unison-2.48.4.tar.gz
+b995712cda51d612bd81c89589d872099b3b9c90f7413268b24ab399a1eff7690200980514a834ee3d12bd3c89ef61bb8a29b3970c01433e0c4671d363a96b68  unison-2.48.4-manual.html
+ab79e6c3c2788c4333b0108d96a668c426d206cb11ddc5a56a9255873dff4cc88c7bd9303a027467937f95e512b9d7593f8e22d51999b768e8ee90b60f89e1e4  bytearray_stubs_c.patch
+27eaf4f347dc827dc14b338ef2be40d25507c6c9d65ecdc8f811ebe994f6e23577ad85fcc86b63d148b57844b24e6034061c869b641fbd3173532a26e0828803  fix_inotify_check.patch"
diff --git a/testing/unison/bytearray_stubs_c.patch b/testing/unison/bytearray_stubs_c.patch
new file mode 100644
index 0000000000..9f8396203d
--- /dev/null
+++ b/testing/unison/bytearray_stubs_c.patch
@@ -0,0 +1,45 @@
+Fix rare SIGSEGV when transferring large replicas.
+Fix a theoretical integer overflow. 
+
+Patches from here:
+https://caml.inria.fr/mantis/view.php?id=7431#c17026
+and here:
+https://caml.inria.fr/mantis/view.php?id=7431#c16962
+
+Related issue reports:
+https://github.com/bcpierce00/unison/issues/48
+https://caml.inria.fr/mantis/view.php?id=7431
+https://bugzilla.redhat.com/show_bug.cgi?id=1401759
+
+Thanks to Alex Markley and OCaml developers
+--- a/bytearray_stubs.c	Tue Jan 17 08:41:00 2017
++++ b/bytearray_stubs.c	Tue Jan 17 08:41:21 2017
+@@ -5,6 +5,7 @@
+ 
+ #include "caml/intext.h"
+ #include "caml/bigarray.h"
++#include "caml/memory.h"
+ 
+ CAMLprim value ml_marshal_to_bigarray(value v, value flags)
+ {
+@@ -21,15 +22,18 @@ CAMLprim value ml_marshal_to_bigarray(value v, value f
+ 
+ CAMLprim value ml_unmarshal_from_bigarray(value b, value ofs)
+ {
++  CAMLparam1(b); /* Holds [b] live until unmarshalling completes. */
++  value result;
+   struct caml_bigarray *b_arr = Bigarray_val(b);
+-  return input_value_from_block (Array_data (b_arr, ofs),
++  result = input_value_from_block (Array_data (b_arr, ofs),
+                                  b_arr->dim[0] - Long_val(ofs));
++  CAMLreturn(result);
+ }
+ 
+ CAMLprim value ml_blit_string_to_bigarray
+ (value s, value i, value a, value j, value l)
+ {
+-  char *src = String_val(s) + Int_val(i);
++  char *src = String_val(s) + Long_val(i);
+   char *dest = Array_data(Bigarray_val(a), j);
+   memcpy(dest, src, Long_val(l));
+   return Val_unit;
diff --git a/testing/unison/fix_inotify_check.patch b/testing/unison/fix_inotify_check.patch
new file mode 100644
index 0000000000..009ce789cc
--- /dev/null
+++ b/testing/unison/fix_inotify_check.patch
@@ -0,0 +1,13 @@
+diff -ru a/fsmonitor/linux/inotify_stubs.c b/fsmonitor/linux/inotify_stubs.c
+--- a/fsmonitor/linux/inotify_stubs.c	2016-05-23 18:40:05.000000000 +0200
++++ b/fsmonitor/linux/inotify_stubs.c	2017-01-23 23:14:47.613834613 +0100
+@@ -35,6 +35,9 @@
+ #define GLIBC_SUPPORT_INOTIFY 0
+ #endif
+ 
++/* Alpine linux supports inotify */
++#define GLIBC_SUPPORT_INOTIFY 1
++
+ #if GLIBC_SUPPORT_INOTIFY
+ #include <sys/inotify.h>
+ #else
-- 
2.11.0

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---