Converge to CVS-based packages.
This commit is contained in:
parent
5cbf3f5579
commit
0fe0a0726a
1 changed files with 60 additions and 7 deletions
|
@ -28,15 +28,23 @@ BUILD_DEPENDS+= scmgit-base>=1.6.4:../../devel/scmgit-base
|
|||
# defaults for user-visible input variables
|
||||
#
|
||||
|
||||
GIT_TAG?= tip
|
||||
|
||||
DISTFILES?= # empty
|
||||
.if empty(GIT_TAG) || ${GIT_TAG} == "tip"
|
||||
.if empty(GIT_TAG)
|
||||
. if defined(CHECKOUT_DATE)
|
||||
PKGREVISION?= $(CHECKOUT_DATE:S/-//g)
|
||||
. else
|
||||
PKGREVISION?= ${_GIT_PKGVERSION:S/.//g}
|
||||
.else
|
||||
PKGREVISION?= ${GIT_TAG}
|
||||
. endif
|
||||
.endif
|
||||
|
||||
#
|
||||
# End of the interface part. Start of the implementation part.
|
||||
#
|
||||
|
||||
#
|
||||
# Input validation
|
||||
#
|
||||
|
||||
.if !defined(GIT_REPOSITORIES)
|
||||
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPOSITORIES must be set."
|
||||
GIT_REPOSITORIES?= # none
|
||||
|
@ -46,25 +54,70 @@ GIT_REPOSITORIES?= # none
|
|||
. if !defined(GIT_REPO.${_repo_})
|
||||
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPO."${_repo_:Q}" must be set."
|
||||
. endif
|
||||
GIT_TAG.${_repo_}?= ${GIT_TAG}
|
||||
.endfor
|
||||
|
||||
#
|
||||
# Internal variables
|
||||
#
|
||||
|
||||
USE_TOOLS+= date pax
|
||||
|
||||
_GIT_CMD= git
|
||||
_GIT_ENV= # empty
|
||||
_GIT_FLAGS= --quiet --depth 1
|
||||
_GIT_TODAY_CMD= ${DATE} -u +'%Y-%m-%d'
|
||||
_GIT_TODAY= ${_GIT_TODAY_CMD:sh}
|
||||
_GIT_PKGVERSION_CMD= ${DATE} -u +'%Y.%m.%d'
|
||||
_GIT_PKGVERSION= ${_GIT_PKGVERSION_CMD:sh}
|
||||
_GIT_DISTDIR= ${DISTDIR}/git-packages
|
||||
|
||||
#
|
||||
# Generation of repository-specific variables
|
||||
#
|
||||
|
||||
.for repo in ${GIT_REPOSITORIES}
|
||||
GIT_MODULE.${repo}?= ${repo}
|
||||
|
||||
# determine appropriate checkout date or tag
|
||||
. if defined(GIT_TAG.${repo})
|
||||
_GIT_TAG_FLAG.${repo}= -r${GIT_TAG.${repo}}
|
||||
_GIT_TAG.${repo}= ${GIT_TAG.${repo}}
|
||||
. elif defined(GIT_TAG)
|
||||
_GIT_TAG_FLAG.${repo}= -r${GIT_TAG}
|
||||
_GIT_TAG.${repo}= ${GIT_TAG}
|
||||
. elif defined(CHECKOUT_DATE)
|
||||
_GIT_TAG_FLAG.${repo}= -D${CHECKOUT_DATE:Q}
|
||||
_GIT_TAG.${repo}= ${CHECKOUT_DATE:Q}
|
||||
. else
|
||||
_GIT_TAG_FLAG.${repo}= '-D${_GIT_TODAY} 00:00 +0000'
|
||||
_GIT_TAG.${repo}= ${_GIT_TODAY:Q}
|
||||
. endif
|
||||
|
||||
# Cache support:
|
||||
# cache file name
|
||||
_GIT_DISTFILE.${repo}= ${PKGBASE}-${GIT_MODULE.${repo}}-${_GIT_TAG.${repo}}.tar.gz
|
||||
|
||||
# command to extract cache file
|
||||
_GIT_EXTRACT_CACHED.${repo}= \
|
||||
if [ -f ${_GIT_DISTDIR}/${_GIT_DISTFILE.${repo}:Q} ]; then \
|
||||
${STEP_MSG} "Extracting cached GIT archive "${_GIT_DISTFILE.${repo}:Q}"."; \
|
||||
pax -r -z -f ${_GIT_DISTDIR}/${_GIT_DISTFILE.${repo}:Q}; \
|
||||
exit 0; \
|
||||
fi
|
||||
|
||||
# create cache archive
|
||||
_GIT_CREATE_CACHE.${repo}= \
|
||||
${STEP_MSG} "Creating cached GIT archive "${_GIT_DISTFILE.${repo}:Q}"."; \
|
||||
${MKDIR} ${_GIT_DISTDIR:Q}; \
|
||||
pax -w -z -f ${_GIT_DISTDIR}/${_GIT_DISTFILE.${repo}:Q} ${GIT_MODULE.${repo}:Q}
|
||||
.endfor
|
||||
|
||||
pre-extract: do-git-extract
|
||||
|
||||
.PHONY: do-git-extract
|
||||
do-git-extract:
|
||||
.for _repo_ in ${GIT_REPOSITORIES}
|
||||
${RUN}; cd ${WRKDIR}; \
|
||||
${RUN} cd ${WRKDIR}; \
|
||||
${SETENV} ${_GIT_ENV} \
|
||||
${_GIT_CMD} clone \
|
||||
${_GIT_FLAGS} \
|
||||
|
|
Loading…
Reference in a new issue