#
# Conditional build:
%bcond_without apidocs # disable gtk-doc
-%bcond_without svg # disable SVG support (to boostrap librsvg)
-%bcond_with gl # enable OpenGL support
+%bcond_with cogl # Cogl surface backend [incompatible with cogl 1.12.x]
+%bcond_with directfb # DirectFB surface backend
+%bcond_with drm # DRM surface backend
+%bcond_with gl # OpenGL surface backend, http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-May/024387.html
+%bcond_with glesv2 # OpenGLESv2 surface backend (mutually exclusive with gl)
+%bcond_with openvg # OpenVG surface backend
+%bcond_without pdf # PDF surface backend
+%bcond_without ps # PS surface backend
+%bcond_without svg # SVG surface backend (disable to boostrap librsvg)
+%bcond_with qt # Qt surface backend [expects qt_draw_glyphs() API in Qt 4.7+]
%if "%{pld_release}" == "ac"
%bcond_with xcb # XCB backend
%else
%bcond_without xcb # XCB backend
%endif
%bcond_with tests # perform tests (can fail due to out of memory)
-#
+
+%if %{with glesv2}
+%undefine with_gl
+%endif
Summary: Cairo - multi-platform 2D graphics library
Summary(pl.UTF-8): Cairo - wieloplatformowa biblioteka graficzna 2D
Name: cairo
-Version: 1.12.2
-Release: 7
+Version: 1.14.12
+Release: 1
License: LGPL v2.1 or MPL v1.1
Group: Libraries
-Source0: http://cairographics.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5: 87649eb75789739d517c743e94879e51
+Source0: https://www.cairographics.org/releases/%{name}-%{version}.tar.xz
+# Source0-md5: 9f0db9dbfca0966be8acd682e636d165
Patch0: %{name}-link.patch
-URL: http://cairographics.org/
+Patch1: %{name}-gobject-deps.patch
+URL: https://www.cairographics.org/
+%{?with_directfb:BuildRequires: DirectFB-devel}
+%if %{with gl} || %{with glesv2} || %{with openvg}
+BuildRequires: EGL-devel >= 1.1
+%endif
+%if %{with gl} || %{with openvg}
+BuildRequires: OpenGL-GLX-devel
+%endif
+%{?with_gl:BuildRequires: OpenGL-devel}
+%{?with_glesv2:BuildRequires: OpenGLESv2-devel >= 2.0}
+%{?with_openvg:BuildRequires: OpenVG-devel}
+%{?with_qt:BuildRequires: QtGui-devel >= 4.4.0}
BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1:1.11
BuildRequires: binutils-devel
+%{?with_cogl:BuildRequires: cogl-devel}
BuildRequires: fontconfig-devel >= 2.2.95
BuildRequires: freetype-devel >= 1:2.3.0
-BuildRequires: glib2-devel >= 1:2.0
+BuildRequires: glib2-devel >= 1:2.14
%{?with_apidocs:BuildRequires: gtk-doc >= 1.15}
+%{?with_drm:BuildRequires: libdrm-devel}
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 ps} && %{with tests}
BuildRequires: libspectre-devel >= 0.2.0
+%endif
BuildRequires: libtool >= 2:2.2
%{?with_xcb:BuildRequires: libxcb-devel >= 1.6}
-BuildRequires: pixman-devel >= 0.22.0
-BuildRequires: pkgconfig >= 1:0.9
-%{?with_tests:BuildRequires: poppler-glib-devel >= 0.17.4}
+BuildRequires: lzo-devel >= 2
+BuildRequires: pixman-devel >= 0.30.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: sed >= 4.0
BuildRequires: tar >= 1:1.22
+%{?with_drm:BuildRequires: udev-devel >= 1:136}
%if "%{pld_release}" == "ac"
BuildRequires: xrender-devel >= 0.6
%else
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
+%{?with_qt:Requires: QtGui >= 4.4.0}
+Requires: fontconfig-libs >= 2.2.95
Requires: freetype >= 1:2.3.0
%{?with_xcb:Requires: libxcb >= 1.6}
-Requires: pixman >= 0.22.0
+Requires: pixman >= 0.30.0
+%{?with_drm:Requires: udev-libs >= 1:136}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary(pl.UTF-8): Pliki programistyczne biblioteki Cairo
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
+%{?with_directfb:Requires: DirectFB-devel}
+%if %{with gl} || %{with glesv2} || %{with openvg}
+Requires: EGL-devel >= 1.1
+%endif
+%{?with_gl:Requires: OpenGL-devel}
+%{?with_glesv2:Requires: OpenGLESv2-devel >= 2.0}
+%{?with_openvg:Requires: OpenVG-devel}
+%{?with_qt:Requires: QtGui-devel >= 4.4.0}
+%{?with_cogl:Requires: cogl-devel}
Requires: fontconfig-devel >= 2.2.95
Requires: freetype-devel >= 1:2.3.0
+%{?with_drm:Requires: libdrm-devel}
Requires: libpng-devel >= 2:1.4.0
%{?with_xcb:Requires: libxcb-devel >= 1.6}
-Requires: pixman-devel >= 0.22.0
+Requires: lzo-devel >= 2
+Requires: pixman-devel >= 0.30.0
+%{?with_drm:Requires: udev-devel >= 1:136}
%if "%{pld_release}" == "ac"
Requires: xrender-devel >= 0.6
%else
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.
Summary(pl.UTF-8): Dokumentacja API Cairo
Group: Documentation
Requires: gtk-doc-common
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
%description apidocs
Cairo API documentation.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%{?with_apidocs:%{__gtkdocize}}
%{__automake}
%configure \
--disable-silent-rules \
+ %{__enable_disable cogl} \
+ %{__enable_disable directfb} \
+ %{__enable_disable gl} \
+ %{__enable_disable glesv2} \
+ %{__enable_disable apidocs gtk-doc} \
+ %{__enable_disable pdf} \
+ %{__enable_disable ps} \
+ %{__enable_disable qt} \
+ %{__enable_disable svg} \
+ %{__enable_disable openvg vg} \
+ %{__enable_disable xcb} \
--enable-ft \
- %{?with_gl:--enable-gl=yes}\
- %{?with_apidocs:--enable-gtk-doc} \
- --enable-pdf \
--enable-png \
- --enable-ps \
- %{!?with_svg:--disable-svg} \
--enable-tee \
- %{?with_xcb:--enable-xcb} \
+ --enable-xml \
--with-html-dir=%{_gtkdocdir}
-%{__sed} -i 's/gobject-2.0 glib-2.0//' src/cairo.pc
-
%{__make}
%{?with_tests:%{__make} check}
# LD_PRELOADable modules(?)
%{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/cairo-{fdr,sphinx}.{la,a}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
-
%{!?with_apidocs:%{__rm} -rf $RPM_BUILD_ROOT%{_gtkdocdir}/cairo}
%clean
%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
-%{?with_gl:%{_pkgconfigdir}/cairo-gl.pc}
-%{?with_gl:%{_pkgconfigdir}/cairo-glx.pc}
+%{?with_directfb:%{_pkgconfigdir}/cairo-directfb.pc}
+%if %{with gl} || %{with glesv2} || %{with openvg}
+%{_pkgconfigdir}/cairo-egl.pc
+%endif
%{_pkgconfigdir}/cairo-fc.pc
%{_pkgconfigdir}/cairo-ft.pc
-%{_pkgconfigdir}/cairo-pdf.pc
+%{?with_gl:%{_pkgconfigdir}/cairo-gl.pc}
+%if %{with gl} || %{with openvg}
+%{_pkgconfigdir}/cairo-glx.pc
+%endif
+%{?with_pdf:%{_pkgconfigdir}/cairo-pdf.pc}
%{_pkgconfigdir}/cairo-png.pc
-%{_pkgconfigdir}/cairo-ps.pc
+%{?with_ps:%{_pkgconfigdir}/cairo-ps.pc}
+%{?with_qt:%{_pkgconfigdir}/cairo-qt.pc}
%{_pkgconfigdir}/cairo-script.pc
%{?with_svg:%{_pkgconfigdir}/cairo-svg.pc}
%{_pkgconfigdir}/cairo-tee.pc
+%{?with_openvg:%{_pkgconfigdir}/cairo-vg.pc}
%{?with_xcb:%{_pkgconfigdir}/cairo-xcb.pc}
%{?with_xcb:%{_pkgconfigdir}/cairo-xcb-shm.pc}
%{_pkgconfigdir}/cairo-xlib.pc
%{_pkgconfigdir}/cairo-xlib-xrender.pc
+%{_pkgconfigdir}/cairo-xml.pc
%files static
%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