loupe/loupe.spec
2023-12-15 22:07:16 +01:00

131 lines
3.4 KiB
RPMSpec

%bcond_without check
%if 0%{?rhel}
%global bundled_rust_deps 1
%else
%global bundled_rust_deps 0
%endif
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: loupe
Version: 45.3
Release: %autorelease
Summary: Image viewer
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
# 0BSD OR MIT OR Apache-2.0
# Apache-2.0 OR MIT
# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
# BSD-2-Clause
# GPL-3.0-or-later
# MIT
# MIT OR Apache-2.0
# MIT OR Apache-2.0 OR Zlib
# MIT OR Zlib OR Apache-2.0
# MPL-2.0 OR LGPL-2.1-or-later
# Unlicense OR MIT
# Zlib OR Apache-2.0 OR MIT
License: (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND GPL-3.0-or-later AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND (MPL-2.0 OR LGPL-2.1-or-later) AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
# LICENSE.dependencies contains a full license breakdown
URL: https://gitlab.gnome.org/GNOME/loupe
Source0: https://download.gnome.org/sources/loupe/45/loupe-%{tarball_version}.tar.xz
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
%if 0%{?rhel}
BuildRequires: rust-toolset
%else
BuildRequires: cargo-rpm-macros
%endif
BuildRequires: itstool
BuildRequires: meson
%if 0%{?bundled_rust_deps}
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(gweather4)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libadwaita-1)
%endif
BuildRequires: /usr/bin/appstream-util
BuildRequires: /usr/bin/desktop-file-validate
# For /usr/share/dbus-1/services directory
Requires: dbus
# Image loaders used by loupe
Requires: glycin-loaders
# For hicolor icon theme directories
Requires: hicolor-icon-theme
%description
An image viewer application written with GTK 4, Libadwaita and Rust.
Features:
- Fast GPU accelerated image rendering with tiled rendering for SVGs
- Extendable and sandboxed (expect SVG) image decoding
- Support for more than 15 image formats by default
- Extensive support for touchpad and touchscreen gestures
- Accessible presentation of the most important metadata
- Sleek but powerful interface developed in conjunction with GNOME Human
Interface Guidelines
%prep
%autosetup -p1 -n loupe-%{tarball_version}
%if ! 0%{?bundled_rust_deps}
rm -rf vendor
sed -i -e '/Cargo.lock/d' meson.build
%cargo_prep
%endif
%if ! 0%{?bundled_rust_deps}
%generate_buildrequires
%cargo_generate_buildrequires
%endif
%build
%meson
%meson_build
%if ! 0%{?rhel}
%cargo_license_summary
%{cargo_license} > LICENSE.dependencies
%endif
%install
%meson_install
%find_lang loupe --with-gnome
%if %{with check}
%check
%meson_test
appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/org.gnome.Loupe.metainfo.xml
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Loupe.desktop
%endif
%files -f loupe.lang
%license COPYING.md
%if ! 0%{?rhel}
%license LICENSE.dependencies
%endif
%doc NEWS README.md
%{_bindir}/loupe
%{_datadir}/applications/org.gnome.Loupe.desktop
%{_datadir}/dbus-1/services/org.gnome.Loupe.service
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Loupe*.svg
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Loupe-symbolic.svg
%{_metainfodir}/org.gnome.Loupe.metainfo.xml
%changelog
%autochangelog