summaryrefslogtreecommitdiff
path: root/copy-patches.sh
diff options
context:
space:
mode:
Diffstat (limited to 'copy-patches.sh')
-rwxr-xr-xcopy-patches.sh65
1 files changed, 65 insertions, 0 deletions
diff --git a/copy-patches.sh b/copy-patches.sh
new file mode 100755
index 0000000..ce1fbb0
--- /dev/null
+++ b/copy-patches.sh
@@ -0,0 +1,65 @@
+#!/bin/bash -
+
+set -e
+
+# Maintainer script to copy patches from the git repo to the current
+# directory. Use it like this:
+# ./copy-patches.sh
+
+project=libguestfs
+rhel_version=9.4
+
+# Check we're in the right directory.
+if [ ! -f $project.spec ]; then
+ echo "$0: run this from the directory containing '$project.spec'"
+ exit 1
+fi
+
+case `id -un` in
+ rjones) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
+ lacos) git_checkout=$HOME/src/v2v/$project ;;
+ *) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
+esac
+if [ ! -d $git_checkout ]; then
+ echo "$0: $git_checkout does not exist"
+ echo "This script is only for use by the maintainer when preparing a"
+ echo "$project release on RHEL."
+ exit 1
+fi
+
+# Get the base version of the project.
+version=`grep '^Version:' $project.spec | awk '{print $2}'`
+tag="v$version"
+
+# Remove any existing patches.
+git rm -f [0-9]*.patch ||:
+rm -f [0-9]*.patch
+
+# Get the patches.
+(
+ cd $git_checkout
+ rm -f [0-9]*.patch
+ git -c core.abbrev=8 format-patch -O/dev/null --subject-prefix=PATCH -N \
+ --submodule=diff --no-signature --patience $tag
+)
+mv $git_checkout/[0-9]*.patch .
+
+# Remove any not to be applied.
+rm -f *NOT-FOR-RPM*.patch
+
+# Add the patches.
+git add [0-9]*.patch
+
+# Print out the patch lines.
+echo
+echo "--- Copy the following text into $project.spec file"
+echo
+
+echo "# Patches."
+for f in [0-9]*.patch; do
+ n=`echo $f | awk -F- '{print $1}'`
+ echo "Patch$n: $f"
+done
+
+echo
+echo "--- End of text"