summaryrefslogtreecommitdiffstats
path: root/support/scripts
diff options
context:
space:
mode:
authorArnout Vandecappelle <arnout@mind.be>2015-11-07 00:27:12 +0100
committerPeter Korsgaard <peter@korsgaard.com>2015-11-17 09:24:53 +0100
commit7caf46439c684340a494e3aed345c479ec6927c2 (patch)
tree72e2559f5084a929506b92b5a9dd3b80a0a9dadc /support/scripts
parentb3f7f949f0935535bff5d2fd51e3e14308b714bc (diff)
downloadbuildroot-7caf46439c684340a494e3aed345c479ec6927c2.tar.gz
buildroot-7caf46439c684340a494e3aed345c479ec6927c2.zip
apply-patches.sh: use everything from the series file
When a series file exists, we should use every file mentioned in it, not just the ones ending with .patch or .diff. Also, there's no need to uncompress anything if it's mentioned in a series file (the tools that manipulate series files don't support compressed patches). Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Doug Kehn <rdkehn@yahoo.com> Tested-by: Doug Kehn <rdkehn@yahoo.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'support/scripts')
-rwxr-xr-xsupport/scripts/apply-patches.sh55
1 files changed, 30 insertions, 25 deletions
diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
index af6df9ec72..2edf05466f 100755
--- a/support/scripts/apply-patches.sh
+++ b/support/scripts/apply-patches.sh
@@ -16,8 +16,9 @@
# '*'. Pattern(s) describing the patch names you want to apply.
#
# The script will look recursively for patches from the patch directory. If a
-# file is named 'series' then only patches mentionned into it will be applied.
-# If not, the script will look for file names matching pattern(s). If the name
+# file named 'series' exists then the patches mentioned in it will be applied
+# as plain patches, regardless of their file name. If no 'series' file exists,
+# the script will look for file names matching pattern(s). If the name
# ends with '.tar.*', '.tbz2' or '.tgz', the file is considered as an archive
# and will be uncompressed into a directory named
# '.patches-name_of_the_archive-unpacked'. It's the turn of this directory to
@@ -64,28 +65,32 @@ find ${builddir}/ '(' -name '*.rej' -o -name '.*.rej' ')' -print0 | \
function apply_patch {
path=$1
patch=$2
- case "$patch" in
- *.gz)
- type="gzip"; uncomp="gunzip -dc"; ;;
- *.bz)
- type="bzip"; uncomp="bunzip -dc"; ;;
- *.bz2)
- type="bzip2"; uncomp="bunzip2 -dc"; ;;
- *.xz)
- type="xz"; uncomp="unxz -dc"; ;;
- *.zip)
- type="zip"; uncomp="unzip -d"; ;;
- *.Z)
- type="compress"; uncomp="uncompress -c"; ;;
- *.diff*)
- type="diff"; uncomp="cat"; ;;
- *.patch*)
- type="patch"; uncomp="cat"; ;;
- *)
- echo "Unsupported file type for ${path}/${patch}, skipping";
- return 0
- ;;
- esac
+ if [ "$3" ]; then
+ type="series"; uncomp="cat"
+ else
+ case "$patch" in
+ *.gz)
+ type="gzip"; uncomp="gunzip -dc"; ;;
+ *.bz)
+ type="bzip"; uncomp="bunzip -dc"; ;;
+ *.bz2)
+ type="bzip2"; uncomp="bunzip2 -dc"; ;;
+ *.xz)
+ type="xz"; uncomp="unxz -dc"; ;;
+ *.zip)
+ type="zip"; uncomp="unzip -d"; ;;
+ *.Z)
+ type="compress"; uncomp="uncompress -c"; ;;
+ *.diff*)
+ type="diff"; uncomp="cat"; ;;
+ *.patch*)
+ type="patch"; uncomp="cat"; ;;
+ *)
+ echo "Unsupported file type for ${path}/${patch}, skipping";
+ return 0
+ ;;
+ esac
+ fi
if [ -z "$silent" ] ; then
echo ""
echo "Applying $patch using ${type}: "
@@ -111,7 +116,7 @@ function scan_patchdir {
# to apply patches. Skip line starting with a dash.
if [ -e "${path}/series" ] ; then
for i in `grep -Ev "^#" ${path}/series 2> /dev/null` ; do
- apply_patch "$path" "$i"
+ apply_patch "$path" "$i" series
done
else
for i in `cd $path; ls -d $patches 2> /dev/null` ; do
OpenPOWER on IntegriCloud