summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Desroches <ludovic.desroches@atmel.com>2012-03-21 13:26:27 (GMT)
committer Peter Korsgaard <jacmet@sunsite.dk>2012-03-21 12:47:27 (GMT)
commit64ac7199525f3dbd0ce49f7ec31715a2a1b63725 (patch)
tree8d654fb846ff291e276025b92a7f3a60f6c60668
parentc9ccdf877a6a5af54ac8b6d2809361ed1ddcc221 (diff)
downloadbuildroot-64ac7199525f3dbd0ce49f7ec31715a2a1b63725.tar.gz
buildroot-64ac7199525f3dbd0ce49f7ec31715a2a1b63725.tar.bz2
apply-patches.sh: add recursivity when scanning patchdir
Recursivity is needed with some tarballs containing debian patches: . debian changelog control patches 02-COPYRIGHT.patch [...] Since we can find some files which are not patches in those directories, only consider .patch* and .diff* files as valid patches. Due to recursivity, strip-components option is no more necessary so it has been removed. Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rwxr-xr-xsupport/scripts/apply-patches.sh12
1 files changed, 9 insertions, 3 deletions
diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
index 968e2a4..e4b98bc 100755
--- a/support/scripts/apply-patches.sh
+++ b/support/scripts/apply-patches.sh
@@ -40,8 +40,14 @@ function apply_patch {
type="zip"; uncomp="unzip -d"; ;;
*.Z)
type="compress"; uncomp="uncompress -c"; ;;
+ *.diff*)
+ type="diff"; uncomp="cat"; ;;
+ *.patch*)
+ type="patch"; uncomp="cat"; ;;
*)
- type="plaintext"; uncomp="cat"; ;;
+ echo "Unsupported format file for ${patch}, skip it";
+ return 0;
+ ;;
esac
echo ""
echo "Applying $patch using ${type}: "
@@ -67,12 +73,12 @@ function scan_patchdir {
else
for i in `cd $path; ls -d $patches 2> /dev/null` ; do
if [ -d "${path}/$i" ] ; then
- echo "${path}/$i skipped"
+ scan_patchdir "${path}/$i"
elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then
unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked"
rm -rf "$unpackedarchivedir" 2> /dev/null
mkdir "$unpackedarchivedir"
- tar -C "$unpackedarchivedir" --strip-components=1 -xaf "${path}/$i"
+ tar -C "$unpackedarchivedir" -xaf "${path}/$i"
scan_patchdir "$unpackedarchivedir"
else
apply_patch "$path" "$i" || exit 1