diff --git a/grep-2.18.tar.xz b/grep-2.18.tar.xz deleted file mode 100644 index 2cf4369..0000000 --- a/grep-2.18.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6436e5077fa1497feccc8feaabd3f507b172369bf120fbc9e4874bba81be720 -size 1213220 diff --git a/grep-2.18.tar.xz.sig b/grep-2.18.tar.xz.sig deleted file mode 100644 index b674a41..0000000 --- a/grep-2.18.tar.xz.sig +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (GNU/Linux) - -iQJ8BAABCgBmBQJTB4YQXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w -ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxNTVEM0ZDNTAwQzgzNDQ4NkQxRUVBNjc3 -RkQ5RkNDQjAwMEJFRUVFAAoJEH/Z/MsAC+7uPVcP/1Bl2HSdRbbRi/qGm96F/E7U -oFRBkQH0lM9Om1n3iojaJduvfLllGao6/k0dbxWZ8LyGh7/BgJvhT1+s4gOZz7TL -B0/T3xvcF7z0GagtRQCp3+Mos7iYjF0yXbRi3187yAcSYgThTGub+EhjGnc6Wlez -N1KTnV/VyLsae2HWrQv4YfOtUJrd5QDt8kvDPl5rbeubQa1dDPcPPrY2UWcxWFd9 -U1ZnvIcZMGKrt2Z5e42marTSr7BLESSzktHkyQvvMPKesI1Sg4PI10/PsQf4X/W3 -hMXnRJk2bBkQzxFxlibxfJYO4Naa9cNra1peaBb0R3FtXIf/YbwBFFI+fD7iumi3 -3+QO1eHI69JQ97yKkC37VEd8bDmvtMhYv7DT53+bpqsBi7ZUa1BLzd3yMF6hi98/ -TjtFiOSmABNfoxT6TnLMm+wVcJyr0maqJH4bBiGbXbrQYBjOY4NLlAZXkslkI5Lh -h6Fvp1wAnkXuUWAKMw9lmtOOD9F0Tv7wpejAWi2Zcl2GxaVNS1eAcff1ipD/I6Ta -qEwlQnzvXWHIbXbuAYt7fFLT4TED6wEe0ToRU4WYmfXF18heY9XOGMxw0jrIOHaX -EYWhBLNuKd/4yKJUHM6bn0qi+r9ZzhBnCFgS6+fVqxO/1lZ0FRO/Nk3hlQVlm9LY -1201l3y13Tr+5ai+XoGG -=Stn0 ------END PGP SIGNATURE----- diff --git a/grep-2.19.tar.xz b/grep-2.19.tar.xz new file mode 100644 index 0000000..629647d --- /dev/null +++ b/grep-2.19.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6388295be48cfcaf7665d9cd3914e6625ea000e9414132bfefd45cf1d8eec34d +size 1234676 diff --git a/grep-2.19.tar.xz.sig b/grep-2.19.tar.xz.sig new file mode 100644 index 0000000..7bd53a8 --- /dev/null +++ b/grep-2.19.tar.xz.sig @@ -0,0 +1,19 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.22 (GNU/Linux) + +iQJ8BAABCgBmBQJTftigXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w +ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxNTVEM0ZDNTAwQzgzNDQ4NkQxRUVBNjc3 +RkQ5RkNDQjAwMEJFRUVFAAoJEH/Z/MsAC+7ujlkQAJu1Xfd8i+brp0ybO27HU/og +0Y8ShHt4lZU3v9qD6S8DQNIElWQNdU0zXs4IHpfOdI4op2t3gYnIfZDYrorxDh5j +pXCrP/StuiGSLBIaAVYC+cbHEB9z1AnLUDXSvpNfrbPPqhnNI77uTwE1pb3+O+EY +UD6fsuoT+7dt6u7uVagae8sw6t2ctbKgxBcTOax6g1yCVbZeNZLeWg+k6EXyP3Tf +yOYpWQxboqRw+8H8gTcL+ASWVcn5INFfyuCBvjDTS8sBvep+TF8Or72DgDVu5aPW +rc3SaEYUuj1reGYPywqqkjUWojBS5l1BY5xD5ZoEdl7QhfLc5+LagUPkeHOeG9oI +UGfcacHkLAj9JLIcy2BMqVxL62lMzQF6czZrDbtTBTcWdeRW679Ua17txk9835ns +Em28CxbKPAOlWPewSTMvdNPYcvUguVMVKL05bhHR2R2bNwA8SkpjXmD1dLV63Tph +M/ymiP3xEQTrIg+djphJ4ga/iJYMhZKMpDA9k96MRQOBZ01hMJY0CWgOvP3RX4sv +1AHBywX6+x9RBEwXWYlOVxbLUIrixwtrm4CZ+PsoE7WELDu0anI9kDYcZmKSiylU +3ly4DgkBXJGD6LFQ350V2EGe2R5t1egv7XpxhsarAKtIAx8uus2HcE6xc5Jbm1Dn +OZIl3exgUG//MyuuGv9k +=4B9E +-----END PGP SIGNATURE----- diff --git a/grep.changes b/grep.changes index d1cc09c..00610f2 100644 --- a/grep.changes +++ b/grep.changes @@ -1,3 +1,50 @@ +------------------------------------------------------------------- +Sat May 24 16:50:50 UTC 2014 - andreas.stieger@gmx.de + +- GNU grep 2.19 +- Improvements: + * Performance has improved, typically by 10% and in some cases by + a factor of 200. However, performance of grep -P in UTF-8 + locales has gotten worse as part of the fix for the crashes + mentioned below. +- Bug fixes: + * grep no longer mishandles patterns like [a-[.z.]], and no + longer mishandles patterns like [^a] in locales that have + multicharacter collating sequences so that [^a] can match a + string of two characters. + * grep no longer mishandles an empty pattern at the end of a + pattern list. + * grep -C NUM now outputs separators consistently even when NUM + is zero, and similarly for grep -A NUM and grep -B NUM. + * grep -f no longer mishandles patterns containing NUL bytes. + * Plain grep, grep -E, and grep -F now treat encoding errors in + patterns the same way the GNU regular expression matcher treats + them, with respect to whether the errors can match parts of + multibyte characters in data. + * grep -w no longer mishandles a potential match adjacent to a + letter that takes up two or more bytes in a multibyte encoding. + Similarly, the patterns '\<', '\>', '\b', and '\B' no longer + mishandle word-boundary matches in multibyte locales. + * grep -P now reports an error and exits when given invalid UTF-8 + data. Previously it was unreliable, and sometimes crashed or + looped. + * grep -P now works with -w and -x and backreferences. Before, + echo aa|grep -Pw '(.)\1' would fail to match, yet + echo aa|grep -Pw '(.)\2' would match. + * grep -Pw now works like grep -w in that the matched string has + to be preceded and followed by non-word components or the + beginning and end of the line (as opposed to word boundaries + before). Before, this + echo a@@a| grep -Pw @@ would match, yet this + echo a@@a| grep -w @@ would not. Now, they both fail to match, + per the documentation on how grep's -w works. + * grep -i no longer mishandles patterns containing titlecase + characters. For example, in a locale containing the titlecase + character 'Lj' (U+01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER + J), 'grep -i Lj' now matches both 'LJ' (U+01C7 LATIN CAPITAL + LETTER LJ) and 'lj' (U+01C9 LATIN SMALL LETTER LJ). +- remove mb-non-UTF8-performance.patch, committed upstream + ------------------------------------------------------------------- Tue Mar 25 15:10:02 UTC 2014 - schwab@suse.de diff --git a/grep.spec b/grep.spec index a6a2f03..102fd23 100644 --- a/grep.spec +++ b/grep.spec @@ -17,7 +17,7 @@ Name: grep -Version: 2.18 +Version: 2.19 Release: 0 Summary: Print lines matching a pattern License: GPL-3.0+ @@ -26,20 +26,16 @@ Url: http://www.gnu.org/software/grep/ Source0: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source2: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig Source3: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=grep&download=1#/%{name}.keyring -# PATCH-FIX-UPSTREAM http://git.savannah.gnu.org/cgit/grep.git/commit/?id=6e3ea0dd74426fd394225d3f9dc132e40cd92fd2 -Patch0: mb-non-UTF8-performance.patch - BuildRequires: makeinfo BuildRequires: pcre-devel BuildRequires: xz +Requires(pre): %{install_info_prereq} +Provides: base:%{_bindir}/grep +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} < 1120 BuildRequires: pcre %endif -Provides: base:/usr/bin/grep -Requires(pre): %{install_info_prereq} -BuildRoot: %{_tmppath}/%{name}-%{version}-build - %description The grep command searches one or more input files for lines containing a match to a specified pattern. By default, grep prints @@ -47,7 +43,6 @@ the matching lines. %prep %setup -q -%patch0 -p1 %if 0%{?suse_version} < 1120 echo "ac_cv_search_pcre_compile=\${ac_cv_search_pcre_compile=%{_libdir}/libpcre.a}" >config.cache %endif diff --git a/mb-non-UTF8-performance.patch b/mb-non-UTF8-performance.patch deleted file mode 100644 index f5fd141..0000000 --- a/mb-non-UTF8-performance.patch +++ /dev/null @@ -1,68 +0,0 @@ -Index: grep-2.18/tests/init.cfg -=================================================================== ---- grep-2.18.orig/tests/init.cfg -+++ grep-2.18/tests/init.cfg -@@ -103,6 +103,21 @@ require_unibyte_locale() - skip_ 'no unibyte locale found' - } - -+# Define hi_res_time_ to a function that prints the current time -+# as a floating point number with greater than 1-second resolution. -+# Otherwise, skip the requiring test. -+require_hi_res_time_() -+{ -+ local cmd -+ for cmd in 'date +%s.%N' \ -+ 'perl -le "use Time::HiRes qw(time); print scalar time()"'; do -+ case $($cmd) in -+ *.[0-9]*) eval 'hi_res_time_() { '"$cmd"'; }'; break;; -+ esac -+ done -+ type hi_res_time_ || skip_ no high-resolution timer support -+} -+ - require_JP_EUC_locale_() - { - local locale=ja_JP.eucJP -Index: grep-2.18/tests/mb-non-UTF8-performance -=================================================================== ---- grep-2.18.orig/tests/mb-non-UTF8-performance -+++ grep-2.18/tests/mb-non-UTF8-performance -@@ -1,5 +1,7 @@ - #!/bin/sh - # grep-2.17 would take nearly 200x longer to run the command below. -+# The 200x is on an Intel i7-based system. -+# On an AMD FX-4100, it would take up to 2500x longer. - - # Copyright 2014 Free Software Foundation, Inc. - -@@ -18,15 +20,26 @@ - - . "${srcdir=.}/init.sh"; path_prepend_ ../src - require_timeout_ -+require_hi_res_time_ - - fail=0 - --require_JP_EUC_locale_ -- - yes $(printf '%078d' 0) | head -50000 > in || framework_failure_ - -+start=$(hi_res_time_) -+LC_ALL=C grep -i foobar in; st=$? -+stop=$(hi_res_time_) -+ -+# Use a multiple of the LC_ALL=C duration as the timeout for the JP/EUC test. -+# A multiple of 3 seems to be enough for i5,i7, but AMD needs >25. -+timeout=$($AWK 'BEGIN { print 50 * ('$stop' - '$start')}' < /dev/null) -+ -+test $st = 1 || fail=1 -+ -+require_JP_EUC_locale_ -+ - # Expect no match, i.e., exit status of 1. Anything else is an error. --timeout 4 grep -i foobar in; st=$? -+timeout $timeout grep -i foobar in; st=$? - test $st = 1 || fail=1 - - Exit $fail