Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F147424903
D40126.id122111.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
10 KB
Referenced Files
None
Subscribers
None
D40126.id122111.diff
View Options
diff --git a/lang/Makefile b/lang/Makefile
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -59,6 +59,7 @@
SUBDIR += erlang-runtime23
SUBDIR += erlang-runtime24
SUBDIR += erlang-runtime25
+ SUBDIR += erlang-runtime26
SUBDIR += erlang-wx
SUBDIR += execline
SUBDIR += expect
diff --git a/lang/erlang-runtime26/Makefile b/lang/erlang-runtime26/Makefile
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/Makefile
@@ -0,0 +1,166 @@
+PORTNAME= erlang
+DISTVERSIONPREFIX= OTP-
+DISTVERSION= 26.0
+PORTREVISION= 0
+CATEGORIES= lang parallel java
+PKGNAMESUFFIX= -runtime26
+DIST_SUBDIR= erlang
+
+MAINTAINER= erlang@FreeBSD.org
+COMMENT= Functional programming language from Ericsson
+WWW= https://www.erlang.org/
+
+LICENSE= APACHE20
+
+BROKEN_sparc64= Fails to build: error: fp_except undeclared
+
+USES= compiler cpe gmake ncurses perl5
+CPE_VENDOR= erlang
+CPE_PRODUCT= erlang/otp
+USE_GITHUB= nodefault
+GH_ACCOUNT= erlang:otp,corba
+GH_PROJECT= otp:otp corba:corba
+GH_TAGNAME= 5.1:corba
+USE_PERL5= build
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --enable-dirty-schedulers \
+ --enable-kernel-poll \
+ --enable-smp-support \
+ --enable-threads
+MAKE_ARGS= all
+
+_ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//}
+
+DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+SUB_FILES= pkg-message
+SUB_LIST= _ERLANG_LIB=${_ERLANG_LIB}
+
+WRKSRC= ${WRKSRC_otp}
+
+OPTIONS_DEFINE= CHUNKS CORBA DTRACE JAVA KQUEUE ODBC OPENSSL SCTP \
+ SHARING WX
+OPTIONS_DEFAULT= CORBA DTRACE KQUEUE OPENSSL SCTP SHARING
+
+.if !exists(/usr/sbin/dtrace)
+OPTIONS_EXCLUDE+= DTRACE
+.endif
+
+OPTIONS_EXCLUDE_DragonFly= SCTP
+# ld(1) fails to link probes: missing __dtrace_erlang___* symbols
+# see also https://reviews.freebsd.org/D22360
+OPTIONS_EXCLUDE_aarch64= DTRACE
+OPTIONS_EXCLUDE_armv6= DTRACE
+OPTIONS_EXCLUDE_armv7= DTRACE
+OPTIONS_EXCLUDE_i386= DTRACE
+OPTIONS_EXCLUDE_riscv64= DTRACE
+
+CHUNKS_DESC= Enable in-line documentation in Erlang console
+CORBA_DESC= Enable Corba support
+KQUEUE_DESC= Enable Kernel Poll (kqueue) support
+SCTP_DESC= Enable SCTP support
+SHARING_DESC= Enable term copy-and-share support
+WX_DESC= Enable WX application
+
+# If you run Erlang and get a message resembling "WARNING: number of
+# probes fixed does not match the number of defined probes (54 != 132,
+# respectively)" you probably misconfigured DTrace in some way.
+
+CHUNKS_MAKE_ARGS+= DOC_TARGETS=chunks \
+ docs
+DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace
+DTRACE_CFLAGS= -fno-omit-frame-pointer
+DTRACE_VARS= STRIP=""
+JAVA_CONFIGURE_WITH= javac
+JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}"
+JAVA_VARS= USE_JAVA=yes
+KQUEUE_CONFIGURE_ENABLE= kernel-poll
+ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
+ODBC_USES= localbase
+ODBC_CONFIGURE_WITH= odbc
+ODBC_CFLAGS= -I/usr/local/include
+ODBC_LDFLAGS= -L/usr/local/lib
+OPENSSL_USES= ssl
+OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE}
+SCTP_CONFIGURE_ENABLE= sctp
+SHARING_CONFIGURE_ENABLE= sharing-preserving
+WX_USES= gl
+WX_CONFIGURE_WITH= wx-config=${WX_CONFIG}
+WX_VARS= USE_GL="gl glu" \
+ USE_WX=3.2+ \
+ WX_COMPS="wx"
+
+.include <bsd.port.pre.mk>
+
+.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130
+# PR 258494
+CONFIGURE_ARGS+= --disable-pgo
+.endif
+
+.if ${OPSYS} == FreeBSD
+CFLAGS+= -DMAP_NORESERVE=0
+.endif
+
+.if ${ARCH} == i386
+MAKE_ARGS+= ARCH=x86
+.endif
+
+.if ${ARCH} == armv6 || ${ARCH} == armv7
+MAKE_ARGS+= ARCH=arm
+.endif
+
+pre-configure-WX-off:
+ echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP
+ echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP
+ echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP
+ echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP
+
+post-configure-ODBC-on:
+ ${RM} ${WRKSRC}/lib/odbc/SKIP
+
+post-configure-ODBC-off:
+ echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP
+
+post-build-CORBA-on:
+ cd ${WRKSRC_corba} && \
+ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \
+ ${MAKE_CMD}
+
+post-install-CORBA-on:
+ cd ${WRKSRC_corba} && \
+ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \
+ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${_ERLANG_LIB}
+
+post-install-DTRACE-on:
+ ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace
+ ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \
+ ${WRKSRC}/lib/runtime_tools/c_src/*.d \
+ ${WRKSRC}/lib/runtime_tools/examples/*.d \
+ ${STAGEDIR}${DATADIR}/dtrace
+
+post-install-JAVA-off:
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-*
+
+post-install-ODBC-off:
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-*
+
+post-install-OPENSSL-off:
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-*
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-*
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-*
+
+post-install-WX-off:
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-*
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-*
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-*
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-*
+
+post-stage:
+ ${FIND} ${STAGEDIR}${PREFIX}/lib/${_ERLANG_LIB}/* -type d -empty \
+ -delete
+ @cd ${STAGEDIR}${PREFIX}; \
+ ${FIND} lib/${_ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \
+ -type l | \
+ ${SORT} >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/lang/erlang-runtime26/distinfo b/lang/erlang-runtime26/distinfo
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1684233152
+SHA256 (erlang/erlang-otp-OTP-26.0_GH0.tar.gz) = 29a50b17cb4bc326f01e4cbb2badb6a31ec586525f7c2f29166a0c6229b53f24
+SIZE (erlang/erlang-otp-OTP-26.0_GH0.tar.gz) = 61355457
+SHA256 (erlang/erlang-corba-5.1_GH0.tar.gz) = 03497d71098c474b330794dd523ef19ef20a47c0e2d441009d6cf929455c468f
+SIZE (erlang/erlang-corba-5.1_GH0.tar.gz) = 1392861
diff --git a/lang/erlang-runtime26/files/patch-Makefile.in b/lang/erlang-runtime26/files/patch-Makefile.in
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/files/patch-Makefile.in
@@ -0,0 +1,20 @@
+--- Makefile.in.orig 2015-06-23 18:56:21 UTC
++++ Makefile.in
+@@ -60,7 +60,7 @@ bindir = @bindir@
+ libdir = @libdir@
+
+ # Where Erlang/OTP is located
+-libdir_suffix = /erlang
++libdir_suffix = /erlang26
+ erlang_libdir = $(libdir)$(libdir_suffix)
+ erlang_bindir = $(erlang_libdir)/bin
+
+@@ -1013,7 +1013,7 @@ $(TEST_DIRS):
+ #
+ # Order is important here, don't change it!
+ #
+-INST_DEP += install.dirs install.emulator install.libs install.Install install.otp_version install.bin
++INST_DEP += install.dirs install.emulator install.libs install.Install install.otp_version
+
+ install: $(INST_DEP)
+
diff --git a/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c b/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/files/patch-erts_etc_unix_run__erl.c
@@ -0,0 +1,12 @@
+--- erts/etc/unix/run_erl.c.orig 2015-03-31 12:32:52 UTC
++++ erts/etc/unix/run_erl.c
+@@ -73,9 +73,6 @@
+ #ifdef HAVE_UTMP_H
+ # include <utmp.h>
+ #endif
+-#ifdef HAVE_UTIL_H
+-# include <util.h>
+-#endif
+ #ifdef HAVE_SYS_IOCTL_H
+ # include <sys/ioctl.h>
+ #endif
diff --git a/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in b/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/files/patch-lib_crypto_c__src_Makefile.in
@@ -0,0 +1,11 @@
+--- lib/crypto/c_src/Makefile.in.orig 2021-05-27 09:40:45 UTC
++++ lib/crypto/c_src/Makefile.in
+@@ -136,7 +136,7 @@ endif
+ endif
+
+ ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes)
+-SSL_DED_LD_RUNTIME_LIBRARY_PATH = @SSL_DED_LD_RUNTIME_LIBRARY_PATH@
++SSL_DED_LD_RUNTIME_LIBRARY_PATH =
+ CRYPTO_LINK_LIB=$(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) -l$(SSL_CRYPTO_LIBNAME)
+ EXTRA_FLAGS = -DHAVE_DYNAMIC_CRYPTO_LIB
+ else
diff --git a/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl b/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/files/patch-lib_stdlib_src_calendar.erl
@@ -0,0 +1,26 @@
+--- lib/stdlib/src/calendar.erl.orig 2015-03-31 12:32:52 UTC
++++ lib/stdlib/src/calendar.erl
+@@ -279,11 +279,19 @@ local_time_to_universal_time(DateTime, I
+ DateTime1 :: datetime1970(),
+ DateTime :: datetime1970().
+ local_time_to_universal_time_dst(DateTime) ->
+- UtDst = erlang:localtime_to_universaltime(DateTime, true),
+- Ut = erlang:localtime_to_universaltime(DateTime, false),
+ %% Reverse check the universal times
+- LtDst = erlang:universaltime_to_localtime(UtDst),
+- Lt = erlang:universaltime_to_localtime(Ut),
++ {UtDst, LtDst} =
++ try
++ UtDst0 = erlang:localtime_to_universaltime(DateTime, true),
++ {UtDst0, erlang:universaltime_to_localtime(UtDst0)}
++ catch error:badarg -> {error, error}
++ end,
++ {Ut, Lt} =
++ try
++ Ut0 = erlang:localtime_to_universaltime(DateTime, false),
++ {Ut0, erlang:universaltime_to_localtime(Ut0)}
++ catch error:badarg -> {error, error}
++ end,
+ %% Return the valid universal times
+ case {LtDst,Lt} of
+ {DateTime,DateTime} when UtDst =/= Ut ->
diff --git a/lang/erlang-runtime26/files/pkg-message.in b/lang/erlang-runtime26/files/pkg-message.in
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/files/pkg-message.in
@@ -0,0 +1,8 @@
+[
+{ type: install
+ message: <<EOM
+To use this runtime port for development or testing, just prepend
+its binary path ("%%LOCALBASE%%/lib/%%_ERLANG_LIB%%/bin") to your PATH variable.
+EOM
+}
+]
diff --git a/lang/erlang-runtime26/pkg-descr b/lang/erlang-runtime26/pkg-descr
new file mode 100644
--- /dev/null
+++ b/lang/erlang-runtime26/pkg-descr
@@ -0,0 +1,8 @@
+Erlang is a programming language used to build massively scalable soft
+real-time systems with requirements on high availability. Some of its
+uses are in telecoms, banking, e-commerce, computer telephony and
+instant messaging. Erlang's runtime system has built-in support for
+concurrency, distribution and fault tolerance.
+
+This port contains a standalone runtime environment of Erlang 26
+to be used during the development of OTP applications.
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Mar 11, 9:25 PM (10 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29483595
Default Alt Text
D40126.id122111.diff (10 KB)
Attached To
Mode
D40126: lang/erlang-runtime26: new port from erlang-runtime25 (WIP)
Attached
Detach File
Event Timeline
Log In to Comment