1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-13 07:34:50 +00:00

Fix a sub-submodule extraction problem with GH_SUBDIR.

The problem is that GH_SUBDIR are handled in a somewhat random manner.  (The
truth is that in the end of things, they end up being sorted by the group name
being used in the GH_TUPLE.)

So if you have a submodule in bar/foo, and a sub-submodule in bar/foo/baz, it
may happen that foo/bar/baz is handled before foo/bar and then things are
messed up.

This makes it so the GH_SUBDIR target handling is sorted first by the
number of / in the path.  (So, bar/foo is always handled before
bar/foo/baz.)

PR:		226221
Reported by:	ygy
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D14532
This commit is contained in:
Mathieu Arnold 2018-03-01 12:58:53 +00:00
parent a19dcac247
commit 60a2a2ca9d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=463301

View File

@ -486,7 +486,10 @@ DISTFILES:= ${DISTFILES} ${DISTFILE_${_group}}:${_group}
MASTER_SITES:= ${MASTER_SITES} ${MASTER_SITE_GITHUB:S@%SUBDIR%@${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}/tar.gz/${GH_TAGNAME_${_group}}?dummy=/:${_group}@}
WRKSRC_${_group}:= ${WRKDIR}/${GH_PROJECT_${_group}}-${GH_TAGNAME_${_group}_EXTRACT}
. if !empty(GH_SUBDIR_${_group})
_SITES_extract:= ${_SITES_extract} 690:post-extract-gh-${_group}
# In order to sort the subdir extraction so that foo/bar is moved in before
# foo/bar/baz, we count the number of / in the path and use it to order the
# targets. This handles up to 9 levels. The max as of r463123 is 4.
_SITES_extract:= ${_SITES_extract} 69${GH_SUBDIR_${_group}:C=[^/]+= =g:range:[-1]}:post-extract-gh-${_group}
post-extract-gh-${_group}:
@${RMDIR} ${WRKSRC}/${GH_SUBDIR_${_group}} 2>/dev/null || :
@${MKDIR} ${WRKSRC}/${GH_SUBDIR_${_group}:H} 2>/dev/null || :