Page MenuHomeFreeBSD

D35782.id108049.diff
No OneTemporary

D35782.id108049.diff

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -2100,7 +2100,11 @@
DISTORIG?= .bak.orig
PATCH?= /usr/bin/patch
PATCH_STRIP?= -p0
+. if defined(USE_GITHUB) && !empty(GH_CHERRYPICK)
+PATCH_DIST_STRIP?= -p1
+. else
PATCH_DIST_STRIP?= -p0
+. endif
. if defined(PATCH_DEBUG)
PATCH_DEBUG_TMP= yes
PATCH_ARGS?= --forward -E ${PATCH_STRIP}
Index: Mk/bsd.sites.mk
===================================================================
--- Mk/bsd.sites.mk
+++ Mk/bsd.sites.mk
@@ -365,9 +365,13 @@
#
# GH_TUPLE - above shortened to account:project:tagname[:group][/subdir]
#
+# GH_CHERRYPICK - list of commit hashes to automatically apply as patches
+# This will also set DIST_SUBDIR to ${PORTNAME} if not defined.
+# default: empty
+#
. if defined(USE_GITHUB)
-. if defined(GH_TAGNAME) && ${GH_TAGNAME} == master
-IGNORE?= Using master as GH_TAGNAME is invalid. \
+. if defined(GH_TAGNAME) && (${GH_TAGNAME} == master || ${GH_TAGNAME} == main)
+IGNORE?= Using ${GH_TAGNAME} as GH_TAGNAME is invalid. \
Must use a tag or commit hash so the upstream does \
not "reroll" as soon as the branch is updated
. endif
@@ -401,9 +405,12 @@
# Use full PREFIX/SUFFIX and converted DISTVERSION
GH_TAGNAME_DEFAULT= ${DISTVERSIONFULL}
GH_TAGNAME?= ${GH_TAGNAME_DEFAULT}
-# Iterate over GH_ACCOUNT, GH_PROJECT, GH_TAGNAME and GH_SUBDIR to extract groups
+GH_CHERRYPICK_DEFAULT=
+GH_CHERRYPICK?= ${GH_CHERRYPICK_DEFAULT}
+# Iterate over GH_ACCOUNT, GH_PROJECT, GH_TAGNAME, GH_SUBDIR and GH_CHERRYPICK
+# to extract groups
_GITHUB_GROUPS= DEFAULT
-. for _gh_v in GH_ACCOUNT GH_PROJECT GH_TAGNAME GH_SUBDIR
+. for _gh_v in GH_ACCOUNT GH_PROJECT GH_TAGNAME GH_SUBDIR GH_CHERRYPICK
. for _v_ex in ${${_gh_v}}
_GH_GROUPS= ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://}
. if !empty(_GH_GROUPS)
@@ -430,6 +437,7 @@
GH_PROJECT:= ${GH_PROJECT_DEFAULT}
GH_TAGNAME:= ${GH_TAGNAME_DEFAULT}
GH_SUBDIR:= ${GH_SUBDIR_DEFAULT}
+GH_CHERRYPICK:= ${GH_CHERRYPICK_DEFAULT}
. if defined(GH_TAGNAME)
# If you change either of the _SANITIZED or _EXTRACT variables, please keep the
# changes in sync with the GH_TAGNAME_${_group}_* variables 50 lines below.
@@ -469,6 +477,13 @@
@${MKDIR} ${WRKSRC}/${GH_SUBDIR_DEFAULT:H} 2>/dev/null || :
@${LN} -s ${GH_SUBDIR_DEFAULT:C/[^\/]//g:C/\//..\//g:S/^$/./} ${WRKSRC}/${GH_SUBDIR_DEFAULT}
. endif
+. if !empty(GH_CHERRYPICK)
+DIST_SUBDIR?= ${PORTNAME}
+PATCH_SITE_DEFAULT= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCH_SITES+= ${PATCH_SITE_DEFAULT}
+PATCHFILES_DEFAULT= ${GH_CHERRYPICK:S/$/.diff/}
+PATCHFILES+= ${PATCHFILES_DEFAULT}
+. endif
# If there are non default groups
. if !empty(_GITHUB_GROUPS:NDEFAULT)
# Then for each of the remaining groups, add DISTFILES and MASTER_SITES
@@ -499,6 +514,13 @@
@${MV} ${WRKSRC_${_group}} ${WRKSRC}/${GH_SUBDIR_${_group}}
@${LN} -s ${WRKSRC:T}/${GH_SUBDIR_${_group}} ${WRKSRC_${_group}}
. endif
+. if !empty(GH_CHERRYPICK_${_group})
+DIST_SUBDIR?= ${PORTNAME}
+PATCH_SITE_${_group}= https://github.com/${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}/commit/:${_group}
+PATCH_SITES+= ${PATCH_SITE_${_group}}
+PATCHFILES_${_group}= ${GH_CHERRYPICK_${_group}:S/$/.diff:${_group}/}
+PATCHFILES+= ${PATCHFILES_${_group}}
+. endif
git-clone: git-clone-${_group}
git-clone-${_group}: ${_GITHUB_CLONE_DIR}
@git clone https://github.com/${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}.git ${_GITHUB_CLONE_DIR}/${GH_PROJECT_${_group}}

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 30, 4:36 AM (22 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32345274
Default Alt Text
D35782.id108049.diff (3 KB)

Event Timeline