From: Volker Schlecht Subject: Re: Retire erlang/26 for erlang/29 To: ports , Stuart Henderson Date: Tue, 28 Jul 2026 20:34:53 +0200 On 7/27/26 11:42 PM, Stuart Henderson wrote: > lang/erlang/27 needs @pkgpath markers in 27's pkg/PLIST-* > (@pkgpath lang/erlang/26,-main and ,-wx). I'd rather have an upgrade path from 26 -> 28. 28 is the default version for the dependent ports and I don't think that'll change before we're working on 8.1 > rebar3 needs a quirks $stem_extensions entry from erl26-rebar3 to > erl27-rebar3 and @pkgpath devel/rebar3,erlang26 for rebar3,erlang27 (can > be done unconditionally for now, but if an erlang28 flavour is added to > rebar3 then the @pkgpath will need to only be in the PLIST for ,erlamg27 > - this can be done in a PFRAG or via a variable that expands to @comment > or nothing). Done, with an upgrade path from 26 -> 28 > And 27 in -current will need to keep REVISION above 7.9-stable (as will > rebar3 if there are any updates in -stable: unlikely I guess, but worth > a comment just in case). Never say never ... Index: Makefile =================================================================== RCS file: /cvs/ports/lang/erlang/Makefile,v retrieving revision 1.79 diff -u -p -r1.79 Makefile --- Makefile 19 Jun 2025 13:24:55 -0000 1.79 +++ Makefile 28 Jul 2026 18:31:33 -0000 @@ -1,6 +1,6 @@ SUBDIR = - SUBDIR += 26 SUBDIR += 27 SUBDIR += 28 + SUBDIR += 29 .include Index: erlang.port.mk =================================================================== RCS file: /cvs/ports/lang/erlang/erlang.port.mk,v retrieving revision 1.49 diff -u -p -r1.49 erlang.port.mk --- erlang.port.mk 6 May 2026 15:52:38 -0000 1.49 +++ erlang.port.mk 28 Jul 2026 18:31:33 -0000 @@ -23,7 +23,7 @@ MODERL_HANDLE_FLAVORS ?= No # If erlang.port.mk should handle FLAVORS, define a separate FLAVOR # for each erlang runtime . if !defined(FLAVORS) -FLAVORS = erlang26 erlang27 erlang28 +FLAVORS = erlang27 erlang28 erlang29 . endif FULLPKGNAME ?= ${MODERL_PKG_PREFIX}-${PKGNAME} @@ -38,27 +38,27 @@ FLAVOR = ${_MODERL_DEFAULT_FLAVOR} MODERL_PKG_PREFIX = erl${MODERL_VERSION} .if defined(MODERL_VERSION) -. if ${MODERL_VERSION} == 26 -_MODERL_FLAVOR = erlang26 -. elif ${MODERL_VERSION} == 27 +. if ${MODERL_VERSION} == 27 _MODERL_FLAVOR = erlang27 . elif ${MODERL_VERSION} == 28 _MODERL_FLAVOR = erlang28 +. elif ${MODERL_VERSION} == 29 +_MODERL_FLAVOR = erlang29 . else ERRORS += "Invalid MODERL_VERSION set: ${MODERL_VERSION}." . endif .else # When only flavour is set, derive version . if !empty(FLAVOR) -. if ${FLAVOR} == erlang26 -MODERL_VERSION ?= 26 -_MODERL_FLAVOR ?= erlang26 -. elif ${FLAVOR} == erlang27 +. if ${FLAVOR} == erlang27 MODERL_VERSION ?= 27 _MODERL_FLAVOR ?= erlang27 . elif ${FLAVOR} == erlang28 MODERL_VERSION ?= 28 _MODERL_FLAVOR ?= erlang28 +. elif ${FLAVOR} == erlang29 +MODERL_VERSION ?= 29 +_MODERL_FLAVOR ?= erlang29 . endif . endif .endif @@ -81,7 +81,7 @@ MODERL_USE_REBAR3 = Yes MODERL_BUILD_DEPENDS += devel/rebar3,${_MODERL_FLAVOR} REBAR_BIN ?= ${LOCALBASE}/bin/rebar3-${MODERL_VERSION} # Make sure rebar gets called as 'rebar3', otherwise escript tries to call the -# binary name (e.g. rebar3-27) as the script entrypoint. +# binary name (e.g. rebar3-28) as the script entrypoint. _MODERL_LINKS += rebar3-${MODERL_VERSION} rebar3 .endif Index: 28/Makefile =================================================================== RCS file: /cvs/ports/lang/erlang/28/Makefile,v retrieving revision 1.23 diff -u -p -r1.23 Makefile --- 28/Makefile 27 Jul 2026 18:55:10 -0000 1.23 +++ 28/Makefile 28 Jul 2026 18:31:33 -0000 @@ -14,6 +14,7 @@ PKGNAME= erlang-${V} PKGNAME-main= erlang-${V} PKGNAME-wx= erlang-wx-${V} EPOCH= 0 +REVISION= 0 VERSION_SPEC= >=28v0,<29v0 PKGSPEC-main= erlang-${VERSION_SPEC} Index: 28/pkg/PLIST-main =================================================================== RCS file: /cvs/ports/lang/erlang/28/pkg/PLIST-main,v retrieving revision 1.7 diff -u -p -r1.7 PLIST-main --- 28/pkg/PLIST-main 4 Mar 2026 19:21:31 -0000 1.7 +++ 28/pkg/PLIST-main 28 Jul 2026 18:31:33 -0000 @@ -4,6 +4,7 @@ @conflict erlang->=28v0,<29v0 @conflict erlang-wx->=28,<${V} @pkgpath lang/erlang/21,-main +@pkgpath lang/erlang/26,-main @newgroup _epmd:888 @newuser _epmd:888:_epmd::Erlang EPMD Account:/var/empty:/sbin/nologin @rcscript ${RCDIR}/epmd28 Index: 28/pkg/PLIST-wx =================================================================== RCS file: /cvs/ports/lang/erlang/28/pkg/PLIST-wx,v retrieving revision 1.5 diff -u -p -r1.5 PLIST-wx --- 28/pkg/PLIST-wx 6 Jul 2026 11:23:12 -0000 1.5 +++ 28/pkg/PLIST-wx 28 Jul 2026 18:31:33 -0000 @@ -3,6 +3,7 @@ @conflict erlang-wx->=28,<29 @conflict erlang-wx->=28v0,<29v0 @conflict erlang->=28v0,<28.5.0.3p0v0 +@pkgpath lang/erlang/26,-wx lib/${ERLANG_V}/lib/${ERL_DEBUGGER}/ lib/${ERLANG_V}/lib/${ERL_DEBUGGER}/ebin/ lib/${ERLANG_V}/lib/${ERL_DEBUGGER}/ebin/dbg_debugged.beam Index: Makefile =================================================================== RCS file: /cvs/ports/devel/Makefile,v retrieving revision 1.2597 diff -u -p -r1.2597 Makefile --- Makefile 24 Jul 2026 20:18:19 -0000 1.2597 +++ Makefile 28 Jul 2026 18:23:57 -0000 @@ -1882,7 +1882,6 @@ SUBDIR += rcs-fast-import SUBDIR += re2c SUBDIR += readline - SUBDIR += rebar3,erlang26 SUBDIR += rebar3,erlang27 SUBDIR += rebar3,erlang28 SUBDIR += reflection-cpp Index: quirks/files/Quirks.pm =================================================================== RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v retrieving revision 1.1821 diff -u -p -r1.1821 Quirks.pm --- quirks/files/Quirks.pm 22 Jun 2026 02:22:11 -0000 1.1821 +++ quirks/files/Quirks.pm 28 Jul 2026 18:24:05 -0000 @@ -531,6 +531,7 @@ my $stem_extensions = { 'vegastrike-extra' => 'vegastrike-utcs', 'vegastrike-music' => 'vegastrike-utcs', 'vegastrike-speech' => 'vegastrike-utcs', + 'erl26-rebar3' => 'erl28-rebar3', }; Index: rebar3/Makefile =================================================================== RCS file: /cvs/ports/devel/rebar3/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- rebar3/Makefile 28 Feb 2026 18:47:22 -0000 1.22 +++ rebar3/Makefile 28 Jul 2026 18:24:05 -0000 @@ -3,7 +3,10 @@ COMMENT = Erlang build tool GH_ACCOUNT = erlang GH_PROJECT = rebar3 GH_TAGNAME = 3.27.0 +REVISION = 0 + CATEGORIES = devel + HOMEPAGE = https://www.rebar3.org MAINTAINER = Volker Schlecht @@ -15,9 +18,19 @@ MODULES = lang/erlang # for tests MODERL_MODULES += meck 0.8.13 MODERL_HANDLE_FLAVORS= Yes +FLAVOR ?= erlang28 +FLAVORS = erlang27 erlang28 CONFIGURE_STYLE = None DISTFILES = rebar3-{}${GH_TAGNAME}.tar.gz + +# To enable/disable pkgpath for erlang/26 +.if ${FLAVOR} == "erlang28" +ERL_DEFAULT = "" +.else +ERL_DEFAULT = "@comment " +.endif +SUBST_VARS += ERL_DEFAULT pre-configure: ${SUBST_CMD} ${WRKSRC}/bootstrap \ Index: rebar3/pkg/PLIST =================================================================== RCS file: /cvs/ports/devel/rebar3/pkg/PLIST,v retrieving revision 1.5 diff -u -p -r1.5 PLIST --- rebar3/pkg/PLIST 28 May 2024 18:30:32 -0000 1.5 +++ rebar3/pkg/PLIST 28 Jul 2026 18:24:05 -0000 @@ -1,3 +1,4 @@ @conflict rebar3-*-erlang${MODERL_VERSION} @pkgpath devel/rebar +${ERL_DEFAULT}@pkgpath devel/rebar3,erlang26 bin/rebar3-${MODERL_VERSION}