Skip to contentSkip to conversation

apply-patches.sh: use everything from the series file

PATCH New Arnout Vandecappelle (Essensium/Mind) 3 participants 3 messages Nov 6, 2015 – Nov 17, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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).

---
 support/scripts/apply-patches.sh | 55 ++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 25 deletions(-)
support/scripts/apply-patches.sh +30 -25
index af6df9e..2edf054 100755
@@ -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
Signature · 1 line
2.6.2
#1 lore raw

PATCH 1/1 apply-patches.sh: use everything from the series file

Quoted 7 lines · Arnout Vandecappelle (Essensium/Mind)

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).

Quoted 87 lines
---
 support/scripts/apply-patches.sh | 55 ++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 25 deletions(-)
support/scripts/apply-patches.sh +30 -25
index af6df9e..2edf054 100755
@@ -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
Signature · 1 line
2.6.2
#2 lore raw

PATCH 1/1 apply-patches.sh: use everything from the series file

In reply to Arnout Vandecappelle (Essensium/Mind)
Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle (Essensium/Mind) <[email protected]> writes:

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).

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard