Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -1316,14 +1316,8 @@ PKGVERSION= ${PORTVERSION:C/[-_,]/./g}${_SUF1}${_SUF2} PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTVERSIONFULL= ${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} -.if defined(USE_GITHUB) && empty(MASTER_SITES:MGHC) -# Only add in DISTVERSIONFULL if GH_TAGNAME if set by port. Otherwise -# GH_TAGNAME defaults to DISTVERSIONFULL; Avoid adding DISTVERSIONFULL in twice. -. if defined(GH_TAGNAME) -DISTNAME?= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSIONFULL}-${GH_TAGNAME_SANITIZED} -. else -DISTNAME?= ${GH_ACCOUNT}-${GH_PROJECT}-${GH_TAGNAME_SANITIZED} -. endif +.if defined(USE_GITHUB) && empty(MASTER_SITES:MGHC) && empty(DISTNAME) +_GITHUB_MUST_SET_DISTNAME= yes .else DISTNAME?= ${PORTNAME}-${DISTVERSIONFULL} .endif Index: Mk/bsd.sites.mk =================================================================== --- Mk/bsd.sites.mk +++ Mk/bsd.sites.mk @@ -527,19 +527,89 @@ GH_PROJECT?= ${PORTNAME} # Use full PREFIX/SUFFIX and converted DISTVERSION GH_TAGNAME?= ${DISTVERSIONFULL} -# This new scheme rerolls distfiles. Also ensure they are renamed to avoid -# conflicts. Use _GITHUB_REV in case github changes their zipping or structure -# which has happened before. -_GITHUB_REV= 0 -. if ${MASTER_SITES:MGH} -DISTNAME:= ${DISTNAME}_GH${_GITHUB_REV} +_GITHUB_GROUPS= DEFAULT +.for _A in ${GH_ACCOUNT} +_S_TEMP= ${_A:S/^${_A:C@:[^/:]+$@@}//:S/^://} +. if !empty(_S_TEMP) +. for _group in ${_S_TEMP:S/,/ /g} +. if !${_GITHUB_GROUPS:M${_group}} +_GITHUB_GROUPS+= ${_group} +. endif +_GH_ACCOUNT_${_group}= ${_A:C@^(.*):[^/:]+$@\1@} +. endfor +. else +_GH_ACCOUNT_DEFAULT= ${_A:C@^(.*):[^/:]+$@\1@} +. endif +.endfor +.for _P in ${GH_PROJECT} +_S_TEMP= ${_P:S/^${_P:C@:[^/:]+$@@}//:S/^://} +. if !empty(_S_TEMP) +. for _group in ${_S_TEMP:S/,/ /g} +. if !${_GITHUB_GROUPS:M${_group}} +_GITHUB_GROUPS+= ${_group} +. endif +_GH_PROJECT_${_group}= ${_P:C@^(.*):[^/:]+$@\1@} +. endfor +. else +_GH_PROJECT_DEFAULT= ${_P:C@^(.*):[^/:]+$@\1@} +. endif +.endfor +.for _T in ${GH_TAGNAME} +_S_TEMP= ${_T:S/^${_T:C@:[^/:]+$@@}//:S/^://} +. if !empty(_S_TEMP) +. for _group in ${_S_TEMP:S/,/ /g} +. if !${_GITHUB_GROUPS:M${_group}} +_GITHUB_GROUPS+= ${_group} +. endif +_GH_TAGNAME_${_group}= ${_T:C@^(.*):[^/:]+$@\1@} +. endfor +. else +_GH_TAGNAME_DEFAULT= ${_T:C@^(.*):[^/:]+$@\1@} . endif +.endfor +GH_ACCOUNT:= ${_GH_ACCOUNT_DEFAULT} +GH_PROJECT:= ${_GH_PROJECT_DEFAULT} +GH_TAGNAME:= ${_GH_TAGNAME_DEFAULT} . if defined(GH_TAGNAME) GH_TAGNAME_SANITIZED= ${GH_TAGNAME:S,/,-,} # Github silently converts tags starting with v to not have v in the filename # and extraction directory. GH_TAGNAME_EXTRACT= ${GH_TAGNAME_SANITIZED:C/^[vV]([0-9])/\1/} +. endif +. if defined(_GITHUB_MUST_SET_DISTNAME) +# GH_TAGNAME defaults to DISTVERSIONFULL; Avoid adding DISTVERSIONFULL in twice +. if ${GH_TAGNAME_SANITIZED} != ${DISTVERSIONFULL} +DISTNAME= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSIONFULL}-${GH_TAGNAME_SANITIZED} +. else +DISTNAME= ${GH_ACCOUNT}-${GH_PROJECT}-${GH_TAGNAME_SANITIZED} +. endif . endif +# This new scheme rerolls distfiles. Also ensure they are renamed to avoid +# conflicts. Use _GITHUB_REV in case github changes their zipping or structure +# which has happened before. +_GITHUB_REV= 0 +. if ${MASTER_SITES:MGH} +DISTNAME:= ${DISTNAME}_GH${_GITHUB_REV} +. endif +.endif +_GITHUB_EXTRACT_SUFX= .tar.gz +# If there are non default groups +.if !empty(_GITHUB_GROUPS:NDEFAULT) +# Put the DEFAULT distfile first +DISTFILES+= ${DISTNAME}${_GITHUB_EXTRACT_SUFX} +# Then for each group, add DISTFILES and MASTER_SITES entries +# and create a WRKSRC_group helper variable. +. for _group in ${_GITHUB_GROUPS:NDEFAULT} +_a_tmp= ${_GH_ACCOUNT_${_group}} +_p_tmp= ${_GH_PROJECT_${_group}} +_t_tmp= ${_GH_TAGNAME_${_group}} +_t_tmp_s= ${_t_tmp:S,/,-,} +_t_tmp_e= ${_t_tmp_s:C/^[vV]([0-9])/\1/} +_DISTNAME= ${_a_tmp}-${_p_tmp}-${DISTVERSIONFULL}-${_t_tmp_s} +DISTFILES+= ${_DISTNAME}${_GITHUB_EXTRACT_SUFX}:${_group} +MASTER_SITES+= ${MASTER_SITE_GITHUB:S@%SUBDIR%@${_a_tmp}/${_p_tmp}/tar.gz/${_t_tmp}?dummy=/:${_group}@} +WRKSRC_${_group}= ${WRKDIR}/${_p_tmp}-${_t_tmp_e} +. endfor .endif .endif @@ -658,6 +728,7 @@ .if !defined(IGNORE_MASTER_SITE_ISC) MASTER_SITE_ISC+= \ + https://source.isc.org/bind-sw/${ISCVERSION}/ \ http://ftp.isc.org/isc/%SUBDIR%/ \ ftp://ftp.isc.org/isc/%SUBDIR%/ \ ftp://ftp.ciril.fr/pub/isc/%SUBDIR%/ \