Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F146066069
D9029.id23878.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D9029.id23878.diff
View Options
Index: Mk/Scripts/do-patch.sh
===================================================================
--- /dev/null
+++ Mk/Scripts/do-patch.sh
@@ -0,0 +1,121 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+
+set -e
+
+. "${dp_SCRIPTSDIR}/functions.sh"
+
+validate_env dp_BZCAT dp_CAT dp_DISTDIR dp_ECHO_MSG dp_EXTRA_PATCHES \
+ dp_EXTRA_PATCH_TREE dp_GZCAT dp_OPSYS dp_PATCH dp_PATCHDIR \
+ dp_PATCHFILES dp_PATCH_ARGS dp_PATCH_DEBUG_TMP dp_PATCH_DIST_ARGS \
+ dp_PATCH_SILENT dp_PATCH_WRKSRC dp_PKGNAME dp_PKGORIGIN \
+ dp_UNZIP_NATIVE_CMD dp_XZCAT
+
+[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_PATCH}" ] && set -x
+
+set -u
+
+apply_one_patch() {
+ local file="$1"
+ local msg="$2"
+ shift 2
+ local patch_strip=""
+
+ case ${file} in
+ *:-p[0-9])
+ patch_strip=${file##*:}
+ file=${file%:-p[0-9]}
+ ;;
+ esac
+
+ if [ -n "${msg}" ]; then
+ ${dp_ECHO_MSG} "===> ${msg} ${file}${patch_strip:+ with ${patch_strip}}"
+ fi
+
+ case "${file}" in
+ *.Z|*.gz)
+ ${dp_GZCAT} "${file}"
+ ;;
+ *.bz2)
+ ${dp_BZCAT} "${file}"
+ ;;
+ *.xz)
+ ${dp_XZCAT} "${file}"
+ ;;
+ *.zip)
+ ${dp_UNZIP_NATIVE_CMD} -p "${file}"
+ ;;
+ *)
+ ${dp_CAT} "${file}"
+ ;;
+ esac | do_patch "$@" ${patch_strip}
+}
+
+do_patch() {
+ "${dp_PATCH}" -d "${dp_PATCH_WRKSRC}" "$@"
+}
+
+patch_from_directory() {
+ local dir="$1"
+ local msg="$2"
+
+ if [ -d "${dir}" ]; then
+ cd "${dir}"
+
+ if [ "$(echo patch-*)" != "patch-*" ]; then
+
+ ${dp_ECHO_MSG} "===> Applying ${msg} patches for ${dp_PKGNAME}"
+
+ PATCHES_APPLIED=""
+
+ for i in patch-*; do
+ case ${i} in
+ *.orig|*.rej|*~|*,v)
+ ${dp_ECHO_MSG} "===> Ignoring patchfile ${i}"
+ ;;
+ *)
+ if [ -n "${dp_PATCH_DEBUG_TMP}" ]; then
+ ${dp_ECHO_MSG} "===> Applying ${msg} patch ${i}"
+ fi
+ if do_patch ${dp_PATCH_ARGS} < ${i}; then
+ PATCHES_APPLIED="${PATCHES_APPLIED} ${i}"
+ else
+ ${dp_ECHO_MSG} "=> ${msg} patch ${i} failed to apply cleanly."
+ if [ -n "${PATCHES_APPLIED}" -a "${dp_PATCH_SILENT}" != "yes" ]; then
+ ${dp_ECHO_MSG} "=> Patch(es) ${PATCHES_APPLIED} applied cleanly."
+ fi
+ false
+ fi
+ ;;
+ esac
+ done
+ fi
+ fi
+}
+
+if [ -n "${dp_PATCHFILES}" ]; then
+ ${dp_ECHO_MSG} "===> Applying distribution patches for ${dp_PKGNAME}"
+ cd "${dp_DISTDIR}"
+ for i in ${dp_PATCHFILES}; do
+ apply_one_patch "${i}" \
+ "${dp_PATCH_DEBUG_TMP:+ Applying distribution patch}" \
+ ${dp_PATCH_DIST_ARGS}
+ done
+fi
+
+if [ -n "${dp_EXTRA_PATCHES}" ]; then
+ for i in ${dp_EXTRA_PATCHES}; do
+ apply_one_patch "${i}" \
+ "Applying extra patch" \
+ ${dp_PATCH_ARGS}
+ done
+fi
+
+patch_from_directory "${dp_PATCHDIR}" "${dp_OPSYS}"
+
+if [ -n "${dp_EXTRA_PATCH_TREE}" ]; then
+ patch_from_directory "${dp_EXTRA_PATCH_TREE}/${dp_PKGORIGIN}" "local"
+fi
+
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -749,6 +749,11 @@
# The patches specified by this variable will be
# applied after the normal distribution patches but
# before those in ${PATCHDIR}.
+# EXTRA_PATCH_TREE - where to find extra 'out-of-tree' patches
+# Points to a directory hierarchy with the same layout
+# as the ports tree, where local patches can be found.
+# This allows a third party to keep their patches in
+# some other source control system if needed.
# PATCH_WRKSRC - Directory to apply patches in.
# Default: ${WRKSRC}
#
@@ -1993,12 +1998,11 @@
PATCH_DIST_STRIP?= -p0
.if defined(PATCH_DEBUG)
PATCH_DEBUG_TMP= yes
-PATCH_ARGS?= -d ${PATCH_WRKSRC} -E ${PATCH_STRIP}
-PATCH_DIST_ARGS?= --suffix ${DISTORIG} -d ${PATCH_WRKSRC} -E ${PATCH_DIST_STRIP}
+PATCH_ARGS?= -E ${PATCH_STRIP}
+PATCH_DIST_ARGS?= --suffix ${DISTORIG} -E ${PATCH_DIST_STRIP}
.else
-PATCH_DEBUG_TMP= no
-PATCH_ARGS?= -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_STRIP}
-PATCH_DIST_ARGS?= --suffix ${DISTORIG} -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_DIST_STRIP}
+PATCH_ARGS?= --forward --quiet -E ${PATCH_STRIP}
+PATCH_DIST_ARGS?= --suffix ${DISTORIG} --forward --quiet -E ${PATCH_DIST_STRIP}
.endif
.if !defined(QUIET)
PATCH_SILENT= PATCH_SILENT=yes
@@ -2010,6 +2014,7 @@
# Prevent breakage with VERSION_CONTROL=numbered
PATCH_ARGS+= -V simple
+PATCH_DIST_ARGS+= -V simple
.if defined(PATCH_CHECK_ONLY)
PATCH_ARGS+= -C
@@ -2372,8 +2377,10 @@
. endfor
. endif
_PATCHFILES:= ${_PATCHFILES} ${_P_file}
-. if !empty(_P_strip)
-_PATCH_DIST_STRIP_CASES:= ${_PATCH_DIST_STRIP_CASES} ("${_P_file}") printf %s "${_P_strip}" ;;
+. if empty(_P_strip)
+_PATCHFILES2:= ${_PATCHFILES2} ${_P_file}
+. else
+_PATCHFILES2:= ${_PATCHFILES2} ${_P_file}:${_P_strip}
. endif
.endfor
_P_groups=
@@ -3076,73 +3083,29 @@
.if !target(do-patch)
do-patch:
-.if defined(PATCHFILES)
- @${ECHO_MSG} "===> Applying distribution patches for ${PKGNAME}"
- @(set -e; \
- cd ${_DISTDIR}; \
- patch_dist_strip () { \
- case "$$1" in \
- ${_PATCH_DIST_STRIP_CASES} \
- esac; \
- }; \
- for i in ${_PATCHFILES}; do \
- if [ ${PATCH_DEBUG_TMP} = yes ]; then \
- ${ECHO_MSG} "===> Applying distribution patch $$i" ; \
- fi ; \
- case $$i in \
- *.Z|*.gz) ${GZCAT} $$i ;; \
- *.bz2) ${BZCAT} $$i ;; \
- *.xz) ${XZCAT} $$i ;; \
- *.zip) ${UNZIP_NATIVE_CMD} -p $$i ;; \
- *) ${CAT} $$i ;; \
- esac | ${PATCH} ${PATCH_DIST_ARGS} `patch_dist_strip $$i` ; \
- done )
-.endif
-.if defined(EXTRA_PATCHES)
- @set -e ; \
- for i in ${EXTRA_PATCHES}; do \
- case $$i in \
- *:-p[0-9]) patch_file=$${i%:*} ; patch_strip=$${i##*:} ;; \
- *) patch_file=$$i ;; \
- esac ; \
- ${ECHO_MSG} "===> Applying extra patch $$patch_file" ; \
- case $$patch_file in \
- *.Z|*.gz) ${GZCAT} $$patch_file ;; \
- *.bz2) ${BZCAT} $$patch_file ;; \
- *.xz) ${XZCAT} $$patch_file ;; \
- *.zip) ${UNZIP_NATIVE_CMD} -p $$patch_file ;; \
- *) ${CAT} $$patch_file ;; \
- esac | ${PATCH} ${PATCH_ARGS} $$patch_strip ; \
- done
-.endif
- @set -e ;\
- if [ -d ${PATCHDIR} ]; then \
- if [ "`${ECHO_CMD} ${PATCHDIR}/patch-*`" != "${PATCHDIR}/patch-*" ]; then \
- ${ECHO_MSG} "===> Applying ${OPSYS} patches for ${PKGNAME}" ; \
- PATCHES_APPLIED="" ; \
- for i in ${PATCHDIR}/patch-*; do \
- case $$i in \
- *.orig|*.rej|*~|*,v) \
- ${ECHO_MSG} "===> Ignoring patchfile $$i" ; \
- ;; \
- *) \
- if [ ${PATCH_DEBUG_TMP} = yes ]; then \
- ${ECHO_MSG} "===> Applying ${OPSYS} patch $$i" ; \
- fi; \
- if ${PATCH} ${PATCH_ARGS} < $$i ; then \
- PATCHES_APPLIED="$$PATCHES_APPLIED $$i" ; \
- else \
- ${ECHO_MSG} `${ECHO_CMD} "=> Patch $$i failed to apply cleanly." | ${SED} "s|${PATCHDIR}/||"` ; \
- if [ x"$$PATCHES_APPLIED" != x"" -a ${PATCH_SILENT} != "yes" ]; then \
- ${ECHO_MSG} `${ECHO_CMD} "=> Patch(es) $$PATCHES_APPLIED applied cleanly." | ${SED} "s|${PATCHDIR}/||g"` ; \
- fi; \
- ${FALSE} ; \
- fi; \
- ;; \
- esac; \
- done; \
- fi; \
- fi
+ @${SETENV} \
+ dp_BZCAT="${BZCAT}" \
+ dp_CAT="${CAT}" \
+ dp_DISTDIR="${_DISTDIR}" \
+ dp_ECHO_MSG="${ECHO_MSG}" \
+ dp_EXTRA_PATCHES="${EXTRA_PATCHES}" \
+ dp_EXTRA_PATCH_TREE="${EXTRA_PATCH_TREE}" \
+ dp_GZCAT="${GZCAT}" \
+ dp_OPSYS="${OPSYS}" \
+ dp_PATCH="${PATCH}" \
+ dp_PATCHDIR="${PATCHDIR}" \
+ dp_PATCHFILES="${_PATCHFILES2}" \
+ dp_PATCH_ARGS=${PATCH_ARGS:Q} \
+ dp_PATCH_DEBUG_TMP="${PATCH_DEBUG_TMP}" \
+ dp_PATCH_DIST_ARGS="${PATCH_DIST_ARGS}" \
+ dp_PATCH_SILENT="${PATCH_SILENT}" \
+ dp_PATCH_WRKSRC=${PATCH_WRKSRC} \
+ dp_PKGNAME="${PKGNAME}" \
+ dp_PKGORIGIN="${PKGORIGIN}" \
+ dp_SCRIPTSDIR="${SCRIPTSDIR}" \
+ dp_UNZIP_NATIVE_CMD="${UNZIP_NATIVE_CMD}" \
+ dp_XZCAT="${XZCAT}" \
+ ${SH} ${SCRIPTSDIR}/do-patch.sh
.endif
.if !target(run-autotools-fixup)
Index: emulators/xen-kernel/Makefile
===================================================================
--- emulators/xen-kernel/Makefile
+++ emulators/xen-kernel/Makefile
@@ -40,14 +40,14 @@
EXTRA_PATCHES= ${FILESDIR}/0001-xen-logdirty-prevent-preemption-if-finished.patch:-p1 \
${FILESDIR}/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch:-p1 \
${FILESDIR}/kconf_arch.patch:-p1 \
- ${FILESDIR}/xsa191.patch \
- ${FILESDIR}/xsa192.patch \
- ${FILESDIR}/xsa193-4.7.patch \
- ${FILESDIR}/xsa194.patch \
- ${FILESDIR}/xsa195.patch \
- ${FILESDIR}/xsa200-4.7.patch \
- ${FILESDIR}/xsa204-4.7.patch \
- ${FILESDIR}/xsa202.patch
+ ${FILESDIR}/xsa191.patch:-p1 \
+ ${FILESDIR}/xsa192.patch:-p1 \
+ ${FILESDIR}/xsa193-4.7.patch:-p1 \
+ ${FILESDIR}/xsa194.patch:-p1 \
+ ${FILESDIR}/xsa195.patch:-p1 \
+ ${FILESDIR}/xsa200-4.7.patch:-p1 \
+ ${FILESDIR}/xsa204-4.7.patch:-p1 \
+ ${FILESDIR}/xsa202.patch:-p1
.include <bsd.port.options.mk>
Index: sysutils/xen-tools/Makefile
===================================================================
--- sysutils/xen-tools/Makefile
+++ sysutils/xen-tools/Makefile
@@ -45,9 +45,9 @@
EXTRA_PATCHES= ${FILESDIR}/var_paths.patch:-p1 \
${FILESDIR}/xsa198.patch:-p1 \
- ${FILESDIR}/0001-libxl-fix-creation-of-pkgconf-install-dir.patch \
- ${FILESDIR}/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch \
- ${FILESDIR}/0001-libs-xenstore-set-correct-FreeBSD-device.patch
+ ${FILESDIR}/0001-libxl-fix-creation-of-pkgconf-install-dir.patch:-p1 \
+ ${FILESDIR}/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch:-p1 \
+ ${FILESDIR}/0001-libs-xenstore-set-correct-FreeBSD-device.patch:-p1
CONFIGURE_ARGS+= --with-extra-qemuu-configure-args="${QEMU_ARGS}" \
--with-system-seabios=${LOCALBASE}/share/seabios/bios.bin
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 28, 12:30 PM (20 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29068400
Default Alt Text
D9029.id23878.diff (9 KB)
Attached To
Mode
D9029: Extract do-patch into a separate script.
Attached
Detach File
Event Timeline
Log In to Comment