quilt: Remove test workarounds.
* gnu/packages/patches/quilt-compat-getopt-fix-second-separator.patch, gnu/packages/patches/quilt-compat-getopt-fix-option-with-nondigit-param.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/patchutils.scm (quilt)[source]: Use them. [arguments]: Remove workarounds in 'patch-tests' phase.
This commit is contained in:
parent
227ce488d7
commit
43eb42ef01
|
@ -1102,6 +1102,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/quagga-reproducible-build.patch \
|
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||||
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
||||||
%D%/packages/patches/quilt-test-fix-regex.patch \
|
%D%/packages/patches/quilt-test-fix-regex.patch \
|
||||||
|
%D%/packages/patches/quilt-compat-getopt-fix-second-separator.patch \
|
||||||
|
%D%/packages/patches/quilt-compat-getopt-fix-option-with-nondigit-param.patch \
|
||||||
%D%/packages/patches/qtwebkit-pbutils-include.patch \
|
%D%/packages/patches/qtwebkit-pbutils-include.patch \
|
||||||
%D%/packages/patches/rapicorn-isnan.patch \
|
%D%/packages/patches/rapicorn-isnan.patch \
|
||||||
%D%/packages/patches/raptor2-heap-overflow.patch \
|
%D%/packages/patches/raptor2-heap-overflow.patch \
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Subject: compat/getopt: Allow non-digit parameter embedded in short option
|
||||||
|
|
||||||
|
The compatibility getopt script allows only digit parameters to be
|
||||||
|
embedded in short options. Util-linux's getopt implementation does
|
||||||
|
not have such a restriction and allows any parameter to be embedded
|
||||||
|
in short options. As a consequence, using the compatibility getopt
|
||||||
|
script would choke for example on "-pab", which is a legal option
|
||||||
|
of the "quilt refresh" command.
|
||||||
|
|
||||||
|
Remove the limitation on digits so that the compatibility getopt
|
||||||
|
script allows what util-linux allows. This fixes the second half
|
||||||
|
of bug #54772:
|
||||||
|
https://savannah.nongnu.org/bugs/index.php?54772
|
||||||
|
|
||||||
|
As a side note, this feature of the compatibility script was broken
|
||||||
|
anyway, as it would output the digits in reverse order.
|
||||||
|
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
||||||
|
---
|
||||||
|
compat/getopt.in | 13 ++++---------
|
||||||
|
1 file changed, 4 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
--- quilt.orig/compat/getopt.in 2018-10-03 16:05:56.818667040 +0200
|
||||||
|
+++ quilt/compat/getopt.in 2018-10-03 16:12:17.624841732 +0200
|
||||||
|
@@ -108,15 +108,10 @@ foreach my $word (@words) {
|
||||||
|
if (scalar(@letters) == 0) {
|
||||||
|
$need_param = $letter;
|
||||||
|
} else {
|
||||||
|
- # short options can have numerical args
|
||||||
|
- # embedded in the short option list: -UO
|
||||||
|
- die "unexpected character after option $letter"
|
||||||
|
- if ($letters[$#letters] !~ /[0-9]/);
|
||||||
|
- my @digits;
|
||||||
|
- while (scalar(@letters) && ($letters[$#letters] =~ /[0-9]/)) {
|
||||||
|
- push @digits, pop @letters;
|
||||||
|
- }
|
||||||
|
- push @options, quote_word(join('', reverse @digits));
|
||||||
|
+ # short options can have args
|
||||||
|
+ # embedded in the short option list
|
||||||
|
+ push @options, quote_word(join('', reverse @letters));
|
||||||
|
+ @letters = ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Subject: compat/getopt: Handle a second separator
|
||||||
|
|
||||||
|
getopt can be passed 2 '--' separators. The first one tells that
|
||||||
|
getopt options are over and target program options start. The second
|
||||||
|
one tells that the target program's options are over and following
|
||||||
|
arguments should be treated as non-options even if they look like
|
||||||
|
options.
|
||||||
|
|
||||||
|
This second separator was not handled, causing the compatibility
|
||||||
|
getopt script to treat the following arguments as options, eventually
|
||||||
|
failing one way or another.
|
||||||
|
|
||||||
|
Properly detect and handle the second separator. This fixes the first
|
||||||
|
half of bug #54772:
|
||||||
|
https://savannah.nongnu.org/bugs/index.php?54772
|
||||||
|
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
||||||
|
---
|
||||||
|
compat/getopt.in | 13 ++++++++++---
|
||||||
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- quilt.orig/compat/getopt.in 2018-10-03 15:23:21.147620172 +0200
|
||||||
|
+++ quilt/compat/getopt.in 2018-10-03 16:05:56.818667040 +0200
|
||||||
|
@@ -8,12 +8,12 @@
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
-my $opts;
|
||||||
|
+my $opts = '';
|
||||||
|
my @words;
|
||||||
|
my $found_sep = 0;
|
||||||
|
|
||||||
|
foreach my $arg (@ARGV) {
|
||||||
|
- if ($arg eq '--') {
|
||||||
|
+ if (!$found_sep && $arg eq '--') {
|
||||||
|
$found_sep = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
@@ -62,10 +62,17 @@ sub quote_word
|
||||||
|
return "'$word'";
|
||||||
|
}
|
||||||
|
|
||||||
|
+# there can be a second separator, to inhibit processing following arguments
|
||||||
|
+# as options
|
||||||
|
+$found_sep = 0;
|
||||||
|
foreach my $word (@words) {
|
||||||
|
+ if ($word eq '--') {
|
||||||
|
+ $found_sep = 1;
|
||||||
|
+ next;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
# allow '-' to be an option value
|
||||||
|
- if (!$need_param && $word !~ /^-./) {
|
||||||
|
+ if ($found_sep || (!$need_param && $word !~ /^-./)) {
|
||||||
|
push @barewords, quote_word($word);
|
||||||
|
next;
|
||||||
|
}
|
|
@ -103,7 +103,9 @@ listing the files modified by a patch.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06b816m2gz9jfif7k9v2hrm7fz76zjg5pavf7hd3ifybwn4cgjzn"))
|
"06b816m2gz9jfif7k9v2hrm7fz76zjg5pavf7hd3ifybwn4cgjzn"))
|
||||||
(patches (search-patches "quilt-test-fix-regex.patch"))))
|
(patches (search-patches "quilt-test-fix-regex.patch"
|
||||||
|
"quilt-compat-getopt-fix-second-separator.patch"
|
||||||
|
"quilt-compat-getopt-fix-option-with-nondigit-param.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gettext" ,gnu-gettext)))
|
`(("gettext" ,gnu-gettext)))
|
||||||
|
@ -122,16 +124,6 @@ listing the files modified by a patch.")
|
||||||
'("test/run"
|
'("test/run"
|
||||||
"test/edit.test")
|
"test/edit.test")
|
||||||
(("/bin/sh") (which "sh")))
|
(("/bin/sh") (which "sh")))
|
||||||
(substitute* "test/create-delete.test"
|
|
||||||
;; We'd rather use quilt's compat/getopt than declare a
|
|
||||||
;; dependency on util-linux, but this test fails because of
|
|
||||||
;; compat/getopt's handling of "---" in this test, so remove it
|
|
||||||
;; for now.
|
|
||||||
((" ---") ""))
|
|
||||||
(substitute* '("test/empty-files.test" "test/faildiff.test")
|
|
||||||
;; compat/getopt seems not to handle splitting of short opts
|
|
||||||
;; from its arguments.
|
|
||||||
(("-pab") "-p ab"))
|
|
||||||
#t))
|
#t))
|
||||||
(add-after 'install 'wrap-program
|
(add-after 'install 'wrap-program
|
||||||
;; quilt's configure checks for the absolute path to the utilities it
|
;; quilt's configure checks for the absolute path to the utilities it
|
||||||
|
|
Loading…
Reference in New Issue