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/quickswitch-fix-dmenu-check.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/rapicorn-isnan.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
|
||||
(base32
|
||||
"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)
|
||||
(native-inputs
|
||||
`(("gettext" ,gnu-gettext)))
|
||||
|
@ -122,16 +124,6 @@ listing the files modified by a patch.")
|
|||
'("test/run"
|
||||
"test/edit.test")
|
||||
(("/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))
|
||||
(add-after 'install 'wrap-program
|
||||
;; quilt's configure checks for the absolute path to the utilities it
|
||||
|
|
Loading…
Reference in New Issue