3 %bcond_without apidocs # gtk-doc build
4 %bcond_without broadway # Broadway target
5 %bcond_without wayland # Wayland target
6 %bcond_without vulkan # Vulkan graphics support
7 %bcond_without ffmpeg # FFmpeg media backend
8 %bcond_without gstreamer # GStreamer media backend
9 %bcond_without cloudprint # cloudprint print backend
10 %bcond_without cups # CUPS print backend
11 %bcond_without cloudproviders # cloudproviders support
12 %bcond_with sysprof # sysprof tracing support
13 %bcond_with tracker # Tracker3 filechooser search
15 Summary: The GIMP Toolkit
16 Summary(cs.UTF-8): Sada nástrojů pro GIMP
17 Summary(de.UTF-8): Der GIMP-Toolkit
18 Summary(fi.UTF-8): GIMP-työkalukokoelma
19 Summary(fr.UTF-8): Le toolkit de GIMP
20 Summary(it.UTF-8): Il toolkit per GIMP
21 Summary(pl.UTF-8): GIMP Toolkit
22 Summary(tr.UTF-8): GIMP ToolKit arayüz kitaplığı
28 Source0: https://download.gnome.org/sources/gtk/4.0/gtk-%{version}.tar.xz
29 # Source0-md5: 070422559bdc656077c413c05a054624
30 Patch0: %{name}-lpr.patch
31 URL: https://www.gtk.org/
32 %{?with_vulkan:BuildRequires: Vulkan-Loader-devel}
33 # cairo-gobject + cairo-pdf,cairo-ps,cairo-svg
34 BuildRequires: cairo-gobject-devel >= 1.14.0
35 BuildRequires: colord-devel >= 0.1.9
37 BuildRequires: cups-devel >= 1:2.0
39 BuildRequires: docbook-dtd412-xml
40 BuildRequires: docbook-style-xsl
41 BuildRequires: fontconfig-devel
42 # libavfilter >= 6.47.100, libavformat >= 57.41.100, libavcodec >= 57.48.101, libavutil >= 55.28.100, libswscale >= 4.6.100
43 %{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 3.1.1}
44 BuildRequires: freetype-devel >= 1:2.7.1
45 BuildRequires: fribidi-devel >= 0.19.7
46 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
47 BuildRequires: gettext-tools >= 0.19.7
48 BuildRequires: glib2-devel >= 1:2.65.0
49 BuildRequires: gobject-introspection-devel >= 1.39.0
50 BuildRequires: graphene-devel >= 1.9.1
51 %{?with_gstreamer:BuildRequires: gstreamer-devel >= 1.12.3}
53 BuildRequires: gtk-doc >= 1.33
55 BuildRequires: harfbuzz-devel >= 0.9
56 %{?with_cloudprint:BuildRequires: json-glib-devel >= 1.0}
57 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.3.1}
58 BuildRequires: libepoxy-devel >= 1.4
59 BuildRequires: libstdc++-devel
60 BuildRequires: libtool >= 2:2.2.6
61 BuildRequires: libxml2-progs >= 1:2.6.31
62 BuildRequires: libxslt-progs >= 1.1.20
63 BuildRequires: meson >= 0.54
64 BuildRequires: ninja >= 1.5
65 %{?with_apidocs:BuildRequires: pandoc >= 1.18}
66 BuildRequires: pango-devel >= 1:1.47.0
67 BuildRequires: perl-base
68 BuildRequires: pkgconfig
69 %{?with_cloudprint:BuildRequires: rest-devel >= 0.7}
70 BuildRequires: rpm-pythonprov
71 BuildRequires: rpmbuild(macros) >= 1.752
72 # glslc required to rebuild some files from source
73 %{?with_vulkan:BuildRequires: shaderc}
74 BuildRequires: sqlite3-devel
75 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.38.0}
76 BuildRequires: tar >= 1:1.22
77 %{?with_tracker:BuildRequires: tracker3-devel >= 3.0}
78 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
79 BuildRequires: xorg-lib-libXcomposite-devel
80 BuildRequires: xorg-lib-libXcursor-devel
81 BuildRequires: xorg-lib-libXdamage-devel
82 BuildRequires: xorg-lib-libXext-devel
83 BuildRequires: xorg-lib-libXfixes-devel
84 BuildRequires: xorg-lib-libXft-devel
85 BuildRequires: xorg-lib-libXi-devel
86 BuildRequires: xorg-lib-libXinerama-devel
87 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
88 BuildRequires: xorg-lib-libXrender-devel
90 %{?with_broadway:BuildRequires: zlib-devel}
92 # wayland-client, wayland-cursor, wayland-scanner
93 BuildRequires: wayland-devel >= 1.14.91
94 BuildRequires: wayland-egl-devel
95 BuildRequires: wayland-protocols >= 1.20
96 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
98 Requires: xorg-lib-libX11 >= 1.5.0
99 Requires(post,postun): glib2 >= 1:2.65.0
100 Requires: cairo-gobject >= 1.14.0
101 Requires: freetype >= 1:2.7.1
102 Requires: gdk-pixbuf2 >= 2.31.0
103 Requires: glib2 >= 1:2.65.0
104 Requires: graphene >= 1.9.1
105 %{?with_cloudproviders:Requires: libcloudproviders >= 0.3.1}
106 Requires: libepoxy >= 1.4
107 Requires: pango >= 1:1.47.0
108 Requires: xorg-lib-libXi >= 1.3.0
109 Requires: xorg-lib-libXrandr >= 1.5.0
111 Requires: wayland >= 1.14.91
112 Requires: xorg-lib-libxkbcommon >= 0.2.0
114 # evince is used as gtk-print-preview-command by default
115 Suggests: evince-backend-pdf
117 # cups is used by default if gtk is built with cups
118 Suggests: %{name}-cups = %{version}-%{release}
120 Obsoletes: gtk+4 < 3.95
121 Obsoletes: gtk+4-papi
122 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
124 %define abivers 4.0.0
126 %if "%{_lib}" != "lib"
127 %define libext %(lib="%{_lib}"; echo ${lib#lib})
128 %define pqext -%{libext}
134 GTK, which stands for the GIMP ToolKit, is a library for creating
135 graphical user interfaces for the X Window System. It is designed to
136 be small, efficient, and flexible. GTK is written in C with a very
137 object-oriented approach. GDK (part of GTK) is a drawing toolkit
138 which provides a thin layer over Xlib to help automate things like
139 dealing with different color depths, and GTK is a widget set for
140 creating user interfaces.
142 %description -l cs.UTF-8
143 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
146 %description -l da.UTF-8
147 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
148 forskellige programmer.
150 %description -l de.UTF-8
151 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
152 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
154 %description -l fr.UTF-8
155 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
156 käytetään nyt myös useissa muissakin ohjelmissa.
158 %description -l it.UTF-8
159 Libreria X scritta per GIMP. Viene usata da diversi programmi.
161 %description -l pl.UTF-8
162 GTK, która to biblioteka stała się podstawą programu GIMP, zawiera
163 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
164 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK
165 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
166 (część GTK) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
167 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
168 piksel). GTK (druga część GTK) jest natomiast już zbiorem różnego
169 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
171 %description -l tr.UTF-8
172 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
173 programlarca da kullanılmaktadır.
175 %package update-icon-cache
176 Summary: Utility to update icon cache used by GTK library
177 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK
178 Group: Applications/System
179 Requires: gdk-pixbuf2 >= 2.31.0
180 Requires: glib2 >= 1:2.65.0
181 Obsoletes: gtk+4-update-icon-cache < 3.95
183 %description update-icon-cache
184 Utility to update icon cache used by GTK library.
186 %description update-icon-cache -l pl.UTF-8
187 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
191 Summary: GTK header files and development documentation
192 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
193 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
194 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
195 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
196 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
197 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
198 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK
199 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
200 Group: X11/Development/Libraries
201 Requires: %{name} = %{version}-%{release}
202 %{?with_vulkan:Requires: Vulkan-Loader-devel}
203 Requires: cairo-gobject-devel >= 1.14.0
204 Requires: fontconfig-devel
205 Requires: gdk-pixbuf2-devel >= 2.31.0
206 Requires: glib2-devel >= 1:2.65.0
207 Requires: graphene-devel >= 1.9.1
208 Requires: libepoxy-devel >= 1.4
209 Requires: pango-devel >= 1:1.47.0
210 Requires: shared-mime-info
211 Requires: xorg-lib-libX11-devel >= 1.5.0
212 Requires: xorg-lib-libXcomposite-devel
213 Requires: xorg-lib-libXcursor-devel
214 Requires: xorg-lib-libXdamage-devel
215 Requires: xorg-lib-libXext-devel
216 Requires: xorg-lib-libXfixes-devel
217 Requires: xorg-lib-libXi-devel
218 Requires: xorg-lib-libXinerama-devel
219 Requires: xorg-lib-libXrandr-devel >= 1.5.0
221 Requires: wayland-devel >= 1.14.91
222 Requires: wayland-egl-devel
223 Requires: wayland-protocols >= 1.20
224 Requires: xorg-lib-libxkbcommon-devel >= 0.2.0
227 Obsoletes: gtk+4-devel < 3.95
230 Header files and development documentation for the GTK libraries.
232 %description devel -l pl.UTF-8
233 Pliki nagłówkowe i dokumentacja do bibliotek GTK.
236 Summary: GTK static libraries
237 Summary(pl.UTF-8): Biblioteki statyczne GTK
238 Group: X11/Development/Libraries
239 Requires: %{name}-devel = %{version}-%{release}
240 Obsoletes: gtk+4-static < 3.95
243 GTK static libraries.
245 %description static -l pl.UTF-8
246 Biblioteki statyczne GTK
249 Summary: GTK API documentation
250 Summary(pl.UTF-8): Dokumentacja API GTK
252 Requires: gtk-doc-common
253 Obsoletes: gtk+4-apidocs < 3.95
257 GTK API documentation.
259 %description apidocs -l pl.UTF-8
260 Dokumentacja API GTK.
263 Summary: GTK - example programs
264 Summary(pl.UTF-8): GTK - programy przykładowe
265 Group: X11/Development/Libraries
266 Requires(post,postun): glib2 >= 1:2.65.0
267 Requires: %{name}-devel = %{version}-%{release}
268 Obsoletes: gtk+4-examples < 3.95
270 %description examples
271 GTK - example programs.
273 %description examples -l pl.UTF-8
274 GTK - przykładowe programy.
277 Summary: Cloudprint printing module for GTK
278 Summary(pl.UTF-8): Moduł GTK do drukowania przez Cloudprint
280 Requires: %{name} = %{version}-%{release}
281 Obsoletes: gtk+4-cloudprint < 3.95
283 %description cloudprint
284 Cloudprint printing module for GTK.
286 %description cloudprint -l pl.UTF-8
287 Moduł GTK do drukowania przez Cloudprint.
289 %package media-ffmpeg
290 Summary: FFmpeg media backend for GTK
291 Summary(pl.UTF-8): Backend multimedialny FFmpeg dla GTK
293 Requires: %{name} = %{version}-%{release}
294 Requires: ffmpeg-libs >= 3.1.1
296 %description media-ffmpeg
297 FFmpeg media backend for GTK.
299 %description media-ffmpeg -l pl.UTF-8
300 Backend multimedialny FFmpeg dla GTK.
302 %package media-gstreamer
303 Summary: GStreamer media backend for GTK
304 Summary(pl.UTF-8): Backend multimedialny GStreamer dla GTK
306 Requires: %{name} = %{version}-%{release}
307 Requires: gstreamer >= 1.12.3
309 %description media-gstreamer
310 GStreamer media backend for GTK.
312 %description media-gstreamer -l pl.UTF-8
313 Backend multimedialny GStreamer dla GTK.
316 Summary: CUPS printing module for GTK
317 Summary(pl.UTF-8): Moduł GTK do drukowania przez CUPS
319 Requires: %{name} = %{version}-%{release}
320 Requires: cups-lib >= 2.0
321 Obsoletes: gtk+4-cups < 3.95
324 CUPS printing module for GTK.
326 %description cups -l pl.UTF-8
327 Moduł GTK do drukowania przez CUPS.
330 %setup -q -n gtk-%{version}
333 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' demos/gtk-demo/geninclude.py
337 %{?with_broadway:-Dbroadway-backend=true} \
338 %{?with_cloudproviders:-Dcloudproviders=enabled} \
340 %{?with_apidocs:-Dgtk_doc=true} \
341 -Dinstall-tests=false \
343 %{!?with_ffmpeg:-Dmedia-ffmpeg=disabled} \
344 %{!?with_gstreamer:-Dmedia-gstreamer=disabled} \
345 %{!?with_cloudprint:-Dprint-cloudprint=disabled} \
346 %{!?with_cups:-Dprint-cups=disabled} \
348 %{?with_sysprof:-Dsysprof=enabled} \
349 %{?with_tracker:-Dtracker=enabled} \
350 %{!?with_vulkan:-Dvulkan=disabled} \
351 %{!?with_wayland:-Dwayland-backend=false}
353 %ninja_build -C build
356 # seems missing in default target (as of 4.0.0)
357 %ninja_build -C build gtk4-doc
361 rm -rf $RPM_BUILD_ROOT
363 %ninja_install -C build
365 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{abivers}/{immodules,inspector}
367 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
368 cp -a demos examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
370 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
371 # unsupported by glibc
372 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
374 # gtk40 and gtk40-properties domains
375 %find_lang %{name} --all-name
378 rm -rf $RPM_BUILD_ROOT
382 %glib_compile_schemas
384 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
385 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
390 if [ "$1" != "0" ]; then
392 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
393 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
395 %glib_compile_schemas
400 %glib_compile_schemas
401 %update_desktop_database
402 %update_icon_cache hicolor
405 %glib_compile_schemas
406 %update_desktop_database
407 %update_icon_cache hicolor
411 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
414 if [ "$1" != "0" ]; then
416 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
422 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
425 if [ "$1" != "0" ]; then
427 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
431 %files -f %{name}.lang
432 %defattr(644,root,root,755)
433 %doc AUTHORS NEWS README.md
434 %{?with_broadway:%attr(755,root,root) %{_bindir}/gtk4-broadwayd}
435 %attr(755,root,root) %{_bindir}/gtk4-launch
436 %attr(755,root,root) %{_libdir}/libgtk-4.so.*.*.*
437 %attr(755,root,root) %ghost %{_libdir}/libgtk-4.so.1
439 %dir %{_libdir}/gtk-4.0
440 %dir %{_libdir}/gtk-4.0/%{abivers}
441 %dir %{_libdir}/gtk-4.0/%{abivers}/immodules
442 %dir %{_libdir}/gtk-4.0/%{abivers}/inspector
443 %dir %{_libdir}/gtk-4.0/%{abivers}/media
444 %dir %{_libdir}/gtk-4.0/%{abivers}/printbackends
445 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-file.so
446 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-lpr.so
447 %{_libdir}/girepository-1.0/Gdk-4.0.typelib
449 %{_libdir}/girepository-1.0/GdkWayland-4.0.typelib
451 %{_libdir}/girepository-1.0/GdkX11-4.0.typelib
452 %{_libdir}/girepository-1.0/Gsk-4.0.typelib
453 %{_libdir}/girepository-1.0/Gtk-4.0.typelib
455 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
456 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
457 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
458 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
459 %{?with_broadway:%{_mandir}/man1/gtk4-broadwayd.1*}
460 %{_mandir}/man1/gtk4-launch.1*
462 %files update-icon-cache
463 %defattr(644,root,root,755)
464 %attr(755,root,root) %{_bindir}/gtk4-encode-symbolic-svg
465 %attr(755,root,root) %{_bindir}/gtk4-update-icon-cache
466 %{_mandir}/man1/gtk4-encode-symbolic-svg.1*
467 %{_mandir}/man1/gtk4-update-icon-cache.1*
470 %defattr(644,root,root,755)
471 %attr(755,root,root) %{_bindir}/gtk4-builder-tool
472 %attr(755,root,root) %{_bindir}/gtk4-query-settings
473 %attr(755,root,root) %{_libdir}/libgtk-4.so
474 %{_includedir}/gtk-4.0
475 %{_pkgconfigdir}/gtk4.pc
476 %{_pkgconfigdir}/gtk4-unix-print.pc
477 %{_pkgconfigdir}/gtk4-x11.pc
479 %{_pkgconfigdir}/gtk4-broadway.pc
482 %{_pkgconfigdir}/gtk4-wayland.pc
484 %{_datadir}/gettext/its/gtk4builder.its
485 %{_datadir}/gettext/its/gtk4builder.loc
487 %{_datadir}/gir-1.0/Gdk-4.0.gir
489 %{_datadir}/gir-1.0/GdkWayland-4.0.gir
491 %{_datadir}/gir-1.0/GdkX11-4.0.gir
492 %{_datadir}/gir-1.0/Gsk-4.0.gir
493 %{_datadir}/gir-1.0/Gtk-4.0.gir
494 %{_mandir}/man1/gtk4-builder-tool.1*
495 %{_mandir}/man1/gtk4-query-settings.1*
498 %defattr(644,root,root,755)
499 %{_libdir}/libgtk-4.a
503 %defattr(644,root,root,755)
510 %defattr(644,root,root,755)
511 %attr(755,root,root) %{_bindir}/gtk4-demo
512 %attr(755,root,root) %{_bindir}/gtk4-demo-application
513 %attr(755,root,root) %{_bindir}/gtk4-icon-browser
514 %attr(755,root,root) %{_bindir}/gtk4-print-editor
515 %attr(755,root,root) %{_bindir}/gtk4-widget-factory
516 %{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
517 %{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
518 %{_datadir}/metainfo/org.gtk.IconBrowser4.appdata.xml
519 %{_datadir}/metainfo/org.gtk.PrintEditor4.appdata.xml
520 %{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
521 %{_desktopdir}/org.gtk.Demo4.desktop
522 %{_desktopdir}/org.gtk.IconBrowser4.desktop
523 %{_desktopdir}/org.gtk.PrintEditor4.desktop
524 %{_desktopdir}/org.gtk.WidgetFactory4.desktop
525 %{_iconsdir}/hicolor/scalable/apps/org.gtk.Demo4.svg
526 %{_iconsdir}/hicolor/scalable/apps/org.gtk.IconBrowser4.svg
527 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.svg
528 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.Devel.svg
529 %{_iconsdir}/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg
530 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.Demo4-symbolic.svg
531 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.IconBrowser4-symbolic.svg
532 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.PrintEditor4-symbolic.svg
533 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.WidgetFactory4-symbolic.svg
534 %{_mandir}/man1/gtk4-demo.1*
535 %{_mandir}/man1/gtk4-demo-application.1*
536 %{_mandir}/man1/gtk4-icon-browser.1*
537 %{_mandir}/man1/gtk4-widget-factory.1*
538 %{_examplesdir}/%{name}-%{version}
542 %defattr(644,root,root,755)
543 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-ffmpeg.so
546 %if %{with gstreamer}
547 %files media-gstreamer
548 %defattr(644,root,root,755)
549 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-gstreamer.so
552 %if %{with cloudprint}
554 %defattr(644,root,root,755)
555 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cloudprint.so
560 %defattr(644,root,root,755)
561 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cups.so