3 %bcond_without apidocs # gtk-doc build
4 %bcond_without cups # CUPS print backend
5 %bcond_with papi # PAPI print backend
6 %bcond_without broadway # Broadway target
7 %bcond_with sysprof # sysprof profiler support
8 %bcond_with typeahead # Typeahead in open dialog
9 %bcond_without wayland # Wayland target
10 %bcond_with cloudproviders # libcloudproviders integration
11 %bcond_without static_libs # static library build
13 Summary: The GIMP Toolkit
14 Summary(cs.UTF-8): Sada nástrojů pro GIMP
15 Summary(de.UTF-8): Der GIMP-Toolkit
16 Summary(fi.UTF-8): GIMP-työkalukokoelma
17 Summary(fr.UTF-8): Le toolkit de GIMP
18 Summary(it.UTF-8): Il toolkit per GIMP
19 Summary(pl.UTF-8): GIMP Toolkit
20 Summary(tr.UTF-8): GIMP ToolKit arayüz kitaplığı
26 Source0: https://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
27 # Source0-md5: fd4571a112ffaa2fbbb9d25de8f5b6c0
28 Patch0: %{name}-papi.patch
29 Patch1: typeahead.patch
30 Patch2: %{name}-cloudproviders.patch
31 URL: https://www.gtk.org/
32 BuildRequires: at-spi2-atk-devel >= 2.6.0
33 BuildRequires: atk-devel >= 1:2.16.0
34 # cairo-gobject + cairo-pdf,cairo-ps,cairo-svg
35 BuildRequires: cairo-gobject-devel >= 1.14.0
36 BuildRequires: colord-devel >= 0.1.9
37 %if %{with cups} || %{with papi}
38 BuildRequires: cups-devel >= 1:1.7
40 BuildRequires: docbook-dtd412-xml
41 BuildRequires: docbook-style-xsl-nons
42 BuildRequires: fontconfig-devel
43 BuildRequires: fribidi-devel >= 0.19.7
44 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
45 BuildRequires: gettext-tools >= 0.19.7
46 BuildRequires: glib2-devel >= 1:2.57.2
47 BuildRequires: gobject-introspection-devel >= 1.39.0
49 BuildRequires: gtk-doc >= 1.20
51 BuildRequires: harfbuzz-devel >= 0.9
52 BuildRequires: iso-codes
53 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.2.5}
54 BuildRequires: libepoxy-devel >= 1.4
55 BuildRequires: libstdc++-devel
56 BuildRequires: libxml2-progs >= 1:2.6.31
57 BuildRequires: libxslt-progs >= 1.1.20
58 BuildRequires: meson >= 0.60.0
60 BuildRequires: pango-devel >= 1:1.41.0
61 %{?with_papi:BuildRequires: papi-devel}
62 BuildRequires: perl-base
63 BuildRequires: pkgconfig
64 BuildRequires: rpm-build >= 4.6
65 BuildRequires: rpm-pythonprov
66 BuildRequires: rpmbuild(macros) >= 1.752
67 BuildRequires: sed >= 4.0
68 BuildRequires: sqlite3-devel
69 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.33.2}
70 BuildRequires: tar >= 1:1.22
71 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
72 BuildRequires: xorg-lib-libXcomposite-devel
73 BuildRequires: xorg-lib-libXcursor-devel
74 BuildRequires: xorg-lib-libXdamage-devel
75 BuildRequires: xorg-lib-libXext-devel
76 BuildRequires: xorg-lib-libXfixes-devel
77 BuildRequires: xorg-lib-libXft-devel
78 BuildRequires: xorg-lib-libXi-devel >= 1.8
79 BuildRequires: xorg-lib-libXinerama-devel
80 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
81 BuildRequires: xorg-lib-libXrender-devel
83 %{?with_broadway:BuildRequires: zlib-devel}
85 # wayland-client, wayland-scanner
86 BuildRequires: wayland-devel >= 1.14.91
87 BuildRequires: wayland-egl-devel
88 BuildRequires: wayland-protocols >= 1.21
89 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
91 Requires: xorg-lib-libX11 >= 1.5.0
92 Requires(post,postun): glib2 >= 1:2.57.2
93 Requires: atk >= 1:2.16.0
94 Requires: cairo-gobject >= 1.14.0
95 Requires: fribidi >= 0.19.7
96 Requires: gdk-pixbuf2 >= 2.31.0
97 Requires: glib2 >= 1:2.57.2
98 %{?with_cloudproviders:Requires: libcloudproviders >= 0.2.5}
99 Requires: libepoxy >= 1.4
100 Requires: pango >= 1:1.41.0
101 %{?with_sysprof:Requires: sysprof >= 3.33.2}
102 Requires: xorg-lib-libXi >= 1.8
103 Requires: xorg-lib-libXrandr >= 1.5.0
105 Requires: wayland >= 1.14.91
106 Requires: xorg-lib-libxkbcommon >= 0.2.0
108 # evince is used as gtk-print-preview-command by default
109 Suggests: evince-backend-pdf
111 # cups is used by default if gtk+ is built with cups
112 Suggests: %{name}-cups = %{version}-%{release}
114 Obsoletes: gtk+3-cloudprint < 3.24.30
115 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
117 %define abivers 3.0.0
119 %if "%{_lib}" != "lib"
120 %define libext %(lib="%{_lib}"; echo ${lib#lib})
121 %define pqext -%{libext}
127 GTK+, which stands for the GIMP ToolKit, is a library for creating
128 graphical user interfaces for the X Window System. It is designed to
129 be small, efficient, and flexible. GTK+ is written in C with a very
130 object-oriented approach. GDK (part of GTK+) is a drawing toolkit
131 which provides a thin layer over Xlib to help automate things like
132 dealing with different color depths, and GTK is a widget set for
133 creating user interfaces.
135 %description -l cs.UTF-8
136 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
139 %description -l da.UTF-8
140 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
141 forskellige programmer.
143 %description -l de.UTF-8
144 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
145 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
147 %description -l fr.UTF-8
148 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
149 käytetään nyt myös useissa muissakin ohjelmissa.
151 %description -l it.UTF-8
152 Libreria X scritta per GIMP. Viene usata da diversi programmi.
154 %description -l pl.UTF-8
155 GTK+, która to biblioteka stała się podstawą programu GIMP, zawiera
156 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
157 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK+
158 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
159 (część GTK+) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
160 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
161 piksel). GTK (druga część GTK+) jest natomiast już zbiorem różnego
162 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
164 %description -l tr.UTF-8
165 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
166 programlarca da kullanılmaktadır.
168 %package -n gtk-update-icon-cache
169 Summary: Utility to update icon cache used by GTK+ library
170 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK+
171 Group: Applications/System
172 Requires: gdk-pixbuf2 >= 2.31.0
173 Requires: glib2 >= 1:2.57.2
175 %description -n gtk-update-icon-cache
176 Utility to update icon cache used by GTK+ library.
178 %description -n gtk-update-icon-cache -l pl.UTF-8
179 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
183 Summary: GTK+ header files and development documentation
184 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
185 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
186 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
187 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
188 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
189 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
190 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK+
191 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
192 Group: X11/Development/Libraries
193 Requires: %{name} = %{version}-%{release}
194 Requires: at-spi2-atk-devel >= 2.6.0
195 Requires: atk-devel >= 1:2.16.0
196 Requires: cairo-gobject-devel >= 1.14.0
197 Requires: fribidi-devel >= 0.19.7
198 Requires: gdk-pixbuf2-devel >= 2.31.0
199 Requires: glib2-devel >= 1:2.57.2
200 Requires: pango-devel >= 1:1.41.0
201 Requires: shared-mime-info
202 %{?with_sysprof:Requires: sysprof-devel >= 3.33.2}
204 Requires: wayland-devel >= 1.14.91
205 Requires: wayland-egl-devel
206 Requires: wayland-protocols >= 1.14
207 Requires: xorg-lib-libxkbcommon-devel >= 0.2.0
211 Header files and development documentation for the GTK+ libraries.
213 %description devel -l pl.UTF-8
214 Pliki nagłówkowe i dokumentacja do bibliotek GTK+.
217 Summary: GTK+ static libraries
218 Summary(pl.UTF-8): Biblioteki statyczne GTK+
219 Group: X11/Development/Libraries
220 Requires: %{name}-devel = %{version}-%{release}
223 GTK+ static libraries.
225 %description static -l pl.UTF-8
226 Biblioteki statyczne GTK+
229 Summary: GTK+ API documentation
230 Summary(pl.UTF-8): Dokumentacja API GTK+
232 Requires: gtk-doc-common
236 GTK+ API documentation.
238 %description apidocs -l pl.UTF-8
239 Dokumentacja API GTK+.
242 Summary: GTK+ - example programs
243 Summary(pl.UTF-8): GTK+ - programy przykładowe
244 Group: X11/Development/Libraries
245 Requires(post,postun): glib2 >= 1:2.57.2
246 Requires: %{name}-devel = %{version}-%{release}
248 %description examples
249 GTK+ - example programs.
251 %description examples -l pl.UTF-8
252 GTK+ - przykładowe programy.
255 Summary: CUPS printing module for GTK+
256 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez CUPS
258 Requires: %{name} = %{version}-%{release}
261 CUPS printing module for GTK+.
263 %description cups -l pl.UTF-8
264 Moduł GTK+ do drukowania przez CUPS.
267 Summary: PAPI printing module for GTK+
268 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez PAPI
270 Requires: %{name} = %{version}-%{release}
274 PAPI printing module for GTK+.
276 %description papi -l pl.UTF-8
277 Moduł GTK+ do drukowania przez PAPI.
280 %setup -q -n gtk+-%{version}
282 %if %{with typeahead}
287 %{__sed} -i -e '1s|#!/usr/bin/env python3$|#!%{__python3}|' demos/gtk-demo/geninclude.py
289 # for packaging clean examples
290 # TODO: add am patch to do it like demos/gtk-demo via some configurable dir
291 # NOTE: make install so far installs only demos/gtk-demo
293 cp -a demos examples _examples
296 CPPFLAGS="%{rpmcppflags}%{?with_papi: -I/usr/include/papi}"
298 -Dprint_backends=file,lpr%{?with_cups:,cups}%{?with_papi:,papi} \
299 -Dcloudproviders=%{__true_false cloudproviders} \
300 -Dgtk_doc=%{__true_false apidocs} \
302 -Dbroadway_backend=%{__true_false broadway} \
303 -Dprofiler=%{__true_false sysprof} \
304 -Dwayland_backend=%{__true_false wayland} \
308 %ninja_build -C build
311 rm -rf $RPM_BUILD_ROOT
312 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/engines
313 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/theming-engines
315 %ninja_install -C build
317 touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
318 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules
320 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
321 cp -a _examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
323 %if "%{_lib}" != "lib"
324 # We need to have 32-bit and 64-bit binaries as they have hardcoded LIBDIR.
325 # (needed when multilib is used)
326 mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0{,%{pqext}}
329 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
330 # unsupported by glibc
331 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
333 %find_lang %{name} --all-name
335 %{!?with_apidocs:%{__rm} -r $RPM_BUILD_ROOT%{_gtkdocdir}/{gdk3,gtk3}}
338 rm -rf $RPM_BUILD_ROOT
342 %glib_compile_schemas
344 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
349 if [ "$1" != "0" ]; then
351 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
353 %glib_compile_schemas
358 %glib_compile_schemas
361 %glib_compile_schemas
363 %files -f %{name}.lang
364 %defattr(644,root,root,755)
366 %{?with_broadway:%attr(755,root,root) %{_bindir}/broadwayd}
367 %attr(755,root,root) %{_bindir}/gtk-launch
368 %attr(755,root,root) %{_bindir}/gtk-query-immodules-3.0%{pqext}
369 %attr(755,root,root) %{_libdir}/libgailutil-3.so.*.*.*
370 %attr(755,root,root) %ghost %{_libdir}/libgailutil-3.so.0
371 %attr(755,root,root) %{_libdir}/libgdk-3.so.*.*.*
372 %attr(755,root,root) %ghost %{_libdir}/libgdk-3.so.0
373 %attr(755,root,root) %{_libdir}/libgtk-3.so.*.*.*
374 %attr(755,root,root) %ghost %{_libdir}/libgtk-3.so.0
376 %dir %{_libdir}/gtk-3.0
377 %dir %{_libdir}/gtk-3.0/modules
378 %dir %{_libdir}/gtk-3.0/%{abivers}
379 %dir %{_libdir}/gtk-3.0/%{abivers}/engines
380 %dir %{_libdir}/gtk-3.0/%{abivers}/theming-engines
381 %dir %{_libdir}/gtk-3.0/%{abivers}/immodules
382 %dir %{_libdir}/gtk-3.0/%{abivers}/printbackends
383 %ghost %{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
384 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-file.so
385 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-lpr.so
386 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-am-et.so
387 %{?with_broadway:%attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-broadway.so}
388 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cedilla.so
389 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cyrillic-translit.so
390 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-inuktitut.so
391 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ipa.so
392 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-multipress.so
393 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-thai.so
394 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-er.so
395 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-et.so
396 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-viqr.so
398 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-wayland.so
399 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-waylandgtk.so
401 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-xim.so
402 %{_libdir}/girepository-1.0/Gdk-3.0.typelib
403 %{_libdir}/girepository-1.0/GdkX11-3.0.typelib
404 %{_libdir}/girepository-1.0/Gtk-3.0.typelib
406 %dir %{_sysconfdir}/gtk-3.0
407 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gtk-3.0/im-multipress.conf
408 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml
409 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml
410 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml
411 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
412 %dir %{_datadir}/themes/Default/gtk-3.0
413 %{_datadir}/themes/Default/gtk-3.0/gtk-keys.css
414 %dir %{_datadir}/themes/Emacs
415 %dir %{_datadir}/themes/Emacs/gtk-3.0
416 %{_datadir}/themes/Emacs/gtk-3.0/gtk-keys.css
417 %{?with_broadway:%{_mandir}/man1/broadwayd.1*}
418 %{_mandir}/man1/gtk-launch.1*
419 %{_mandir}/man1/gtk-query-immodules-3.0.1*
421 %files -n gtk-update-icon-cache
422 %defattr(644,root,root,755)
423 %attr(755,root,root) %{_bindir}/gtk-encode-symbolic-svg
424 %attr(755,root,root) %{_bindir}/gtk-update-icon-cache
425 %{_mandir}/man1/gtk-encode-symbolic-svg.1*
426 %{_mandir}/man1/gtk-update-icon-cache.1*
429 %defattr(644,root,root,755)
430 %attr(755,root,root) %{_bindir}/gtk-builder-tool
431 %attr(755,root,root) %{_bindir}/gtk-query-settings
432 %attr(755,root,root) %{_libdir}/libgailutil-3.so
433 %attr(755,root,root) %{_libdir}/libgdk-3.so
434 %attr(755,root,root) %{_libdir}/libgtk-3.so
435 %{_includedir}/gail-3.0
436 %{_includedir}/gtk-3.0
437 %{_aclocaldir}/gtk-3.0.m4
438 %{_pkgconfigdir}/gail-3.0.pc
439 %{_pkgconfigdir}/gdk-3.0.pc
440 %{_pkgconfigdir}/gdk-x11-3.0.pc
441 %{_pkgconfigdir}/gtk+-3.0.pc
442 %{_pkgconfigdir}/gtk+-unix-print-3.0.pc
443 %{_pkgconfigdir}/gtk+-x11-3.0.pc
445 %{_pkgconfigdir}/gdk-broadway-3.0.pc
446 %{_pkgconfigdir}/gtk+-broadway-3.0.pc
449 %{_pkgconfigdir}/gdk-wayland-3.0.pc
450 %{_pkgconfigdir}/gtk+-wayland-3.0.pc
452 %{_datadir}/gettext/its/gtkbuilder.its
453 %{_datadir}/gettext/its/gtkbuilder.loc
455 %{_datadir}/gir-1.0/Gdk-3.0.gir
456 %{_datadir}/gir-1.0/GdkX11-3.0.gir
457 %{_datadir}/gir-1.0/Gtk-3.0.gir
458 %{_mandir}/man1/gtk-builder-tool.1*
459 %{_mandir}/man1/gtk-query-settings.1*
461 %if %{with static_libs}
463 %defattr(644,root,root,755)
464 %{_libdir}/libgailutil-3.a
465 %{_libdir}/libgdk-3.a
466 %{_libdir}/libgtk-3.a
471 %defattr(644,root,root,755)
472 %{_gtkdocdir}/gail-libgail-util3
478 %defattr(644,root,root,755)
479 %attr(755,root,root) %{_bindir}/gtk3-demo
480 %attr(755,root,root) %{_bindir}/gtk3-demo-application
481 %attr(755,root,root) %{_bindir}/gtk3-icon-browser
482 %attr(755,root,root) %{_bindir}/gtk3-widget-factory
483 %{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
484 %{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
485 %{_desktopdir}/gtk3-demo.desktop
486 %{_desktopdir}/gtk3-icon-browser.desktop
487 %{_desktopdir}/gtk3-widget-factory.desktop
488 %{_iconsdir}/hicolor/*/apps/gtk3-demo-symbolic.symbolic.png
489 %{_iconsdir}/hicolor/*/apps/gtk3-demo.png
490 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory-symbolic.symbolic.png
491 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory.png
492 %{_mandir}/man1/gtk3-demo.1*
493 %{_mandir}/man1/gtk3-demo-application.1*
494 %{_mandir}/man1/gtk3-icon-browser.1*
495 %{_mandir}/man1/gtk3-widget-factory.1*
496 %{_examplesdir}/%{name}-%{version}
500 %defattr(644,root,root,755)
501 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-cups.so
506 %defattr(644,root,root,755)
507 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-papi.so