From: Thomas Frohwein Subject: Re: DIST_TUPLE fix for project string with subdir To: ports@openbsd.org Cc: Rafael Sadowski Date: Wed, 14 Feb 2024 11:50:55 -0500 *ping* On Wed, Feb 07, 2024 at 11:40:59PM -0500, Thomas Frohwein wrote: > Hi, > > DIST_TUPLE can be used for projects with more levels of hierarchy than > single directories for account and project by using '/' in the project > value. This is currently only done by qt5 ports, for example qtbase as > shown here in the sqlports DistTuple table: > > FullPkgPath|Project > x11/qt5/qtbase|qt/qtbase > > Rafael has run into problems using this in combination with git > submodules because in its current state, DIST_TUPLE takes the > unmodified Project string as heuristic for the location of the > extracted files, including a directory 'qt/' in this example. This > doesn't match how qt5 software is distributed (and likely also in > other contexts). The correct path to the files is relatively > straightforward: just remove any directories. The diff below takes care > of this. > > I've looked through sqlports for DIST_TUPLE with '/' and it's only qt5 > ports. No ports have weirder things like multiple '/'. The risk of this > breaking something unintentionally is very low in light of this. I've > built and packaged x11/qt5/qtbase and also a few other DIST_TUPLE ports > without a '/' in the project string and no breakage observed. Rafael > reports success with his qt5 submodule draft if this diff is applied. > > ok? > > Index: dist-tuple.port.mk > =================================================================== > RCS file: /cvs/ports/infrastructure/mk/dist-tuple.port.mk,v > retrieving revision 1.15 > diff -u -p -r1.15 dist-tuple.port.mk > --- dist-tuple.port.mk 6 Nov 2023 07:02:08 -0000 1.15 > +++ dist-tuple.port.mk 4 Feb 2024 18:32:53 -0000 > @@ -45,7 +45,7 @@ HOMEPAGE ?= ${TEMPLATE_HOMEPAGE.${_templ > MODDIST-TUPLE_post-extract += \ > t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \ > || mkdir -p `dirname $$t` ; \ > - mv ${WRKDIR}/${_project}-${_id:S/refs\/tags\///:S/^v//} $$t; > + mv ${WRKDIR}/${_project:C,^.*/,,}-${_id:S/refs\/tags\///:S/^v//} $$t; > . endif > . endfor > >