[Buildroot] [RFC PATCH 6/6] apply-patches.sh: change archive management
Arnout Vandecappelle
arnout at mind.be
Fri Feb 10 22:48:08 UTC 2012
On Monday 06 February 2012 02:47:19 ludovic.desroches at atmel.com wrote:
> From: Ludovic Desroches <ludovic.desroches at atmel.com>
>
> The way archives were managed was incorrect because the uncompressed archives
> were sent directly to patch command. It means that alphabetical patch orderwas
> not respected.
>
> Signed-off-by: Ludovic Desroches <ludovic.desroches at atmel.com>
> ---
> support/scripts/apply-patches.sh | 15 +++++++++++----
> 1 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
> index 3a73ab9..9c2fbb3 100755
> --- a/support/scripts/apply-patches.sh
> +++ b/support/scripts/apply-patches.sh
> @@ -25,10 +25,6 @@ function apply_patch {
> type="zip"; uncomp="unzip -d"; ;;
> *.Z)
> type="compress"; uncomp="uncompress -c"; ;;
> - *.tgz)
> - type="tar gzip"; uncomp="gunzip -dc"; apply="tar xvf - -C"; ;;
> - *.tar)
> - type="tar"; uncomp="cat"; apply="tar xvf - -C"; ;;
> *)
> type="plaintext"; uncomp="cat"; ;;
> esac
> @@ -50,6 +46,17 @@ function scan_patchdir {
> for i in `cd $path; ls -d $patches 2> /dev/null` ; do
> if [ -d "${path}/$i" ] ; then
> scan_patchdir "${path}/$i"
> + elif echo "$i" | grep -q -E "tar\.bz$|tbz$|tar.\bz2$|tbz2$|tar\.gz$|tgz$" ; then
Wouldn't '\.tar(\..*)?$|\.tbz2?$|\.tgz$' be a better pattern?
> + unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked"
> + rm -rf "$unpackedarchivedir" 2> /dev/null
> + mkdir "$unpackedarchivedir"
> + if echo "$i" | grep "tar\.bz$|tbz$|tar\.bz2$|.tbz2$" ; then
> + tar_options="-xjf"
> + else
> + tar_options="-xzf"
> + fi
You can also use tar -xaf, which selects compression automatically.
> + tar -C "$unpackedarchivedir" --strip-components=1 $tar_options "${path}/$i"
> + scan_patchdir "$unpackedarchivedir"
> else
> apply_patch "$path" "$i" || exit 1
> fi
>
Regards,
Arnout
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286540
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildroot.org/pipermail/buildroot/attachments/20120210/ce0cbfda/attachment-0001.html>
More information about the buildroot
mailing list