Hi Caspar,

Just wanted to share where things are going with Haskell ports on
OpenBSD.

ShellCheck 0.7.1 was not hard to convert though already unpleasant to do
by hand. The key learning here is that with a tiny bit of elbow grease a
new port can use the new infrastructure. This is a much better
experience than the previous transitive update ripples.

Thanks
Greg

P.S. This can't be easily submitted, too much prior hacky stuff preceeds
this patch: https://github.com/blackgnezdo/ports/commits/ghc810

>From 7183d458a71393a3ad3ed98670cdf1fcd0681da6 Mon Sep 17 00:00:00 2001
From: Greg Steuck <[email protected]>
Date: Sun, 23 Aug 2020 15:42:41 -0700
Subject: [PATCH] Use devel/cabal module for devel/shellcheck

Upgrade ShellCheck to the most recent 0.7.1 now that it's easy.

Infrastructure changes are minimal: avoid storing 0.cabal files.

MODCABAL_MANIFEST construction has become tedious. A custom program is
very much desirable.

TODO: add a quirk since shellcheck-main is replaced by
shellcheck. Otherwise pkg_add reports:
Can't install shellcheck-0.7.1 because of conflicts (shellcheck-0.4.7p1)
---
 devel/cabal/cabal.port.mk                     |  10 +-
 devel/shellcheck/Makefile                     |  70 +++++++----
 devel/shellcheck/distinfo                     |  86 ++++++++++++-
 .../patches/patch-ShellCheck_AnalyzerLib_hs   |  44 -------
 .../shellcheck/patches/patch-ShellCheck_cabal |  54 --------
 devel/shellcheck/patches/patch-shellcheck_hs  |  21 ----
 devel/shellcheck/pkg/{DESCR-main => DESCR}    |   0
 devel/shellcheck/pkg/DESCR-lib                |   1 -
 devel/shellcheck/pkg/PLIST                    |   5 +
 devel/shellcheck/pkg/PLIST-lib                | 119 ------------------
 devel/shellcheck/pkg/PLIST-main               |   3 -
 11 files changed, 141 insertions(+), 272 deletions(-)
 delete mode 100644 devel/shellcheck/patches/patch-ShellCheck_AnalyzerLib_hs
 delete mode 100644 devel/shellcheck/patches/patch-ShellCheck_cabal
 delete mode 100644 devel/shellcheck/patches/patch-shellcheck_hs
 rename devel/shellcheck/pkg/{DESCR-main => DESCR} (100%)
 delete mode 100644 devel/shellcheck/pkg/DESCR-lib
 create mode 100644 devel/shellcheck/pkg/PLIST
 delete mode 100644 devel/shellcheck/pkg/PLIST-lib
 delete mode 100644 devel/shellcheck/pkg/PLIST-main

diff --git devel/cabal/cabal.port.mk devel/cabal/cabal.port.mk
index 250e0bb3d18..8c1f9b1e517 100644
--- devel/cabal/cabal.port.mk
+++ devel/cabal/cabal.port.mk
@@ -16,10 +16,8 @@ MODCABAL_HACKAGE_VERSION =	${DISTNAME:C,.*-([0-9.]*)$,\1,}
 HOMEPAGE ?=			${MASTER_SITES0}${MODCABAL_HACKAGE_NAME}
 MASTER_SITES =			${MASTER_SITES0}${DISTNAME}/
 DISTFILES ?=			${DISTNAME}.tar.gz
-SUBST_VARS +=			DISTNAME MODCABAL_HACKAGE_VERSION
+SUBST_VARS +=			DISTNAME MODCABAL_HACKAGE_VERSION PKGNAME
 
-# TODO(gnezdo): minimize identical file storage by skipping revision 0
-# corresponding to the original .cabal inside .tar.gz.
 .if defined(MODCABAL_REVISION)
 DISTFILES +=	${DISTNAME}_${MODCABAL_REVISION}{revision/${MODCABAL_REVISION}}.cabal
 .endif
@@ -38,7 +36,9 @@ MODCABAL_post-extract = \
 
 .for package version revision in ${MODCABAL_MANIFEST}
 DISTFILES += {${package}-${version}/}${package}-${version}.tar.gz:0
+.if ${revision} > 0
 DISTFILES += ${package}-${version}_${revision}{${package}-${version}/revision/${revision}}.cabal:0
+.endif
 .endfor
 
 .if defined(MODCABAL_REVISION)
@@ -51,15 +51,17 @@ MODCABAL_post-extract += \
 EXTRACT_CASES += *.cabal) ;;
 
 .for package version revision in ${MODCABAL_MANIFEST}
+.if ${revision} > 0
 MODCABAL_post-extract += \
 	&& cp ${FULLDISTDIR}/${package}-${version}_${revision}.cabal ${WRKDIR}/${package}-${version}/${package}.cabal
+.endif
 .endfor
 .endif
 
 # References all the locally available dependencies.  Ideally these
 # should be command line options, tracking issue:
 # https://github.com/haskell/cabal/issues/3585
-.for package version revision in ${MODCABAL_MANIFEST}
+.for package version _revision in ${MODCABAL_MANIFEST}
 MODCABAL_post-extract += \
 	&& echo "packages: ${WRKDIR}/${package}-${version}/${package}.cabal" >> ${WRKSRC}/cabal.project.local
 .endfor
diff --git devel/shellcheck/Makefile devel/shellcheck/Makefile
index 94f583b6c70..ee08ddc0db0 100644
--- devel/shellcheck/Makefile
+++ devel/shellcheck/Makefile
@@ -1,14 +1,9 @@
 # $OpenBSD: Makefile,v 1.6 2019/09/30 12:50:08 kili Exp $
 
-COMMENT-main =		shell script analysis tool
-COMMENT-lib =		ShellCheck library
-
-V =			0.4.7
-DISTNAME =		ShellCheck-${V}
-REVISION-main =		1
-REVISION-lib =		3
-PKGNAME-main =		shellcheck-${V}
-PKGNAME-lib =		hs-shellcheck-${V}
+COMMENT =		shell script analysis tool
+
+DISTNAME =		ShellCheck-0.7.1
+PKGNAME =		${DISTNAME:L}
 CATEGORIES =		devel
 HOMEPAGE =		https://www.shellcheck.net/
 
@@ -17,29 +12,56 @@ MAINTAINER =		Caspar Schutijser <[email protected]>
 # GPLv3
 PERMIT_PACKAGE =	Yes
 
-MULTI_PACKAGES =	-main -lib
-WANTLIB-main =		c charset ffi gmp iconv m pthread util
-WANTLIB-lib =
-
-MODULES =		lang/ghc
-
-MODGHC_BUILD =		cabal hackage haddock register
+WANTLIB =		c charset ffi gmp iconv m pthread util
 
-MODGHC_PACKAGE_KEY =	1v0sx5oDTF9BoGzz61tUYo
+MODULES =		devel/cabal
+MODCABAL_EXECUTABLES =	shellcheck
+MODCABAL_BUILD =	hackage
+MODCABAL_MANIFEST = \
+	Diff			0.4.0		 0 \
+	QuickCheck		2.14.1		 0 \
+	aeson			1.5.3.0		 0 \
+	assoc			1.0.2		 0 \
+	attoparsec		0.13.2.4	 0 \
+	base-compat		0.11.1		 0 \
+	base-compat-batteries	0.11.1		 0 \
+	base-orphans		0.8.2		 0 \
+	bifunctors		5.5.7		 1 \
+	cabal-doctest		1.0.8		 2 \
+	comonad			5.0.6		 1 \
+	data-fix		0.3.0		 0 \
+	distributive		0.6.2		 2 \
+	dlist			1.0		 0 \
+	hashable		1.3.0.0		 1 \
+	integer-logarithms	1.0.3		 2 \
+	primitive		0.7.1.0		 0 \
+	random			1.2.0		 0 \
+	regex-base		0.94.0.0	 1 \
+	regex-tdfa		1.3.1.0		 1 \
+	scientific		0.3.6.2		 0 \
+	splitmix		0.1.0.1		 0 \
+	strict			0.4		 0 \
+	tagged			0.8.6		 2 \
+	th-abstraction		0.3.2.0		 0 \
+	these			1.1.1.1		 0 \
+	time-compat		1.9.3		 0 \
+	transformers-compat	0.6.5		 0 \
+	unordered-containers	0.2.12.0	 0 \
+	uuid-types		1.0.3		 3 \
+	vector			0.12.1.2	 0 \
 
-BUILD_DEPENDS =		${RUN_DEPENDS-lib}
-RUN_DEPENDS-lib =	devel/hs-QuickCheck>=2.7.4 \
-			devel/hs-regex-tdfa \
-			lang/ghc=${MODGHC_VER} \
-			textproc/hs-json
-LIB_DEPENDS-main =	converters/libiconv \
+LIB_DEPENDS =		converters/libiconv \
 			devel/gmp \
 			devel/libffi
 RUN_DEPENDS-main =
 
 NO_TEST =		Yes
 
+# TODO(gnezdo): find a lighter-weight option than pandoc used by
+# ShellCheck's manpage converter or pre-format and carry the page with
+# files directory. Gating ShellCheck on pandoc is a bad trade-off.
 post-install:
-	${INSTALL_MAN} ${WRKSRC}/shellcheck.1 ${PREFIX}/man/man1
+	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/${PKGNAME}
+	${INSTALL_DATA} ${WRKSRC}/shellcheck.1.md ${PREFIX}/share/doc/${PKGNAME}
 
 .include <bsd.port.mk>
diff --git devel/shellcheck/distinfo devel/shellcheck/distinfo
index baa17bef06d..d35130884ad 100644
--- devel/shellcheck/distinfo
+++ devel/shellcheck/distinfo
@@ -1,2 +1,84 @@
-SHA256 (ghc/ShellCheck-0.4.7.tar.gz) = GElVJk1CxdygMA+5aIuabJoccMNF282OMLtIoEmnDXw=
-SIZE (ghc/ShellCheck-0.4.7.tar.gz) = 126593
+SHA256 (hackage/Diff-0.4.0.tar.gz) = cpCsCYrYtHSLnBDklMyFulSvaIImrmmkZap7THPxScc=
+SHA256 (hackage/QuickCheck-2.14.1.tar.gz) = w/zFqhjavi0c673z8KkdryObUusIbQK3xhXGB+8NR1c=
+SHA256 (hackage/ShellCheck-0.7.1.tar.gz) = QV8j7XfBfLaDezKKNbn6Jix9mxqQk7yAH1DZkBDkpBo=
+SHA256 (hackage/aeson-1.5.3.0.tar.gz) = lY75ajGtCAfjB/ktYaK1GCf3sGr+1Szwb3bGTGrtmGo=
+SHA256 (hackage/assoc-1.0.2.tar.gz) = 2JiNxuhxjHo0VlFbdpyTNq7uxzDPhvxRdSR5af+PFE8=
+SHA256 (hackage/attoparsec-0.13.2.4.tar.gz) = umbNbeF0nsklaNsbnJBbQ6hJ8K2RjUXXtZRAegLr77I=
+SHA256 (hackage/base-compat-0.11.1.tar.gz) = NW8VQuyT5xkqkHPTKo7x5IGUJ1SV3Ox/sNJB9LqvbTY=
+SHA256 (hackage/base-compat-batteries-0.11.1.tar.gz) = yvZv7TwKOwQ3aSytGMk6cHToUkqGuL4c4E0KGMv2rtg=
+SHA256 (hackage/base-orphans-0.8.2.tar.gz) = KoBiOF5dXe5BhCiiLHK5ORVXvB/i+TvWQ/d1Sza56wE=
+SHA256 (hackage/bifunctors-5.5.7.tar.gz) = iLOi1FBOETmjrvcCeRP6oIcGMUd9Ci67b6Z9SUzbNTI=
+SHA256 (hackage/bifunctors-5.5.7_1.cabal) = F5lw2Mq6p2DfdNQOH4GzYzx4tWny0FjiTawxtaGGVAY=
+SHA256 (hackage/cabal-doctest-1.0.8.tar.gz) = ICamqH1BAgLOCRQSymvDPFrKeHAlMmtKPRNCWiM5Lg4=
+SHA256 (hackage/cabal-doctest-1.0.8_2.cabal) = i9HWFPtl8NUmCdowv45exxpLat+P9WEO2zy00RRXYRc=
+SHA256 (hackage/comonad-5.0.6.tar.gz) = d8+wFqzRdHuJLDG4La8N6T9Qi6d11iVi03azVK24j64=
+SHA256 (hackage/comonad-5.0.6_1.cabal) = /fG1KaeXZahUmsfp1Dm3acyoUneHQtuHAqnZstwn5KQ=
+SHA256 (hackage/data-fix-0.3.0.tar.gz) = nlmz7WlLUTkxYJOzdnhC5grUghhYRZ5812Pldz36maA=
+SHA256 (hackage/distributive-0.6.2.tar.gz) = gk7icd7UM85sYf6JDHhGQrfiD/pAgvymCdpU59z8I8k=
+SHA256 (hackage/distributive-0.6.2_2.cabal) = Ks6bq829HC2yhjjCAEBfuF42YP4Zzq5PAwglkK3CxIc=
+SHA256 (hackage/dlist-1.0.tar.gz) = Fz1jcyi7Fz/MNl8w0p/0qUKSoeDlVYrrPfwR3oFRARU=
+SHA256 (hackage/hashable-1.3.0.0.tar.gz) = gi5UE/vMymrohNOrpAZkIsi11Y0j0Yuey1wDJzuxmrQ=
+SHA256 (hackage/hashable-1.3.0.0_1.cabal) = THDxQHiBBZ6TVQ03QhkSVClrJze3k6dCvZATSPs+H7E=
+SHA256 (hackage/integer-logarithms-1.0.3.tar.gz) = WuJiAYaYrzW7dJFvrRcNltPrRGaccu0225oZozks7BY=
+SHA256 (hackage/integer-logarithms-1.0.3_2.cabal) = Y9QlleyStxrJige5hLCi6z1JVvStLYVsO/b8PcIY0ig=
+SHA256 (hackage/primitive-0.7.1.0.tar.gz) = a+vs/fKld4fZ/VIxv9YStlqS7dezOpc7Kg8RMSuJo/A=
+SHA256 (hackage/random-1.2.0.tar.gz) = 5FGc98BYv9W9vkrMeCKErMniXnRIcghhnKg8vNY/ud4=
+SHA256 (hackage/regex-base-0.94.0.0.tar.gz) = xB+C9fwRV8lhpMvcDNVWHlqkTzOc5ucG2XjZfgymuRQ=
+SHA256 (hackage/regex-base-0.94.0.0_1.cabal) = RKqVynYilP+7KM8K+cVn2TtdLFbk84zlOFolfYmflo4=
+SHA256 (hackage/regex-tdfa-1.3.1.0.tar.gz) = FcN2eD05ezuZM881mAgI/t3eJzvW8kRbq7zLL3akLsA=
+SHA256 (hackage/regex-tdfa-1.3.1.0_1.cabal) = vsE4EqVqkE/zUQyqGf4bPOOTnjA2BLG8sxYnccUjEbo=
+SHA256 (hackage/scientific-0.3.6.2.tar.gz) = J40K/IdFAlT4p26rIbVYOvY5VO/Jt0hEoXohpoATFA8=
+SHA256 (hackage/splitmix-0.1.0.1.tar.gz) = TUtpSEbqxq83PnUOTJXJyiqYS8fw5kZvlzdZ0PsfGSo=
+SHA256 (hackage/strict-0.4.tar.gz) = J5/ueGkECc4IeL7q1KYg8MCXXbohXWd48YNpnjV2RT8=
+SHA256 (hackage/tagged-0.8.6.tar.gz) = rRbe8IhM9vBa4a6OkBks+djZZz+iZLJJSZvZ5PrHkd0=
+SHA256 (hackage/tagged-0.8.6_2.cabal) = H3yoTmyIy7kjZBxgBByfVsNPGoiXWcwHPN8QVCtEH/k=
+SHA256 (hackage/th-abstraction-0.3.2.0.tar.gz) = Nv7zOtDzS5uPtVUv5hh1eaANX5DZOOm8JNOCqZGf63k=
+SHA256 (hackage/these-1.1.1.1.tar.gz) = 15jJ9W4X3vRB6PUeVMwRr9s+dsap0enuFU6aeNoL9Qg=
+SHA256 (hackage/time-compat-1.9.3.tar.gz) = u2pE5meUXdyo3tk+BB7pGYakoZ9Z4Uml3SH9sb+j24g=
+SHA256 (hackage/transformers-compat-0.6.5.tar.gz) = 2mfPEVFdp1GzKozm6WVJ9yaPfENXaa0Z3Jdmtpd0Ygs=
+SHA256 (hackage/unordered-containers-0.2.12.0.tar.gz) = SB2rTqWfEP6qfWXsuK5dE20TC9us8jVtQUs5JtY4vSA=
+SHA256 (hackage/uuid-types-1.0.3.tar.gz) = knZRerJKmwbznW48M8bCtKzh/CEm28HNmAaGamVRs/0=
+SHA256 (hackage/uuid-types-1.0.3_3.cabal) = TieqFCyzfzkeePNtExOboKkHZ1Qpoh6PLPrpIjIC3X4=
+SHA256 (hackage/vector-0.12.1.2.tar.gz) = O24naD9vILN7ijXQ+rnjS1fa1yrGTLFvQocmeA1AEb0=
+SIZE (hackage/Diff-0.4.0.tar.gz) = 8065
+SIZE (hackage/QuickCheck-2.14.1.tar.gz) = 73248
+SIZE (hackage/ShellCheck-0.7.1.tar.gz) = 163288
+SIZE (hackage/aeson-1.5.3.0.tar.gz) = 298200
+SIZE (hackage/assoc-1.0.2.tar.gz) = 3047
+SIZE (hackage/attoparsec-0.13.2.4.tar.gz) = 163431
+SIZE (hackage/base-compat-0.11.1.tar.gz) = 33691
+SIZE (hackage/base-compat-batteries-0.11.1.tar.gz) = 16748
+SIZE (hackage/base-orphans-0.8.2.tar.gz) = 20727
+SIZE (hackage/bifunctors-5.5.7.tar.gz) = 45689
+SIZE (hackage/bifunctors-5.5.7_1.cabal) = 3423
+SIZE (hackage/cabal-doctest-1.0.8.tar.gz) = 10812
+SIZE (hackage/cabal-doctest-1.0.8_2.cabal) = 1491
+SIZE (hackage/comonad-5.0.6.tar.gz) = 18154
+SIZE (hackage/comonad-5.0.6_1.cabal) = 3496
+SIZE (hackage/data-fix-0.3.0.tar.gz) = 5516
+SIZE (hackage/distributive-0.6.2.tar.gz) = 11308
+SIZE (hackage/distributive-0.6.2_2.cabal) = 3198
+SIZE (hackage/dlist-1.0.tar.gz) = 18667
+SIZE (hackage/hashable-1.3.0.0.tar.gz) = 29835
+SIZE (hackage/hashable-1.3.0.0_1.cabal) = 5206
+SIZE (hackage/integer-logarithms-1.0.3.tar.gz) = 8840
+SIZE (hackage/integer-logarithms-1.0.3_2.cabal) = 2820
+SIZE (hackage/primitive-0.7.1.0.tar.gz) = 52184
+SIZE (hackage/random-1.2.0.tar.gz) = 37889
+SIZE (hackage/regex-base-0.94.0.0.tar.gz) = 9679
+SIZE (hackage/regex-base-0.94.0.0_1.cabal) = 2253
+SIZE (hackage/regex-tdfa-1.3.1.0.tar.gz) = 77767
+SIZE (hackage/regex-tdfa-1.3.1.0_1.cabal) = 6324
+SIZE (hackage/scientific-0.3.6.2.tar.gz) = 23510
+SIZE (hackage/splitmix-0.1.0.1.tar.gz) = 19090
+SIZE (hackage/strict-0.4.tar.gz) = 12447
+SIZE (hackage/tagged-0.8.6.tar.gz) = 11759
+SIZE (hackage/tagged-0.8.6_2.cabal) = 2606
+SIZE (hackage/th-abstraction-0.3.2.0.tar.gz) = 35111
+SIZE (hackage/these-1.1.1.1.tar.gz) = 9804
+SIZE (hackage/time-compat-1.9.3.tar.gz) = 50050
+SIZE (hackage/transformers-compat-0.6.5.tar.gz) = 40421
+SIZE (hackage/unordered-containers-0.2.12.0.tar.gz) = 53070
+SIZE (hackage/uuid-types-1.0.3.tar.gz) = 11999
+SIZE (hackage/uuid-types-1.0.3_3.cabal) = 2496
+SIZE (hackage/vector-0.12.1.2.tar.gz) = 131049
diff --git devel/shellcheck/patches/patch-ShellCheck_AnalyzerLib_hs devel/shellcheck/patches/patch-ShellCheck_AnalyzerLib_hs
deleted file mode 100644
index eea04b1c6de..00000000000
--- devel/shellcheck/patches/patch-ShellCheck_AnalyzerLib_hs
+++ /dev/null
@@ -1,44 +0,0 @@
-$OpenBSD: patch-ShellCheck_AnalyzerLib_hs,v 1.1 2019/09/30 12:50:08 kili Exp $
-
-Index: ShellCheck/AnalyzerLib.hs
---- ShellCheck/AnalyzerLib.hs.orig
-+++ ShellCheck/AnalyzerLib.hs
-@@ -57,17 +57,19 @@ runChecker params checker = notes
-         check = perScript checker `composeAnalyzers` (\(Root x) -> void $ doAnalysis (perToken checker) x)
-         notes = snd $ evalRWS (check $ Root root) params Cache
- 
-+instance Semigroup Checker where
-+    x <> y = Checker {
-+        perScript = perScript x `composeAnalyzers` perScript y,
-+        perToken = perToken x `composeAnalyzers` perToken y
-+        }
-+
- instance Monoid Checker where
-     mempty = Checker {
-         perScript = nullCheck,
-         perToken = nullCheck
-         }
--    mappend x y = Checker {
--        perScript = perScript x `composeAnalyzers` perScript y,
--        perToken = perToken x `composeAnalyzers` perToken y
--        }
-+    mappend = (<>)
- 
--
- composeAnalyzers :: (a -> Analysis) -> (a -> Analysis) -> a -> Analysis
- composeAnalyzers f g x = f x >> g x
- 
-@@ -232,9 +234,10 @@ getParentTree t =
-   where
-     pre t = modify (first ((:) t))
-     post t = do
--        (_:rest, map) <- get
--        case rest of [] -> put (rest, map)
--                     (x:_) -> put (rest, Map.insert (getId t) x map)
-+        (x, map) <- get
-+        case x of
-+          _:rest -> case rest of []    -> put (rest, map)
-+                                 (x:_) -> put (rest, Map.insert (getId t) x map)
- 
- -- Given a root node, make a map from Id to Token
- getTokenMap :: Token -> Map.Map Id Token
diff --git devel/shellcheck/patches/patch-ShellCheck_cabal devel/shellcheck/patches/patch-ShellCheck_cabal
deleted file mode 100644
index 303914e7a70..00000000000
--- devel/shellcheck/patches/patch-ShellCheck_cabal
+++ /dev/null
@@ -1,54 +0,0 @@
-$OpenBSD: patch-ShellCheck_cabal,v 1.1 2019/09/30 12:50:08 kili Exp $
-
-Index: ShellCheck.cabal
---- ShellCheck.cabal.orig
-+++ ShellCheck.cabal
-@@ -1,12 +1,13 @@
- Name:             ShellCheck
- Version:          0.4.7
-+x-revision: 1
- Synopsis:         Shell script analysis tool
- License:          GPL-3
- License-file:     LICENSE
- Category:         Static Analysis
- Author:           Vidar Holen
- Maintainer:       [email protected]
--Homepage:         http://www.shellcheck.net/
-+Homepage:         https://www.shellcheck.net/
- Build-Type:       Custom
- Cabal-Version:    >= 1.8
- Bug-reports:      https://github.com/koalaman/shellcheck/issues
-@@ -31,6 +32,12 @@ Extra-Source-Files:
-     -- tests
-     test/shellcheck.hs
- 
-+custom-setup
-+  setup-depends:
-+    base    >= 4    && <5,
-+    process >= 1.0  && <1.7,
-+    Cabal   >= 1.10 && <3.0
-+
- source-repository head
-     type: git
-     location: git://github.com/koalaman/shellcheck.git
-@@ -38,7 +45,7 @@ source-repository head
- library
-     build-depends:
-       base >= 4 && < 5,
--      containers,
-+      containers >= 0.5,
-       directory,
-       json,
-       mtl >= 2.2.1,
-@@ -73,9 +80,9 @@ executable shellcheck
-       base >= 4 && < 5,
-       containers,
-       directory,
--      json,
-+      json >= 0.3.6,
-       mtl >= 2.2.1,
--      parsec,
-+      parsec >= 3.0,
-       regex-tdfa,
-       QuickCheck >= 2.7.4
-     main-is: shellcheck.hs
diff --git devel/shellcheck/patches/patch-shellcheck_hs devel/shellcheck/patches/patch-shellcheck_hs
deleted file mode 100644
index dba9c40f60d..00000000000
--- devel/shellcheck/patches/patch-shellcheck_hs
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-shellcheck_hs,v 1.1 2019/09/30 12:50:08 kili Exp $
-
-Update to newer GHC (Semigroup proposal).
-
-Index: shellcheck.hs
---- shellcheck.hs.orig
-+++ shellcheck.hs
-@@ -56,9 +56,12 @@ data Status =
-     | RuntimeException
-   deriving (Ord, Eq, Show)
- 
-+instance Semigroup Status where
-+    (<>) = max
-+
- instance Monoid Status where
-     mempty = NoProblems
--    mappend = max
-+    mappend = (<>)
- 
- data Options = Options {
-     checkSpec :: CheckSpec,
diff --git devel/shellcheck/pkg/DESCR-main devel/shellcheck/pkg/DESCR
similarity index 100%
rename from devel/shellcheck/pkg/DESCR-main
rename to devel/shellcheck/pkg/DESCR
diff --git devel/shellcheck/pkg/DESCR-lib devel/shellcheck/pkg/DESCR-lib
deleted file mode 100644
index ce1fbb60972..00000000000
--- devel/shellcheck/pkg/DESCR-lib
+++ /dev/null
@@ -1 +0,0 @@
-This library provides the functionality of ShellCheck to other programs.
diff --git devel/shellcheck/pkg/PLIST devel/shellcheck/pkg/PLIST
new file mode 100644
index 00000000000..c1116ed0d21
--- /dev/null
+++ devel/shellcheck/pkg/PLIST
@@ -0,0 +1,5 @@
+@comment $OpenBSD: PLIST,v$
+@bin bin/shellcheck
+libexec/cabal/
+share/doc/${PKGNAME}/
+share/doc/${PKGNAME}/shellcheck.1.md
diff --git devel/shellcheck/pkg/PLIST-lib devel/shellcheck/pkg/PLIST-lib
deleted file mode 100644
index d26df7b3378..00000000000
--- devel/shellcheck/pkg/PLIST-lib
+++ /dev/null
@@ -1,119 +0,0 @@
-@comment $OpenBSD: PLIST-lib,v 1.3 2019/09/30 12:50:08 kili Exp $
-@tag ghc-pkg-recache
-lib/ghc/${DISTNAME}/
-lib/ghc/${DISTNAME}/Paths_ShellCheck.dyn_hi
-lib/ghc/${DISTNAME}/Paths_ShellCheck.hi
-lib/ghc/${DISTNAME}/Paths_ShellCheck.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/
-lib/ghc/${DISTNAME}/ShellCheck/AST.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/AST.hi
-lib/ghc/${DISTNAME}/ShellCheck/AST.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/ASTLib.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/ASTLib.hi
-lib/ghc/${DISTNAME}/ShellCheck/ASTLib.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Analytics.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Analytics.hi
-lib/ghc/${DISTNAME}/ShellCheck/Analytics.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Analyzer.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Analyzer.hi
-lib/ghc/${DISTNAME}/ShellCheck/Analyzer.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/AnalyzerLib.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/AnalyzerLib.hi
-lib/ghc/${DISTNAME}/ShellCheck/AnalyzerLib.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checker.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checker.hi
-lib/ghc/${DISTNAME}/ShellCheck/Checker.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/
-lib/ghc/${DISTNAME}/ShellCheck/Checks/Commands.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/Commands.hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/Commands.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/ShellSupport.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/ShellSupport.hi
-lib/ghc/${DISTNAME}/ShellCheck/Checks/ShellSupport.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Data.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Data.hi
-lib/ghc/${DISTNAME}/ShellCheck/Data.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/CheckStyle.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/CheckStyle.hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/CheckStyle.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/Format.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/Format.hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/Format.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/GCC.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/GCC.hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/GCC.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/JSON.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/JSON.hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/JSON.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/TTY.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/TTY.hi
-lib/ghc/${DISTNAME}/ShellCheck/Formatter/TTY.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Interface.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Interface.hi
-lib/ghc/${DISTNAME}/ShellCheck/Interface.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Parser.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Parser.hi
-lib/ghc/${DISTNAME}/ShellCheck/Parser.p_hi
-lib/ghc/${DISTNAME}/ShellCheck/Regex.dyn_hi
-lib/ghc/${DISTNAME}/ShellCheck/Regex.hi
-lib/ghc/${DISTNAME}/ShellCheck/Regex.p_hi
-lib/ghc/${DISTNAME}/libHS${DISTNAME}-${MODGHC_PACKAGE_KEY}-ghc${MODGHC_VER}.so
-lib/ghc/${DISTNAME}/libHS${DISTNAME}-${MODGHC_PACKAGE_KEY}.a
-lib/ghc/${DISTNAME}/libHS${DISTNAME}-${MODGHC_PACKAGE_KEY}_p.a
-lib/ghc/package.conf.d/${DISTNAME}.conf
-share/doc/hs-${DISTNAME}/
-share/doc/hs-${DISTNAME}/LICENSE
-share/doc/hs-${DISTNAME}/html/
-share/doc/hs-${DISTNAME}/html/ShellCheck-AST.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-ASTLib.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Analytics.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Analyzer.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-AnalyzerLib.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Checker.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Checks-Commands.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Checks-ShellSupport.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Data.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Formatter-CheckStyle.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Formatter-Format.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Formatter-GCC.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Formatter-JSON.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Formatter-TTY.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Interface.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Parser.html
-share/doc/hs-${DISTNAME}/html/ShellCheck-Regex.html
-share/doc/hs-${DISTNAME}/html/ShellCheck.haddock
-share/doc/hs-${DISTNAME}/html/doc-index-33.html
-share/doc/hs-${DISTNAME}/html/doc-index-A.html
-share/doc/hs-${DISTNAME}/html/doc-index-All.html
-share/doc/hs-${DISTNAME}/html/doc-index-B.html
-share/doc/hs-${DISTNAME}/html/doc-index-C.html
-share/doc/hs-${DISTNAME}/html/doc-index-D.html
-share/doc/hs-${DISTNAME}/html/doc-index-E.html
-share/doc/hs-${DISTNAME}/html/doc-index-F.html
-share/doc/hs-${DISTNAME}/html/doc-index-G.html
-share/doc/hs-${DISTNAME}/html/doc-index-H.html
-share/doc/hs-${DISTNAME}/html/doc-index-I.html
-share/doc/hs-${DISTNAME}/html/doc-index-K.html
-share/doc/hs-${DISTNAME}/html/doc-index-L.html
-share/doc/hs-${DISTNAME}/html/doc-index-M.html
-share/doc/hs-${DISTNAME}/html/doc-index-N.html
-share/doc/hs-${DISTNAME}/html/doc-index-O.html
-share/doc/hs-${DISTNAME}/html/doc-index-P.html
-share/doc/hs-${DISTNAME}/html/doc-index-Q.html
-share/doc/hs-${DISTNAME}/html/doc-index-R.html
-share/doc/hs-${DISTNAME}/html/doc-index-S.html
-share/doc/hs-${DISTNAME}/html/doc-index-T.html
-share/doc/hs-${DISTNAME}/html/doc-index-U.html
-share/doc/hs-${DISTNAME}/html/doc-index-V.html
-share/doc/hs-${DISTNAME}/html/doc-index-W.html
-share/doc/hs-${DISTNAME}/html/doc-index.html
-share/doc/hs-${DISTNAME}/html/haddock-bundle.min.js
-share/doc/hs-${DISTNAME}/html/hslogo-16.png
-share/doc/hs-${DISTNAME}/html/index.html
-share/doc/hs-${DISTNAME}/html/meta.json
-share/doc/hs-${DISTNAME}/html/minus.gif
-share/doc/hs-${DISTNAME}/html/ocean.css
-share/doc/hs-${DISTNAME}/html/plus.gif
-share/doc/hs-${DISTNAME}/html/quick-jump.css
-share/doc/hs-${DISTNAME}/html/synopsis.png
diff --git devel/shellcheck/pkg/PLIST-main devel/shellcheck/pkg/PLIST-main
deleted file mode 100644
index ef1f8b79646..00000000000
--- devel/shellcheck/pkg/PLIST-main
+++ /dev/null
@@ -1,3 +0,0 @@
-@comment $OpenBSD: PLIST-main,v 1.1.1.1 2018/03/08 20:47:50 kili Exp $
-@bin bin/shellcheck
-@man man/man1/shellcheck.1
-- 
2.28.0

Reply via email to