Package: guix-patches;
Reported by: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
Date: Tue, 5 Jan 2021 12:06:01 UTC
Severity: normal
Tags: patch
Merged with 45614
Done: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Hartmut Goebel <h.goebel <at> crazy-compilers.com> To: 45614 <at> debbugs.gnu.org, 45672 <at> debbugs.gnu.org Subject: [bug#45672] [PATCH v2] gnu: Add ugrep. Date: Tue, 5 Jan 2021 13:05:37 +0100
* 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 <at> elephly.net> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me <at> tobias.gr> ;;; Copyright © 2018 Adam Massmann <massmannak <at> gmail.com> +;;; Copyright © 2020 Hartmut Goebel <h.goebel <at> 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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.