Blob Blame History Raw
# Generated by rust2rpm 13
# Fedora 33 comes with ncurses 6.2 which includes terminfo for alacritty.
%if 0%{?fedora} >= 33
%global build_terminfo 0
%else
%global build_terminfo 1
%endif

%bcond_without check
%global __cargo_skip_build 0

%global crate alacritty

Name:           rust-%{crate}
Version:        0.5.0
Release:        1%{?dist}
Summary:        GPU-accelerated terminal emulator

# Upstream license specification: Apache-2.0
# License PR: https://github.com/alacritty/alacritty/pull/4316
License:        ASL 2.0
URL:            https://crates.io/crates/alacritty
Source:         %{crates_source}
Source1:        https://github.com/alacritty/alacritty/archive/v%{version}/alacritty-github-sources-%{version}.tar.gz

# Initial patched metadata:
# - bump dependencies for: glutin, parking_lot and wayland-client
# - remove windows and macos targets
Patch0:         alacritty-fix-metadata.diff
# Patch to address glutin bump to 0.25. Changes are in master [0]
# [0]: https://github.com/alacritty/alacritty/commit/67db9b2
Patch1:         alacritty-0.5.0-fix-glutin.diff

ExclusiveArch:  %{rust_arches}

BuildRequires:  rust-packaging
BuildRequires:  desktop-file-utils

%global _description %{expand:
GPU-accelerated terminal emulator.}

%description %{_description}

%package     -n %{crate}
Summary:        %{summary}
# * ASL 2.0
# * ASL 2.0 and MIT
# * ASL 2.0 or Boost
# * ASL 2.0 or MIT
# * BSD
# * CC0
# * ISC
# * MIT
# * MIT or ASL 2.0
# * Unlicense or MIT
# * WTFPL
# * zlib
# * zlib or ASL 2.0 or MIT
License:        ASL 2.0 and BSD and CC0 and ISC and MIT and WTFPL and zlib

%if !%{build_terminfo}
BuildRequires:  ncurses >= 6.2
%endif

%description -n %{crate} %{_description}

%files       -n %{crate}
%license LICENSE-APACHE
%doc README.md
%dir %{_datadir}/%{crate}
%{_bindir}/%{crate}
%{_mandir}/man1/alacritty.1*
%{_datadir}/applications/Alacritty.desktop
%{_datadir}/pixmaps/Alacritty.svg
%{_datadir}/%{crate}/alacritty.yml
%if %{build_terminfo}
%{_datadir}/terminfo/a/alacritty*
%endif
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/alacritty
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_alacritty
%dir %{_datadir}/fish
%dir %{_datadir}/fish/vendor_completions.d
%{_datadir}/fish/vendor_completions.d/alacritty.fish

%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
# Provides post build files for:
# - Desktop Entry
# - Manual Pages
# - Terminfo
# - Shell Completions
# - Application Config File
tar -xzvf %{SOURCE1}
cp -a %{crate}-%{version_no_tilde}/alacritty.yml ..
# https://github.com/alacritty/alacritty/pull/4316
cp -a %{crate}-%{version_no_tilde}/LICENSE-APACHE .
%cargo_prep

%generate_buildrequires
%cargo_generate_buildrequires

%build
%cargo_build

%install
%cargo_install
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/linux/Alacritty.desktop \
    %{buildroot}%{_datadir}/applications/Alacritty.desktop
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/logo/alacritty-term.svg \
    %{buildroot}%{_datadir}/pixmaps/Alacritty.svg
install -p -D -m644 %{crate}-%{version_no_tilde}/alacritty.yml \
    %{buildroot}%{_datadir}/%{crate}/alacritty.yml
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/completions/alacritty.bash \
    %{buildroot}%{_datadir}/bash-completion/completions/%{crate}
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/completions/_alacritty \
    %{buildroot}%{_datadir}/zsh/site-functions/_alacritty
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/completions/alacritty.fish \
    %{buildroot}%{_datadir}/fish/vendor_completions.d/alacritty.fish
install -p -D -m644 %{crate}-%{version_no_tilde}/extra/alacritty.man \
    %{buildroot}%{_mandir}/man1/alacritty.1

%if %{build_terminfo}
tic -xe alacritty,alacritty-direct %{crate}-%{version_no_tilde}/extra/alacritty.info \
    -o %{buildroot}%{_datadir}/terminfo
%endif

%if %{with check}
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/Alacritty.desktop
%cargo_test
%endif

%changelog
* Fri Oct 16 13:45:04 CEST 2020 returntrip <stefano@figura.im> - 0.5.0-1
- Initial package