summaryrefslogtreecommitdiff
path: root/user/erlang
diff options
context:
space:
mode:
Diffstat (limited to 'user/erlang')
-rw-r--r--user/erlang/APKBUILD59
-rw-r--r--user/erlang/fix-wx-linking.patch11
-rw-r--r--user/erlang/safe-signal-handling.patch22
3 files changed, 92 insertions, 0 deletions
diff --git a/user/erlang/APKBUILD b/user/erlang/APKBUILD
new file mode 100644
index 000000000..e24353ac0
--- /dev/null
+++ b/user/erlang/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=erlang
+pkgver=22.0
+pkgrel=0
+pkgdesc="Soft real-time system programming language"
+url="https://www.erlang.org/"
+arch="all"
+license="Apache-2.0"
+depends=""
+makedepends="flex libxml2-utils libxslt-dev m4 ncurses-dev openssl-dev perl
+ unixodbc-dev"
+subpackages="$pkgname-dev"
+source="http://erlang.org/download/otp_src_$pkgver.tar.gz
+ fix-wx-linking.patch
+ safe-signal-handling.patch
+ "
+builddir="$srcdir/otp_src_$pkgver"
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-shared-zlib \
+ --enable-ssl=dynamic-ssl-lib \
+ --enable-threads
+ make
+}
+
+check() {
+ local _header
+
+ cd "$builddir"
+ export ERL_TOP=$builddir
+
+ make release_tests
+
+ for _header in erl_fixed_size_int_types.h \
+ ${CHOST}/erl_int_sizes_config.h \
+ erl_memory_trace_parser.h; do
+ cp erts/include/$_header erts/emulator/beam/
+ done
+ cd release/tests/test_server
+ $ERL_TOP/bin/erl -s ts install -s ts smoke_test batch -s init stop
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="3f98697b59b33910fa461141fc4fe9635c4b6a53900dd90920add709dc10468aad7b9fde12419f05b27e038aee5a254319b1c5dc0e26ceabf29a7eb8020b5d23 otp_src_22.0.tar.gz
+5f1b05d8be71d5e3d7e8c5ad019329af8f68174251b5b6e0a9ee9cb3da51a10983b8696e23b3954c19de5d54783ec16f38c80c74724341dbafb22fcac83c77d4 fix-wx-linking.patch
+dc2fe08e40c73b48b356382c43c982f9f0091e601bbdf6e032358bd5c74c3573b423ef4df454b87c8534105fdbc19ce2245609cc7d5679109c15abaf56d3ef69 safe-signal-handling.patch"
diff --git a/user/erlang/fix-wx-linking.patch b/user/erlang/fix-wx-linking.patch
new file mode 100644
index 000000000..eb5649164
--- /dev/null
+++ b/user/erlang/fix-wx-linking.patch
@@ -0,0 +1,11 @@
+--- otp_src_21.2/lib/wx/configure.old 2018-12-10 20:11:00.000000000 +0000
++++ otp_src_21.2/lib/wx/configure 2019-02-24 22:16:37.340000000 +0000
+@@ -5765,7 +5765,7 @@
+ // it isn't in too old wxWidgets versions
+ wxString test = wxString::FromUTF8((const char *)"foo");
+ wxStyledTextCtrl * foo = new wxStyledTextCtrl();
+- wxGLCanvas * bar = new wxGLCanvas((wxWindow *) NULL, -1,
++ wxGLCanvas * bar = new wxGLCanvas((wxWindow *) NULL, -1, NULL,
+ wxDefaultPosition,wxDefaultSize,0);
+ return true;
+ };
diff --git a/user/erlang/safe-signal-handling.patch b/user/erlang/safe-signal-handling.patch
new file mode 100644
index 000000000..0996069ba
--- /dev/null
+++ b/user/erlang/safe-signal-handling.patch
@@ -0,0 +1,22 @@
+--- otp-OTP-21.2.6.orig/erts/emulator/hipe/hipe_x86_signal.c
++++ otp-OTP-21.2.6/erts/emulator/hipe/hipe_x86_signal.c
+@@ -159,16 +159,10 @@
+
+ #if !(defined(__GLIBC__) || defined(__DARWIN__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__sun__))
+ /*
+- * Unknown libc -- assume musl. Note: musl deliberately does not provide a musl-specific
+- * feature test macro, so we cannot check for it.
+- *
+- * sigaction is a weak alias for __sigaction, which is a wrapper for __libc_sigaction.
+- * There are libc-internal calls to __libc_sigaction which install handlers, so we must
+- * override __libc_sigaction rather than __sigaction.
++ * Unknown libc -- assume musl. Also assume signal delivery on musl is safe.
+ */
+-#define NEXT_SIGACTION "__libc_sigaction"
+-#define LIBC_SIGACTION __libc_sigaction
+-#define OVERRIDE_SIGACTION
++#undef NEXT_SIGACTION
++#undef OVERRIDE_SIGACTION
+ #ifndef _NSIG
+ #define _NSIG NSIG
+ #endif