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
|
# defaults for user-visible input variables
|
||||||
#
|
#
|
||||||
|
|
||||||
GIT_TAG?= tip
|
|
||||||
|
|
||||||
DISTFILES?= # empty
|
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}
|
PKGREVISION?= ${_GIT_PKGVERSION:S/.//g}
|
||||||
.else
|
. endif
|
||||||
PKGREVISION?= ${GIT_TAG}
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# End of the interface part. Start of the implementation part.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Input validation
|
||||||
|
#
|
||||||
|
|
||||||
.if !defined(GIT_REPOSITORIES)
|
.if !defined(GIT_REPOSITORIES)
|
||||||
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPOSITORIES must be set."
|
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPOSITORIES must be set."
|
||||||
GIT_REPOSITORIES?= # none
|
GIT_REPOSITORIES?= # none
|
||||||
|
@ -46,25 +54,70 @@ GIT_REPOSITORIES?= # none
|
||||||
. if !defined(GIT_REPO.${_repo_})
|
. if !defined(GIT_REPO.${_repo_})
|
||||||
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPO."${_repo_:Q}" must be set."
|
PKG_FAIL_REASON+= "[git-package.mk] GIT_REPO."${_repo_:Q}" must be set."
|
||||||
. endif
|
. endif
|
||||||
GIT_TAG.${_repo_}?= ${GIT_TAG}
|
|
||||||
.endfor
|
.endfor
|
||||||
|
|
||||||
#
|
#
|
||||||
# Internal variables
|
# Internal variables
|
||||||
#
|
#
|
||||||
|
|
||||||
|
USE_TOOLS+= date pax
|
||||||
|
|
||||||
_GIT_CMD= git
|
_GIT_CMD= git
|
||||||
_GIT_ENV= # empty
|
_GIT_ENV= # empty
|
||||||
_GIT_FLAGS= --quiet --depth 1
|
_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_CMD= ${DATE} -u +'%Y.%m.%d'
|
||||||
_GIT_PKGVERSION= ${_GIT_PKGVERSION_CMD:sh}
|
_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
|
pre-extract: do-git-extract
|
||||||
|
|
||||||
.PHONY: do-git-extract
|
.PHONY: do-git-extract
|
||||||
do-git-extract:
|
do-git-extract:
|
||||||
.for _repo_ in ${GIT_REPOSITORIES}
|
.for _repo_ in ${GIT_REPOSITORIES}
|
||||||
${RUN}; cd ${WRKDIR}; \
|
${RUN} cd ${WRKDIR}; \
|
||||||
${SETENV} ${_GIT_ENV} \
|
${SETENV} ${_GIT_ENV} \
|
||||||
${_GIT_CMD} clone \
|
${_GIT_CMD} clone \
|
||||||
${_GIT_FLAGS} \
|
${_GIT_FLAGS} \
|
||||||
|
|
Loading…
Reference in a new issue