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` ; \

Reply via email to