3 %bcond_without apidocs # disable gtk-doc
4 %bcond_with cogl # Cogl surface backend [incompatible with cogl 1.12.x]
5 %bcond_with directfb # DirectFB surface backend
6 %bcond_with drm # DRM surface backend
7 %bcond_with gl # OpenGL surface backend, http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-May/024387.html
8 %bcond_with glesv2 # OpenGLESv2 surface backend (mutually exclusive with gl and glesv3)
9 %bcond_with glesv3 # OpenGLESv3 surface backend (mutually exclusive with gl and glesv2)
10 %bcond_with openvg # OpenVG surface backend
11 %bcond_without pdf # PDF surface backend
12 %bcond_without ps # PS surface backend
13 %bcond_without svg # SVG surface backend (disable to boostrap librsvg)
14 %bcond_with qt # Qt surface backend [expects qt_draw_glyphs() API in Qt 4.7+]
15 %if "%{pld_release}" == "ac"
16 %bcond_with xcb # XCB backend
18 %bcond_without xcb # XCB backend
20 %bcond_with tests # perform tests (can fail due to out of memory)
22 %if %{with glesv2} || %{with glesv3}
28 Summary: Cairo - multi-platform 2D graphics library
29 Summary(pl.UTF-8): Cairo - wieloplatformowa biblioteka graficzna 2D
33 License: LGPL v2.1 or MPL v1.1
35 Source0: https://www.cairographics.org/releases/%{name}-%{version}.tar.xz
36 # Source0-md5: f19e0353828269c22bd72e271243a552
37 Patch0: %{name}-link.patch
38 Patch1: %{name}-gobject-deps.patch
39 Patch2: %{name}-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch
40 Patch3: %{name}-composite_color_glyphs.patch
41 URL: https://www.cairographics.org/
42 %{?with_directfb:BuildRequires: DirectFB-devel}
43 %if %{with gl} || %{with glesv2} || %{with glesv3} || %{with openvg}
44 BuildRequires: EGL-devel >= 1.1
46 %if %{with gl} || %{with openvg}
47 BuildRequires: OpenGL-GLX-devel
49 %{?with_gl:BuildRequires: OpenGL-devel}
50 %{?with_glesv2:BuildRequires: OpenGLESv2-devel >= 2.0}
51 %{?with_glesv3:BuildRequires: OpenGLESv3-devel >= 3.0}
52 %{?with_openvg:BuildRequires: OpenVG-devel}
53 %{?with_qt:BuildRequires: QtGui-devel >= 4.4.0}
54 BuildRequires: autoconf >= 2.63
55 BuildRequires: automake >= 1:1.11
56 BuildRequires: binutils-devel
57 %{?with_cogl:BuildRequires: cogl-devel}
58 BuildRequires: fontconfig-devel >= 2.2.95
59 BuildRequires: freetype-devel >= 1:2.5.1
60 BuildRequires: glib2-devel >= 1:2.14
61 %if %{with svg} && %{with tests}
62 BuildRequires: gtk+2-devel >= 1:2.0
64 %{?with_apidocs:BuildRequires: gtk-doc >= 1.15}
65 %{?with_drm:BuildRequires: libdrm-devel >= 2.4}
66 BuildRequires: libpng-devel >= 2:1.4.0
67 %if %{with svg} && %{with tests}
68 BuildRequires: librsvg-devel >= 2.35.0
70 %if %{with ps} && %{with tests}
71 BuildRequires: libspectre-devel >= 0.2.0
73 BuildRequires: libtool >= 2:2.2
74 %{?with_xcb:BuildRequires: libxcb-devel >= 1.6}
75 BuildRequires: lzo-devel >= 2
76 BuildRequires: pixman-devel >= 0.30.0
77 BuildRequires: pkgconfig >= 1:0.18
78 %if %{with pdf} && %{with tests}
79 BuildRequires: poppler-glib-devel >= 0.17.4
81 BuildRequires: rpm >= 4.4.9-56
82 BuildRequires: sed >= 4.0
83 BuildRequires: tar >= 1:1.22
84 %{?with_drm:BuildRequires: udev-devel >= 1:136}
85 %if "%{pld_release}" == "ac"
86 BuildRequires: xrender-devel >= 0.6
88 BuildRequires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
89 BuildRequires: xorg-lib-libXext-devel
90 BuildRequires: xorg-lib-libXrender-devel >= 0.6
93 BuildRequires: zlib-devel
94 %{?with_qt:Requires: QtGui >= 4.4.0}
95 Requires: fontconfig-libs >= 2.2.95
96 Requires: freetype >= 1:2.5.1
97 %{?with_drm:Requires: libdrm >= 2.4}
98 %{?with_xcb:Requires: libxcb >= 1.6}
99 Requires: pixman >= 0.30.0
100 %{?with_drm:Requires: udev-libs >= 1:136}
101 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
104 Cairo provides anti-aliased vector-based rendering for X. Paths
105 consist of line segments and cubic splines and can be rendered at any
106 width with various join and cap styles. All colors may be specified
107 with optional translucence (opacity/alpha) and combined using the
108 extended Porter/Duff compositing algebra as found in the X Render
111 Cairo exports a stateful rendering API similar in spirit to the path
112 construction, text, and painting operators of PostScript, (with the
113 significant addition of translucence in the imaging model). When
114 complete, the API is intended to support the complete imaging model of
117 %description -l pl.UTF-8
118 Cairo obsługuje oparty na wektorach rendering z antyaliasingiem dla X.
119 Ścieżki składają się z odcinków i splajnów kubicznych, a renderowane
120 mogą być z dowolną grubością i różnymi stylami połączeń i zakończeń.
121 Wszystkie kolory mogą być podane z opcjonalną półprzezroczystością
122 (podaną przez współczynnik nieprzezroczystości lub alpha) i łączone
123 przy użyciu rozszerzonego algorytmu składania Portera-Duffa, który
124 można znaleźć w rozszerzeniu X Render.
126 Cairo eksportuje stanowe API renderujące w duchu podobne do operatorów
127 konstruowania ścieżek, tekstu i rysowania z PostScriptu (ze znacznym
128 dodatkiem półprzezroczystości w modelu obrazu). Kiedy API zostanie
129 ukończone, ma obsługiwać pełny model obrazu z PDF w wersji 1.4.
132 Summary: Development files for Cairo library
133 Summary(pl.UTF-8): Pliki programistyczne biblioteki Cairo
134 Group: Development/Libraries
135 Requires: %{name} = %{version}-%{release}
136 %{?with_directfb:Requires: DirectFB-devel}
137 %if %{with gl} || %{with glesv2} || %{with openvg}
138 Requires: EGL-devel >= 1.1
140 %{?with_gl:Requires: OpenGL-devel}
141 %{?with_glesv2:Requires: OpenGLESv2-devel >= 2.0}
142 %{?with_glesv3:Requires: OpenGLESv3-devel >= 3.0}
143 %{?with_openvg:Requires: OpenVG-devel}
144 %{?with_qt:Requires: QtGui-devel >= 4.4.0}
145 %{?with_cogl:Requires: cogl-devel}
146 Requires: fontconfig-devel >= 2.2.95
147 Requires: freetype-devel >= 1:2.5.1
148 %{?with_drm:Requires: libdrm-devel >= 2.4}
149 Requires: libpng-devel >= 2:1.4.0
150 %{?with_xcb:Requires: libxcb-devel >= 1.6}
151 Requires: lzo-devel >= 2
152 Requires: pixman-devel >= 0.30.0
153 %{?with_drm:Requires: udev-devel >= 1:136}
154 %if "%{pld_release}" == "ac"
155 Requires: xrender-devel >= 0.6
157 Requires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
158 Requires: xorg-lib-libXext-devel
159 Requires: xorg-lib-libXrender-devel >= 0.6
164 Development files for Cairo library.
166 %description devel -l pl.UTF-8
167 Pliki programistyczne biblioteki Cairo.
170 Summary: Static Cairo library
171 Summary(pl.UTF-8): Statyczna biblioteka Cairo
172 Group: Development/Libraries
173 Requires: %{name}-devel = %{version}-%{release}
176 Static Cairo library.
178 %description static -l pl.UTF-8
179 Statyczna biblioteka Cairo.
182 Summary: GObject functions library for Cairo graphics library
183 Summary(pl.UTF-8): Biblioteka funkcji GObject dla biblioteki graficznej Cairo
185 Requires: %{name} = %{version}-%{release}
186 Requires: glib2 >= 1:2.14
189 GObject functions library for Cairo graphics library.
191 %description gobject -l pl.UTF-8
192 Biblioteka funkcji GObject dla biblioteki graficznej Cairo.
194 %package gobject-devel
195 Summary: Header files for Cairo GObject library
196 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Cairo GObject
197 Group: Development/Libraries
198 Requires: %{name}-devel = %{version}-%{release}
199 Requires: %{name}-gobject = %{version}-%{release}
200 Requires: glib2-devel >= 1:2.14
202 %description gobject-devel
203 Header files for Cairo GObject library.
205 %description gobject-devel -l pl.UTF-8
206 Pliki nagłówkowe biblioteki Cairo GObject.
208 %package gobject-static
209 Summary: Static Cairo GObject library
210 Summary(pl.UTF-8): Statyczna biblioteka Cairo GObject
211 Group: Development/Libraries
212 Requires: %{name}-gobject-devel = %{version}-%{release}
214 %description gobject-static
215 Static Cairo GObject library.
217 %description gobject-static -l pl.UTF-8
218 Statyczna biblioteka Cairo GObject.
221 Summary: Cairo calls tracing utilities
222 Summary(pl.UTF-8): Narzędzia do śledzenia wywołań Cairo
223 Group: Development/Tools
224 Requires: %{name} = %{version}-%{release}
225 Requires: binutils-libs >= 2.21.53
228 Cairo calls tracing utilities.
230 %description trace -l pl.UTF-8
231 Narzędzia do śledzenia wywołań Cairo.
234 Summary: Cairo API documentation
235 Summary(pl.UTF-8): Dokumentacja API Cairo
237 Requires: gtk-doc-common
238 %if "%{_rpmversion}" >= "5"
243 Cairo API documentation.
245 %description apidocs -l pl.UTF-8
246 Dokumentacja API Cairo.
256 %{__sed} -i -e '/SUBDIRS += boilerplate test perf/d' Makefile.am
260 %{?with_apidocs:%{__gtkdocize}}
262 %{__aclocal} -I build
267 --disable-silent-rules \
268 %{__enable_disable cogl} \
269 %{__enable_disable directfb} \
270 %{__enable_disable gl} \
271 %{__enable_disable glesv2} \
272 %{__enable_disable glesv3} \
273 %{__enable_disable apidocs gtk-doc} \
274 %{__enable_disable pdf} \
275 %{__enable_disable ps} \
276 %{__enable_disable qt} \
277 %{__enable_disable svg} \
278 %{__enable_disable openvg vg} \
279 %{__enable_disable xcb} \
284 --with-html-dir=%{_gtkdocdir}
287 %{?with_tests:%{__make} check}
290 rm -rf $RPM_BUILD_ROOT
293 DESTDIR=$RPM_BUILD_ROOT
295 # obsoleted by pkg-config
296 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcairo*.la
297 # LD_PRELOADable library
298 %{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/libcairo-trace.{la,a}
299 # LD_PRELOADable modules(?)
300 %{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/cairo-{fdr,sphinx}.{la,a}
302 %{!?with_apidocs:%{__rm} -rf $RPM_BUILD_ROOT%{_gtkdocdir}/cairo}
305 rm -rf $RPM_BUILD_ROOT
307 %post -p /sbin/ldconfig
308 %postun -p /sbin/ldconfig
310 %post gobject -p /sbin/ldconfig
311 %postun gobject -p /sbin/ldconfig
314 %defattr(644,root,root,755)
315 # COPYING contains only notes, not LGPL/MPL texts
316 %doc AUTHORS COPYING ChangeLog NEWS README
317 %attr(755,root,root) %{_libdir}/libcairo.so.*.*.*
318 %attr(755,root,root) %ghost %{_libdir}/libcairo.so.2
319 %attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so.*.*.*
320 %attr(755,root,root) %ghost %{_libdir}/libcairo-script-interpreter.so.2
323 %defattr(644,root,root,755)
324 %attr(755,root,root) %{_libdir}/libcairo.so
325 %attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so
327 %exclude %{_includedir}/cairo/cairo-gobject.h
328 %{_pkgconfigdir}/cairo.pc
329 %{?with_directfb:%{_pkgconfigdir}/cairo-directfb.pc}
330 %if %{with gl} || %{with glesv2} || %{with glesv3} || %{with openvg}
331 %{_pkgconfigdir}/cairo-egl.pc
333 %{_pkgconfigdir}/cairo-fc.pc
334 %{_pkgconfigdir}/cairo-ft.pc
335 %{?with_gl:%{_pkgconfigdir}/cairo-gl.pc}
336 %{?with_glesv2:%{_pkgconfigdir}/cairo-glesv2.pc}
337 %{?with_glesv3:%{_pkgconfigdir}/cairo-glesv3.pc}
338 %if %{with gl} || %{with openvg}
339 %{_pkgconfigdir}/cairo-glx.pc
341 %{?with_pdf:%{_pkgconfigdir}/cairo-pdf.pc}
342 %{_pkgconfigdir}/cairo-png.pc
343 %{?with_ps:%{_pkgconfigdir}/cairo-ps.pc}
344 %{?with_qt:%{_pkgconfigdir}/cairo-qt.pc}
345 %{_pkgconfigdir}/cairo-script.pc
346 %{?with_svg:%{_pkgconfigdir}/cairo-svg.pc}
347 %{_pkgconfigdir}/cairo-tee.pc
348 %{?with_openvg:%{_pkgconfigdir}/cairo-vg.pc}
349 %{?with_xcb:%{_pkgconfigdir}/cairo-xcb.pc}
350 %{?with_xcb:%{_pkgconfigdir}/cairo-xcb-shm.pc}
351 %{_pkgconfigdir}/cairo-xlib.pc
352 %{_pkgconfigdir}/cairo-xlib-xrender.pc
353 %{_pkgconfigdir}/cairo-xml.pc
356 %defattr(644,root,root,755)
357 %{_libdir}/libcairo.a
358 %{_libdir}/libcairo-script-interpreter.a
361 %defattr(644,root,root,755)
362 %attr(755,root,root) %{_libdir}/libcairo-gobject.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libcairo-gobject.so.2
366 %defattr(644,root,root,755)
367 %attr(755,root,root) %{_libdir}/libcairo-gobject.so
368 %{_includedir}/cairo/cairo-gobject.h
369 %{_pkgconfigdir}/cairo-gobject.pc
371 %files gobject-static
372 %defattr(644,root,root,755)
373 %{_libdir}/libcairo-gobject.a
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_bindir}/cairo-sphinx
378 %attr(755,root,root) %{_bindir}/cairo-trace
379 %dir %{_libdir}/cairo
380 %attr(755,root,root) %{_libdir}/cairo/cairo-fdr.so*
381 %attr(755,root,root) %{_libdir}/cairo/cairo-sphinx.so*
382 %attr(755,root,root) %{_libdir}/cairo/libcairo-trace.so*
386 %defattr(644,root,root,755)