From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id n4/HGILv8F8eFwAA0tVLHw (envelope-from ) for ; Sat, 02 Jan 2021 22:11:14 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id uMgkFILv8F/DBQAA1q6Kng (envelope-from ) for ; Sat, 02 Jan 2021 22:11:14 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1F2E0940105 for ; Sat, 2 Jan 2021 22:11:14 +0000 (UTC) Received: from localhost ([::1]:55004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kvp7B-0003d3-3a for larch@yhetil.org; Sat, 02 Jan 2021 17:11:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49708) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvp73-0003cr-MO for guix-patches@gnu.org; Sat, 02 Jan 2021 17:11:05 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:49515) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kvp70-0001SU-Oo for guix-patches@gnu.org; Sat, 02 Jan 2021 17:11:05 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kvp70-00046l-JU for guix-patches@gnu.org; Sat, 02 Jan 2021 17:11:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#45614] [PATCH] gnu: Add ugrep. Resent-From: Hartmut Goebel Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 02 Jan 2021 22:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45614 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 45614@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.160962545715776 (code B ref -1); Sat, 02 Jan 2021 22:11:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Jan 2021 22:10:57 +0000 Received: from localhost ([127.0.0.1]:32828 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvp6v-00046N-4h for submit@debbugs.gnu.org; Sat, 02 Jan 2021 17:10:57 -0500 Received: from lists.gnu.org ([209.51.188.17]:49152) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvp6u-00046G-2W for submit@debbugs.gnu.org; Sat, 02 Jan 2021 17:10:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49706) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvp6n-0003be-Mk for guix-patches@gnu.org; Sat, 02 Jan 2021 17:10:52 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:37368) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvp6i-0001IB-SO for guix-patches@gnu.org; Sat, 02 Jan 2021 17:10:48 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4D7bgP2sRWz1qrLN for ; Sat, 2 Jan 2021 23:10:41 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4D7bgP2lYkz1qs5f for ; Sat, 2 Jan 2021 23:10:41 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id usog0x8qqv6X for ; Sat, 2 Jan 2021 23:10:40 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-51-199.dynamic.mnet-online.de [188.174.51.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for ; Sat, 2 Jan 2021 23:10:39 +0100 (CET) Received: from thisbe.fritz.box (thisbe.fritz.box [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id B50826023E for ; Sat, 2 Jan 2021 23:15:46 +0100 (CET) From: Hartmut Goebel Date: Sat, 2 Jan 2021 23:10:37 +0100 Message-Id: X-Mailer: git-send-email 2.21.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: none client-ip=212.18.0.9; envelope-from=h.goebel@crazy-compilers.com; helo=mail-out.m-online.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: 2.67 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 1F2E0940105 X-Spam-Score: 2.67 X-Migadu-Scanner: scn0.migadu.com X-TUID: xmxDu3dyuQiK * 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