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
|
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
|
Patch8: quilt-format-options-pass-through.patch
|
||||||
Patch9: pop-add-auto-refresh.patch
|
Patch9: pop-add-auto-refresh.patch
|
||||||
Patch10: push-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
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Recommends: procmail
|
Recommends: procmail
|
||||||
@ -78,6 +80,8 @@ http://www.zip.com.au/~akpm/linux/patches/.
|
|||||||
%patch8 -p1
|
%patch8 -p1
|
||||||
%patch9 -p1
|
%patch9 -p1
|
||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
%patch12 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# --with-rpmbuild=/usr/lib/rpm/rpmb:
|
# --with-rpmbuild=/usr/lib/rpm/rpmb:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
From: Jean Delvare <jdelvare@suse.de>
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
Subject: inspect: Handle long options passed to tar
|
Subject: inspect: Handle long options passed to tar
|
||||||
Upstream: Submitted
|
Upstream: Committed (1e9f433f693b4ee09ebf3267222b11694448e81f)
|
||||||
|
|
||||||
The command line interface to tar is complex and sometimes confusing,
|
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
|
but we should still do our best to figure out where the file name is
|
||||||
|
Loading…
Reference in New Issue
Block a user