Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
134b1f6c62 |
15 changed files with 417 additions and 3835 deletions
|
|
@ -1 +0,0 @@
|
|||
1
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,2 +1 @@
|
|||
/grep-*.tar.xz
|
||||
/grep-*.tar.xz.sig
|
||||
grep-*.tar.xz
|
||||
|
|
|
|||
|
|
@ -0,0 +1,87 @@
|
|||
From 0435ebca64fbafcd62008c991dd9377d8a792dfc Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Sat, 22 Aug 2020 14:06:26 -0700
|
||||
Subject: [PATCH] Revert -L exit status change introduced in grep 3.2
|
||||
|
||||
Problems reported by Antonio Diaz Diaz in:
|
||||
https://bugs.gnu.org/28105#29
|
||||
* NEWS, doc/grep.texi (Exit Status), src/grep.c (usage):
|
||||
Adjust documentation accordingly.
|
||||
* src/grep.c (grepdesc, main): Go back to old behavior.
|
||||
* tests/skip-read: Adjust tests accordingly.
|
||||
---
|
||||
doc/grep.texi | 3 ---
|
||||
src/grep.c | 10 +++++-----
|
||||
tests/skip-read | 4 ++--
|
||||
4 files changed, 7 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/doc/grep.texi b/doc/grep.texi
|
||||
index 4b26f9d..02b1968 100644
|
||||
--- a/doc/grep.texi
|
||||
+++ b/doc/grep.texi
|
||||
@@ -1112,9 +1112,6 @@ and only when @env{POSIXLY_CORRECT} is not set.
|
||||
|
||||
Normally the exit status is 0 if a line is selected, 1 if no lines
|
||||
were selected, and 2 if an error occurred. However, if the
|
||||
-@option{-L} or @option{--files-without-match} is used, the exit status
|
||||
-is 0 if a file is listed, 1 if no files were listed, and 2 if an error
|
||||
-occurred. Also, if the
|
||||
@option{-q} or @option{--quiet} or @option{--silent} option is used
|
||||
and a line is selected, the exit status is 0 even if an error
|
||||
occurred. Other @command{grep} implementations may exit with status
|
||||
diff --git a/src/grep.c b/src/grep.c
|
||||
index 7ba602d..5764b2a 100644
|
||||
--- a/src/grep.c
|
||||
+++ b/src/grep.c
|
||||
@@ -1864,11 +1864,11 @@ grepdesc (int desc, bool command_line)
|
||||
fflush_errno ();
|
||||
}
|
||||
|
||||
- status = !count == !(list_files == LISTFILES_NONMATCHING);
|
||||
+ status = !count;
|
||||
|
||||
- if (list_files == LISTFILES_NONE || dev_null_output)
|
||||
+ if (list_files == LISTFILES_NONE)
|
||||
finalize_input (desc, &st, ineof);
|
||||
- else if (status == 0)
|
||||
+ else if (list_files == (status ? LISTFILES_NONMATCHING : LISTFILES_MATCHING))
|
||||
{
|
||||
print_filename ();
|
||||
putchar_errno ('\n' & filename_mask);
|
||||
@@ -1997,7 +1997,7 @@ Context control:\n\
|
||||
printf (_("\
|
||||
When FILE is '-', read standard input. With no FILE, read '.' if\n\
|
||||
recursive, '-' otherwise. With fewer than two FILEs, assume -h.\n\
|
||||
-Exit status is 0 if any line (or file if -L) is selected, 1 otherwise;\n\
|
||||
+Exit status is 0 if any line is selected, 1 otherwise;\n\
|
||||
if any error occurs and -q is not given, the exit status is 2.\n"));
|
||||
emit_bug_reporting_address ();
|
||||
}
|
||||
@@ -2835,7 +2835,7 @@ main (int argc, char **argv)
|
||||
|
||||
/* POSIX says -c, -l and -q are mutually exclusive. In this
|
||||
implementation, -q overrides -l and -L, which in turn override -c. */
|
||||
- if (exit_on_match)
|
||||
+ if (exit_on_match | dev_null_output)
|
||||
list_files = LISTFILES_NONE;
|
||||
if ((exit_on_match | dev_null_output) || list_files != LISTFILES_NONE)
|
||||
{
|
||||
diff --git a/tests/skip-read b/tests/skip-read
|
||||
index 2a17334..1e9e718 100755
|
||||
--- a/tests/skip-read
|
||||
+++ b/tests/skip-read
|
||||
@@ -15,9 +15,9 @@ for opts in '-m0 y' '-f /dev/null' '-v ""'; do
|
||||
eval returns_ 1 grep -l $opts $matcher /dev/null > out || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
done
|
||||
- eval grep -L $opts $matcher /dev/null > out || fail=1
|
||||
+ eval returns_ 1 grep -L $opts $matcher /dev/null > out || fail=1
|
||||
compare exp out || fail=1
|
||||
- eval grep -L $opts $matcher /dev/null > /dev/null || fail=1
|
||||
+ eval returns_ 1 grep -L $opts $matcher /dev/null > /dev/null || fail=1
|
||||
done
|
||||
done
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
||||
45
0001-perror-strerror_r-remove-unportable-tests.patch
Normal file
45
0001-perror-strerror_r-remove-unportable-tests.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
>From 175e0bc72808d564074c4adcc72aeadb74adfcc6 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Thu, 27 Aug 2020 17:52:58 -0700
|
||||
Subject: [PATCH] perror, strerror_r: remove unportable tests
|
||||
|
||||
Problem reported by Florian Weimer in:
|
||||
https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html
|
||||
* tests/test-perror2.c (main):
|
||||
* tests/test-strerror_r.c (main): Omit unportable tests.
|
||||
---
|
||||
gnulib-tests/test-perror2.c | 3 ---
|
||||
gnulib-tests/test-strerror_r.c | 3 ---
|
||||
2 files changed, 6 deletions(-)
|
||||
|
||||
diff --git a/gnulib-tests/test-perror2.c b/gnulib-tests/test-perror2.c
|
||||
index 1d14eda7b..c6214dd25 100644
|
||||
--- a/gnulib-tests/test-perror2.c
|
||||
+++ b/gnulib-tests/test-perror2.c
|
||||
@@ -79,9 +79,6 @@ main (void)
|
||||
errno = -5;
|
||||
perror ("");
|
||||
ASSERT (!ferror (stderr));
|
||||
- ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
|
||||
- ASSERT (msg2 == msg4 || STREQ (msg2, str2));
|
||||
- ASSERT (msg3 == msg4 || STREQ (msg3, str3));
|
||||
ASSERT (STREQ (msg4, str4));
|
||||
|
||||
free (str1);
|
||||
diff --git a/gnulib-tests/test-strerror_r.c b/gnulib-tests/test-strerror_r.c
|
||||
index b11d6fd9f..c1dbcf837 100644
|
||||
--- a/gnulib-tests/test-strerror_r.c
|
||||
+++ b/gnulib-tests/test-strerror_r.c
|
||||
@@ -165,9 +165,6 @@ main (void)
|
||||
|
||||
strerror_r (EACCES, buf, sizeof buf);
|
||||
strerror_r (-5, buf, sizeof buf);
|
||||
- ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
|
||||
- ASSERT (msg2 == msg4 || STREQ (msg2, str2));
|
||||
- ASSERT (msg3 == msg4 || STREQ (msg3, str3));
|
||||
ASSERT (STREQ (msg4, str4));
|
||||
|
||||
free (str1);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -7,5 +7,5 @@ if ( $status == 1 ) then
|
|||
endif
|
||||
|
||||
alias grep 'grep --color=auto'
|
||||
alias egrep 'grep -E --color=auto'
|
||||
alias fgrep 'grep -F --color=auto'
|
||||
alias egrep 'egrep --color=auto'
|
||||
alias fgrep 'fgrep --color=auto'
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
/usr/libexec/grepconf.sh -c || return
|
||||
|
||||
alias grep='grep --color=auto' 2>/dev/null
|
||||
alias egrep='grep -E --color=auto' 2>/dev/null
|
||||
alias fgrep='grep -F --color=auto' 2>/dev/null
|
||||
alias egrep='egrep --color=auto' 2>/dev/null
|
||||
alias fgrep='fgrep --color=auto' 2>/dev/null
|
||||
|
|
|
|||
16
gating.yaml
16
gating.yaml
|
|
@ -1,16 +0,0 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_contexts: [bodhi_update_push_testing]
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
|
||||
#gating rawhide
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_contexts: [bodhi_update_push_stable]
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 223088f..315ced7 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -195,7 +195,6 @@ TESTS = \
|
||||
word-delim-multibyte \
|
||||
word-multi-file \
|
||||
word-multibyte \
|
||||
- write-error-msg \
|
||||
y2038-vs-32-bit \
|
||||
yesno \
|
||||
z-anchor-newline
|
||||
diff --git a/tests/Makefile.in b/tests/Makefile.in
|
||||
index 3270d30..33dcd8a 100644
|
||||
--- a/tests/Makefile.in
|
||||
+++ b/tests/Makefile.in
|
||||
@@ -2729,7 +2729,6 @@ TESTS = \
|
||||
word-delim-multibyte \
|
||||
word-multi-file \
|
||||
word-multibyte \
|
||||
- write-error-msg \
|
||||
y2038-vs-32-bit \
|
||||
yesno \
|
||||
z-anchor-newline
|
||||
@@ -3970,13 +3969,6 @@ word-multibyte.log: word-multibyte
|
||||
--log-file $$b.log --trs-file $$b.trs \
|
||||
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||
-write-error-msg.log: write-error-msg
|
||||
- @p='write-error-msg'; \
|
||||
- b='write-error-msg'; \
|
||||
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||
- --log-file $$b.log --trs-file $$b.trs \
|
||||
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||
- "$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||
y2038-vs-32-bit.log: y2038-vs-32-bit
|
||||
@p='y2038-vs-32-bit'; \
|
||||
b='y2038-vs-32-bit'; \
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/grep.c b/src/grep.c
|
||||
index a530988..b6f6ee3 100644
|
||||
index 9c0532d..caeece1 100644
|
||||
--- a/src/grep.c
|
||||
+++ b/src/grep.c
|
||||
@@ -2023,7 +2023,8 @@ Output control:\n\
|
||||
@@ -1965,7 +1965,8 @@ Output control:\n\
|
||||
-D, --devices=ACTION how to handle devices, FIFOs and sockets;\n\
|
||||
ACTION is 'read' or 'skip'\n\
|
||||
-r, --recursive like --directories=recurse\n\
|
||||
|
|
@ -12,7 +12,7 @@ index a530988..b6f6ee3 100644
|
|||
"));
|
||||
printf (_("\
|
||||
--include=GLOB search only files that match GLOB (a file pattern)"
|
||||
@@ -2033,7 +2034,7 @@ Output control:\n\
|
||||
@@ -1975,7 +1976,7 @@ Output control:\n\
|
||||
--exclude-dir=GLOB skip directories that match GLOB\n\
|
||||
"));
|
||||
printf (_("\
|
||||
61
grep-3.4-man-fix-gs.patch
Normal file
61
grep-3.4-man-fix-gs.patch
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
diff --git a/doc/grep.in.1 b/doc/grep.in.1
|
||||
index 91c0bca..d2cf00a 100644
|
||||
--- a/doc/grep.in.1
|
||||
+++ b/doc/grep.in.1
|
||||
@@ -464,7 +464,7 @@ Print
|
||||
.I NUM
|
||||
lines of trailing context after matching lines.
|
||||
Places a line containing a group separator
|
||||
-.RB ( \-\^\- )
|
||||
+.RB "(described under " \-\^\-group\-separator )
|
||||
between contiguous groups of matches.
|
||||
With the
|
||||
.B \-o
|
||||
@@ -477,7 +477,7 @@ Print
|
||||
.I NUM
|
||||
lines of leading context before matching lines.
|
||||
Places a line containing a group separator
|
||||
-.RB ( \-\^\- )
|
||||
+.RB "(described under " \-\^\-group\-separator )
|
||||
between contiguous groups of matches.
|
||||
With the
|
||||
.B \-o
|
||||
@@ -490,13 +490,24 @@ Print
|
||||
.I NUM
|
||||
lines of output context.
|
||||
Places a line containing a group separator
|
||||
-.RB ( \-\^\- )
|
||||
+.RB "(described under " \-\^\-group\-separator )
|
||||
between contiguous groups of matches.
|
||||
With the
|
||||
.B \-o
|
||||
or
|
||||
.B \-\^\-only\-matching
|
||||
option, this has no effect and a warning is given.
|
||||
+.TP
|
||||
+.BI \-\^\-group\-separator= SEP
|
||||
+Use
|
||||
+.I SEP
|
||||
+as a group separator. By default
|
||||
+.I SEP
|
||||
+is double hyphen
|
||||
+.RB ( \-\^\- ).
|
||||
+.TP
|
||||
+.B \-\^\-no\-group-separator
|
||||
+Use empty string as a group separator.
|
||||
.SS "File and Directory Selection"
|
||||
.TP
|
||||
.BR \-a ", " \-\^\-text
|
||||
diff --git a/src/grep.c b/src/grep.c
|
||||
index 7ba602d..9c0532d 100644
|
||||
--- a/src/grep.c
|
||||
+++ b/src/grep.c
|
||||
@@ -1989,6 +1989,8 @@ Context control:\n\
|
||||
"));
|
||||
printf (_("\
|
||||
-NUM same as --context=NUM\n\
|
||||
+ --group-separator=SEP use SEP as a group separator\n\
|
||||
+ --no-group-separator use empty string as a group separator\n\
|
||||
--color[=WHEN],\n\
|
||||
--colour[=WHEN] use markers to highlight the matching strings;\n\
|
||||
WHEN is 'always', 'never', or 'auto'\n\
|
||||
173
grep-3.4-rss-regression-fix.patch
Normal file
173
grep-3.4-rss-regression-fix.patch
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
diff --git a/lib/dfa.c b/lib/dfa.c
|
||||
index 96ae560..3cb64bc 100644
|
||||
--- a/lib/dfa.c
|
||||
+++ b/lib/dfa.c
|
||||
@@ -3597,7 +3597,7 @@ free_mbdata (struct dfa *d)
|
||||
}
|
||||
|
||||
/* Return true if every construct in D is supported by this DFA matcher. */
|
||||
-static bool _GL_ATTRIBUTE_PURE
|
||||
+bool
|
||||
dfa_supported (struct dfa const *d)
|
||||
{
|
||||
for (idx_t i = 0; i < d->tindex; i++)
|
||||
diff --git a/lib/dfa.h b/lib/dfa.h
|
||||
index c5bff89..fddce39 100644
|
||||
--- a/lib/dfa.h
|
||||
+++ b/lib/dfa.h
|
||||
@@ -113,6 +113,9 @@ extern struct dfa *dfasuperset (struct dfa const *d) _GL_ATTRIBUTE_PURE;
|
||||
/* The DFA is likely to be fast. */
|
||||
extern bool dfaisfast (struct dfa const *) _GL_ATTRIBUTE_PURE;
|
||||
|
||||
+/* Return true if every construct in D is supported by this DFA matcher. */
|
||||
+extern bool dfa_supported (struct dfa const *) _GL_ATTRIBUTE_PURE;
|
||||
+
|
||||
/* Free the storage held by the components of a struct dfa. */
|
||||
extern void dfafree (struct dfa *);
|
||||
|
||||
diff --git a/src/dfasearch.c b/src/dfasearch.c
|
||||
index 337345f..ff7d7ad 100644
|
||||
--- a/src/dfasearch.c
|
||||
+++ b/src/dfasearch.c
|
||||
@@ -175,7 +175,7 @@ regex_compile (struct dfa_comp *dc, char const *p, ptrdiff_t len,
|
||||
}
|
||||
|
||||
void *
|
||||
-GEAcompile (char *pattern, size_t size, reg_syntax_t syntax_bits)
|
||||
+GEAcompile (char *pattern, size_t size, reg_syntax_t syntax_bits, bool exact)
|
||||
{
|
||||
char *motif;
|
||||
struct dfa_comp *dc = xcalloc (1, sizeof (*dc));
|
||||
@@ -277,18 +277,6 @@ GEAcompile (char *pattern, size_t size, reg_syntax_t syntax_bits)
|
||||
}
|
||||
}
|
||||
|
||||
- if (buf != NULL)
|
||||
- {
|
||||
- dc->patterns--;
|
||||
- dc->pcount++;
|
||||
-
|
||||
- if (!regex_compile (dc, buf, buflen, 0, -1, false))
|
||||
- abort ();
|
||||
-
|
||||
- if (buf != pattern)
|
||||
- free (buf);
|
||||
- }
|
||||
-
|
||||
/* In the match_words and match_lines cases, we use a different pattern
|
||||
for the DFA matcher that will quickly throw out cases that won't work.
|
||||
Then if DFA succeeds we do some hairy stuff using the regex matcher
|
||||
@@ -324,6 +312,21 @@ GEAcompile (char *pattern, size_t size, reg_syntax_t syntax_bits)
|
||||
kwsmusts (dc);
|
||||
dfacomp (NULL, 0, dc->dfa, 1);
|
||||
|
||||
+ if (buf != NULL)
|
||||
+ {
|
||||
+ if (exact || !dfa_supported (dc->dfa))
|
||||
+ {
|
||||
+ dc->patterns--;
|
||||
+ dc->pcount++;
|
||||
+
|
||||
+ if (!regex_compile (dc, buf, buflen, 0, -1, false))
|
||||
+ abort ();
|
||||
+ }
|
||||
+
|
||||
+ if (buf != pattern)
|
||||
+ free (buf);
|
||||
+ }
|
||||
+
|
||||
free (motif);
|
||||
|
||||
return dc;
|
||||
diff --git a/src/grep.c b/src/grep.c
|
||||
index 929a37c..a96a869 100644
|
||||
--- a/src/grep.c
|
||||
+++ b/src/grep.c
|
||||
@@ -571,7 +571,7 @@ static bool seek_failed;
|
||||
static bool seek_data_failed;
|
||||
|
||||
/* Functions we'll use to search. */
|
||||
-typedef void *(*compile_fp_t) (char *, size_t, reg_syntax_t);
|
||||
+typedef void *(*compile_fp_t) (char *, size_t, reg_syntax_t, bool);
|
||||
typedef size_t (*execute_fp_t) (void *, char const *, size_t, size_t *,
|
||||
char const *);
|
||||
static execute_fp_t execute;
|
||||
@@ -2900,8 +2900,9 @@ main (int argc, char **argv)
|
||||
matcher = try_fgrep_pattern (matcher, keys, &keycc);
|
||||
|
||||
execute = matchers[matcher].execute;
|
||||
- compiled_pattern = matchers[matcher].compile (keys, keycc,
|
||||
- matchers[matcher].syntax);
|
||||
+ compiled_pattern =
|
||||
+ matchers[matcher].compile (keys, keycc, matchers[matcher].syntax,
|
||||
+ only_matching | color_option);
|
||||
/* We need one byte prior and one after. */
|
||||
char eolbytes[3] = { 0, eolbyte, 0 };
|
||||
size_t match_size;
|
||||
diff --git a/src/kwsearch.c b/src/kwsearch.c
|
||||
index 6f6d4d0..808d3b6 100644
|
||||
--- a/src/kwsearch.c
|
||||
+++ b/src/kwsearch.c
|
||||
@@ -47,7 +47,7 @@ struct kwsearch
|
||||
description of the compiled pattern. */
|
||||
|
||||
void *
|
||||
-Fcompile (char *pattern, size_t size, reg_syntax_t ignored)
|
||||
+Fcompile (char *pattern, size_t size, reg_syntax_t ignored, bool exact)
|
||||
{
|
||||
kwset_t kwset;
|
||||
ptrdiff_t total = size;
|
||||
@@ -190,7 +190,7 @@ Fexecute (void *vcp, char const *buf, size_t size, size_t *match_size,
|
||||
{
|
||||
fgrep_to_grep_pattern (&kwsearch->pattern, &kwsearch->size);
|
||||
kwsearch->re = GEAcompile (kwsearch->pattern, kwsearch->size,
|
||||
- RE_SYNTAX_GREP);
|
||||
+ RE_SYNTAX_GREP, !!start_ptr);
|
||||
}
|
||||
return EGexecute (kwsearch->re, buf, size, match_size, start_ptr);
|
||||
}
|
||||
@@ -257,7 +257,7 @@ Fexecute (void *vcp, char const *buf, size_t size, size_t *match_size,
|
||||
fgrep_to_grep_pattern (&kwsearch->pattern, &kwsearch->size);
|
||||
kwsearch->re = GEAcompile (kwsearch->pattern,
|
||||
kwsearch->size,
|
||||
- RE_SYNTAX_GREP);
|
||||
+ RE_SYNTAX_GREP, !!start_ptr);
|
||||
}
|
||||
end = memchr (beg + len, eol, (buf + size) - (beg + len));
|
||||
end = end ? end + 1 : buf + size;
|
||||
diff --git a/src/pcresearch.c b/src/pcresearch.c
|
||||
index 15a6a59..0e2d4e4 100644
|
||||
--- a/src/pcresearch.c
|
||||
+++ b/src/pcresearch.c
|
||||
@@ -108,7 +108,7 @@ jit_exec (struct pcre_comp *pc, char const *subject, int search_bytes,
|
||||
}
|
||||
|
||||
void *
|
||||
-Pcompile (char *pattern, size_t size, reg_syntax_t ignored)
|
||||
+Pcompile (char *pattern, size_t size, reg_syntax_t ignored, bool exact)
|
||||
{
|
||||
int e;
|
||||
char const *ep;
|
||||
diff --git a/src/search.h b/src/search.h
|
||||
index 1d85a7e..af81dcb 100644
|
||||
--- a/src/search.h
|
||||
+++ b/src/search.h
|
||||
@@ -56,15 +56,15 @@ extern ptrdiff_t mb_goback (char const **, size_t *, char const *,
|
||||
char const *);
|
||||
|
||||
/* dfasearch.c */
|
||||
-extern void *GEAcompile (char *, size_t, reg_syntax_t);
|
||||
+extern void *GEAcompile (char *, size_t, reg_syntax_t, bool);
|
||||
extern size_t EGexecute (void *, char const *, size_t, size_t *, char const *);
|
||||
|
||||
/* kwsearch.c */
|
||||
-extern void *Fcompile (char *, size_t, reg_syntax_t);
|
||||
+extern void *Fcompile (char *, size_t, reg_syntax_t, bool);
|
||||
extern size_t Fexecute (void *, char const *, size_t, size_t *, char const *);
|
||||
|
||||
/* pcresearch.c */
|
||||
-extern void *Pcompile (char *, size_t, reg_syntax_t);
|
||||
+extern void *Pcompile (char *, size_t, reg_syntax_t, bool);
|
||||
extern size_t Pexecute (void *, char const *, size_t, size_t *, char const *);
|
||||
|
||||
/* grep.c */
|
||||
3637
grep-keyring.gpg
3637
grep-keyring.gpg
File diff suppressed because it is too large
Load diff
168
grep.spec
168
grep.spec
|
|
@ -1,37 +1,34 @@
|
|||
Summary: Pattern matching utilities
|
||||
Name: grep
|
||||
Version: 3.12
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later AND LGPL-2.0-or-later AND GFDL-1.3-no-invariants-or-later
|
||||
URL: https://www.gnu.org/software/grep/
|
||||
|
||||
Source0: https://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
||||
Source2: https://savannah.gnu.org/project/release-gpgkeys.php?group=grep&download=1'#/grep-keyring.gpg
|
||||
Source3: colorgrep.sh
|
||||
Source4: colorgrep.csh
|
||||
Source5: GREP_COLORS
|
||||
Source6: grepconf.sh
|
||||
Version: 3.4
|
||||
Release: 6%{?dist}
|
||||
License: GPLv3+
|
||||
URL: http://www.gnu.org/software/grep/
|
||||
|
||||
Source: ftp://ftp.gnu.org/pub/gnu/grep/grep-%{version}.tar.xz
|
||||
Source1: colorgrep.sh
|
||||
Source2: colorgrep.csh
|
||||
Source3: GREP_COLORS
|
||||
Source4: grepconf.sh
|
||||
# upstream ticket 39444
|
||||
Patch0: grep-3.4-man-fix-gs.patch
|
||||
# upstream ticket 39445
|
||||
Patch: grep-3.5-help-align.patch
|
||||
# upstream ticket 77800
|
||||
Patch: grep-3.12-test-write-error-msg-drop.patch
|
||||
Patch1: grep-3.4-help-align.patch
|
||||
# upstream ticket 28105
|
||||
Patch2: 0001-Revert-L-exit-status-change-introduced-in-grep-3.2.patch
|
||||
# https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00220.html
|
||||
# https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00225.html
|
||||
# removes some tests that fail on armv7hl, by Paul Eggert
|
||||
# re-diffed to apply to 3.4
|
||||
Patch3: 0001-perror-strerror_r-remove-unportable-tests.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1967370
|
||||
# https://git.savannah.gnu.org/cgit/grep.git/patch/?id=ae65513edc80a1b65f19264b9bed95d870602967
|
||||
Patch4: grep-3.4-rss-regression-fix.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: pcre2-devel
|
||||
BuildRequires: texinfo
|
||||
BuildRequires: gettext
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
|
||||
# temporal for the gnulib patch
|
||||
BuildRequires: gettext-devel
|
||||
|
||||
Buildrequires: glibc-all-langpacks
|
||||
BuildRequires: perl(FileHandle)
|
||||
BuildRequires: make
|
||||
BuildRequires: gnupg2
|
||||
BuildRequires: pcre-devel >= 3.9-10, texinfo, gettext
|
||||
BuildRequires: autoconf automake glibc-all-langpacks
|
||||
BuildRequires: perl-FileHandle
|
||||
# https://fedorahosted.org/fpc/ticket/174
|
||||
Provides: bundled(gnulib)
|
||||
# for backward compatibility (rhbz#1540485)
|
||||
|
|
@ -47,8 +44,12 @@ prints the matching lines. GNU's grep utilities include grep, egrep and fgrep.
|
|||
GNU grep is needed by many scripts, so it shall be installed on every system.
|
||||
|
||||
%prep
|
||||
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%autosetup -p1
|
||||
%setup -q
|
||||
%patch0 -p1 -b .man-fix-gs
|
||||
%patch1 -p1 -b .help-align
|
||||
%patch2 -p1 -b .zgrep-fix
|
||||
%patch3 -p1 -b .remove-broken-tests
|
||||
%patch4 -p1 -b .rss-regression-fix
|
||||
|
||||
%build
|
||||
%global BUILD_FLAGS $RPM_OPT_FLAGS
|
||||
|
|
@ -60,17 +61,18 @@ GNU grep is needed by many scripts, so it shall be installed on every system.
|
|||
%global BUILD_FLAGS %{BUILD_FLAGS} -mlong-double-64
|
||||
%endif
|
||||
|
||||
%configure --without-included-regex --disable-silent-rules CFLAGS="%{BUILD_FLAGS}"
|
||||
%configure --without-included-regex --disable-silent-rules \
|
||||
CPPFLAGS="-I%{_includedir}/pcre" CFLAGS="%{BUILD_FLAGS}"
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
%make_install %{?_smp_mflags}
|
||||
gzip $RPM_BUILD_ROOT%{_infodir}/grep*
|
||||
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
||||
install -pm 644 %{SOURCE3} %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
||||
install -pm 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}
|
||||
install -Dpm 755 %{SOURCE6} $RPM_BUILD_ROOT%{_libexecdir}/grepconf.sh
|
||||
install -pm 644 %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
||||
install -pm 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}
|
||||
install -Dpm 755 %{SOURCE4} $RPM_BUILD_ROOT%{_libexecdir}/grepconf.sh
|
||||
|
||||
%find_lang %name
|
||||
|
||||
|
|
@ -79,6 +81,7 @@ make check
|
|||
|
||||
%files -f %{name}.lang
|
||||
%doc AUTHORS THANKS TODO NEWS README
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license COPYING
|
||||
|
||||
%{_bindir}/*
|
||||
|
|
@ -89,97 +92,10 @@ make check
|
|||
%{_libexecdir}/grepconf.sh
|
||||
|
||||
%changelog
|
||||
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.12-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Mon Apr 14 2025 Jaroslav Škarvada <jskarvad@redhat.com> - 3.12-1
|
||||
- New version
|
||||
Resolves: rhbz#2358901
|
||||
|
||||
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.11-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.11-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Mon Apr 29 2024 Lukáš Zaoral <lzaoral@redhat.com> - 3.11-8
|
||||
- remove redundant dependency on libsigsegv (RHEL-34664)
|
||||
|
||||
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.11-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.11-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Aug 10 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.11-5
|
||||
- Updated SPDX license expression
|
||||
|
||||
* Wed Aug 9 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.11-4
|
||||
- Converted license to SPDX
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.11-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Thu Jul 13 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.11-2
|
||||
- Fixed egrep/fgrep aliases
|
||||
Resolves: rhbz#2215713
|
||||
|
||||
* Tue Jun 6 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.11-1
|
||||
- New version
|
||||
Resolves: rhbz#2181063
|
||||
|
||||
* Thu Mar 23 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.10-1
|
||||
- New version
|
||||
Resolves: rhbz#2181063
|
||||
|
||||
* Tue Mar 7 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.9-1
|
||||
- New version
|
||||
Resolves: rhbz#2175526
|
||||
- Added sources verification
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.8-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Jan 3 2023 Florian Weimer <fweimer@redhat.com> - 3.8-2
|
||||
- Fix C99 compatibility issue in the configure script
|
||||
|
||||
* Mon Sep 5 2022 Jaroslav Škarvada <jskarvad@redhat.com> - 3.8-1
|
||||
- New version
|
||||
Resolves: rhbz#2123935
|
||||
- Switchd to pcre2
|
||||
Resolves: rhbz#1755491
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.7-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri Apr 8 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 3.7-3
|
||||
- Gate perl-FileHandle dependency to f33 onwards
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.7-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Aug 16 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 3.7-1
|
||||
- New version
|
||||
Resolves: rhbz#1993631
|
||||
- Temporarily switch to the included regex until glibc bug (glibc#11053)
|
||||
is fixed
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Wed Jun 23 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 3.6-3
|
||||
- Fixed stack overflow detection
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Nov 9 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 3.6-1
|
||||
- New version
|
||||
Resolves: rhbz#1895797
|
||||
|
||||
* Wed Sep 30 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 3.5-1
|
||||
- New version
|
||||
Resolves: rhbz#1883086
|
||||
* Tue Jun 15 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 3.4-6
|
||||
- Backported upstream fix for many-regexp N^2 RSS regression
|
||||
by rss-regression-fix patch (without test)
|
||||
Resolves: rhbz#1967370
|
||||
|
||||
* Wed Aug 26 2020 Adam Williamson <awilliam@redhat.com> - 3.4-5
|
||||
- Backport fix for upstream #28105 to fix zgrep
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
summary: Test plan with all Fedora tests
|
||||
discover:
|
||||
how: fmf
|
||||
url: https://src.fedoraproject.org/tests/grep.git
|
||||
execute:
|
||||
how: tmt
|
||||
3
sources
3
sources
|
|
@ -1,2 +1 @@
|
|||
SHA512 (grep-3.12.tar.xz) = c54b4db5a8b9afe098c088decd94977746305284d716666a60bac82b4edc0fae4acf828970b5b6fc7d58ecd549f638e17e6958f33a71fedcc7d7415b9228b161
|
||||
SHA512 (grep-3.12.tar.xz.sig) = 333755fd9e5879436789a19e9593667d6fb96c2d1b876a1c391eb9cd75d10bb7fbc10215db9838280e6006790c818ef4583b1ae22318a833a5b69264ca15dbf1
|
||||
SHA512 (grep-3.4.tar.xz) = 0f1506bd19971fbdcb47a111277ca63e8ad045456f096980852fd0a61c860f29f4b369bbaaa5cbce4b0a81718e3e3274d9a078b491f2109baa9a02ce600ee206
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue