#
# Conditional build
+%bcond_without apidocs # gi-docgen based API documentation
%bcond_without static_libs # static library
%bcond_without vala # Vala API (vala up to 0.38.x already contains librsvg-2.0.vapi)
-%define mver 2.54
-%define pver 0
+%define crates_ver 2.56.1
+
Summary: A Raph's Library for Rendering SVG Data
Summary(pl.UTF-8): Biblioteka Raph's SVG do renderowania danych SVG
Summary(pt_BR.UTF-8): Biblioteca SVG
Summary(ru.UTF-8): SVG библиотека
Summary(uk.UTF-8): SVG бібліотека
Name: librsvg
-Version: %{mver}.%{pver}
-Release: 2
+Version: 2.56.1
+Release: 1
Epoch: 1
License: LGPL v2+
Group: X11/Libraries
-Source0: https://download.gnome.org/sources/librsvg/%{mver}/%{name}-%{version}.tar.xz
-# Source0-md5: 22328b7922ab04836959f669ecef1ea7
-Source1: rsvg
+Source0: https://download.gnome.org/sources/librsvg/2.56/%{name}-%{version}.tar.xz
+# Source0-md5: 023e34798503c964ad982d130ee369c9
+Source1: %{name}-crates-%{crates_ver}.tar.xz
+# Source1-md5: 10249215e606c8fc13e9c40aa54bc556
+Source2: rsvg
Patch0: x32.patch
-Patch1: comment_error.patch
URL: https://wiki.gnome.org/Projects/LibRsvg
BuildRequires: autoconf >= 2.69
BuildRequires: automake >= 1:1.9
# pkgconfig(freetype) >= 20.0.14
BuildRequires: freetype-devel >= 1:2.8
BuildRequires: gdk-pixbuf2-devel >= 2.20
-BuildRequires: gi-docgen
+%{?with_apidocs:BuildRequires: gi-docgen}
BuildRequires: glib2-devel >= 1:2.50.0
BuildRequires: gobject-introspection-devel >= 0.10.8
BuildRequires: harfbuzz-devel >= 2.0.0
-BuildRequires: libcroco-devel >= 0.6.1
BuildRequires: libtool >= 2:2.0
BuildRequires: libxml2-devel >= 1:2.9.0
BuildRequires: pango-devel >= 1:1.48.11
BuildRequires: rpm-build >= 4.6
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.752
-BuildRequires: rust >= 1.52
+BuildRequires: rust >= 1.65.0
BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.22
%{?with_vala:BuildRequires: vala >= 2:0.18}
BuildRequires: xz
Requires(post,postun): /sbin/ldconfig
+Requires(post,postun): gdk-pixbuf2
Requires: cairo-gobject >= 1.16.0
Requires: freetype >= 1:2.8
Requires: gdk-pixbuf2 >= 2.20
Requires: glib2 >= 1:2.50.0
Requires: harfbuzz >= 2.0.0
-Requires: libcroco >= 0.6.1
Requires: libxml2 >= 1:2.9.0
Requires: pango >= 1:1.48.11
Obsoletes: browser-plugin-librsvg < 1:2.15
Requires: freetype-devel >= 1:2.8
Requires: gdk-pixbuf2-devel >= 2.20
Requires: glib2-devel >= 1:2.50.0
-Requires: libcroco-devel >= 0.6.1
Requires: libxml2-devel >= 1:2.9.0
Requires: pango-devel >= 1:1.48.11
Obsoletes: librsvg0-devel < 2
API języka Vala do biblioteki librsvg.
%prep
-%setup -q
+%setup -q -a1
%patch0 -p1
-%patch1 -p1
%ifarch x32
%{__sed} -i -e 's/test "\?x\?\$cross_compiling"\? = "\?x\?yes"\?/true/' configure.ac
%endif
+%{__mv} librsvg-%{crates_ver}/* .
+sed -i -e 's/@@VERSION@@/%{version}/' Cargo.lock
+
+# use our offline registry
+export CARGO_HOME="$(pwd)/.cargo"
+
+mkdir -p "$CARGO_HOME"
+cat >.cargo/config <<EOF
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = '$PWD/vendor'
+EOF
+
%build
+export CARGO_HOME="$(pwd)/.cargo"
%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
%ifarch x32
RUST_TARGET=x86_64-unknown-linux-gnux32 \
%endif
+ %{__enable_disable apidocs gtk-doc} \
--enable-introspection \
--disable-silent-rules \
%{__enable_disable static_libs static} \
%install
rm -rf $RPM_BUILD_ROOT
+export CARGO_HOME="$(pwd)/.cargo"
+
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
pkgconfigdir=%{_pkgconfigdir}
%endif
%{__rm} $RPM_BUILD_ROOT%{_libdir}/librsvg-2.la
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}
+%if %{with apidocs}
install -d $RPM_BUILD_ROOT%{_gtkdocdir}
-%{__mv} $RPM_BUILD_ROOT%{_datadir}/doc/librsvg $RPM_BUILD_ROOT%{_gtkdocdir}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/doc/Rsvg-2.0 $RPM_BUILD_ROOT%{_gtkdocdir}
+%endif
+# README.md packaged as %doc, the rest useful just for developers
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/librsvg
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc AUTHORS NEWS
+%doc AUTHORS NEWS README.md
%attr(755,root,root) %{_bindir}/rsvg
%attr(755,root,root) %{_bindir}/rsvg-convert
%attr(755,root,root) %{_libdir}/librsvg-2.so.*.*.*
%{_libdir}/librsvg-2.a
%endif
+%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
-%{_gtkdocdir}/%{name}
+%{_gtkdocdir}/Rsvg-2.0
+%endif
%if %{with vala}
%files -n vala-librsvg