Skip to content

Commit

Permalink
Framework: partially sync with upstream
Browse files Browse the repository at this point in the history
Taken from: FreeBSD
  • Loading branch information
fichtner committed Jan 17, 2017
1 parent 049f70c commit 5bf06d4
Show file tree
Hide file tree
Showing 4 changed files with 203 additions and 80 deletions.
26 changes: 26 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,32 @@ in the release notes and/or placed into UPDATING.

All ports committers are allowed to commit to this file.

20160116:
AUTHOR: [email protected]

A new EXTRA_PATCH_TREE has been added. 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.

For example, if you have EXTRA_PATCH_TREE=/patches, when building
lang/perl5.24, any file named patch-* in /patches/lang/perl5.24/ will be used
to patch the Perl distribution.

20160116:
AUTHOR: [email protected]

During extraction of the do-patch target into a separate script, the "-d
PATCH_WRKSRC" had to be removed from the PATCH_ARGS and PATCH_DIST_ARGS
variables. If using these variables directly, you will need to adapt the
Makefile. For example:

${PATCH} ${PATCH_ARGS} < ${FILESDIR}/extra-patch

needs to be changed to:

${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} < ${FILESDIR}/extra-patch

20161218:
AUTHOR: [email protected]

Expand Down
121 changes: 121 additions & 0 deletions Mk/Scripts/do-patch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
#!/bin/sh
# $FreeBSD$
#
# MAINTAINER: [email protected]

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

111 changes: 37 additions & 74 deletions Mk/bsd.port.mk
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,11 @@ FreeBSD_MAINTAINER= [email protected]
# 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}
#
Expand Down Expand Up @@ -1993,12 +1998,11 @@ PATCH_STRIP?= -p0
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
Expand All @@ -2010,6 +2014,7 @@ PATCH_DIST_ARGS+= --batch

# Prevent breakage with VERSION_CONTROL=numbered
PATCH_ARGS+= -V simple
PATCH_DIST_ARGS+= -V simple

.if defined(PATCH_CHECK_ONLY)
PATCH_ARGS+= -C
Expand Down Expand Up @@ -2372,8 +2377,10 @@ _PATCH_SITES_ALL+= ${_PATCH_SITES_${_group}}
. 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=
Expand Down Expand Up @@ -3076,73 +3083,29 @@ do-extract:

.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)
Expand Down
25 changes: 19 additions & 6 deletions UPDATING
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,25 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.

20170116:
AFFECTS: users of java/wildfly10
AUTHOR: [email protected]

The java/wildfly10 port has been updated to 10.1.0. To complete the
migration you must copy your existing configuration (directories
"appclient", "standalone", and "domain") from /usr/local/wildfly-10.0.0
to /usr/local/wildfly10.

20170115:
AFFECTS: users of net-mgmt/librenms
AUTHOR: [email protected]

The following is recommended for /var/db/mysql/my.cnf

NOTE: these are global settings. Please read this first:

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

[mysqld]
innodb_file_per_table=1
sql-mode=""
Expand Down Expand Up @@ -186,7 +199,7 @@ you update your ports collection, before attempting any port upgrades.

Bareos v1.6.x changed the configuration scheme, from one configuration
file per Bareos component (file daemon, storage daemon, and director)
to several configuration files, in several directories, for each
to several configuration files, in several directories, for each
component. See http://doc.bareos.org/master/html/bareos-manual-main-reference.html

The new scheme will use all files named *.conf in the directory
Expand Down Expand Up @@ -214,7 +227,7 @@ you update your ports collection, before attempting any port upgrades.
- misc/osinfo-db: contains database with OS data
- devel/libosinfo: the library

As osinfo-db-tools now ships binaries that previously were
As osinfo-db-tools now ships binaries that previously were
part of libosinfo, it's required to delete the old libosinfo
package to prevent conflict because of same files installation:

Expand Down Expand Up @@ -440,15 +453,15 @@ you update your ports collection, before attempting any port upgrades.
AFFECTS: Users of net-im/ejabberd
AUTHOR: [email protected]

Before upgrading ejabberd to 16.09, please make sure to backup your
Before upgrading ejabberd to 16.09, please make sure to backup your
ejabberd data using:

% sudo -u ejabberd -H ejabberdctl backup /path/to/backup/file

In some cases, ejabberd may fail to start, for which a workaround is to
In some cases, ejabberd may fail to start, for which a workaround is to
remove the schema.DAT file from /var/spool/ejabberd before starting, and
then restoring everything from the backup using:

% sudo -u ejabberd -H ejabberdctl restore /path/to/backup/file

For more details:
Expand Down

0 comments on commit 5bf06d4

Please sign in to comment.