unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#45614] [PATCH] gnu: Add ugrep.
@ 2021-01-02 22:10 Hartmut Goebel
  2021-01-05 12:05 ` [bug#45672] [PATCH v2] " Hartmut Goebel
  0 siblings, 1 reply; 3+ messages in thread
From: Hartmut Goebel @ 2021-01-02 22:10 UTC (permalink / raw)
  To: 45614

* gnu/packages/search.scm (ugrep): New Variable.
---
 gnu/packages/search.scm | 66 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 0a5fa38b30..2db7f9c48f 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -26,6 +26,7 @@
                 #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11 perl-license))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
@@ -36,6 +37,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python)
@@ -414,4 +416,68 @@ online libraries.  It provides fast search of document text and
 bibliographic data and simple document and bibtex retrieval.")
     (license gpl3+)))
 
+(define-public ugrep
+  (package
+    (name "ugrep")
+    (version "3.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Genivia/ugrep")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32 "136pcxb4rykflnvlm1zjj6ksdr0c9bhcvyzixkixmix5s122q6jz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "bin")  ;; pre-build executables
+                  ;; TODO: If there is a script for rebuilding them, remove
+                  ;; archives, pdf and .class in tests/
+                  #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("lz4" ,lz4)
+       ("lzip" ,lzip)  ;; lzma
+       ("pcre2" ,pcre2)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags '("--enable-pager")))
+    (home-page "https://github.com/Genivia/ugrep/")
+    (synopsis "Faster grep with an interactive query UI")
+    (description "Universal grep: ultra fast searcher of file systems, text
+and binary files, source code, archives, compressed files, documents, and
+more.
+
+The main features include:
+
+@itemize
+@item Written in clean and efficient C++11, built for speed
+@item Ultra fast with new match algorithms beating grep, ripgrep, silver
+      searcher, hyperscan, etc.
+@item Multi-threaded search using high-performance lock-free job queue stealing
+@item Multi-threaded task-parallel decompression and search
+@item Optimized pattern matching (AVX, SSE2, ARM NEON/AArch64)
+@item Optimized asynchronous IO for efficient concurrent searching
+@item Thoroughly tested (includes over 1000 test cases)
+@item Compatible with the standard GNU/BSD grep command-line options
+@item Comprehensive how-to tutorial for beginners to advanced users
+@item Interactive query UI to enter search patterns
+@item Select files to search by file types, filename suffix, and \"magic bytes\"
+@item Search archives (cpio, jar, tar, pax, zip)
+@item Search compressed files (zip, gz, Z, bz, bz2, lzma, xz)
+@item Search pdf, doc, docx, xls, xlxs, and more using filters
+@item Search binary files and display hexdumps with binary pattern matches
+@item Search UTF-encoded files with Unicode pattern matches (by default)
+@item Search files encoded in ISO-8859-1 thru 16, CP 437, CP 850, MAC, KOI8, etc.
+@item Search files excluding files specified by .gitignore etc.
+@item Search patterns across newlines, matching multiple lines at once
+@item Search patterns excluding negative patterns (\"match this but not that\")
+@item Includes predefined regex patterns to search source code, XML, JSON, HTML
+@item Output results in CSV, JSON, XML, and user-specified formats
+@item Sort matching files by name, size, and time
+@end itemize")
+    (license bsd-3)))
+
 ;;; search.scm ends here
-- 
2.21.3





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#45672] [PATCH v2] gnu: Add ugrep.
@ 2021-01-05 12:05 ` Hartmut Goebel
  2021-01-13 15:19   ` [bug#45614] [PATCH] " Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Hartmut Goebel @ 2021-01-05 12:05 UTC (permalink / raw)
  To: 45614, 45672

* gnu/packages/search.scm (ugrep): New Variable.
---
 gnu/packages/search.scm | 77 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 0a5fa38b30..a7b5e1e383 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
                 #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11 perl-license))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
@@ -35,7 +37,9 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages less)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python)
@@ -414,4 +418,77 @@ online libraries.  It provides fast search of document text and
 bibliographic data and simple document and bibtex retrieval.")
     (license gpl3+)))
 
+(define-public ugrep
+  (package
+    (name "ugrep")
+    (version "3.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Genivia/ugrep")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32 "136pcxb4rykflnvlm1zjj6ksdr0c9bhcvyzixkixmix5s122q6jz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "bin")  ;; pre-build executables
+                  ;; TODO: If there is a script for rebuilding them, remove
+                  ;; archives, pdf and .class in tests/
+                  #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("less" ,less)
+       ("lz4" ,lz4)
+       ("lzip" ,lzip)  ;; lzma
+       ("pcre2" ,pcre2)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags '("--enable-pager")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-paths-to-binaries
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((less (assoc-ref inputs "less")))
+               (substitute* "src/ugrep.cpp"
+                 (("(#\\s*define +DEFAULT_PAGER_COMMAND +\")(less\\W)" _ a b)
+                  (string-append a less "/bin/" b)))))))))
+    (home-page "https://github.com/Genivia/ugrep/")
+    (synopsis "Faster grep with an interactive query UI")
+    (description "Universal grep: ultra fast searcher of file systems, text
+and binary files, source code, archives, compressed files, documents, and
+more.
+
+The main features include:
+
+@itemize
+@item Written in clean and efficient C++11, built for speed
+@item Ultra fast with new match algorithms beating grep, ripgrep, silver
+      searcher, hyperscan, etc.
+@item Multi-threaded search using high-performance lock-free job queue stealing
+@item Multi-threaded task-parallel decompression and search
+@item Optimized pattern matching (AVX, SSE2, ARM NEON/AArch64)
+@item Optimized asynchronous IO for efficient concurrent searching
+@item Thoroughly tested (includes over 1000 test cases)
+@item Compatible with the standard GNU/BSD grep command-line options
+@item Comprehensive how-to tutorial for beginners to advanced users
+@item Interactive query UI to enter search patterns
+@item Select files to search by file types, filename suffix, and \"magic bytes\"
+@item Search archives (cpio, jar, tar, pax, zip)
+@item Search compressed files (zip, gz, Z, bz, bz2, lzma, xz)
+@item Search pdf, doc, docx, xls, xlxs, and more using filters
+@item Search binary files and display hexdumps with binary pattern matches
+@item Search UTF-encoded files with Unicode pattern matches (by default)
+@item Search files encoded in ISO-8859-1 thru 16, CP 437, CP 850, MAC, KOI8, etc.
+@item Search files excluding files specified by .gitignore etc.
+@item Search patterns across newlines, matching multiple lines at once
+@item Search patterns excluding negative patterns (\"match this but not that\")
+@item Includes predefined regex patterns to search source code, XML, JSON, HTML
+@item Output results in CSV, JSON, XML, and user-specified formats
+@item Sort matching files by name, size, and time
+@end itemize")
+    (license bsd-3)))
+
 ;;; search.scm ends here
-- 
2.21.3





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#45614] [PATCH] gnu: Add ugrep.
  2021-01-05 12:05 ` [bug#45672] [PATCH v2] " Hartmut Goebel
@ 2021-01-13 15:19   ` Ludovic Courtès
  0 siblings, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2021-01-13 15:19 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: 45614

Hi!

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> * gnu/packages/search.scm (ugrep): New Variable.

[...]

> +               '(begin
> +                  (delete-file-recursively "bin")  ;; pre-build executables
> +                  ;; TODO: If there is a script for rebuilding them, remove
> +                  ;; archives, pdf and .class in tests/

Java .class files (is that it?) should definitely be removed.

> +    (description "Universal grep: ultra fast searcher of file systems, text
> +and binary files, source code, archives, compressed files, documents, and
> +more.
> +
> +The main features include:
> +
> +@itemize
> +@item Written in clean and efficient C++11, built for speed
> +@item Ultra fast with new match algorithms beating grep, ripgrep, silver
> +      searcher, hyperscan, etc.
> +@item Multi-threaded search using high-performance lock-free job queue stealing
> +@item Multi-threaded task-parallel decompression and search
> +@item Optimized pattern matching (AVX, SSE2, ARM NEON/AArch64)
> +@item Optimized asynchronous IO for efficient concurrent searching
> +@item Thoroughly tested (includes over 1000 test cases)
> +@item Compatible with the standard GNU/BSD grep command-line options
> +@item Comprehensive how-to tutorial for beginners to advanced users
> +@item Interactive query UI to enter search patterns
> +@item Select files to search by file types, filename suffix, and \"magic bytes\"
> +@item Search archives (cpio, jar, tar, pax, zip)
> +@item Search compressed files (zip, gz, Z, bz, bz2, lzma, xz)
> +@item Search pdf, doc, docx, xls, xlxs, and more using filters
> +@item Search binary files and display hexdumps with binary pattern matches
> +@item Search UTF-encoded files with Unicode pattern matches (by default)
> +@item Search files encoded in ISO-8859-1 thru 16, CP 437, CP 850, MAC, KOI8, etc.
> +@item Search files excluding files specified by .gitignore etc.
> +@item Search patterns across newlines, matching multiple lines at once
> +@item Search patterns excluding negative patterns (\"match this but not that\")
> +@item Includes predefined regex patterns to search source code, XML, JSON, HTML
> +@item Output results in CSV, JSON, XML, and user-specified formats
> +@item Sort matching files by name, size, and time
> +@end itemize")

That’s too much detail, and it’s also bound to become stale as ugrep
changes.

Could you (1) start with a full sentence, and (2) give a high-level view
of the features in 5–10 lines at most?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-01-13 15:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-02 22:10 [bug#45614] [PATCH] gnu: Add ugrep Hartmut Goebel
2021-01-05 12:05 ` [bug#45672] [PATCH v2] " Hartmut Goebel
2021-01-13 15:19   ` [bug#45614] [PATCH] " Ludovic Courtès

unofficial mirror of guix-patches@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-patches/1 guix-patches/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-patches guix-patches/ https://yhetil.org/guix-patches \
		guix-patches@gnu.org
	public-inbox-index guix-patches

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.patches


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git