forked from pool/quilt
Accepting request 257865 from devel:tools:scm
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/257865 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/quilt?expand=0&rev=58
This commit is contained in:
commit
b67f82e509
24
inspect-skip-version-check.patch
Normal file
24
inspect-skip-version-check.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From: Jean Delvare <jdelvare@suse.de>
|
||||
Subject: inspect: Skip version check
|
||||
Upstream: Committed (6a5fcdc24dc47419da4cd688fe7fbfa189c91976)
|
||||
|
||||
Commit a626fcf8b95f2ff51701a00d65043b9f65207514 (setup: Skip version
|
||||
check) is insufficient for spec file-based setup commands. inspect
|
||||
itself also sources patchfns, so it must also skip the version check
|
||||
explicitly.
|
||||
---
|
||||
quilt/scripts/inspect.in | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/quilt/scripts/inspect.in
|
||||
+++ b/quilt/scripts/inspect.in
|
||||
@@ -8,6 +8,9 @@
|
||||
|
||||
: ${QUILT_DIR=@QUILT_DIR@}
|
||||
|
||||
+# Version check is irrelevant to this script.
|
||||
+skip_version_check=1
|
||||
+
|
||||
if ! [ -r $QUILT_DIR/scripts/patchfns ]
|
||||
then
|
||||
echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2
|
139
quilt-check-modified-series.patch
Normal file
139
quilt-check-modified-series.patch
Normal file
@ -0,0 +1,139 @@
|
||||
From: Jean Delvare <jdelvare@suse.de>
|
||||
Subject: Check for series file consistency
|
||||
Upstream: Submitted (2014-10-14)
|
||||
|
||||
Quilt allows manual changes to the series file to some degree. For
|
||||
example, adding comments or reordering patches in the unapplied
|
||||
section of the series file is OK. However, changing the order of
|
||||
applied patches breaks a number of assumptions and can cause quilt to
|
||||
produce unexpected or confusing results.
|
||||
|
||||
For example, starting from this:
|
||||
|
||||
+ patches/01.patch
|
||||
= patches/02.patch
|
||||
patches/03.patch
|
||||
patches/04.patch
|
||||
|
||||
and moving the last patch at the beginning of the series file,
|
||||
"quilt series -v" will print:
|
||||
|
||||
+ patches/04.patch
|
||||
+ patches/01.patch
|
||||
= patches/02.patch
|
||||
patches/03.patch
|
||||
|
||||
That is, it will claim that 04.patch is applied, while it it not.
|
||||
Likewise, 04.patch would be listed by neither "quilt applied" nor
|
||||
"quilt unapplied".
|
||||
|
||||
While addressing all such cases would certainly be possible, that
|
||||
would require a significant amount of work, and would come with
|
||||
performance penalties. It would also be difficult to be certain that
|
||||
all issues have been found and addressed. So it seems more reasonable
|
||||
to simply spot such manual changes to the series file and ask the user
|
||||
to pop all patches to start from a clean state as needed.
|
||||
---
|
||||
quilt/scripts/patchfns.in | 35 ++++++++++++++++++++++++++++++++---
|
||||
test/altered-series.test | 44 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 76 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/quilt/scripts/patchfns.in
|
||||
+++ b/quilt/scripts/patchfns.in
|
||||
@@ -948,6 +948,24 @@ version_check()
|
||||
return 1
|
||||
}
|
||||
|
||||
+consistency_check()
|
||||
+{
|
||||
+ local top applied patches
|
||||
+
|
||||
+ top=$(top_patch)
|
||||
+ applied=$(applied_before "$top")
|
||||
+ patches=$(patches_before "$top")
|
||||
+
|
||||
+ if [ "$applied" != "$patches" ]
|
||||
+ then
|
||||
+ return 1
|
||||
+ else
|
||||
+ # Skip check until series file is modified again
|
||||
+ touch "$DB"
|
||||
+ return 0
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
print_patch()
|
||||
{
|
||||
echo "${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/}$1"
|
||||
@@ -1094,10 +1112,21 @@ fi
|
||||
|
||||
DB="$QUILT_PC/applied-patches"
|
||||
|
||||
-if [ -z "$skip_version_check" ] && ! version_check
|
||||
+if [ -z "$skip_version_check" ]
|
||||
then
|
||||
- printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2
|
||||
- exit 1
|
||||
+ if ! version_check
|
||||
+ then
|
||||
+ printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
+ # Check if series file was modified manually, and if this is the case,
|
||||
+ # make sure it is still consistent with the applied patches
|
||||
+ if [ -s "$DB" -a ! "$DB" -nt "$SERIES" ] && [ "$QUILT_COMMAND" != pop ] && ! consistency_check
|
||||
+ then
|
||||
+ printf $"The series file no longer matches the applied patches. Please run 'quilt pop -a'.\n" >&2
|
||||
+ exit 1
|
||||
+ fi
|
||||
fi
|
||||
### Local Variables:
|
||||
### mode: shell-script
|
||||
--- /dev/null
|
||||
+++ b/test/altered-series.test
|
||||
@@ -0,0 +1,44 @@
|
||||
+# Check that manual changes to the series file are detected
|
||||
+
|
||||
+$ mkdir patches
|
||||
+$ cat > patches/series
|
||||
+< 01.patch
|
||||
+< 02.patch
|
||||
+< 03.patch
|
||||
+
|
||||
+$ quilt push -q
|
||||
+> Applying patch patches/01.patch
|
||||
+> Patch patches/01.patch does not exist; applied empty patch
|
||||
+> Now at patch patches/01.patch
|
||||
+
|
||||
+$ quilt series -v
|
||||
+> = patches/01.patch
|
||||
+> patches/02.patch
|
||||
+> patches/03.patch
|
||||
+
|
||||
+# Touch the series file but preserve the order -> OK
|
||||
+$ touch patches/series
|
||||
+
|
||||
+$ quilt series -v
|
||||
+> = patches/01.patch
|
||||
+> patches/02.patch
|
||||
+> patches/03.patch
|
||||
+
|
||||
+# Change the order of the patch series -> complain
|
||||
+$ cat > patches/series
|
||||
+< 03.patch
|
||||
+< 01.patch
|
||||
+< 02.patch
|
||||
+
|
||||
+$ quilt series -v
|
||||
+> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
|
||||
+
|
||||
+$ quilt pop -a
|
||||
+> Patch patches/01.patch appears to be empty, removing
|
||||
+>
|
||||
+> No patches applied
|
||||
+
|
||||
+$ quilt series -v
|
||||
+> patches/03.patch
|
||||
+> patches/01.patch
|
||||
+> patches/02.patch
|
@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 14 13:07:53 CEST 2014 - jdelvare@suse.de
|
||||
|
||||
- quilt-check-modified-series.patch: Check for series file
|
||||
consistency.
|
||||
- setup-fix-tar-with-long-options.patch,
|
||||
inspect-skip-version-check.patch: Update upstream status.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 9 15:00:35 CEST 2014 - jdelvare@suse.de
|
||||
|
||||
- inspect-skip-version-check.patch: Skip version check when
|
||||
running "quilt setup" on a spec file. The previous fix only
|
||||
worked when running "quilt setup" on a series file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 1 14:10:22 CEST 2014 - jdelvare@suse.de
|
||||
|
||||
|
@ -49,6 +49,8 @@ Patch7: setup-fix-tar-with-long-options.patch
|
||||
Patch8: quilt-format-options-pass-through.patch
|
||||
Patch9: pop-add-auto-refresh.patch
|
||||
Patch10: push-add-auto-refresh.patch
|
||||
Patch11: inspect-skip-version-check.patch
|
||||
Patch12: quilt-check-modified-series.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildArch: noarch
|
||||
Recommends: procmail
|
||||
@ -78,6 +80,8 @@ http://www.zip.com.au/~akpm/linux/patches/.
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
|
||||
%build
|
||||
# --with-rpmbuild=/usr/lib/rpm/rpmb:
|
||||
|
@ -1,6 +1,6 @@
|
||||
From: Jean Delvare <jdelvare@suse.de>
|
||||
Subject: inspect: Handle long options passed to tar
|
||||
Upstream: Submitted
|
||||
Upstream: Committed (1e9f433f693b4ee09ebf3267222b11694448e81f)
|
||||
|
||||
The command line interface to tar is complex and sometimes confusing,
|
||||
but we should still do our best to figure out where the file name is
|
||||
|
Loading…
Reference in New Issue
Block a user