Monday, January 05, 2026

DIST_TUPLE: fix mv(1) for codeberg

Hi,

It looks like amongst the different code forges/sources for DIST_TUPLE,
codeberg is a special case in that it extracts just to ${_project}
instead of something like ${_project}-${_id}. The current ports that
use codeberg all only use it with '.' at the end of DIST_TUPLE, so
without a mv(1). While working on updating games/godot, godotsteam is
now hosted on codeberg, too. When pulling this in with

DIST_TUPLE += codeberg godotsteam godotsteam v3.20 godotsteam

the MODDIST-TUPLE_post-extract fails because DIST_TUPLE gets the
directory wrong by including the ${_id}.

The diff below fixes this . It doesn't address the WRKDIST at this
point for the other ports that already use DIST_TUPLE for codeberg and
that all set WRKDIST manually. Fixing that will be a bit more
involved...

I tested the change with dist-tuple.test [1] which confirms that none
of the DIST_TUPLE-derived variables in existing ports change in the
existing ports tree.

ok?

[1] https://github.com/rfht/dist-tuple.test

Index: dist-tuple.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/dist-tuple.port.mk,v
diff -u -p -r1.19 dist-tuple.port.mk
--- dist-tuple.port.mk 28 Dec 2025 17:58:25 -0000 1.19
+++ dist-tuple.port.mk 6 Jan 2026 04:26:42 -0000
@@ -42,7 +42,12 @@ EXTRACT_SUFX.${_template} ?= ${TEMPLATE
TEMPLATE_HOMEPAGE.${_template} ?= ${TEMPLATE_HOMEPAGE}
HOMEPAGE ?= ${TEMPLATE_HOMEPAGE.${_template}:${_subst}}

-. if "${_targetdir}" != "."
+. if "${_targetdir}" != "." && "${_template}" == "codeberg"
+MODDIST-TUPLE_post-extract += \
+ t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \
+ || mkdir -p `dirname $$t` ; \
+ mv ${WRKDIR}/${_project:T} $$t;
+. elif "${_targetdir}" != "."
MODDIST-TUPLE_post-extract += \
t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \
|| mkdir -p `dirname $$t` ; \

No comments:

Post a Comment