include $(TOPDIR)/rules.mk
PKG_NAME:=erlang
-PKG_VERSION:=28.0.3
+PKG_VERSION:=28.5
PKG_RELEASE:=1
PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/erlang/otp/releases/download/OTP-$(PKG_VERSION)
-PKG_HASH:=0cdf3b44e327439ea6677e61e06f28a0f82ea080af2dcbd665bc5a945b167012
+PKG_HASH:=2c7e8ca23e6864eb20eff5d44738bfa123aed8cd21ed6d98e533d751eee28d9c
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE.txt
--- /dev/null
+#!/bin/sh
+# erl -version prints ERTS version, not OTP release — use system_info instead
+case "$1" in
+erlang)
+ otp_major="${2%%.*}"
+ timeout 60s erl -noshell \
+ -eval "V = erlang:system_info(otp_release), io:format(\"OTP ~s~n\", [V])" \
+ -s init stop 2>&1 | \
+ grep -qF "OTP ${otp_major}"
+ ;;
+esac
--- /dev/null
+#!/bin/sh
+
+case "$1" in
+erlang)
+ # Check erl binary is present and prints the right OTP version
+ otp_major="${2%%.*}"
+ timeout 60s erl -noshell -eval "V = erlang:system_info(otp_release), io:format(\"OTP ~s~n\", [V])" -s init stop 2>&1 | \
+ grep -qF "OTP ${otp_major}" || {
+ echo "FAIL: erl did not report expected OTP version '$2' (major: $otp_major)"
+ exit 1
+ }
+ echo "erl OTP version: OK"
+
+ # Verify epmd (Erlang port mapper daemon) is present
+ [ -x /usr/bin/epmd ] || [ -x /usr/lib/erlang/bin/epmd ] || {
+ echo "FAIL: epmd not found"
+ exit 1
+ }
+ echo "epmd: OK"
+
+ # Basic arithmetic eval
+ result=$(timeout 60s erl -noshell -eval "io:format(\"~w~n\", [2+2])" -s init stop 2>/dev/null)
+ [ "$result" = "4" ] || {
+ echo "FAIL: erl basic eval returned '$result', expected '4'"
+ exit 1
+ }
+ echo "erl eval: OK"
+ ;;
+esac