File:  [cvs.NetBSD.org] / pkgsrc / lang / erlang / Makefile
Revision 1.124: download - view: text, annotated - select for diffs
Fri Aug 16 09:56:14 2024 UTC (8 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2025Q1-base, pkgsrc-2025Q1, pkgsrc-2024Q4-base, pkgsrc-2024Q4, pkgsrc-2024Q3-base, pkgsrc-2024Q3, HEAD
erlang: updated to 27.0.1

OTP-27.0.1

Improvements and New Features

Bump ex_doc version to v0.34.1 and fix copyright in published docs to have
correct year.

compiler-8.5.1

The compiler-8.5.1 application can be applied independently of other
applications on a full OTP 27 installation.

Fixed Bugs and Malfunctions

One of the compiler's optimization passes would get very slow when compiling
certain modules. The compiler will now automatically disable that pass for
input that would trigger the slowdown.

Fix +deterministic to work properly with documentation attributes.

Full runtime dependencies of compiler-8.5.1

crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
edoc-1.3.1

The edoc-1.3.1 application can be applied independently of other applications on
a full OTP 27 installation.

Fixed Bugs and Malfunctions

Fix broken makefile dependency when building HTML documentation.

Full runtime dependencies of edoc-1.3.1

erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7
erts-15.0.1

The erts-15.0.1 application can be applied independently of other applications
on a full OTP 27 installation.

Fixed Bugs and Malfunctions

In rare circumstances the JIT could do an unsafe in-place update of a tuple.

When a port command crashed in the inet driver during gen_tcp:send/2, a
monitor 'DOWN' message could be left lingering in the caller's mailbox. This
has now been fixed.

'DOWN' messages originating from a monitored port, contained the atom
process instead of the atom port as the third element when the exit reason
was not an immediate term.

Fix so that the options to enable Transparent Huge Page alignment of the
Erlang VM executable are only applied to the Erlang VM and not other native
programs such as erlc and dialyzer. This bug was introduced in Erlang/OTP
27.0.

When no time warp mode was enabled, a smaller Erlang monotonic time could
be read than a previously read time, i.e., breaking the monotonic property.
The runtime system will abort when detecting an issue like this since OTP
24.3.4.17 and OTP 25.0.

Up until OTP 25 no time warp mode is the default. As of OTP 26 multi time
warp mode is the default.

When calling trace:function(Session, _, true, [meta]) the meta tracer was
incorrectly set to be the calling process. Now it's set to the session tracer
as expected.

Full runtime dependencies of erts-15.0.1

kernel-9.0, sasl-3.3, stdlib-4.1
kernel-10.0.1

The kernel-10.0.1 application can be applied independently of other applications
on a full OTP 27 installation.

Improvements and New Features

Polish the logger documentation.

Full runtime dependencies of kernel-10.0.1

crypto-5.0, erts-15.0, sasl-3.0, stdlib-6.0
public_key-1.16.1

The public_key-1.16.1 application can be applied independently of other
applications on a full OTP 27 installation.

Fixed Bugs and Malfunctions

Fix bug in dnsName constraint check, could cause valid cert to be considered
bad during path validation.

Full runtime dependencies of public_key-1.16.1

asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
ssh-5.2.1

The ssh-5.2.1 application can be applied independently of other applications on
a full OTP 27 installation.

Fixed Bugs and Malfunctions

With this change, race condition between connection closing and automatic
window adjustment is fixed.

Full runtime dependencies of ssh-5.2.1

crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1,
stdlib-5.0, stdlib-6.0
ssl-11.2.1

The ssl-11.2.1 application can be applied independently of other applications on
a full OTP 27 installation.

Fixed Bugs and Malfunctions

Check for TLS-1.3 support should check minimum requirements.

If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2 negotiated convert
TLS-1.3 ECDSA schemes to TLS-1.2 hash and signature pairs for increased
interoperability.

TLS-1.3 negotiation now uses SNI based options correctly instead of ignoring
them.

Improvements and New Features

Make it easier to distinguish between a invalid signature and unsupported
signature.

Enhance ALERT logs to help understand what causes the alert.

When the default value for signature_algs is used, default the
signature_algs_cert to the default value + rsa_pkcs1_sha1 to allow this
algorithms for certificates but not for the TLS protocol. This is for better
interoperability. If signature_algs is set explicitly signature_algs_cert must
also be set explicitly if they should be different.

Full runtime dependencies of ssl-11.2.1

crypto-5.0, erts-15.0, inets-5.10.7, kernel-9.0, public_key-1.15,
runtime_tools-1.15.1, stdlib-6.0
stdlib-6.0.1

The stdlib-6.0.1 application can be applied independently of other applications
on a full OTP 27 installation.

Fixed Bugs and Malfunctions

Fix so that missing -doc({file, File}) files only result in a warning and
not an error.

Fixed json bugs, json:encode_key_value_list/2 did not generate arrays
and json:decode/3 did not invoke the user callback for 0.

# $NetBSD: Makefile,v 1.124 2024/08/16 09:56:14 adam Exp $

DISTNAME=	erlang-${DIST_VERSION_MAJOR}.${DIST_VERSION_MINOR}${!empty(DIST_VERSION_PATCH):?.:}${DIST_VERSION_PATCH}
PKGNAME=	${DISTNAME:S/OTP-/erlang-/}
CATEGORIES=	lang
MASTER_SITES=	${MASTER_SITE_GITHUB:=erlang/}
GITHUB_PROJECT=	otp
GITHUB_TAG=	OTP-${PKGVERSION_NOREV}

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://www.erlang.org/
COMMENT=	Concurrent functional programming language
LICENSE=	apache-2.0

EXTRACT_USING=	bsdtar

WRKSRC=		${WRKDIR}/otp-${GITHUB_TAG}
GNU_CONFIGURE=	yes
USE_TOOLS+=	awk gmake perl flex
USE_LANGUAGES+=	c c++

# "This run-time was supposed be compiled with all code below 2Gb,
# but the instruction 'allocate_tt' is located at 00000001c586f34c."
MKPIE_SUPPORTED=	no

.include "../../mk/bsd.prefs.mk"

.if ${MACHINE_ARCH:M*armv6*} || ${MACHINE_ARCH:M*armv7*}
MAKE_FLAGS+=	ARCH=arm
.endif

.if ${USE_CROSS_COMPILE:U:tl} == yes

# Cross-build requires running erlc.
TOOL_DEPENDS+=		${PKGNAME}:../../${PKGPATH}

# The Erlang cross-build -- particularly the openssl part -- is unhappy
# if erl_xcomp_sysroot is undefined.  However, the pkgsrc wrappers
# already handle sysroot -- and passing CROSS_DESTDIR through to
# erl_xcomp_sysroot causes configure to break in mysterious ways (fails
# to detect suffix of executables for some reason, can't find
# conftest.c just for that one test).  So for now we'll pass / through
# as the sysroot and hope Erlang doesn't try any funny business with
# files in /usr/include or /usr/lib or anything.
CONFIGURE_ARGS+=	erl_xcomp_sysroot=/	# handled by pkgsrc

USE_GNU_CONFIGURE_HOST=	yes

.else

USE_GNU_CONFIGURE_HOST=	no

.endif

OVERRIDE_DIRDEPTH=	4

CONFIGURE_ARGS+=	--with-ssl=${BUILDLINK_PREFIX.openssl}

PTHREAD_OPTS+=		require native
CONFIGURE_ARGS+=	--enable-threads

MAKE_ENV+=		DESTDIR=${DESTDIR}

REPLACE_INTERPRETER+=	escript
REPLACE.escript.old=	.*escript
REPLACE.escript.new=	${PREFIX}/bin/escript
REPLACE_FILES.escript+=	lib/diameter/bin/diameterc
REPLACE_FILES.escript+=	lib/edoc/bin/edoc
REPLACE_FILES.escript+=	lib/erl_docgen/priv/bin/codeline_preprocessing.escript
REPLACE_FILES.escript+=	lib/erl_docgen/priv/bin/xml_from_edoc.escript
REPLACE_FILES.escript+=	lib/snmp/src/compile/snmpc.src

SUBST_CLASSES+=		target
SUBST_STAGE.target=	pre-configure
SUBST_FILES.target=	make/target.mk
SUBST_SED.target=	-e "s|=.*config.guess)|= ${MACHINE_GNU_PLATFORM}|"
SUBST_MESSAGE.target=	Fixing target name.

TEST_TARGET=		tests
TEST_MAKE_FLAGS=	ERL_TOP=${WRKSRC}

SMF_NAME=		epmd

CONFIGURE_ARGS.DragonFly+=	--disable-sctp

.if defined(OPSYS_HAS_KQUEUE) && ${OPSYS} != "Darwin"
CONFIGURE_ARGS+=	--enable-kernel-poll
.endif

# Erlang rejects kqueue implementations before Sierra.
.if ${OPSYS} == "Darwin" && ${OPSYS_VERSION} > 101200
CONFIGURE_ARGS+=	--enable-kernel-poll
.endif

CHECK_RELRO_SKIP+=	lib/erlang/lib/megaco-${VERSION.megaco}/priv/lib/megaco_flex_scanner_drv.so
CHECK_RELRO_SKIP+=	lib/erlang/lib/megaco-${VERSION.megaco}/priv/lib/megaco_flex_scanner_drv_mt.so

.include "options.mk"

###
### Ensure this gets rebuilt.
###
pre-build:
	${RUN} ${RM} -f ${WRKSRC}/lib/stdlib/ebin/dets_v9.beam

###
### Generate a list of module versions.
###
.PHONY: versions
versions: do-extract
	@${ECHO} "# \$$NetBSD\$$" > ${.CURDIR}/versions.mk
	@${ECHO} "# Do not edit, regenerate using 'make versions'" >> ${.CURDIR}/versions.mk
	${AWK} -F: '/OTP-${PKGVERSION_NOREV} :/{print $$2}' ${WRKSRC}/otp_versions.table | \
		${SED} -e 's/# //g' -e 's/-/ /g' \
		       -e 's,^ ,_VERSIONS=	,' \
		       -e 's, *$$,,' \
			>> ${.CURDIR}/versions.mk

post-install:
	chmod -R go-w ${DESTDIR}${PREFIX}/lib/erlang/lib

.include "Makefile.versions"

.include "../../security/openssl/buildlink3.mk"
.include "../../mk/termcap.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>