Hello,

Please find attached an updated version of the patch I sent previously.

Since shfmt 3.14.1 has now been released, I updated the port directly
from 3.6.0 to 3.14.1. Please disregard the previous 3.14.0 patch.

The upstream release notes and full comparison are available at:

https://github.com/mvdan/sh/releases/tag/v3.14.1
https://github.com/mvdan/sh/compare/v3.6.0...v3.14.1

The changes described in my previous email remain applicable. In short,
the releases since 3.6.0 include substantial improvements to the parser,
formatter, interpreter, shell expansion, script detection and
EditorConfig support, as well as initial Zsh parser and formatter
support.

Version 3.14.1 is primarily a bugfix release. It fixes several
here-document formatting issues, including indentation inside command
substitutions and preservation of literal tabs in <<- heredocs. It also
fixes Zsh short parameter-expansion forms, escaped characters being
incorrectly treated as glob metacharacters, and a panic caused by
unclosed extended pattern groups. The interpreter also receives a fix
for builds on 32-bit FreeBSD and NetBSD.

The main port-specific change in this revision is that I have enabled
the complete upstream test suite.

The default Go module test target only tests the module root, which does
not contain any Go files. I therefore added:

TEST_TARGET = ./...

so that "make test" runs all upstream package tests rather than
effectively testing nothing.

For the port, MODGO_VERSION is now set to v3.14.1 and distinfo has been
regenerated for the new source archive. The Go dependency set remains
the same as in the previous 3.14.0 patch.

No local patches or package list changes are required.

This revised patch supersedes the 3.14.0 update I sent previously.

Thank you for your time and consideration.

Best regards,
David.
Index: devel/shfmt/Makefile
===================================================================
RCS file: /cvs/ports/devel/shfmt/Makefile,v
diff -u -p -u -p -r1.9 Makefile
--- devel/shfmt/Makefile	18 Jun 2023 10:14:22 -0000	1.9
+++ devel/shfmt/Makefile	19 Sep 2026 01:27:59 -0000
@@ -1,7 +1,7 @@
 COMMENT =	shell parser, formatter, and interpreter
 
 MODGO_MODNAME =	mvdan.cc/sh/v3
-MODGO_VERSION =	v3.6.0
+MODGO_VERSION =	v3.14.1
 
 DISTNAME =	shfmt-${MODGO_VERSION}
 
@@ -15,6 +15,10 @@ PERMIT_PACKAGE =	Yes
 WANTLIB += c pthread
 
 MODULES =		lang/go
+
+# The module default tests only the root package, which has no Go files;
+# run the whole upstream suite instead.
+TEST_TARGET =	./...
 
 BUILD_DEPENDS =	textproc/groff \
 		textproc/scdoc
Index: devel/shfmt/distinfo
===================================================================
RCS file: /cvs/ports/devel/shfmt/distinfo,v
diff -u -p -u -p -r1.5 distinfo
--- devel/shfmt/distinfo	18 Jun 2023 10:14:22 -0000	1.5
+++ devel/shfmt/distinfo	19 Sep 2026 01:27:59 -0000
@@ -1,52 +1,88 @@
-SHA256 (go_modules/github.com/creack/pty/@v/v1.1.18.mod) = BBOkGR3M1sdbDMdMtxrxVkBw8uy/zjq0ujzMnXAf2Cw=
-SHA256 (go_modules/github.com/creack/pty/@v/v1.1.18.zip) = fcrad4LgTw1LR9UNTvNfNvLID5CSMQGRSUgEKb2xduU=
+SHA256 (go_modules/github.com/creack/pty/@v/v1.1.24.mod) = o5ef0ywA810X6zuX0LPMb077BXv3gnE2H6dzUx5gFTE=
+SHA256 (go_modules/github.com/creack/pty/@v/v1.1.24.zip) = dU4lJT52pVg7gNV9Ot06/mj8TZ8qSQloqdHtqMj9iBU=
 SHA256 (go_modules/github.com/creack/pty/@v/v1.1.9.mod) = 6rBwW8ShjdMVwnpOPbqPIKnhIwZfogYzlmMytczPdzE=
-SHA256 (go_modules/github.com/frankban/quicktest/@v/v1.14.4.mod) = aLKthKInPSO6xKV0F3Wj+llKB9KnH4DoR6fWPFOlvZ8=
-SHA256 (go_modules/github.com/frankban/quicktest/@v/v1.14.4.zip) = 3uueG53Rg2Lt50i1+TfQguZ8Q/J5wmWnOxT1yDbvXWo=
-SHA256 (go_modules/github.com/google/go-cmp/@v/v0.5.9.mod) = 58dmnUod1Ym6PgJLon9D8pPbYR/gdc4g17iENw1j/r0=
-SHA256 (go_modules/github.com/google/go-cmp/@v/v0.5.9.zip) = MkUIdKx1bvXUf2uBkwUQUwS5gZBFoW4/EFKJt88lLFE=
-SHA256 (go_modules/github.com/google/renameio/v2/@v/v2.0.0.mod) = dqhi31Livy4fWN833CgRSk8HwOrf4uWGaUd1HY1/S0w=
-SHA256 (go_modules/github.com/google/renameio/v2/@v/v2.0.0.zip) = bis93O3Wu1/2abjilL78mjXAHt4w/QChg/xjfOfJ/Y4=
+SHA256 (go_modules/github.com/go-quicktest/qt/@v/v1.102.0.mod) = L5/jytzHuu7ucGhRCkrgJIa9OAeyIhE+hxHoGxSlrWU=
+SHA256 (go_modules/github.com/go-quicktest/qt/@v/v1.102.0.zip) = y81WfUgggfY3nYRManUTfyv5qJ3v0GBGZZlRygOkQTQ=
+SHA256 (go_modules/github.com/google/go-cmp/@v/v0.6.0.mod) = 58dmnUod1Ym6PgJLon9D8pPbYR/gdc4g17iENw1j/r0=
+SHA256 (go_modules/github.com/google/go-cmp/@v/v0.7.0.mod) = Mch0odKhjmKwVQ+CPOeldcjex/j9nU+hlZuxLX98DxQ=
+SHA256 (go_modules/github.com/google/go-cmp/@v/v0.7.0.zip) = ZKnOBG8sMg43g/ug0fShX4oY8LAJtnvyf3YwkZ2z9Tk=
+SHA256 (go_modules/github.com/google/renameio/v2/@v/v2.0.2.mod) = Jc2c5ds2RAvoazVyXTJRmcxWBjKcAq6R0GPTYnU6osA=
+SHA256 (go_modules/github.com/google/renameio/v2/@v/v2.0.2.zip) = TqH37JOMwiBoJ/Ep9A7Zomb03zAZj8/wjeB9pLcidss=
 SHA256 (go_modules/github.com/kr/pretty/@v/v0.3.1.mod) = hPPkCAOx69SoAuVXlLmZffCxc8SAnoVy/5BC7FWMobw=
 SHA256 (go_modules/github.com/kr/pretty/@v/v0.3.1.zip) = 7PWkrySCbDrXWM4GQQygji1Y5NlQU747nd4uFIUsDNw=
 SHA256 (go_modules/github.com/kr/text/@v/v0.2.0.mod) = 9jh5sgT2zolc6lNZS4FPWsCvCEhrM7HKecZXOE77xyY=
 SHA256 (go_modules/github.com/kr/text/@v/v0.2.0.zip) = No6zGPkaW2e+kFxHAyq1wxodSal4SLEBGg0KISKzC6Q=
 SHA256 (go_modules/github.com/pkg/diff/@v/v0.0.0-20210226163009-20ebb0f2a09e.mod) = XVuUVOLQIK8MdgNWjoaQS5m+/E1dZ8OoUF9hIVib0R8=
 SHA256 (go_modules/github.com/pkg/diff/@v/v0.0.0-20210226163009-20ebb0f2a09e.zip) = 81sj/dK5Ui3dRsxcAWG08HZcUUR11dTKKoasoxOIyL0=
+SHA256 (go_modules/github.com/rogpeppe/go-internal/@v/v1.12.0.mod) = e/5bA6stTZVNm3TqzbLMv2ve9jQgGwALl/mg0gIx3H4=
+SHA256 (go_modules/github.com/rogpeppe/go-internal/@v/v1.15.0.mod) = H/o/PB0q2dQFE69mEMIdUq4oOWKGeYVN9CEhL2op7Cc=
+SHA256 (go_modules/github.com/rogpeppe/go-internal/@v/v1.15.0.zip) = yE2VgYFhhAfmHw+DfAoiYBbMe7DebSbS2C/UduO/H3A=
 SHA256 (go_modules/github.com/rogpeppe/go-internal/@v/v1.9.0.mod) = kFmpfaKZDIGaCXZ6XpvYeEtFpXt6JeKQVbvRsKqhRP8=
-SHA256 (go_modules/github.com/rogpeppe/go-internal/@v/v1.9.0.zip) = fXd5CLnJGhaF8tcJVQ5rdHjhTpxGmd/9fwoVDjbbx+k=
-SHA256 (go_modules/golang.org/x/sync/@v/v0.1.0.mod) = Qh9hOWhtWJHz3FpWPQmVeA0yefZcrU0iXOpSaGeUFhw=
-SHA256 (go_modules/golang.org/x/sync/@v/v0.1.0.zip) = 9RC+xgCeGYgtGZU+cnMTfTTfhsZZSTRdcvEjolXC7NI=
-SHA256 (go_modules/golang.org/x/sys/@v/v0.3.0.mod) = 8DMzMJb+GY8xUd7tk/LeunTlC7/nc5E0BFvDt85KUCQ=
-SHA256 (go_modules/golang.org/x/sys/@v/v0.3.0.zip) = y98Y476fIRypYmhKwZ1B1L4kBCiY7AzGZL+NHClV04Q=
-SHA256 (go_modules/golang.org/x/term/@v/v0.3.0.mod) = HlYfdBO3S00wyi1smHTM0Tu4yU2qDmwjd7rZ6c9tvlg=
-SHA256 (go_modules/golang.org/x/term/@v/v0.3.0.zip) = HNnVjqLYYpm4VphyOOY5KlDmiNBGnMs7SkaTSfJDlQc=
-SHA256 (go_modules/mvdan.cc/editorconfig/@v/v0.2.0.mod) = 9Zm959knns+MkZaERhjWNHJZ0j2u5YLTb+XzjOUfLIo=
-SHA256 (go_modules/mvdan.cc/editorconfig/@v/v0.2.0.zip) = qeQ61HQvJ/ey+yeCDTalFxxUD6Q/nsXZK5tm0KA7ctE=
-SHA256 (shfmt-v3.6.0.zip) = 9O0sWTiojonGHIm/fzUzgo8k/2LTdOdTohl++rmIJ5Y=
-SIZE (go_modules/github.com/creack/pty/@v/v1.1.18.mod) = 38
-SIZE (go_modules/github.com/creack/pty/@v/v1.1.18.zip) = 26597
+SHA256 (go_modules/github.com/yuin/goldmark/@v/v1.4.13.mod) = 7n/kRmIDoB06wZrcE0zeyZvG3nGZLCjz3Zp0SAv/BgM=
+SHA256 (go_modules/github.com/yuin/goldmark/@v/v1.4.13.zip) = u0GmArF0NF/aOSyK2D/MkyF8KFx2NplndjC+kP63peM=
+SHA256 (go_modules/golang.org/x/mod/@v/v0.21.0.mod) = 6+gZF0QRVCmfcyuKoJ8plSl1LfKYVcpNcCaUbRu+zYI=
+SHA256 (go_modules/golang.org/x/mod/@v/v0.29.0.mod) = JVIB9tCpC4BHCwKdVrR5GONXy9PkO0bHgKxWEqWmgAQ=
+SHA256 (go_modules/golang.org/x/mod/@v/v0.29.0.zip) = fHNmcscqpXG2XBEGu7KmTlh91CZaGPAFnJkPlcUReWI=
+SHA256 (go_modules/golang.org/x/net/@v/v0.46.0.mod) = emR2w8b4a8zBMPw6Vb6bXiULng3PVNjLndixT5LXVBE=
+SHA256 (go_modules/golang.org/x/net/@v/v0.46.0.zip) = qxdIsqUJqxf9ynoRAfrw4MGHnewO2Y4qcoMESTVtcNI=
+SHA256 (go_modules/golang.org/x/sync/@v/v0.17.0.mod) = 0zPFS3SviguOx0jTfFly0nudCIueRci/XDq1INIRMJA=
+SHA256 (go_modules/golang.org/x/sync/@v/v0.17.0.zip) = xdz9MuIj7cegA6UaFmqBdZpL7MuakeuFOFtNZ6HIIMY=
+SHA256 (go_modules/golang.org/x/sys/@v/v0.26.0.mod) = 0iezJfYh9OvijTm6dz6pm4cPOTt8CcNFksNlsW3VYN4=
+SHA256 (go_modules/golang.org/x/sys/@v/v0.37.0.mod) = 9BGBTYOpboZ4Gx3uQcEluVBNpUItujfMHWOwFq45z+I=
+SHA256 (go_modules/golang.org/x/sys/@v/v0.47.0.mod) = V/Q5PqGNVEahI2OzXCOmFthD+hZpxxIacKK8OpZ31mU=
+SHA256 (go_modules/golang.org/x/sys/@v/v0.47.0.zip) = zawBPdztAmKSbsKf/NpkXaOWcOYcflt2HlcraxgJuxs=
+SHA256 (go_modules/golang.org/x/telemetry/@v/v0.0.0-20251008203120-078029d740a8.mod) = CRcBZmyGkD4z/5OVCq72lOYEvvD15Egv9oag8V7RSPA=
+SHA256 (go_modules/golang.org/x/telemetry/@v/v0.0.0-20251008203120-078029d740a8.zip) = dljysAuB37X94CdwwuCW+gelxuO0XTn2zwrMzqaOL7M=
+SHA256 (go_modules/golang.org/x/term/@v/v0.45.0.mod) = YsP50aWuEiZKtI4siswIyfIBvalhneFxVE61cUt0rsU=
+SHA256 (go_modules/golang.org/x/term/@v/v0.45.0.zip) = s6OvaJcotDASrhshSCVxo1wDPFRemOAhYGvU/PH3kQg=
+SHA256 (go_modules/golang.org/x/tools/@v/v0.26.0.mod) = L/wCTGvxTRRqy+FH+5gQTfO8Zgz7Fqdd4chP5QyKNNA=
+SHA256 (go_modules/golang.org/x/tools/@v/v0.37.0.mod) = 29BOzSltTasnBnZq383S1SwnNFYT1jFoL4+kNxr1Su8=
+SHA256 (go_modules/golang.org/x/tools/@v/v0.38.0.mod) = qViO2A/jO7EIuMicDihsTlyC+UqYJWSWrqCy5T3+yRQ=
+SHA256 (go_modules/golang.org/x/tools/@v/v0.38.0.zip) = f1hwDaXDnY0ZWHIn0kIQEdTMoEB2wcE+u74Ui4UWd8Y=
+SHA256 (go_modules/mvdan.cc/editorconfig/@v/v0.3.0.mod) = 6hl29DmEYwNahO3PuerQWQ4aqP3tMefo/3oNyjEOIuY=
+SHA256 (go_modules/mvdan.cc/editorconfig/@v/v0.3.0.zip) = qlDEPnibAl8EvqlQ8QQxSUbS+qUDVEK/X3QV65eGD+E=
+SHA256 (shfmt-v3.14.1.zip) = dEtRiyjbSyVviJVLf1Rh/i0oIvb1gYsTeIe/lxMXXiU=
+SIZE (go_modules/github.com/creack/pty/@v/v1.1.24.mod) = 38
+SIZE (go_modules/github.com/creack/pty/@v/v1.1.24.zip) = 40880
 SIZE (go_modules/github.com/creack/pty/@v/v1.1.9.mod) = 39
-SIZE (go_modules/github.com/frankban/quicktest/@v/v1.14.4.mod) = 121
-SIZE (go_modules/github.com/frankban/quicktest/@v/v1.14.4.zip) = 55637
-SIZE (go_modules/github.com/google/go-cmp/@v/v0.5.9.mod) = 41
-SIZE (go_modules/github.com/google/go-cmp/@v/v0.5.9.zip) = 130220
-SIZE (go_modules/github.com/google/renameio/v2/@v/v2.0.0.mod) = 46
-SIZE (go_modules/github.com/google/renameio/v2/@v/v2.0.0.zip) = 22986
+SIZE (go_modules/github.com/go-quicktest/qt/@v/v1.102.0.mod) = 504
+SIZE (go_modules/github.com/go-quicktest/qt/@v/v1.102.0.zip) = 35901
+SIZE (go_modules/github.com/google/go-cmp/@v/v0.6.0.mod) = 41
+SIZE (go_modules/github.com/google/go-cmp/@v/v0.7.0.mod) = 41
+SIZE (go_modules/github.com/google/go-cmp/@v/v0.7.0.zip) = 130179
+SIZE (go_modules/github.com/google/renameio/v2/@v/v2.0.2.mod) = 46
+SIZE (go_modules/github.com/google/renameio/v2/@v/v2.0.2.zip) = 24151
 SIZE (go_modules/github.com/kr/pretty/@v/v0.3.1.mod) = 117
 SIZE (go_modules/github.com/kr/pretty/@v/v0.3.1.zip) = 13388
 SIZE (go_modules/github.com/kr/text/@v/v0.2.0.mod) = 68
 SIZE (go_modules/github.com/kr/text/@v/v0.2.0.zip) = 12607
 SIZE (go_modules/github.com/pkg/diff/@v/v0.0.0-20210226163009-20ebb0f2a09e.mod) = 36
 SIZE (go_modules/github.com/pkg/diff/@v/v0.0.0-20210226163009-20ebb0f2a09e.zip) = 219375
+SIZE (go_modules/github.com/rogpeppe/go-internal/@v/v1.12.0.mod) = 167
+SIZE (go_modules/github.com/rogpeppe/go-internal/@v/v1.15.0.mod) = 141
+SIZE (go_modules/github.com/rogpeppe/go-internal/@v/v1.15.0.zip) = 196760
 SIZE (go_modules/github.com/rogpeppe/go-internal/@v/v1.9.0.mod) = 112
-SIZE (go_modules/github.com/rogpeppe/go-internal/@v/v1.9.0.zip) = 210263
-SIZE (go_modules/golang.org/x/sync/@v/v0.1.0.mod) = 25
-SIZE (go_modules/golang.org/x/sync/@v/v0.1.0.zip) = 27781
-SIZE (go_modules/golang.org/x/sys/@v/v0.3.0.mod) = 33
-SIZE (go_modules/golang.org/x/sys/@v/v0.3.0.zip) = 1862151
-SIZE (go_modules/golang.org/x/term/@v/v0.3.0.mod) = 67
-SIZE (go_modules/golang.org/x/term/@v/v0.3.0.zip) = 19924
-SIZE (go_modules/mvdan.cc/editorconfig/@v/v0.2.0.mod) = 38
-SIZE (go_modules/mvdan.cc/editorconfig/@v/v0.2.0.zip) = 12867
-SIZE (shfmt-v3.6.0.zip) = 244864
+SIZE (go_modules/github.com/yuin/goldmark/@v/v1.4.13.mod) = 41
+SIZE (go_modules/github.com/yuin/goldmark/@v/v1.4.13.zip) = 229017
+SIZE (go_modules/golang.org/x/mod/@v/v0.21.0.mod) = 86
+SIZE (go_modules/golang.org/x/mod/@v/v0.29.0.mod) = 86
+SIZE (go_modules/golang.org/x/mod/@v/v0.29.0.zip) = 172650
+SIZE (go_modules/golang.org/x/net/@v/v0.46.0.mod) = 157
+SIZE (go_modules/golang.org/x/net/@v/v0.46.0.zip) = 1923996
+SIZE (go_modules/golang.org/x/sync/@v/v0.17.0.mod) = 36
+SIZE (go_modules/golang.org/x/sync/@v/v0.17.0.zip) = 25707
+SIZE (go_modules/golang.org/x/sys/@v/v0.26.0.mod) = 33
+SIZE (go_modules/golang.org/x/sys/@v/v0.37.0.mod) = 35
+SIZE (go_modules/golang.org/x/sys/@v/v0.47.0.mod) = 35
+SIZE (go_modules/golang.org/x/sys/@v/v0.47.0.zip) = 2022425
+SIZE (go_modules/golang.org/x/telemetry/@v/v0.0.0-20251008203120-078029d740a8.mod) = 133
+SIZE (go_modules/golang.org/x/telemetry/@v/v0.0.0-20251008203120-078029d740a8.zip) = 1017205
+SIZE (go_modules/golang.org/x/term/@v/v0.45.0.mod) = 70
+SIZE (go_modules/golang.org/x/term/@v/v0.45.0.zip) = 21694
+SIZE (go_modules/golang.org/x/tools/@v/v0.26.0.mod) = 341
+SIZE (go_modules/golang.org/x/tools/@v/v0.37.0.mod) = 301
+SIZE (go_modules/golang.org/x/tools/@v/v0.38.0.mod) = 301
+SIZE (go_modules/golang.org/x/tools/@v/v0.38.0.zip) = 2822153
+SIZE (go_modules/mvdan.cc/editorconfig/@v/v0.3.0.mod) = 38
+SIZE (go_modules/mvdan.cc/editorconfig/@v/v0.3.0.zip) = 13853
+SIZE (shfmt-v3.14.1.zip) = 347003
Index: devel/shfmt/modules.inc
===================================================================
RCS file: /cvs/ports/devel/shfmt/modules.inc,v
diff -u -p -u -p -r1.5 modules.inc
--- devel/shfmt/modules.inc	18 Jun 2023 10:14:22 -0000	1.5
+++ devel/shfmt/modules.inc	19 Sep 2026 01:27:59 -0000
@@ -1,17 +1,30 @@
 MODGO_MODULES =	\
-	github.com/creack/pty		 v1.1.18 \
-	github.com/frankban/quicktest	 v1.14.4 \
-	github.com/google/go-cmp	 v0.5.9 \
-	github.com/google/renameio/v2	 v2.0.0 \
+	github.com/creack/pty		 v1.1.24 \
+	github.com/go-quicktest/qt	 v1.102.0 \
+	github.com/google/go-cmp	 v0.7.0 \
+	github.com/google/renameio/v2	 v2.0.2 \
 	github.com/kr/pretty		 v0.3.1 \
 	github.com/kr/text		 v0.2.0 \
 	github.com/pkg/diff		 v0.0.0-20210226163009-20ebb0f2a09e \
-	github.com/rogpeppe/go-internal	 v1.9.0 \
-	golang.org/x/sync		 v0.1.0 \
-	golang.org/x/sys		 v0.3.0 \
-	golang.org/x/term		 v0.3.0 \
-	mvdan.cc/editorconfig		 v0.2.0
+	github.com/rogpeppe/go-internal	 v1.15.0 \
+	github.com/yuin/goldmark	 v1.4.13 \
+	golang.org/x/mod		 v0.29.0 \
+	golang.org/x/net		 v0.46.0 \
+	golang.org/x/sync		 v0.17.0 \
+	golang.org/x/sys		 v0.47.0 \
+	golang.org/x/telemetry		 v0.0.0-20251008203120-078029d740a8 \
+	golang.org/x/term		 v0.45.0 \
+	golang.org/x/tools		 v0.38.0 \
+	mvdan.cc/editorconfig		 v0.3.0
 
 MODGO_MODFILES =	\
-	github.com/creack/pty	 v1.1.9
+	github.com/creack/pty		 v1.1.9 \
+	github.com/google/go-cmp	 v0.6.0 \
+	github.com/rogpeppe/go-internal	 v1.12.0 \
+	github.com/rogpeppe/go-internal	 v1.9.0 \
+	golang.org/x/mod		 v0.21.0 \
+	golang.org/x/sys		 v0.26.0 \
+	golang.org/x/sys		 v0.37.0 \
+	golang.org/x/tools		 v0.26.0 \
+	golang.org/x/tools		 v0.37.0
 

Reply via email to