path: root/support
diff options
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-06-24 21:59:36 +0200
committerGravatar Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2017-09-19 22:51:25 +0200
commit85f11d08c387c200dbb59a8559f2ba62376689bf (patch)
tree4d23a07f383a2ea4ed329801bf96d9ea429c16b5 /support
parentb55ff5a7cdaa8a45101d11a3c095d9aeab1f0ce4 (diff)
support/scripts/apply-patches.sh: do not apply patches with renames
Patches with renames apply properly with patch >= 2.7, but not with older patch versions. Since "git format-patch" by default generates patches with renames, Buildroot developers often don't realize that their patches will not apply properly on build machines that have patch < 2.7. In order to prevent such a situation from happening again, this commit adds some logic in apply-patches.sh to refuse applying patches that contain renames. Note that just searching for '^rename' is not sufficient, since the patch commit message may contain the words "rename from" or "rename to" as well. Therefore, the grep expression is made as accurate as possible, checking both. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> [Arnout: spaces instead of tabs (suggested by Yann); extend commit message.] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Diffstat (limited to 'support')
1 files changed, 5 insertions, 0 deletions
diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
index 7ccb39dd8f..66fef262ee 100755
--- a/support/scripts/apply-patches.sh
+++ b/support/scripts/apply-patches.sh
@@ -113,6 +113,11 @@ function apply_patch {
echo " to be applied : ${path}/${patch}"
exit 1
+ if grep -q "^rename from" ${path}/${patch} && \
+ grep -q "^rename to" ${path}/${patch} ; then
+ echo "Error: patch contains some renames, not supported by old patch versions"
+ exit 1
+ fi
echo "${path}/${patch}" >> ${builddir}/.applied_patches_list
${uncomp} "${path}/$patch" | patch -g0 -p1 -E -d "${builddir}" -t -N $silent
if [ $? != 0 ] ; then