Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: net/ejabberd: new port (version 24.10)
To:
OpenBSD ports <ports@openbsd.org>
Date:
Tue, 12 Nov 2024 16:16:26 +0100

Download raw body.

Thread
On Sat, 09 Nov 2024 12:54:08 +0100,
Kirill A. Korinsky <kirill@korins.ky> wrote:
> 
> ports@,
> 
> I'd like to import net/ejabberd back into the ports and take care of it.
> 
> To import it, I need to add small hacks inside lang/erlang/erlang.port.mk to
> overstep the extreme fragile behavior of rebar on offline builds.
> 
> I'd like to import net/ejabberd back to the ports and take care of it.
> 
> To import it I need to add small hacks inside lang/erlang/erlang.port.mk to
> overstep extream fragiel behaviour of rebar on offline builds.
> 
> As part of my testing I've rebuild and check that it doesn't change PLIST:
>  - lang/lfe
>  - lang/gleam
>  - lang/elixir
>  - devel/rebar3
>  - benchmarks/tsung
>  - net/rabbitmq
> or all ports which depends on erlang.port.mk.
>

Here a bit polished ports:
 - better rc script which handle reload
 - moved ejabberd data into /var/db/ejabberd
 - some very minor tweaks.

Feedback? Ok?

Index: infrastructure/db/user.list
===================================================================
RCS file: /home/cvs/ports/infrastructure/db/user.list,v
diff -u -p -r1.452 user.list
--- infrastructure/db/user.list	8 Nov 2024 16:05:20 -0000	1.452
+++ infrastructure/db/user.list	8 Nov 2024 17:55:30 -0000
@@ -102,7 +102,7 @@ id  user		group		port
 591 _bacula		_bacula		sysutils/bacula
 592 _imapproxy		_imapproxy	mail/imapproxy
 #593 _nginx		_nginx		www/nginx
-#594 _ejabberd		_ejabberd	net/ejabberd
+594 _ejabberd		_ejabberd	net/ejabberd
 595 _poppassd		_poppassd	sysutils/openpoppassd
 #596 _heartbeat		_heartbeat	sysutils/heartbeat
 597 _spotifyd		_spotifyd	audio/spotifyd
Index: lang/erlang/erlang.port.mk
===================================================================
RCS file: /home/cvs/ports/lang/erlang/erlang.port.mk,v
diff -u -p -r1.41 erlang.port.mk
--- lang/erlang/erlang.port.mk	28 May 2024 19:53:48 -0000	1.41
+++ lang/erlang/erlang.port.mk	9 Nov 2024 10:41:42 -0000
@@ -72,7 +72,12 @@ _MODERL_FLAVOR ?=	${_MODERL_DEFAULT_FLAV
 CONFIGURE_STYLE =	rebar3
 .endif
 
+MODERL_USE_REBAR3 ?=	No
 .if ${CONFIGURE_STYLE} == "rebar3"
+MODERL_USE_REBAR3 =	Yes
+.endif
+
+.if ${MODERL_USE_REBAR3:L} == 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
@@ -125,6 +130,7 @@ MODERL_LIBROOT ?=	lib/erlang${MODERL_VER
 ERL_LIBDIR ?=		${ERL_LIBROOT}/${DISTNAME}
 
 # Common program shortcuts
+MODERL_EPMD =		${LOCALBASE}/bin/epmd${MODERL_VERSION}
 MODERL_ERL =		${LOCALBASE}/bin/erl${MODERL_VERSION}
 MODERL_ERLC =		${LOCALBASE}/bin/erlc${MODERL_VERSION}
 
@@ -172,6 +178,22 @@ SITE_HEX =		https://repo.hex.pm/tarballs
 SITES.erl ?= 		${SITE_HEX}
 MODERL_DIST_SUBDIR ?=	hex_modules
 
+.  for _m _v in ${MODERL_PLUGINS}
+MODERL_DISTFILES += ${MODERL_DIST_SUBDIR}/{}${_m}-${_v}.tar
+.  endfor
+
+.  if ! empty(MODERL_PLUGINS)
+.    for _m _v in ${MODERL_PLUGINS}
+MODERL_SETUP_WORKSPACE_PLUGINS += mkdir -p ${WRKDIR}/${MODERL_DIST_SUBDIR}/${_m}; \
+		tar xf ${FULLDISTDIR}/${MODERL_DIST_SUBDIR}/${_m}-${_v}.tar -C ${WRKDIR}/${MODERL_DIST_SUBDIR}/${_m}; \
+		mkdir -p ${WRKSRC}/_checkouts/${_m}; \
+		mkdir -p ${WRKSRC}/_build/default/plugins; \
+		tar xzf ${WRKDIR}/${MODERL_DIST_SUBDIR}/${_m}/contents.tar.gz -C ${WRKSRC}/_checkouts/${_m}; \
+		ln -fs ${WRKSRC}/_checkouts/${_m} ${WRKSRC}/_build/default/plugins/${_m};
+.    endfor
+MODERLANG_post-extract += ${MODERL_SETUP_WORKSPACE_PLUGINS}
+.  endif
+
 .  for _m _v in ${MODERL_MODULES}
 MODERL_DISTFILES += ${MODERL_DIST_SUBDIR}/{}${_m}-${_v}.tar
 .  endfor
@@ -183,9 +205,13 @@ MODERL_SETUP_WORKSPACE += mkdir -p ${WRK
 		mkdir -p ${WRKSRC}/_checkouts/${_m}; \
 		mkdir -p ${WRKSRC}/_build/default/lib; \
 		tar xzf ${WRKDIR}/${MODERL_DIST_SUBDIR}/${_m}/contents.tar.gz -C ${WRKSRC}/_checkouts/${_m}; \
-		cp -r ${WRKSRC}/_checkouts/${_m} ${WRKSRC}/_build/default/lib/;
+		ln -fs ${WRKSRC}/_checkouts/${_m} ${WRKSRC}/_build/default/lib/${_m};
+MODERL_COPY_EBINS += if [ -d ${WRKSRC}/_build/default/checkouts/${_m}/ebin ]; then \
+		cp -r ${WRKSRC}/_build/default/checkouts/${_m}/ebin \
+			${WRKSRC}/_build/default/lib/${_m}/ebin; fi;
 .    endfor
 MODERLANG_post-extract += ${MODERL_SETUP_WORKSPACE}
+MODERLANG_pre-fake += ${MODERL_COPY_EBINS}
 .  endif
 
 .  if defined(MODERL_DISTFILES)


-- 
wbr, Kirill