%global debug_package %{nil}

Name:           lapce
Version:        0.2.3
Release:        1%{?dist}
Summary:        Lightning-fast and Powerful Code Editor written in Rust

License:        ASL 2.0
URL:            https://github.com/lapce/lapce
Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz

BuildRequires:  cargo
BuildRequires:  desktop-file-utils
BuildRequires:  gcc-c++
BuildRequires:  libappstream-glib
BuildRequires:  make
BuildRequires:  openssl-perl
BuildRequires:  perl-FindBin
BuildRequires:  perl-lib
BuildRequires:  python3
BuildRequires:  rust

BuildRequires:  perl(File::Compare)
BuildRequires:  perl(File::Path)
BuildRequires:  perl(Getopt::Long)

BuildRequires:  pkgconfig(atk) >= 2.18
BuildRequires:  pkgconfig(cairo-gobject) >= 1.14
BuildRequires:  pkgconfig(cairo) >= 1.14
BuildRequires:  pkgconfig(expat)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(gdk-3.0) >= 3.22
BuildRequires:  pkgconfig(gdk-pixbuf-2.0) >= 2.32
BuildRequires:  pkgconfig(gtk+-3.0) >= 3.22
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(pango) >= 1.38
BuildRequires:  pkgconfig(xcb)

Requires:       hicolor-icon-theme

%description
Lapce (IPA: /læps/) is written in pure Rust with a UI in Druid (which is also
written in Rust). It is designed with Rope Science from the Xi-Editor which
makes for lightning-fast computation, and leverages OpenGL for rendering. More
information about the features of Lapce can be found on the main website and
user documentation can be found on GitBook.


%prep
%autosetup


%build
# Empty


%install
export CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_OPT_LEVEL=3
# Set codegen-units to 1
echo -e '\n[profile.release]' >> Cargo.toml
echo 'codegen-units = 1' >> Cargo.toml

export OPENSSL_NO_VENDOR

%if 0%{?el8}
    $HOME/.cargo/bin/cargo install --root=%{buildroot}%{_prefix} --path=.
%else
    cargo install --root=%{buildroot}%{_prefix} --path=.
%endif
rm -f %{buildroot}%{_prefix}/.crates.toml \
    %{buildroot}%{_prefix}/.crates2.json
strip --strip-all %{buildroot}%{_bindir}/*

install -Dpm 0755 extra/linux/dev.%{name}.%{name}.desktop -t %{buildroot}%{_datadir}/applications/
install -Dpm 0644 extra/linux/dev.%{name}.%{name}.metainfo.xml -t %{buildroot}%{_metainfodir}/
install -Dpm 0644 extra/images/logo.png %{buildroot}%{_datadir}/pixmaps/dev.%{name}.%{name}.png


%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop


%dnl %files -f %{name}.lang
%files
%license LICENSE
%doc README.md
%{_bindir}/%{name}
%{_bindir}/%{name}-proxy
%{_datadir}/applications/*.desktop
%{_datadir}/pixmaps/*.png
%{_metainfodir}/*.xml


%changelog
* Mon Nov 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.2.3-1
- chore: Update to 0.2.3

* Thu Oct 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.2.1-1
- chore(update): 0.2.1

* Sun Sep 04 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.2.0-1
- chore(update): 0.2.0

* Thu May 19 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.1.1-1
- chore(update): 0.1.1

* Thu May 12 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.1.0-1
- chore(update): 0.1.0

* Thu Mar 24 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.12-1
- chore(update): 0.0.12

* Thu Mar 17 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.11-1
- chore(update): 0.0.11

* Fri Mar 04 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.10-1
- chore(update): 0.0.10

* Fri Feb 25 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.9-1
- chore(update): 0.0.9

* Mon Feb 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.8-1
- chore(update): 0.0.8

* Thu Feb 03 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.7-1
- chore(update): 0.0.7

* Fri Jan 28 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.6-1
- chore(update): 0.0.6

* Wed Dec 15 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.0.4-1
- Initial package