diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d0ec29c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/ripgrep-0.10.0.crate diff --git a/0001-pcre2-use-jit_if_available.patch b/0001-pcre2-use-jit_if_available.patch new file mode 100644 index 0000000..3ab5b2e --- /dev/null +++ b/0001-pcre2-use-jit_if_available.patch @@ -0,0 +1,29 @@ +From eb18da04506b959c0251099eae83e16d22ce8bcb Mon Sep 17 00:00:00 2001 +From: Andrew Gallant +Date: Sat, 8 Sep 2018 17:12:14 -0400 +Subject: [PATCH] pcre2: use jit_if_available + +This will allow PCRE2 to fall back to non-JIT matching when running on +platforms without JIT support. + +ref https://github.com/BurntSushi/rust-pcre2/issues/3 +--- + src/args.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/args.rs b/src/args.rs +index 1a38d3e..7aed914 100644 +--- a/src/args.rs ++++ b/src/args.rs +@@ -633,7 +633,7 @@ impl ArgMatches { + // For whatever reason, the JIT craps out during regex compilation with + // a "no more memory" error on 32 bit systems. So don't use it there. + if !cfg!(target_pointer_width = "32") { +- builder.jit(true); ++ builder.jit_if_available(true); + } + if self.pcre2_unicode() { + builder.utf(true).ucp(true); +-- +2.19.0.rc1 + diff --git a/ripgrep-fix-metadata.diff b/ripgrep-fix-metadata.diff new file mode 100644 index 0000000..dc41cc6 --- /dev/null +++ b/ripgrep-fix-metadata.diff @@ -0,0 +1,21 @@ +--- ripgrep-0.10.0/Cargo.toml 1970-01-01T01:00:00+01:00 ++++ ripgrep-0.10.0/Cargo.toml 2018-10-28T08:59:07.921425+01:00 +@@ -46,7 +46,7 @@ + default-features = false + + [dependencies.grep] +-version = "0.2.2" ++version = "0.2.3" + + [dependencies.ignore] + version = "0.4.4" +@@ -82,9 +82,7 @@ + version = "1.1.0" + + [features] +-avx-accel = ["grep/avx-accel"] + pcre2 = ["grep/pcre2"] +-simd-accel = ["grep/simd-accel"] + [badges.appveyor] + repository = "BurntSushi/ripgrep" + diff --git a/rust-ripgrep.spec b/rust-ripgrep.spec new file mode 100644 index 0000000..2048a2d --- /dev/null +++ b/rust-ripgrep.spec @@ -0,0 +1,93 @@ +# Generated by rust2rpm +%bcond_without check + +%global crate ripgrep + +Name: rust-%{crate} +Version: 0.10.0 +Release: 1%{?dist} +Summary: Line oriented search tool using Rust's regex library + +# Upstream license specification: Unlicense OR MIT +License: Unlicense or MIT +URL: https://crates.io/crates/ripgrep +Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate +# Initial patched metadata +# * No windows +# * No simd +# * Use jit_if_available, https://github.com/BurntSushi/ripgrep/commit/eb18da04506b959c0251099eae83e16d22ce8bcb +Patch0: ripgrep-fix-metadata.diff +# Really use jit_if_available +Patch0001: 0001-pcre2-use-jit_if_available.patch + +ExclusiveArch: %{rust_arches} + +BuildRequires: rust-packaging +BuildRequires: (crate(clap/suggestions) >= 2.32.0 with crate(clap/suggestions) < 3.0.0) +BuildRequires: (crate(grep/default) >= 0.2.3 with crate(grep/default) < 0.3.0) +BuildRequires: (crate(grep/pcre2) >= 0.2.3 with crate(grep/pcre2) < 0.3.0) +BuildRequires: (crate(ignore/default) >= 0.4.4 with crate(ignore/default) < 0.5.0) +BuildRequires: (crate(lazy_static/default) >= 1.1.0 with crate(lazy_static/default) < 2.0.0) +BuildRequires: (crate(log/default) >= 0.4.5 with crate(log/default) < 0.5.0) +BuildRequires: (crate(num_cpus/default) >= 1.8.0 with crate(num_cpus/default) < 2.0.0) +BuildRequires: (crate(regex/default) >= 1.0.5 with crate(regex/default) < 2.0.0) +BuildRequires: (crate(serde_json/default) >= 1.0.23 with crate(serde_json/default) < 2.0.0) +BuildRequires: (crate(termcolor/default) >= 1.0.3 with crate(termcolor/default) < 2.0.0) +%if %{with check} +BuildRequires: (crate(serde/default) >= 1.0.77 with crate(serde/default) < 2.0.0) +BuildRequires: (crate(serde_derive/default) >= 1.0.77 with crate(serde_derive/default) < 2.0.0) +%endif +BuildRequires: %{_bindir}/a2x + +%global _description \ +Line oriented search tool using Rust's regex library.\ +Combines the raw performance of grep with the usability of the silver searcher. + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE-MIT UNLICENSE COPYING +%doc README.md CHANGELOG.md +%{_bindir}/rg +%{_mandir}/man1/rg.1* +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/rg.bash +%dir %{_datadir}/fish +%dir %{_datadir}/fish/vendor_functions.d +%{_datadir}/fish/vendor_functions.d/rg.fish +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/_rg + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep + +%build +%cargo_build -a + +%install +%cargo_install -a +%{__install} -Dpm0644 -t %{buildroot}%{_mandir}/man1 \ + target/release/build/%{crate}-*/out/rg.1 +%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/bash-completion/completions \ + target/release/build/%{crate}-*/out/rg.bash +%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/fish/vendor_functions.d \ + target/release/build/%{crate}-*/out/rg.fish +%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/zsh/site-functions \ + complete/_rg + +%if %{with check} +%check +%cargo_test -a +%endif + +%changelog +* Sat Dec 15 2018 Igor Gnatenko - 0.10.0-1 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..5ac5f19 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (ripgrep-0.10.0.crate) = d96c12be497999d0db777ca5fd33f907ed01cba121e3fb43a7a6a5f3176291f04b7bcd6e26f04f98b305cf50ac422a77a10d6a34c3a7510d233fa76228784576