Page MenuHomeFreeBSD

D9029.id23878.diff
No OneTemporary

D9029.id23878.diff

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

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)

Event Timeline