#
# Conditional build:
%bcond_without apidocs # disable gtk-doc
-%bcond_without svg # disable SVG support (to boostrap librsvg)
-%if "%{pld_release}" == "ac"
-%bcond_with xcb # XCB backend
-%else
+%bcond_without pdf # PDF surface backend
+%bcond_without svg # SVG surface backend
%bcond_without xcb # XCB backend
-%endif
%bcond_with tests # perform tests (can fail due to out of memory)
-#
+%bcond_without static_libs # static libraries
+
Summary: Cairo - multi-platform 2D graphics library
Summary(pl.UTF-8): Cairo - wieloplatformowa biblioteka graficzna 2D
Name: cairo
-Version: 1.10.2
-Release: 6
+Version: 1.18.0
+Release: 2
License: LGPL v2.1 or MPL v1.1
Group: Libraries
-Source0: http://cairographics.org/releases/%{name}-%{version}.tar.gz
-# Source0-md5: f101a9e88b783337b20b2e26dfd26d5f
-Patch0: %{name}-link.patch
-URL: http://cairographics.org/
-BuildRequires: autoconf >= 2.59
-BuildRequires: automake >= 1:1.9.6
+Source0: https://www.cairographics.org/releases/%{name}-%{version}.tar.xz
+# Source0-md5: 3f0685fbadc530606f965b9645bb51d9
+URL: https://www.cairographics.org/
+BuildRequires: binutils-devel
BuildRequires: fontconfig-devel >= 2.2.95
-BuildRequires: freetype-devel >= 1:2.3.0
-BuildRequires: glib2-devel >= 1:2.0
-%{?with_apidocs:BuildRequires: gtk-doc >= 1.6}
+%if %{with tests}
+# ttx
+BuildRequires: fonttools
+%endif
+# pkgconfig(freetype2) >= 25.0.19
+BuildRequires: freetype-devel >= 1:2.13.0
+BuildRequires: glib2-devel >= 1:2.14
+%{?with_apidocs:BuildRequires: gtk-doc >= 1.15}
BuildRequires: libpng-devel >= 2:1.4.0
-%{?with_svg:BuildRequires: librsvg-devel >= 2.15.0}
+%if %{with svg} && %{with tests}
+BuildRequires: librsvg-devel >= 2.35.0
+%endif
+%if %{with tests}
BuildRequires: libspectre-devel >= 0.2.0
-BuildRequires: libtool >= 1.4
-BuildRequires: pixman-devel >= 0.18.4
-BuildRequires: pkgconfig >= 1:0.9
-%{?with_tests:BuildRequires: poppler-glib-devel >= 0.13.3}
+%endif
+%{?with_xcb:BuildRequires: libxcb-devel >= 1.6}
+BuildRequires: lzo-devel >= 2
+BuildRequires: meson >= 0.59.0
+BuildRequires: ninja >= 1.5
+BuildRequires: pixman-devel >= 0.36.0
+BuildRequires: pkgconfig >= 1:0.18
+%if %{with pdf} && %{with tests}
+BuildRequires: poppler-glib-devel >= 0.17.4
+%endif
BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: sed >= 4.0
-%if %{with xcb}
-BuildRequires: libxcb-devel >= 1.4
-%endif
-%if "%{pld_release}" == "ac"
-BuildRequires: xrender-devel >= 0.6
-%else
+BuildRequires: tar >= 1:1.22
BuildRequires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
+BuildRequires: xorg-lib-libXext-devel
BuildRequires: xorg-lib-libXrender-devel >= 0.6
-%endif
+BuildRequires: xz
BuildRequires: zlib-devel
-Requires: freetype >= 1:2.3.0
-Requires: pixman >= 0.18.4
+Requires: fontconfig-libs >= 2.2.95
+Requires: freetype >= 1:2.13.0
+%{?with_xcb:Requires: libxcb >= 1.6}
+Requires: pixman >= 0.36.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: fontconfig-devel >= 2.2.95
-Requires: freetype-devel >= 1:2.3.0
+Requires: freetype-devel >= 1:2.13.0
Requires: libpng-devel >= 2:1.4.0
-%{?with_xcb:Requires: libxcb-devel >= 1.4}
-Requires: pixman-devel >= 0.18.4
-%if "%{pld_release}" == "ac"
-Requires: xrender-devel >= 0.6
-%else
+%{?with_xcb:Requires: libxcb-devel >= 1.6}
+Requires: lzo-devel >= 2
+Requires: pixman-devel >= 0.36.0
Requires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
+Requires: xorg-lib-libXext-devel
Requires: xorg-lib-libXrender-devel >= 0.6
-%endif
+Requires: zlib-devel
%description devel
Development files for Cairo library.
Summary(pl.UTF-8): Biblioteka funkcji GObject dla biblioteki graficznej Cairo
Group: Libraries
Requires: %{name} = %{version}-%{release}
+Requires: glib2 >= 1:2.14
%description gobject
GObject functions library for Cairo graphics library.
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
Requires: %{name}-gobject = %{version}-%{release}
-Requires: glib2-devel >= 1:2.0
+Requires: glib2-devel >= 1:2.14
%description gobject-devel
Header files for Cairo GObject library.
Statyczna biblioteka Cairo GObject.
%package trace
-Summary: Cairo calls tracing utility
-Summary(pl.UTF-8): Narzędzie do śledzenia wywołań Cairo
+Summary: Cairo calls tracing utilities
+Summary(pl.UTF-8): Narzędzia do śledzenia wywołań Cairo
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
+Requires: binutils-libs >= 2.21.53
%description trace
-Cairo calls tracing utility.
+Cairo calls tracing utilities.
%description trace -l pl.UTF-8
-Narzędzie do śledzenia wywołań Cairo.
+Narzędzia do śledzenia wywołań Cairo.
%package apidocs
Summary: Cairo API documentation
Summary(pl.UTF-8): Dokumentacja API Cairo
Group: Documentation
Requires: gtk-doc-common
+BuildArch: noarch
%description apidocs
Cairo API documentation.
%prep
%setup -q
-%patch0 -p1
%build
-%{?with_apidocs:%{__gtkdocize}}
-%{__libtoolize}
-%{__aclocal} -I build
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-%configure \
- --disable-silent-rules \
- --enable-freetype \
- %{?with_apidocs:--enable-gtk-doc} \
- --enable-pdf \
- --enable-png \
- --enable-ps \
- %{!?with_svg:--disable-svg} \
- --enable-tee \
- %{?with_xcb:--enable-xcb} \
- --with-html-dir=%{_gtkdocdir}
-
-%{__sed} -i 's/gobject-2.0 glib-2.0//' src/cairo.pc
-
-%{__make}
-%{?with_tests:%{__make} check}
+%meson build \
+ %{!?with_static_libs:--default-library=shared} \
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dgtk_doc=%{__true_false apidocs} \
+ -Dpng=enabled \
+ -Dspectre=%{__enabled_disabled tests} \
+ -Dtee=enabled \
+ -Dtests=disabled \
+ -Dxcb=%{__enabled_disabled xcb} \
+ -Dxlib=enabled \
+ -Dzlib=enabled
+
+%ninja_build -C build
+
+%{?with_tests:%ninja_test -C build}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
# LD_PRELOADable library
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/libcairo-trace.{la,a}
-
-%{!?with_apidocs:rm -rf $RPM_BUILD_ROOT%{_gtkdocdir}/cairo}
+%{?with_static_libs:%{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/libcairo-{fdr,trace}.a}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
# COPYING contains only notes, not LGPL/MPL texts
-%doc AUTHORS COPYING ChangeLog NEWS README
+%doc AUTHORS BUGS COPYING NEWS README.md
%attr(755,root,root) %{_libdir}/libcairo.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libcairo.so.2
%attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so.*.*.*
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libcairo.so
%attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so
-%{_libdir}/libcairo.la
-%{_libdir}/libcairo-script-interpreter.la
%{_includedir}/cairo
%exclude %{_includedir}/cairo/cairo-gobject.h
%{_pkgconfigdir}/cairo.pc
%{_pkgconfigdir}/cairo-fc.pc
%{_pkgconfigdir}/cairo-ft.pc
-%{_pkgconfigdir}/cairo-pdf.pc
+%{?with_pdf:%{_pkgconfigdir}/cairo-pdf.pc}
%{_pkgconfigdir}/cairo-png.pc
%{_pkgconfigdir}/cairo-ps.pc
+%{_pkgconfigdir}/cairo-script.pc
+%{_pkgconfigdir}/cairo-script-interpreter.pc
%{?with_svg:%{_pkgconfigdir}/cairo-svg.pc}
%{_pkgconfigdir}/cairo-tee.pc
%{?with_xcb:%{_pkgconfigdir}/cairo-xcb.pc}
%{_pkgconfigdir}/cairo-xlib.pc
%{_pkgconfigdir}/cairo-xlib-xrender.pc
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libcairo.a
%{_libdir}/libcairo-script-interpreter.a
+%endif
%files gobject
%defattr(644,root,root,755)
%files gobject-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libcairo-gobject.so
-%{_libdir}/libcairo-gobject.la
%{_includedir}/cairo/cairo-gobject.h
%{_pkgconfigdir}/cairo-gobject.pc
+%if %{with static_libs}
%files gobject-static
%defattr(644,root,root,755)
%{_libdir}/libcairo-gobject.a
+%endif
%files trace
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cairo-trace
%dir %{_libdir}/cairo
+%attr(755,root,root) %{_libdir}/cairo/libcairo-fdr.so
%attr(755,root,root) %{_libdir}/cairo/libcairo-trace.so*
%if %{with apidocs}