[Midnightbsd-cvs] mports [19370] trunk/Mk/components/sites.mk: sync up the github handler

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Jun 6 21:21:00 EDT 2015


Revision: 19370
          http://svnweb.midnightbsd.org/mports/?rev=19370
Author:   laffer1
Date:     2015-06-06 21:20:59 -0400 (Sat, 06 Jun 2015)
Log Message:
-----------
sync up the github handler

Modified Paths:
--------------
    trunk/Mk/components/sites.mk

Modified: trunk/Mk/components/sites.mk
===================================================================
--- trunk/Mk/components/sites.mk	2015-06-07 01:17:51 UTC (rev 19369)
+++ trunk/Mk/components/sites.mk	2015-06-07 01:20:59 UTC (rev 19370)
@@ -251,7 +251,6 @@
 	ftp://mirror.solarvps.com/fedora/archive/fedora/linux/core/%SUBDIR%/ \
 	ftp://ftp.gmd.de/archives.fedoraproject.org/fedora/linux/core/%SUBDIR%/ \
 	ftp://mirror.fraunhofer.de/archives.fedoraproject.org/fedora/linux/core/%SUBDIR%/ \
-	ftp://linuxsoft.cern.ch/fedora/linux/core/%SUBDIR%/ \
 	ftp://ftp-mirror.bi.fraunhofer.de/archives.fedoraproject.org/fedora/linux/core/%SUBDIR%/ \
 	http://ftp.udl.es/pub/fedora/linux/core/%SUBDIR%/ \
 	http://ftp.sunet.se/pub/Linux/distributions/fedora/linux/core/%SUBDIR%/ \
@@ -529,13 +528,97 @@
 MASTER_SITE_GITHUB+=		https://codeload.github.com/%SUBDIR%
 MASTER_SITE_GITHUB_CLOUD+=	http://cloud.github.com/downloads/%SUBDIR%
 
-.  if !defined(MASTER_SITES) || !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC}
+.  if !defined(MASTER_SITES) || !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC} && !${USE_GITHUB:Mnodefault}
 MASTER_SITES+=	GH
 .  endif
-GH_ACCOUNT?=	${PORTNAME}
-GH_PROJECT?=	${PORTNAME}
+_GH_ACCOUNT_DEFAULT=	${PORTNAME}
+GH_ACCOUNT?=	${_GH_ACCOUNT_DEFAULT}
+_GH_PROJECT_DEFAULT=	${PORTNAME}
+GH_PROJECT?=	${_GH_PROJECT_DEFAULT}
 # Use full PREFIX/SUFFIX and converted DISTVERSION
-GH_TAGNAME?=	${DISTVERSIONFULL}
+_GH_TAGNAME_DEFAULT=	${DISTVERSIONFULL}
+GH_TAGNAME?=	${_GH_TAGNAME_DEFAULT}
+# Iterate over GH_ACCOUNT, GH_PROJECT and GH_TAGNAME to extract groups
+_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}
+_G_TEMP=	${_group}
+.      if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default
+check-makevars::
+		@${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be"
+		@${ECHO_MSG} "used in group definitions. Please fix your GH_ACCOUNT"
+		@${FALSE}
+.      endif
+.      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}
+_G_TEMP=	${_group}
+.      if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default
+check-makevars::
+		@${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be"
+		@${ECHO_MSG} "used in group definitions. Please fix your GH_PROJECT"
+		@${FALSE}
+.      endif
+.      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}
+_G_TEMP=	${_group}
+.      if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default
+check-makevars::
+		@${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be"
+		@${ECHO_MSG} "used in group definitions. Please fix your GH_TAGNAME"
+		@${FALSE}
+.      endif
+.      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
+# Put the default values back into the variables so that the *default* behavior
+# is not changed.
+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} != ${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.
@@ -543,14 +626,47 @@
 .  if ${MASTER_SITES:MGH}
 DISTNAME:=	${DISTNAME}_GH${_GITHUB_REV}
 .  endif
-.  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
 .endif
+_GITHUB_EXTRACT_SUFX=	.tar.gz
+# If there are non default groups
+.if !empty(_GITHUB_GROUPS:NDEFAULT)
+# Put the DEFAULT distfile first
+.if !${USE_GITHUB:Mnodefault}
+DISTFILES+=	${DISTNAME}${_GITHUB_EXTRACT_SUFX}
 .endif
+# Then for each of the remaining groups, add DISTFILES and MASTER_SITES
+# entries with the correct group and create {WRKSRC,DISTNAME,DISTFILES}_group
+# helper variables.
+.  for _group in ${_GITHUB_GROUPS:NDEFAULT}
+.if defined(_GH_ACCOUNT_${_group})
+_a_tmp=	${_GH_ACCOUNT_${_group}}
+.else
+_a_tmp=	${_GH_ACCOUNT_DEFAULT}
+.endif
+.if defined(_GH_PROJECT_${_group})
+_p_tmp=	${_GH_PROJECT_${_group}}
+.else
+_p_tmp=	${_GH_PROJECT_DEFAULT}
+.endif
+.if defined(_GH_TAGNAME_${_group})
+_t_tmp=	${_GH_TAGNAME_${_group}}
+.else
+_t_tmp=	${_GH_TAGNAME_DEFAULT}
+.endif
+# starting with 10+:
+#_a_tmp=	${_GH_ACCOUNT_${_group}:U${_GH_ACCOUNT_DEFAULT}}
+#_p_tmp=	${_GH_PROJECT_${_group}:U${_GH_PROJECT_DEFAULT}}
+#_t_tmp=	${_GH_TAGNAME_${_group}:U${_GH_TAGNAME_DEFAULT}}
+_t_tmp_s=	${_t_tmp:S,/,-,}
+_t_tmp_e=	${_t_tmp_s:C/^[vV]([0-9])/\1/}
+DISTNAME_${_group}:=	${_a_tmp}-${_p_tmp}-${_t_tmp_s}
+DISTFILE_${_group}:=	${DISTNAME_${_group}}_GH${_GITHUB_REV}${_GITHUB_EXTRACT_SUFX}
+DISTFILES:=	${DISTFILES} ${DISTFILE_${_group}}:${_group}
+MASTER_SITES:=	${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
 
 .if !defined(IGNORE_MASTER_SITE_GNOME)
 MASTER_SITE_GNOME+= \



More information about the Midnightbsd-cvs mailing list