3 %bcond_without apidocs # gi-docgen based API documentation
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 cups # CUPS print backend
10 %bcond_without cloudproviders # cloudproviders support
11 %bcond_without static_libs # static library
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.6/gtk-%{version}.tar.xz
29 # Source0-md5: 7597ada5c646528c897cf1f2e75ed39f
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 %{?with_apidocs:BuildRequires: gi-docgen >= 2021.1}
49 BuildRequires: glib2-devel >= 1:2.66.0
50 BuildRequires: gobject-introspection-devel >= 1.39.0
51 BuildRequires: graphene-devel >= 1.9.1
52 %{?with_gstreamer:BuildRequires: gstreamer-devel >= 1.12.3}
53 # pkgconfig(gstreamer-player-1.0)
54 %{?with_gstreamer:BuildRequires: gstreamer-plugins-bad-devel >= 1.12.3}
55 BuildRequires: harfbuzz-devel >= 2.1.0
56 BuildRequires: iso-codes
57 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.3.1}
58 BuildRequires: libepoxy-devel >= 1.4
59 BuildRequires: libjpeg-turbo-devel
60 BuildRequires: libpng-devel
61 BuildRequires: libstdc++-devel
62 BuildRequires: libtiff-devel >= 4
63 BuildRequires: libtool >= 2:2.2.6
64 BuildRequires: libxml2-progs >= 1:2.6.31
65 BuildRequires: libxslt-progs >= 1.1.20
66 BuildRequires: meson >= 0.59
67 BuildRequires: ninja >= 1.5
68 BuildRequires: pango-devel >= 1:1.50.0
69 BuildRequires: perl-base
70 BuildRequires: pkgconfig
71 BuildRequires: rpm-build >= 4.6
72 BuildRequires: rpm-pythonprov
73 BuildRequires: rpmbuild(macros) >= 1.752
74 # glslc required to rebuild some files from source
75 %{?with_vulkan:BuildRequires: shaderc}
76 BuildRequires: sqlite3-devel
77 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.38.0}
78 BuildRequires: tar >= 1:1.22
79 %{?with_tracker:BuildRequires: tracker3-devel >= 3.0}
80 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
81 BuildRequires: xorg-lib-libXcomposite-devel
82 BuildRequires: xorg-lib-libXcursor-devel
83 BuildRequires: xorg-lib-libXdamage-devel
84 BuildRequires: xorg-lib-libXext-devel
85 BuildRequires: xorg-lib-libXfixes-devel
86 BuildRequires: xorg-lib-libXft-devel
87 BuildRequires: xorg-lib-libXi-devel >= 1.8
88 BuildRequires: xorg-lib-libXinerama-devel
89 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
90 BuildRequires: xorg-lib-libXrender-devel
92 %{?with_broadway:BuildRequires: zlib-devel}
94 # wayland-client, wayland-cursor, wayland-scanner
95 BuildRequires: wayland-devel >= 1.20.0
96 BuildRequires: wayland-egl-devel
97 BuildRequires: wayland-protocols >= 1.23
98 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
100 Requires: xorg-lib-libX11 >= 1.5.0
101 Requires(post,postun): glib2 >= 1:2.66.0
102 Requires: cairo-gobject >= 1.14.0
103 Requires: freetype >= 1:2.7.1
104 Requires: gdk-pixbuf2 >= 2.31.0
105 Requires: glib2 >= 1:2.66.0
106 Requires: graphene >= 1.9.1
107 Requires: harfbuzz >= 2.1.0
109 %{?with_cloudproviders:Requires: libcloudproviders >= 0.3.1}
110 Requires: libepoxy >= 1.4
111 Requires: pango >= 1:1.50.0
112 Requires: xorg-lib-libXi >= 1.8
113 Requires: xorg-lib-libXrandr >= 1.5.0
115 Requires: wayland >= 1.20.0
116 Requires: xorg-lib-libxkbcommon >= 0.2.0
118 # evince is used as gtk-print-preview-command by default
119 Suggests: evince-backend-pdf
121 # cups is used by default if gtk is built with cups
122 Suggests: %{name}-cups = %{version}-%{release}
124 Obsoletes: gtk+4 < 3.95
125 Obsoletes: gtk+4-papi < 3.94
126 Obsoletes: gtk+4-cloudprint < 3.95
127 Obsoletes: gtk4-cloudprint < 4.4
128 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
130 %define abivers 4.0.0
132 %if "%{_lib}" != "lib"
133 %define libext %(lib="%{_lib}"; echo ${lib#lib})
134 %define pqext -%{libext}
140 GTK, which stands for the GIMP ToolKit, is a library for creating
141 graphical user interfaces for the X Window System. It is designed to
142 be small, efficient, and flexible. GTK is written in C with a very
143 object-oriented approach. GDK (part of GTK) is a drawing toolkit
144 which provides a thin layer over Xlib to help automate things like
145 dealing with different color depths, and GTK is a widget set for
146 creating user interfaces.
148 %description -l cs.UTF-8
149 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
152 %description -l da.UTF-8
153 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
154 forskellige programmer.
156 %description -l de.UTF-8
157 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
158 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
160 %description -l fr.UTF-8
161 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
162 käytetään nyt myös useissa muissakin ohjelmissa.
164 %description -l it.UTF-8
165 Libreria X scritta per GIMP. Viene usata da diversi programmi.
167 %description -l pl.UTF-8
168 GTK, która to biblioteka stała się podstawą programu GIMP, zawiera
169 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
170 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK
171 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
172 (część GTK) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
173 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
174 piksel). GTK (druga część GTK) jest natomiast już zbiorem różnego
175 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
177 %description -l tr.UTF-8
178 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
179 programlarca da kullanılmaktadır.
181 %package update-icon-cache
182 Summary: Utility to update icon cache used by GTK library
183 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK
184 Group: Applications/System
185 Requires: gdk-pixbuf2 >= 2.31.0
186 Requires: glib2 >= 1:2.66.0
187 Obsoletes: gtk+4-update-icon-cache < 3.95
189 %description update-icon-cache
190 Utility to update icon cache used by GTK library.
192 %description update-icon-cache -l pl.UTF-8
193 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
197 Summary: GTK header files and development documentation
198 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
199 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
200 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
201 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
202 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
203 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
204 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK
205 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
206 Group: X11/Development/Libraries
207 Requires: %{name} = %{version}-%{release}
208 %{?with_vulkan:Requires: Vulkan-Loader-devel}
209 Requires: cairo-gobject-devel >= 1.14.0
210 Requires: fontconfig-devel
211 Requires: gdk-pixbuf2-devel >= 2.31.0
212 Requires: glib2-devel >= 1:2.65.0
213 Requires: graphene-devel >= 1.9.1
214 Requires: libepoxy-devel >= 1.4
215 Requires: pango-devel >= 1:1.50.0
216 Requires: shared-mime-info
217 Requires: xorg-lib-libX11-devel >= 1.5.0
218 Requires: xorg-lib-libXcomposite-devel
219 Requires: xorg-lib-libXcursor-devel
220 Requires: xorg-lib-libXdamage-devel
221 Requires: xorg-lib-libXext-devel
222 Requires: xorg-lib-libXfixes-devel
223 Requires: xorg-lib-libXi-devel >= 1.8
224 Requires: xorg-lib-libXinerama-devel
225 Requires: xorg-lib-libXrandr-devel >= 1.5.0
227 Requires: wayland-devel >= 1.20.0
228 Requires: wayland-egl-devel
229 Requires: wayland-protocols >= 1.23
230 Requires: xorg-lib-libxkbcommon-devel >= 0.2.0
233 Obsoletes: gtk+4-devel < 3.95
236 Header files and development documentation for the GTK libraries.
238 %description devel -l pl.UTF-8
239 Pliki nagłówkowe i dokumentacja do bibliotek GTK.
242 Summary: GTK static libraries
243 Summary(pl.UTF-8): Biblioteki statyczne GTK
244 Group: X11/Development/Libraries
245 Requires: %{name}-devel = %{version}-%{release}
246 Obsoletes: gtk+4-static < 3.95
249 GTK static libraries.
251 %description static -l pl.UTF-8
252 Biblioteki statyczne GTK
255 Summary: GTK API documentation
256 Summary(pl.UTF-8): Dokumentacja API GTK
258 Requires: gtk-doc-common
259 Obsoletes: gtk+4-apidocs < 3.95
263 GTK API documentation.
265 %description apidocs -l pl.UTF-8
266 Dokumentacja API GTK.
269 Summary: GTK - example programs
270 Summary(pl.UTF-8): GTK - programy przykładowe
271 Group: X11/Development/Libraries
272 Requires(post,postun): glib2 >= 1:2.65.0
273 Requires: %{name}-devel = %{version}-%{release}
274 Obsoletes: gtk+4-examples < 3.95
276 %description examples
277 GTK - example programs.
279 %description examples -l pl.UTF-8
280 GTK - przykładowe programy.
282 %package media-ffmpeg
283 Summary: FFmpeg media backend for GTK
284 Summary(pl.UTF-8): Backend multimedialny FFmpeg dla GTK
286 Requires: %{name} = %{version}-%{release}
287 Requires: ffmpeg-libs >= 3.1.1
289 %description media-ffmpeg
290 FFmpeg media backend for GTK.
292 %description media-ffmpeg -l pl.UTF-8
293 Backend multimedialny FFmpeg dla GTK.
295 %package media-gstreamer
296 Summary: GStreamer media backend for GTK
297 Summary(pl.UTF-8): Backend multimedialny GStreamer dla GTK
299 Requires: %{name} = %{version}-%{release}
300 Requires: gstreamer >= 1.12.3
302 %description media-gstreamer
303 GStreamer media backend for GTK.
305 %description media-gstreamer -l pl.UTF-8
306 Backend multimedialny GStreamer dla GTK.
309 Summary: CUPS printing module for GTK
310 Summary(pl.UTF-8): Moduł GTK do drukowania przez CUPS
312 Requires: %{name} = %{version}-%{release}
313 Requires: cups-lib >= 2.0
314 Obsoletes: gtk+4-cups < 3.95
317 CUPS printing module for GTK.
319 %description cups -l pl.UTF-8
320 Moduł GTK do drukowania przez CUPS.
323 %setup -q -n gtk-%{version}
326 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' demos/gtk-demo/geninclude.py
327 %{__sed} -i -e '1s,/usr/bin/env .* gjs,/usr/bin/gjs,' examples/labels.js
328 %{__sed} -i -e '1s,/usr/bin/env .* python3,%{__python3},' examples/squares.py
330 %if %{with static_libs}
331 %{__sed} -i -e '/^libgtk = / s/shared_library/library/' gtk/meson.build
334 # FIXME: common location for gi-docgen generated docs
335 %{__sed} -i -e "/^docs_dir =/ s,gtk_datadir / 'doc','%{_gtkdocdir}'," docs/reference/meson.build
339 %{?with_broadway:-Dbroadway-backend=true} \
340 %{?with_cloudproviders:-Dcloudproviders=enabled} \
342 %{?with_apidocs:-Dgtk_doc=true} \
343 -Dinstall-tests=false \
345 %{?with_ffmpeg:-Dmedia-ffmpeg=enabled} \
346 %{!?with_gstreamer:-Dmedia-gstreamer=disabled} \
347 %{!?with_cups:-Dprint-cups=disabled} \
349 %{?with_sysprof:-Dsysprof=enabled} \
350 %{?with_tracker:-Dtracker=enabled} \
351 %{!?with_vulkan:-Dvulkan=disabled} \
352 %{!?with_wayland:-Dwayland-backend=false}
354 %ninja_build -C build
357 rm -rf $RPM_BUILD_ROOT
359 %ninja_install -C build
361 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{abivers}/{immodules,inspector}
363 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
364 cp -a demos examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
366 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
367 # unsupported by glibc
368 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
370 # gtk40 and gtk40-properties domains
371 %find_lang %{name} --all-name
374 rm -rf $RPM_BUILD_ROOT
378 %glib_compile_schemas
380 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
381 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
386 if [ "$1" != "0" ]; then
388 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
389 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
391 %glib_compile_schemas
396 %glib_compile_schemas
397 %update_desktop_database
398 %update_icon_cache hicolor
401 %glib_compile_schemas
402 %update_desktop_database
403 %update_icon_cache hicolor
407 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
410 if [ "$1" != "0" ]; then
412 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
416 %files -f %{name}.lang
417 %defattr(644,root,root,755)
418 %doc AUTHORS NEWS README.md
419 %{?with_broadway:%attr(755,root,root) %{_bindir}/gtk4-broadwayd}
420 %attr(755,root,root) %{_bindir}/gtk4-launch
421 %attr(755,root,root) %{_libdir}/libgtk-4.so.*.*.*
422 %attr(755,root,root) %ghost %{_libdir}/libgtk-4.so.1
424 %dir %{_libdir}/gtk-4.0
425 %dir %{_libdir}/gtk-4.0/%{abivers}
426 %dir %{_libdir}/gtk-4.0/%{abivers}/immodules
427 %dir %{_libdir}/gtk-4.0/%{abivers}/inspector
428 %dir %{_libdir}/gtk-4.0/%{abivers}/media
429 %dir %{_libdir}/gtk-4.0/%{abivers}/printbackends
430 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-file.so
431 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-lpr.so
432 %{_libdir}/girepository-1.0/Gdk-4.0.typelib
434 %{_libdir}/girepository-1.0/GdkWayland-4.0.typelib
436 %{_libdir}/girepository-1.0/GdkX11-4.0.typelib
437 %{_libdir}/girepository-1.0/Gsk-4.0.typelib
438 %{_libdir}/girepository-1.0/Gtk-4.0.typelib
440 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
441 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
442 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
443 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
444 %{?with_broadway:%{_mandir}/man1/gtk4-broadwayd.1*}
445 %{_mandir}/man1/gtk4-launch.1*
447 %files update-icon-cache
448 %defattr(644,root,root,755)
449 %attr(755,root,root) %{_bindir}/gtk4-encode-symbolic-svg
450 %attr(755,root,root) %{_bindir}/gtk4-update-icon-cache
451 %{_mandir}/man1/gtk4-encode-symbolic-svg.1*
452 %{_mandir}/man1/gtk4-update-icon-cache.1*
455 %defattr(644,root,root,755)
456 %attr(755,root,root) %{_bindir}/gtk4-builder-tool
457 %attr(755,root,root) %{_bindir}/gtk4-query-settings
458 %attr(755,root,root) %{_libdir}/libgtk-4.so
459 %{_includedir}/gtk-4.0
460 %{_pkgconfigdir}/gtk4.pc
461 %{_pkgconfigdir}/gtk4-unix-print.pc
462 %{_pkgconfigdir}/gtk4-x11.pc
464 %{_pkgconfigdir}/gtk4-broadway.pc
467 %{_pkgconfigdir}/gtk4-wayland.pc
469 %{_datadir}/gettext/its/gtk4builder.its
470 %{_datadir}/gettext/its/gtk4builder.loc
472 %{_datadir}/gir-1.0/Gdk-4.0.gir
474 %{_datadir}/gir-1.0/GdkWayland-4.0.gir
476 %{_datadir}/gir-1.0/GdkX11-4.0.gir
477 %{_datadir}/gir-1.0/Gsk-4.0.gir
478 %{_datadir}/gir-1.0/Gtk-4.0.gir
479 %{_mandir}/man1/gtk4-builder-tool.1*
480 %{_mandir}/man1/gtk4-query-settings.1*
482 %if %{with static_libs}
484 %defattr(644,root,root,755)
485 %{_libdir}/libgtk-4.a
490 %defattr(644,root,root,755)
492 %{_gtkdocdir}/gdk4-wayland
493 %{_gtkdocdir}/gdk4-x11
499 %defattr(644,root,root,755)
500 %attr(755,root,root) %{_bindir}/gtk4-demo
501 %attr(755,root,root) %{_bindir}/gtk4-demo-application
502 %attr(755,root,root) %{_bindir}/gtk4-icon-browser
503 %attr(755,root,root) %{_bindir}/gtk4-print-editor
504 %attr(755,root,root) %{_bindir}/gtk4-widget-factory
505 %{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
506 %{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
507 %{_datadir}/metainfo/org.gtk.IconBrowser4.appdata.xml
508 %{_datadir}/metainfo/org.gtk.PrintEditor4.appdata.xml
509 %{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
510 %{_desktopdir}/org.gtk.Demo4.desktop
511 %{_desktopdir}/org.gtk.IconBrowser4.desktop
512 %{_desktopdir}/org.gtk.PrintEditor4.desktop
513 %{_desktopdir}/org.gtk.WidgetFactory4.desktop
514 %{_iconsdir}/hicolor/scalable/apps/org.gtk.Demo4.svg
515 %{_iconsdir}/hicolor/scalable/apps/org.gtk.IconBrowser4.svg
516 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.svg
517 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.Devel.svg
518 %{_iconsdir}/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg
519 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.Demo4-symbolic.svg
520 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.IconBrowser4-symbolic.svg
521 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.PrintEditor4-symbolic.svg
522 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.WidgetFactory4-symbolic.svg
523 %{_mandir}/man1/gtk4-demo.1*
524 %{_mandir}/man1/gtk4-demo-application.1*
525 %{_mandir}/man1/gtk4-icon-browser.1*
526 %{_mandir}/man1/gtk4-widget-factory.1*
527 %{_examplesdir}/%{name}-%{version}
531 %defattr(644,root,root,755)
532 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-ffmpeg.so
535 %if %{with gstreamer}
536 %files media-gstreamer
537 %defattr(644,root,root,755)
538 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-gstreamer.so
543 %defattr(644,root,root,755)
544 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cups.so