#
-# TODO: - separate libs subpackage, current scheme conflicts on multilib
-# shouldn't be a problem:
-# - rsvg script doesn't differ
-# - rsvg-{convert,view} are ELF binaries with proper colors in rpm, so should be handled properly
-#
# Conditional build
-%bcond_without apidocs # disable gtk-doc
-%bcond_without libgsf # build without libgsf (used for run-time decompression)
-%bcond_without libcroco # build without CSS support through libcroco
-%bcond_without static_libs # don't build static library
-#
+%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
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: 2.34.0
+Version: %{mver}.%{pver}
Release: 1
Epoch: 1
License: LGPL v2+
Group: X11/Libraries
-Source0: http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.34/%{name}-%{version}.tar.bz2
-# Source0-md5: 5eb2fcd0765aa5e47a4999985e3c27ab
-URL: http://librsvg.sourceforge.net/
-BuildRequires: autoconf
+Source0: https://download.gnome.org/sources/librsvg/%{mver}/%{name}-%{version}.tar.xz
+# Source0-md5: 22328b7922ab04836959f669ecef1ea7
+Source1: rsvg
+Patch0: x32.patch
+URL: https://wiki.gnome.org/Projects/LibRsvg
+BuildRequires: autoconf >= 2.69
BuildRequires: automake >= 1:1.9
-BuildRequires: docbook-dtd412-xml
-BuildRequires: gdk-pixbuf2-devel >= 2.0
-BuildRequires: glib2-devel >= 1:2.24.0
-BuildRequires: gtk+2-devel >= 2:2.16.0
-BuildRequires: gtk+3-devel >= 3.0.0
-%{?with_apidocs:BuildRequires: gtk-doc >= 1.13}
-%{?with_apidocs:BuildRequires: gtk-doc-automake}
-%{?with_libcroco:BuildRequires: libcroco-devel >= 0.6.1}
-%{?with_libgsf:BuildRequires: libgsf-devel >= 1.14.4}
-BuildRequires: libtool
-BuildRequires: libxml2-devel >= 1:2.6.31
+BuildRequires: cairo-devel >= 1.16.0
+BuildRequires: cairo-gobject-devel >= 1.16.0
+BuildRequires: cargo
+BuildRequires: docbook-dtd43-xml
+BuildRequires: docutils
+BuildRequires: fontconfig-devel
+# pkgconfig(freetype) >= 20.0.14
+BuildRequires: freetype-devel >= 1:2.8
+BuildRequires: gdk-pixbuf2-devel >= 2.20
+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: pkgconfig
+BuildRequires: rpm-build >= 4.6
BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: rust >= 1.52
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: gdk-pixbuf2 >= 2.0
-Requires: glib2 >= 1:2.24.0
-Requires: gtk+2 >= 2:2.16.0
-Requires: gtk+3 >= 3.0.0
-%{?with_libcroco:Requires: libcroco >= 0.6.1}
-%{?with_libgsf:Requires: libgsf >= 1.14.4}
-Requires: libxml2 >= 1:2.6.31
-Obsoletes: browser-plugin-librsvg
-Obsoletes: librsvg0
-Obsoletes: mozilla-plugin-rsvg
+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
+Obsoletes: librsvg-gtk+2 < 1:2.40
+Obsoletes: librsvg-gtk+3 < 1:2.46
+Obsoletes: librsvg0 < 2
+Obsoletes: mozilla-plugin-rsvg < 1:2.16.1
+# rust archs
+ExclusiveArch: %{x8664} %{ix86} x32 aarch64 armv6hl armv7hl armv7hnl
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# see gtk+2.spec for source of these ifdefs
+# see gdk-pixbuf2.spec for source of these ifdefs
%if "%{_lib}" != "lib"
%define libext %(lib="%{_lib}"; echo ${lib#lib})
%define pqext -%{libext}
Summary(uk.UTF-8): Бібліотечні лінки та файли заголовків для розробки з librsvg
Group: X11/Development/Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: glib2-devel >= 1:2.24.0
-Requires: gdk-pixbuf2-devel >= 2.0
-Requires: gtk+2-devel >= 2:2.16.0
-%{?with_libcroco:Requires: libcroco-devel >= 0.6.1}
-%{?with_libgsf:Requires: libgsf-devel >= 1.14.4}
-Requires: libxml2-devel >= 1:2.6.31
-Obsoletes: librsvg0-devel
+Requires: cairo-gobject-devel >= 1.16.0
+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
%description devel
This package provides the necessary development libraries and include
Summary(pl.UTF-8): Dokumentacja API biblioteki librsvg
Group: Documentation
Requires: gtk-doc-common
+BuildArch: noarch
%description apidocs
librsvg API documentation.
%description apidocs -l pl.UTF-8
Dokumentacja API biblioteki librsvg.
+%package -n vala-librsvg
+Summary: Vala API for librsvg library
+Summary(pl.UTF-8): API języka Vala do biblioteki librsvg
+Group: Development/Libraries
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Requires: vala >= 2:0.40
+BuildArch: noarch
+
+%description -n vala-librsvg
+Vala API for librsvg library.
+
+%description -n vala-librsvg -l pl.UTF-8
+API języka Vala do biblioteki librsvg.
+
%prep
%setup -q
+%patch0 -p1
-%if !%{with apidocs}
-echo 'CLEANFILES=' > gtk-doc.make
-echo 'AC_DEFUN([GTK_DOC_CHECK],[])' >> acinclude.m4
+%ifarch x32
+%{__sed} -i -e 's/test "\?x\?\$cross_compiling"\? = "\?x\?yes"\?/true/' configure.ac
%endif
-%{__sed} -e 's/gdk-pixbuf-query-loaders/gdk-pixbuf-query-loaders%{pqext}/' -i configure.in
-
%build
-%{?with_apidocs:%{__gtkdocize}}
%{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
%configure \
+%ifarch x32
+ RUST_TARGET=x86_64-unknown-linux-gnux32 \
+%endif
+ --enable-introspection \
--disable-silent-rules \
- %{!?with_static_libs:--disable-static} \
- %{?with_apidocs:--enable-gtk-doc} \
- %{!?with_libcroco:--without-croco} \
- %{!?with_libgsf:--without-svgz} \
- --with-html-dir=%{_gtkdocdir}/%{name}
+ %{__enable_disable static_libs static} \
+ %{?with_vala:--enable-vala}
+
%{__make}
%install
DESTDIR=$RPM_BUILD_ROOT \
pkgconfigdir=%{_pkgconfigdir}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/2.*/engines/*.{la,a}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gdk-pixbuf-2.0/2.*.*/loaders/*.{la,a}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/gdk-pixbuf-2.0/2.*.*/loaders/*.la
+%if %{with static_libs}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/gdk-pixbuf-2.0/2.*.*/loaders/*.a
+%endif
%{__rm} $RPM_BUILD_ROOT%{_libdir}/librsvg-2.la
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
+
+install -d $RPM_BUILD_ROOT%{_gtkdocdir}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/doc/librsvg $RPM_BUILD_ROOT%{_gtkdocdir}
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc ChangeLog AUTHORS NEWS
+%doc AUTHORS NEWS
%attr(755,root,root) %{_bindir}/rsvg
%attr(755,root,root) %{_bindir}/rsvg-convert
-%attr(755,root,root) %{_bindir}/rsvg-view-3
-%attr(755,root,root) %{_bindir}/rsvg-view
-%attr(755,root,root) %{_libdir}/gdk-pixbuf-2.0/2.*.*/loaders/libpixbufloader-svg.so
-%attr(755,root,root) %{_libdir}/gtk-2.0/2.*/engines/libsvg.so
%attr(755,root,root) %{_libdir}/librsvg-2.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/librsvg-2.so.2
-%{_datadir}/themes/bubble
-%{_mandir}/man1/rsvg.1*
-%{_pixmapsdir}/svg-viewer.svg
+%{_libdir}/girepository-1.0/Rsvg-2.0.typelib
+%attr(755,root,root) %{_libdir}/gdk-pixbuf-2.0/2.*.*/loaders/libpixbufloader-svg.so
+%{_datadir}/thumbnailers/librsvg.thumbnailer
+%{_mandir}/man1/rsvg-convert.1*
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/librsvg-2.so
-%{_pkgconfigdir}/librsvg-2.0.pc
%{_includedir}/librsvg-2.0
+%{_datadir}/gir-1.0/Rsvg-2.0.gir
+%{_pkgconfigdir}/librsvg-2.0.pc
%if %{with static_libs}
%files static
%{_libdir}/librsvg-2.a
%endif
-%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
%{_gtkdocdir}/%{name}
+
+%if %{with vala}
+%files -n vala-librsvg
+%defattr(644,root,root,755)
+%{_datadir}/vala/vapi/librsvg-2.0.vapi
%endif