summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2021-03-30 16:47:03 +0000
committerryoon <ryoon@pkgsrc.org>2021-03-30 16:47:03 +0000
commitbaf3571a8601b8f72f653c50ef18ab808c342b9d (patch)
treef713d33d809baddaf8281d253717855686d33463 /mk
parent0882e357f39ba9ce1a5b755eadcb2621fca53d98 (diff)
downloadpkgsrc-baf3571a8601b8f72f653c50ef18ab808c342b9d.tar.gz
mk: Introduce GITHUB_SUBMODULES to get and place Git submodules for GitHub
Diffstat (limited to 'mk')
-rw-r--r--mk/extract/extract.mk3
-rw-r--r--mk/fetch/bsd.fetch-vars.mk9
-rw-r--r--mk/fetch/github.mk24
3 files changed, 30 insertions, 6 deletions
diff --git a/mk/extract/extract.mk b/mk/extract/extract.mk
index 62b9c6ffa23..f263efb2ff7 100644
--- a/mk/extract/extract.mk
+++ b/mk/extract/extract.mk
@@ -1,4 +1,4 @@
-# $NetBSD: extract.mk,v 1.41 2020/03/20 15:00:45 rillig Exp $
+# $NetBSD: extract.mk,v 1.42 2021/03/30 16:47:03 ryoon Exp $
#
# The following variables may be set by the package Makefile and
# specify how extraction happens:
@@ -216,6 +216,7 @@ DOWNLOADED_DISTFILE= "$${extract_file}"
do-extract: ${WRKDIR}
. for f in ${EXTRACT_ONLY}
${RUN} extract_file=${_DISTDIR:Q}/${f:Q}; export extract_file; \
+ EXTRACT_OPTS_TAR=${EXTRACT_OPTS_TAR.${f}}; export EXTRACT_OPTS_TAR; \
cd ${WRKDIR} && cd ${EXTRACT_DIR.${f}} && ${EXTRACT_CMD}
. endfor
.endif
diff --git a/mk/fetch/bsd.fetch-vars.mk b/mk/fetch/bsd.fetch-vars.mk
index e24eec81dc6..ca63833949b 100644
--- a/mk/fetch/bsd.fetch-vars.mk
+++ b/mk/fetch/bsd.fetch-vars.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.fetch-vars.mk,v 1.24 2019/11/22 19:30:23 rillig Exp $
+# $NetBSD: bsd.fetch-vars.mk,v 1.25 2021/03/30 16:47:03 ryoon Exp $
#
# This Makefile fragment is included separately by bsd.pkg.mk and
# defines some variables which must be defined earlier than where
@@ -60,6 +60,13 @@ DEFAULT_DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
.endif
DISTFILES?= ${DEFAULT_DISTFILES}
+.if !empty(GITHUB_SUBMODULES)
+. for _GITHUB_SM_USER _GITHUB_SM_PROJECT _GITHUB_SM_TAG _GITHUB_SM_PLACE in ${GITHUB_SUBMODULES}
+DISTFILES+= ${_GITHUB_SM_USER}-${_GITHUB_SM_PROJECT}-${_GITHUB_SM_TAG}${EXTRACT_SUFX}
+. endfor
+.endif
+
+
# File lists, defined early to allow tool dependencies.
ALLFILES?= ${DISTFILES} ${PATCHFILES}
ALLFILES:= ${ALLFILES:O:u} # remove duplicates
diff --git a/mk/fetch/github.mk b/mk/fetch/github.mk
index 0e3eb73a864..ce017c093d9 100644
--- a/mk/fetch/github.mk
+++ b/mk/fetch/github.mk
@@ -1,4 +1,4 @@
-# $NetBSD: github.mk,v 1.13 2019/11/04 19:05:18 rillig Exp $
+# $NetBSD: github.mk,v 1.14 2021/03/30 16:47:03 ryoon Exp $
#
# github.com master site handling
#
@@ -15,6 +15,9 @@
# SHA-1 commit ids are also acceptable
# GITHUB_RELEASE defaults to not defined, set this to ${DISTNAME}
# when packaging a release not based on a git tag.
+# GITHUB_SUBMODULE manually set submodule information:
+# values should be:
+# GitHub_user GitHub_project tag_or_hash submodule_path
# GITHUB_TYPE overrides the autodetected MASTER_SITE URL scheme:
#
# "tag"
@@ -72,10 +75,23 @@ SITES.${_GITHUB_DEFAULT_DISTFILES}= -${MASTER_SITES:=${GITHUB_PROJECT}/archive/$
.endif
+.if !empty(GITHUB_SUBMODULES)
+. for _GITHUB_SM_USER _GITHUB_SM_PROJECT _GITHUB_SM_TAG _GITHUB_SM_PLACE in ${GITHUB_SUBMODULES}
+_GITHUB_SM_DISTFILE= ${_GITHUB_SM_USER}-${_GITHUB_SM_PROJECT}-${_GITHUB_SM_TAG}${EXTRACT_SUFX}
+_GITHUB_DEFAULT_DISTFILES+= ${_GITHUB_SM_USER}-${_GITHUB_SM_PROJECT}-${_GITHUB_SM_TAG}${EXTRACT_SUFX}
+SITES.${_GITHUB_SM_DISTFILE}= -${MASTER_SITE_GITHUB:=${_GITHUB_SM_USER}/${_GITHUB_SM_PROJECT}/archive/${_GITHUB_SM_TAG}${EXTRACT_SUFX}}
+EXTRACT_DIR.${_GITHUB_SM_DISTFILE}= ${WRKSRC}/${_GITHUB_SM_PLACE}
+EXTRACT_OPTS_TAR.${_GITHUB_SM_DISTFILE}= --strip-components=1
+. endfor
+.endif
+
_VARGROUPS+= github
_PKG_VARS.github= GITHUB_PROJECT DISTNAME GITHUB_TYPE GITHUB_TAG \
- GITHUB_RELEASE MASTER_SITES EXTRACT_SUFX
-_DEF_VARS.github= _USE_GITHUB _GITHUB_DEFAULT_DISTFILES \
- SITES.${_GITHUB_DEFAULT_DISTFILES}
+ GITHUB_RELEASE MASTER_SITES EXTRACT_SUFX \
+ GITHUB_SUBMODULES
+_DEF_VARS.github= _USE_GITHUB _GITHUB_DEFAULT_DISTFILES
+.for f in ${_GITHUB_DEFAULT_DISTFILES}
+_DEF_VARS.github+= SITES.${f}
+.endfor
_USE_VARS.github= PKGBASE PKGVERSION_NOREV
_LISTED_VARS.github= SITES.*