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 URL: https://www.cairographics.org/
40 %{?with_directfb:BuildRequires: DirectFB-devel}
41 %if %{with gl} || %{with glesv2} || %{with glesv3} || %{with openvg}
42 BuildRequires: EGL-devel >= 1.1
44 %if %{with gl} || %{with openvg}
45 BuildRequires: OpenGL-GLX-devel
47 %{?with_gl:BuildRequires: OpenGL-devel}
48 %{?with_glesv2:BuildRequires: OpenGLESv2-devel >= 2.0}
49 %{?with_glesv3:BuildRequires: OpenGLESv3-devel >= 3.0}
50 %{?with_openvg:BuildRequires: OpenVG-devel}
51 %{?with_qt:BuildRequires: QtGui-devel >= 4.4.0}
52 BuildRequires: autoconf >= 2.63
53 BuildRequires: automake >= 1:1.11
54 BuildRequires: binutils-devel
55 %{?with_cogl:BuildRequires: cogl-devel}
56 BuildRequires: fontconfig-devel >= 2.2.95
57 BuildRequires: freetype-devel >= 1:2.5.1
58 BuildRequires: glib2-devel >= 1:2.14
59 %if %{with svg} && %{with tests}
60 BuildRequires: gtk+2-devel >= 1:2.0
62 %{?with_apidocs:BuildRequires: gtk-doc >= 1.15}
63 %{?with_drm:BuildRequires: libdrm-devel >= 2.4}
64 BuildRequires: libpng-devel >= 2:1.4.0
65 %if %{with svg} && %{with tests}
66 BuildRequires: librsvg-devel >= 2.35.0
68 %if %{with ps} && %{with tests}
69 BuildRequires: libspectre-devel >= 0.2.0
71 BuildRequires: libtool >= 2:2.2
72 %{?with_xcb:BuildRequires: libxcb-devel >= 1.6}
73 BuildRequires: lzo-devel >= 2
74 BuildRequires: pixman-devel >= 0.30.0
75 BuildRequires: pkgconfig >= 1:0.18
76 %if %{with pdf} && %{with tests}
77 BuildRequires: poppler-glib-devel >= 0.17.4
79 BuildRequires: rpm >= 4.4.9-56
80 BuildRequires: sed >= 4.0
81 BuildRequires: tar >= 1:1.22
82 %{?with_drm:BuildRequires: udev-devel >= 1:136}
83 %if "%{pld_release}" == "ac"
84 BuildRequires: xrender-devel >= 0.6
86 BuildRequires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
87 BuildRequires: xorg-lib-libXext-devel
88 BuildRequires: xorg-lib-libXrender-devel >= 0.6
91 BuildRequires: zlib-devel
92 %{?with_qt:Requires: QtGui >= 4.4.0}
93 Requires: fontconfig-libs >= 2.2.95
94 Requires: freetype >= 1:2.5.1
95 %{?with_drm:Requires: libdrm >= 2.4}
96 %{?with_xcb:Requires: libxcb >= 1.6}
97 Requires: pixman >= 0.30.0
98 %{?with_drm:Requires: udev-libs >= 1:136}
99 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102 Cairo provides anti-aliased vector-based rendering for X. Paths
103 consist of line segments and cubic splines and can be rendered at any
104 width with various join and cap styles. All colors may be specified
105 with optional translucence (opacity/alpha) and combined using the
106 extended Porter/Duff compositing algebra as found in the X Render
109 Cairo exports a stateful rendering API similar in spirit to the path
110 construction, text, and painting operators of PostScript, (with the
111 significant addition of translucence in the imaging model). When
112 complete, the API is intended to support the complete imaging model of
115 %description -l pl.UTF-8
116 Cairo obsługuje oparty na wektorach rendering z antyaliasingiem dla X.
117 Ścieżki składają się z odcinków i splajnów kubicznych, a renderowane
118 mogą być z dowolną grubością i różnymi stylami połączeń i zakończeń.
119 Wszystkie kolory mogą być podane z opcjonalną półprzezroczystością
120 (podaną przez współczynnik nieprzezroczystości lub alpha) i łączone
121 przy użyciu rozszerzonego algorytmu składania Portera-Duffa, który
122 można znaleźć w rozszerzeniu X Render.
124 Cairo eksportuje stanowe API renderujące w duchu podobne do operatorów
125 konstruowania ścieżek, tekstu i rysowania z PostScriptu (ze znacznym
126 dodatkiem półprzezroczystości w modelu obrazu). Kiedy API zostanie
127 ukończone, ma obsługiwać pełny model obrazu z PDF w wersji 1.4.
130 Summary: Development files for Cairo library
131 Summary(pl.UTF-8): Pliki programistyczne biblioteki Cairo
132 Group: Development/Libraries
133 Requires: %{name} = %{version}-%{release}
134 %{?with_directfb:Requires: DirectFB-devel}
135 %if %{with gl} || %{with glesv2} || %{with openvg}
136 Requires: EGL-devel >= 1.1
138 %{?with_gl:Requires: OpenGL-devel}
139 %{?with_glesv2:Requires: OpenGLESv2-devel >= 2.0}
140 %{?with_glesv3:Requires: OpenGLESv3-devel >= 3.0}
141 %{?with_openvg:Requires: OpenVG-devel}
142 %{?with_qt:Requires: QtGui-devel >= 4.4.0}
143 %{?with_cogl:Requires: cogl-devel}
144 Requires: fontconfig-devel >= 2.2.95
145 Requires: freetype-devel >= 1:2.5.1
146 %{?with_drm:Requires: libdrm-devel >= 2.4}
147 Requires: libpng-devel >= 2:1.4.0
148 %{?with_xcb:Requires: libxcb-devel >= 1.6}
149 Requires: lzo-devel >= 2
150 Requires: pixman-devel >= 0.30.0
151 %{?with_drm:Requires: udev-devel >= 1:136}
152 %if "%{pld_release}" == "ac"
153 Requires: xrender-devel >= 0.6
155 Requires: xorg-lib-libX11-devel%{?with_xcb: >= 1.1}
156 Requires: xorg-lib-libXext-devel
157 Requires: xorg-lib-libXrender-devel >= 0.6
162 Development files for Cairo library.
164 %description devel -l pl.UTF-8
165 Pliki programistyczne biblioteki Cairo.
168 Summary: Static Cairo library
169 Summary(pl.UTF-8): Statyczna biblioteka Cairo
170 Group: Development/Libraries
171 Requires: %{name}-devel = %{version}-%{release}
174 Static Cairo library.
176 %description static -l pl.UTF-8
177 Statyczna biblioteka Cairo.
180 Summary: GObject functions library for Cairo graphics library
181 Summary(pl.UTF-8): Biblioteka funkcji GObject dla biblioteki graficznej Cairo
183 Requires: %{name} = %{version}-%{release}
184 Requires: glib2 >= 1:2.14
187 GObject functions library for Cairo graphics library.
189 %description gobject -l pl.UTF-8
190 Biblioteka funkcji GObject dla biblioteki graficznej Cairo.
192 %package gobject-devel
193 Summary: Header files for Cairo GObject library
194 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Cairo GObject
195 Group: Development/Libraries
196 Requires: %{name}-devel = %{version}-%{release}
197 Requires: %{name}-gobject = %{version}-%{release}
198 Requires: glib2-devel >= 1:2.14
200 %description gobject-devel
201 Header files for Cairo GObject library.
203 %description gobject-devel -l pl.UTF-8
204 Pliki nagłówkowe biblioteki Cairo GObject.
206 %package gobject-static
207 Summary: Static Cairo GObject library
208 Summary(pl.UTF-8): Statyczna biblioteka Cairo GObject
209 Group: Development/Libraries
210 Requires: %{name}-gobject-devel = %{version}-%{release}
212 %description gobject-static
213 Static Cairo GObject library.
215 %description gobject-static -l pl.UTF-8
216 Statyczna biblioteka Cairo GObject.
219 Summary: Cairo calls tracing utilities
220 Summary(pl.UTF-8): Narzędzia do śledzenia wywołań Cairo
221 Group: Development/Tools
222 Requires: %{name} = %{version}-%{release}
223 Requires: binutils-libs >= 2.21.53
226 Cairo calls tracing utilities.
228 %description trace -l pl.UTF-8
229 Narzędzia do śledzenia wywołań Cairo.
232 Summary: Cairo API documentation
233 Summary(pl.UTF-8): Dokumentacja API Cairo
235 Requires: gtk-doc-common
236 %if "%{_rpmversion}" >= "5"
241 Cairo API documentation.
243 %description apidocs -l pl.UTF-8
244 Dokumentacja API Cairo.
252 %{__sed} -i -e '/SUBDIRS += boilerplate test perf/d' Makefile.am
256 %{?with_apidocs:%{__gtkdocize}}
258 %{__aclocal} -I build
263 --disable-silent-rules \
264 %{__enable_disable cogl} \
265 %{__enable_disable directfb} \
266 %{__enable_disable gl} \
267 %{__enable_disable glesv2} \
268 %{__enable_disable glesv3} \
269 %{__enable_disable apidocs gtk-doc} \
270 %{__enable_disable pdf} \
271 %{__enable_disable ps} \
272 %{__enable_disable qt} \
273 %{__enable_disable svg} \
274 %{__enable_disable openvg vg} \
275 %{__enable_disable xcb} \
280 --with-html-dir=%{_gtkdocdir}
283 %{?with_tests:%{__make} check}
286 rm -rf $RPM_BUILD_ROOT
289 DESTDIR=$RPM_BUILD_ROOT
291 # obsoleted by pkg-config
292 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcairo*.la
293 # LD_PRELOADable library
294 %{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/libcairo-trace.{la,a}
295 # LD_PRELOADable modules(?)
296 %{__rm} $RPM_BUILD_ROOT%{_libdir}/cairo/cairo-{fdr,sphinx}.{la,a}
298 %{!?with_apidocs:%{__rm} -rf $RPM_BUILD_ROOT%{_gtkdocdir}/cairo}
301 rm -rf $RPM_BUILD_ROOT
303 %post -p /sbin/ldconfig
304 %postun -p /sbin/ldconfig
306 %post gobject -p /sbin/ldconfig
307 %postun gobject -p /sbin/ldconfig
310 %defattr(644,root,root,755)
311 # COPYING contains only notes, not LGPL/MPL texts
312 %doc AUTHORS COPYING ChangeLog NEWS README
313 %attr(755,root,root) %{_libdir}/libcairo.so.*.*.*
314 %attr(755,root,root) %ghost %{_libdir}/libcairo.so.2
315 %attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so.*.*.*
316 %attr(755,root,root) %ghost %{_libdir}/libcairo-script-interpreter.so.2
319 %defattr(644,root,root,755)
320 %attr(755,root,root) %{_libdir}/libcairo.so
321 %attr(755,root,root) %{_libdir}/libcairo-script-interpreter.so
323 %exclude %{_includedir}/cairo/cairo-gobject.h
324 %{_pkgconfigdir}/cairo.pc
325 %{?with_directfb:%{_pkgconfigdir}/cairo-directfb.pc}
326 %if %{with gl} || %{with glesv2} || %{with glesv3} || %{with openvg}
327 %{_pkgconfigdir}/cairo-egl.pc
329 %{_pkgconfigdir}/cairo-fc.pc
330 %{_pkgconfigdir}/cairo-ft.pc
331 %{?with_gl:%{_pkgconfigdir}/cairo-gl.pc}
332 %{?with_glesv2:%{_pkgconfigdir}/cairo-glesv2.pc}
333 %{?with_glesv3:%{_pkgconfigdir}/cairo-glesv3.pc}
334 %if %{with gl} || %{with openvg}
335 %{_pkgconfigdir}/cairo-glx.pc
337 %{?with_pdf:%{_pkgconfigdir}/cairo-pdf.pc}
338 %{_pkgconfigdir}/cairo-png.pc
339 %{?with_ps:%{_pkgconfigdir}/cairo-ps.pc}
340 %{?with_qt:%{_pkgconfigdir}/cairo-qt.pc}
341 %{_pkgconfigdir}/cairo-script.pc
342 %{?with_svg:%{_pkgconfigdir}/cairo-svg.pc}
343 %{_pkgconfigdir}/cairo-tee.pc
344 %{?with_openvg:%{_pkgconfigdir}/cairo-vg.pc}
345 %{?with_xcb:%{_pkgconfigdir}/cairo-xcb.pc}
346 %{?with_xcb:%{_pkgconfigdir}/cairo-xcb-shm.pc}
347 %{_pkgconfigdir}/cairo-xlib.pc
348 %{_pkgconfigdir}/cairo-xlib-xrender.pc
349 %{_pkgconfigdir}/cairo-xml.pc
352 %defattr(644,root,root,755)
353 %{_libdir}/libcairo.a
354 %{_libdir}/libcairo-script-interpreter.a
357 %defattr(644,root,root,755)
358 %attr(755,root,root) %{_libdir}/libcairo-gobject.so.*.*.*
359 %attr(755,root,root) %ghost %{_libdir}/libcairo-gobject.so.2
362 %defattr(644,root,root,755)
363 %attr(755,root,root) %{_libdir}/libcairo-gobject.so
364 %{_includedir}/cairo/cairo-gobject.h
365 %{_pkgconfigdir}/cairo-gobject.pc
367 %files gobject-static
368 %defattr(644,root,root,755)
369 %{_libdir}/libcairo-gobject.a
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_bindir}/cairo-sphinx
374 %attr(755,root,root) %{_bindir}/cairo-trace
375 %dir %{_libdir}/cairo
376 %attr(755,root,root) %{_libdir}/cairo/cairo-fdr.so*
377 %attr(755,root,root) %{_libdir}/cairo/cairo-sphinx.so*
378 %attr(755,root,root) %{_libdir}/cairo/libcairo-trace.so*
382 %defattr(644,root,root,755)