On Wed, 10 Dec 2025 13:15:34 -0800
Thomas Frohwein <[email protected]> wrote:
> Hi,
>
> The MODDIST-TUPLE_post-extract in dist-tuple-port.mk has the regex for
> the mv(1) command that drops the leading "v" from ${_id} without other
> checks in its current state. The reason is the common use of release
> tags such as "v1.0" that are extracted to "myproject-1.0".
>
> A while ago, I ran into a project with a mv(1) target dir that started
> with a v, but not to indicate the version. I don't recall anymore
> which one it is, but it's fairly obvious that the simple ":S/^v//" is
> too broad. The attached diff turns this into ":C/^v([0-9])", which
> should be a lot more specific.
>
> I have made use of my little tool dist-tuple.test [1] to compare the
> variables created by both the current dist-tuple.port.mk and the one
> with this diff applied, and there is no change. This should make this
> fairly safe to commit if the logic of the new regex is convincing, but
> if someone feels more secure about adding this to a bulk build given
> that my way to test this is a new project, I wouldn't mind that
> either.
>
> ok?
>
> [1] https://github.com/rfht/dist-tuple.test
*ping*
(diff re-attached)
--- /usr/ports/infrastructure/mk/dist-tuple.port.mk Tue Jul 8 13:47:41 2025
+++ /home/thfr/dist-tuple.port.mk.update Tue Dec 9 21:30:11 2025
@@ -46,7 +46,7 @@
MODDIST-TUPLE_post-extract += \
t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \
|| mkdir -p `dirname $$t` ; \
- mv ${WRKDIR}/${_project:T}-${_id:S/refs\/tags\///:S/^v//} $$t;
+ mv ${WRKDIR}/${_project:T}-${_id:S/refs\/tags\///:C/^v([0-9])/\1/} $$t;
. endif
. endfor