[Buildroot] [PATCH] apply-patches.sh: use everything from the series file
rdkehn at yahoo.com
rdkehn at yahoo.com
Sat Nov 7 15:50:29 UTC 2015
On Sat, Nov 07, 2015 at 12:27:12AM +0100, Arnout Vandecappelle (Essensium/Mind) wrote:
> 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 at mind.be>
> Cc: Doug Kehn <rdkehn at yahoo.com>
Tested-by: Doug Kehn <rdkehn at yahoo.com>
> ---
> support/scripts/apply-patches.sh | 55 ++++++++++++++++++++++------------------
> 1 file changed, 30 insertions(+), 25 deletions(-)
>
> diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
> index af6df9e..2edf054 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
> --
> 2.6.2
>
More information about the buildroot
mailing list