File patch-wrapper-rpm.diff of Package quilt
From: Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
Date: Thu, 1 Dec 2016 11:15:48 +0100
Subject: patch-wrapper: Make the patch names that quilt shows more convenient
Git-commit: 1cde19389bc5805da713361ac32869388e42f592
Patch-mainline: yes
When operating on an rpm package, create links to the rpm sources and
build directories and make patch names relative to these links. This is
more convenient than using ugly absolute paths.
--- a/bin/patch-wrapper.in
+++ b/bin/patch-wrapper.in
@@ -28,7 +28,7 @@ fi
backup_files()
{
- declare dir=${QUILT_PC:-.pc}/$patch
+ declare dir=${QUILT_PC:-.pc}/$name
if [ "$backup_mode" = --backup-if-mismatch ]
then
@@ -201,39 +201,56 @@ then
fi
quilt_patches=${QUILT_PATCHES:-patches}
-dir=$(dirname "$quilt_patches/$patch")
-mkdir -p "$dir"
-if [ -e "$patch" ]
+
+if [ "${patch#$RPM_SOURCE_DIR}" != "$patch" ]
+then
+ name=SOURCES/${patch#$RPM_SOURCE_DIR/}
+ if [ ! -e "$quilt_patches/SOURCES" ]
+ then
+ mkdir -p "$quilt_patches"
+ ln -s $RPM_SOURCE_DIR "$quilt_patches/SOURCES"
+ fi
+elif [ "${patch#$RPM_BUILD_DIR}" != "$patch" ]
then
+ name=BUILD/${patch#$RPM_BUILD_DIR/}
+ if [ ! -e "$quilt_patches/BUILD" ]
+ then
+ mkdir -p "$quilt_patches"
+ ln -s $RPM_BUILD_DIR "$quilt_patches/BUILD"
+ fi
+else
+ name=${patch#/}
+ dir=$(dirname "$quilt_patches/$name")
+ mkdir -p "$dir"
+
if [ "${patch:0:1}" = / ]
then
- ln -s "$patch" "$quilt_patches$patch"
- patch=${patch#/}
+ ln -s "$patch" "$quilt_patches/${name#/}"
else
- while ! [ "$dir/$updir$patch" -ef "$patch" ]
+ while ! [ "$dir/$updir$name" -ef "$patch" ]
do
updir=$updir../
[ ${#updir} -gt 96 ] && break
done
- if [ "$dir/$updir$patch" -ef "$patch" ]
+ if [ "$dir/$updir$name" -ef "$patch" ]
then
- ln -s "$updir$patch" "$quilt_patches/$patch"
+ ln -s "$updir$patch" "$quilt_patches/$name"
fi
fi
fi
if [ "$opt_strip" = -p1 ]; then
- echo "$patch"
+ echo "$name"
else
- echo "$patch $opt_strip"
+ echo "$name $opt_strip"
fi >> $quilt_patches/series
-$PATCH "${new_options[@]}" --backup --prefix "${QUILT_PC:-.pc}/$patch/" \
+$PATCH "${new_options[@]}" --backup --prefix "${QUILT_PC:-.pc}/$name/" \
| backup_files
status=${PIPESTATUS[0]}
if [ $status -eq 0 ]
then
- dir=${QUILT_PC:-.pc}/$patch
+ dir=${QUILT_PC:-.pc}/$name
if [ ! -e "$dir" ]
then
mkdir -p "$dir"
@@ -243,6 +260,6 @@ then
then
echo 2 > ${QUILT_PC:-.pc}/.version
fi
- echo "$patch" >> "${QUILT_PC:-.pc}/applied-patches"
+ echo "$name" >> "${QUILT_PC:-.pc}/applied-patches"
fi
exit $status