Greg Steuck <[email protected]> writes:

> I took this a bit further and I get a working devel/happy package now.
>
> This is still a complete WIP but I wanted to get some early feedback on
> the implementation choices as this is my first foray into port-modules.

Converting devel/alex is straightforward which further validates the
approach (though still doesn't touch any of the existing limitations).

>From 6e1020d085e778f65dc672ee356e26d129e5d174 Mon Sep 17 00:00:00 2001
From: Greg Steuck <[email protected]>
Date: Sat, 22 Aug 2020 15:27:27 -0700
Subject: [PATCH] Use devel/cabal module for devel/alex

---
 devel/alex/Makefile       | 23 +++++++++++------------
 devel/alex/distinfo       |  4 ++--
 devel/alex/pkg/PLIST      |  5 ++++-
 devel/cabal/cabal.port.mk |  4 ++--
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git devel/alex/Makefile devel/alex/Makefile
index 7b8b5d667a3..d72571f1be2 100644
--- devel/alex/Makefile
+++ devel/alex/Makefile
@@ -2,13 +2,8 @@
 
 COMMENT =	lexical analyser generator for Haskell
 
-# Dependency of meta/haskell-platform.
-# Please do *not* update without thinking.
-PORTROACH =		ignore:1
-
-DISTNAME =	alex-3.1.7
+DISTNAME =	alex-3.2.5
 CATEGORIES =	devel
-REVISION =	0
 
 HOMEPAGE =	http://www.haskell.org/alex/
 
@@ -17,8 +12,10 @@ PERMIT_PACKAGE =		Yes
 
 WANTLIB =		c charset ffi gmp iconv m pthread util
 
-MODULES =		lang/ghc
-MODGHC_BUILD =          cabal hackage nort
+MODULES =		devel/cabal
+MODCABAL_EXECUTABLES=	alex
+MODCABAL_BUILD=		hackage
+MODCABAL_DATA_DIRS=	data
 
 LIB_DEPENDS =		converters/libiconv \
 			devel/gmp \
@@ -31,8 +28,7 @@ AUTOCONF_VERSION =	2.61
 AUTOCONF_DIR =		${WRKSRC}/doc
 WRKCONF =		${AUTOCONF_DIR}
 
-BUILD_DEPENDS +=	devel/hs-QuickCheck>=2 \
-			textproc/docbook-xsl
+BUILD_DEPENDS +=	textproc/docbook-xsl
 
 post-build:
 	@cd ${WRKBUILD}/doc && exec ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} html
@@ -42,7 +38,10 @@ post-install:
 	cd ${WRKBUILD}/doc && umask 022 && pax -rw alex ${PREFIX}/share/doc
 
 do-test:
-	cd ${WRKBUILD}/tests && exec ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} \
-		all
+	cd ${WRKBUILD}/tests && exec ${SETENV} ${MAKE_ENV} \
+	${MAKE_PROGRAM} ALEX=${MODCABAL_BUILT_EXECUTABLE_alex} \
+			TEST_ALEX_OPTS=--template=../data \
+			-j ${MAKE_JOBS} all
+
 
 .include <bsd.port.mk>
diff --git devel/alex/distinfo devel/alex/distinfo
index d3ce2e457cf..0dbe0647154 100644
--- devel/alex/distinfo
+++ devel/alex/distinfo
@@ -1,2 +1,2 @@
-SHA256 (ghc/alex-3.1.7.tar.gz) = iaGhPabMvrAGSI2VdDguiRz3wFZ3UrMwzIYW10i/KNE=
-SIZE (ghc/alex-3.1.7.tar.gz) = 103624
+SHA256 (hackage/alex-3.2.5.tar.gz) = t3yKEnB2fGTirbIabpHufNkEuhftrhe8IP0D2lJW4OM=
+SIZE (hackage/alex-3.2.5.tar.gz) = 108531
diff --git devel/alex/pkg/PLIST devel/alex/pkg/PLIST
index 2e8e08fd666..e128b76c59d 100644
--- devel/alex/pkg/PLIST
+++ devel/alex/pkg/PLIST
@@ -1,5 +1,7 @@
 @comment $OpenBSD: PLIST,v 1.6 2013/07/18 21:58:00 kili Exp $
-@bin bin/alex
+bin/alex
+libexec/cabal/
+@bin libexec/cabal/alex
 share/${DISTNAME}/
 share/${DISTNAME}/AlexTemplate
 share/${DISTNAME}/AlexTemplate-debug
@@ -35,4 +37,5 @@ share/doc/alex/relnotes-20.html
 share/doc/alex/relnotes-210.html
 share/doc/alex/relnotes-22.html
 share/doc/alex/syntax.html
+share/doc/alex/types.html
 share/doc/alex/wrappers.html
diff --git devel/cabal/cabal.port.mk devel/cabal/cabal.port.mk
index d48c4a29c14..292e3773f94 100644
--- devel/cabal/cabal.port.mk
+++ devel/cabal/cabal.port.mk
@@ -40,14 +40,14 @@ MODCABAL_post-extract += \
 .endfor
 .endif
 
-CABAL	=  ${SETENV} ${MAKE_ENV} HOME=${_MODCABAL_HOME} ${LOCALBASE}/bin/cabal
+MODCABAL_CABAL	=  ${SETENV} ${MAKE_ENV} HOME=${_MODCABAL_HOME} ${LOCALBASE}/bin/cabal
 
 MODCABAL_BUILD_ARGS = --datadir=${PREFIX}/share/${PKGNAME}
 _MODCABAL_BUILD_TARGETS ?=	${MODCABAL_EXECUTABLES:C/^/exe:&/}
 
 MODCABAL_BUILD_TARGET =	\
 	cd ${WRKBUILD} \
-	&& ${CABAL} v2-build --offline --disable-benchmarks --disable-tests \
+	&& ${MODCABAL_CABAL} v2-build --offline --disable-benchmarks --disable-tests \
 		--flags "${MODCABAL_FLAGS}" ${MODCABAL_BUILD_ARGS} ${MODCABAL_BUILD_TARGETS}
 
 _MODCABAL_LIBEXEC = libexec/cabal
-- 
2.28.0

Reply via email to