## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%global ugrep_indexer_version 1.0.0

# only bzip3 version <= 1.3.2, on F39, works correctly; F38 currently provides 1.3.1
%if 0%{?fedora} >= 39
%bcond_without bzip3
%else
%bcond_with bzip3
%endif

Name:           ugrep
Version:        5.1.4
Release:        0%{?dist}.2sunshine
Summary:        Faster, user-friendly, and compatible grep replacement
License:        BSD-3-Clause
URL:            https://ugrep.com/
Source:         https://github.com/Genivia/ugrep/archive/v%{version}/%{name}-%{version}.tar.gz
Source1:        https://github.com/Genivia/ugrep-indexer/archive/v%{ugrep_indexer_version}/%{name}-indexer-%{ugrep_indexer_version}.tar.gz

BuildRequires:  make
BuildRequires:  gcc-c++
BuildRequires:  pcre2-devel
BuildRequires:  zlib-devel
BuildRequires:  bzip2-devel
%if %{with bzip3}
BuildRequires:  bzip3-devel >= 1.3.2
%endif
BuildRequires:  xz-devel
BuildRequires:  lz4-devel
BuildRequires:  libzstd-devel
BuildRequires:  brotli-devel

# https://github.com/Genivia/ugrep/issues/215
Provides:       bundled(libreflex) = 5.1.0


%description
Ultra fast grep with interactive TUI, fuzzy search, boolean queries, hexdumps
and more: search file systems, source code, text, binary files, archives
(cpio/tar/pax/zip), compressed files (gz/Z/bz2/lzma/xz/lz4/zstd), documents
etc.  A faster, user-friendly and compatible grep replacement.

%package bash-completion
Summary:        Bash completion for %{name}
Requires:       %{name} = %{version}-%{release}
Requires:       bash-completion
Supplements:    (%{name} and bash-completion)

%description bash-completion
Bash command line completion support for %{name}.

%package zsh-completion
Summary:        Zsh completion for %{name}
Requires:       %{name} = %{version}-%{release}
Requires:       zsh
Supplements:    (%{name} and zsh)

%description zsh-completion
Zsh command line completion support for %{name}.

%package fish-completion
Summary:        Fish completion for %{name}
Requires:       %{name} = %{version}-%{release}
Requires:       fish
Supplements:    (%{name} and fish)

%description fish-completion
Fish command line completion support for %{name}.


%prep
%autosetup -p 1
%autosetup -a 1

%build
pushd ugrep-indexer-%{ugrep_indexer_version}
%configure --with-brotli %{?with_bzip3:--with-bzip3}
%make_build
popd

%ifarch %{arm}
# https://github.com/Genivia/ugrep/issues/128
%configure --disable-neon --with-brotli %{?with_bzip3:--with-bzip3}
%else
%configure --with-brotli %{?with_bzip3:--with-bzip3}
%endif
%make_build


%install
pushd ugrep-indexer-%{ugrep_indexer_version}
%make_install
popd
%make_install
# avoid duplicating binary
pushd %{buildroot}%{_bindir}
if cmp ugrep ug; then
    rm -f ug
    ln -s ugrep ug
fi
popd


%check
%make_build test


%files
%license LICENSE.txt
%doc README.md
%{_bindir}/ug
%{_bindir}/ug+
%{_bindir}/ugrep
%{_bindir}/ugrep+
%{_bindir}/ugrep-indexer
%{_mandir}/man1/ug.1*
%{_mandir}/man1/ugrep.1*
%{_mandir}/man1/ugrep-indexer.1*
%{_datadir}/ugrep

%files bash-completion
%{_datadir}/bash-completion/completions/ug
%{_datadir}/bash-completion/completions/ug+
%{_datadir}/bash-completion/completions/ugrep
%{_datadir}/bash-completion/completions/ugrep+

%files zsh-completion
%{_datadir}/zsh/site-functions/_ug
%{_datadir}/zsh/site-functions/_ug+
%{_datadir}/zsh/site-functions/_ugrep
%{_datadir}/zsh/site-functions/_ugrep+

%files fish-completion
%{_datadir}/fish/vendor_completions.d/ug.fish
%{_datadir}/fish/vendor_completions.d/ug+.fish
%{_datadir}/fish/vendor_completions.d/ugrep.fish
%{_datadir}/fish/vendor_completions.d/ugrep+.fish


%changelog
* Mon Apr 22 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 5.1.4-0.2sunshine
- update ugrep-indexer to 1.0.0

* Wed Apr 10 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 5.1.4-0.1sunshine
- update to 5.1.4

* Mon Mar 11 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 5.1.1-0.1sunshine
- update to 5.1.1

* Mon Mar 11 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 5.1.0-0.1sunshine
- update to 5.1.0 and ugrep-indexer 0.9.6

* Wed Jan 10 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 4.5.2-0.1sunshine
- update to 4.5.2

* Mon Jan  8 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 4.5.1-0.1sunshine
- update to 4.5.1

* Fri Jan  5 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 4.5.0-0.1sunshine
- update to 4.5.0

* Fri Jan  5 2024 Moritz Barsnick <moritz+rpm@barsnick.net> 4.4.1-0.2sunshine
- update ugrep-indexer to 0.9.5

* Tue Dec 19 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.4.1-0.1sunshine
- update to 4.4.1
- drop the completions installation patch, it's upstream

* Tue Dec 19 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.4.0-0.1sunshine
- update to 4.4.0
- package shell completions as separate packages
- add a patch for correct installation of completions (requires automake)

* Mon Dec 18 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.6-0.2sunshine
- fix bzip3 support
- fix brotli comment, it is supported on all current RedHat/Fedora platforms
- build and package ugrep-indexer

* Mon Dec 18 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.6-0.1sunshine
* update to 4.3.6
- add conditional support for bzip3
- add support for brotli

* Tue Nov 28 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.4-0.2sunshine
- actually build with bzip3

* Mon Nov 27 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.4-0.1sunshine
- update to 4.3.4
- add BR: bzip3-devel 

* Thu Nov 16 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.3-0.1sunshine
- update to 4.3.3

* Fri Nov  3 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.2-0.1sunshine
- update to 4.3.2
- new URL

* Sat Oct  7 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.3.0-0.1sunshine
- update to 4.3.0

* Thu Sep 28 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.2.0-0.1sunshine
- update to 4.2.0

* Mon Sep 18 2023 Moritz Barsnick <moritz+rpm@barsnick.net> 4.1.0-0.1sunshine
- update to 4.1.0
- package README.md as %%doc
- make ug a symlink to ugrep, not a copy

* Wed Aug 16 2023 Carl George <carlwgeorge@fedoraproject.org> - 3.12.7-1
- Update to version 3.12.7, resolves rhbz#2232315

* Sun Aug 13 2023 Carl George <carlwgeorge@fedoraproject.org> - 3.12.6-1
- Update to version 3.12.6, resolves rhbz#2212092

* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Sun Apr 16 2023 Carl George <carl@george.computer> - 3.11.2-1
- Update to version 3.11.2, resolves rhbz#2179547

* Wed Mar 01 2023 Carl George <carl@george.computer> - 3.10.0-1
- Update to version 3.10.0, resolves rhbz#2174333

* Fri Feb 03 2023 Carl George <carl@george.computer> - 3.9.7-1
- Update to version 3.9.7, resolves rhbz#2157204

* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Tue Aug 23 2022 Carl George <carl@george.computer> - 3.9.2-2
- Disable NEON optimizations on 32bit ARM

* Mon Aug 22 2022 Carl George <carl@george.computer> - 3.9.2-1
- Latest upstream 3.9.2

* Mon Aug 22 2022 Carl George <carl@george.computer> - 3.8.3-1
- Initial import, resolves rhbz#2109340