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.4/gtk-%{version}.tar.xz
29 # Source0-md5: 113d24bd311037f774bf1aa7d5d0a344
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 BuildRequires: harfbuzz-devel >= 0.9
54 BuildRequires: iso-codes
55 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.3.1}
56 BuildRequires: libepoxy-devel >= 1.4
57 BuildRequires: libstdc++-devel
58 BuildRequires: libtool >= 2:2.2.6
59 BuildRequires: libxml2-progs >= 1:2.6.31
60 BuildRequires: libxslt-progs >= 1.1.20
61 BuildRequires: meson >= 0.54
62 BuildRequires: ninja >= 1.5
63 BuildRequires: pango-devel >= 1:1.47.0
64 BuildRequires: perl-base
65 BuildRequires: pkgconfig
66 BuildRequires: rpm-build >= 4.6
67 BuildRequires: rpm-pythonprov
68 BuildRequires: rpmbuild(macros) >= 1.752
69 # glslc required to rebuild some files from source
70 %{?with_vulkan:BuildRequires: shaderc}
71 BuildRequires: sqlite3-devel
72 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.38.0}
73 BuildRequires: tar >= 1:1.22
74 %{?with_tracker:BuildRequires: tracker3-devel >= 3.0}
75 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
76 BuildRequires: xorg-lib-libXcomposite-devel
77 BuildRequires: xorg-lib-libXcursor-devel
78 BuildRequires: xorg-lib-libXdamage-devel
79 BuildRequires: xorg-lib-libXext-devel
80 BuildRequires: xorg-lib-libXfixes-devel
81 BuildRequires: xorg-lib-libXft-devel
82 BuildRequires: xorg-lib-libXi-devel
83 BuildRequires: xorg-lib-libXinerama-devel
84 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
85 BuildRequires: xorg-lib-libXrender-devel
87 %{?with_broadway:BuildRequires: zlib-devel}
89 # wayland-client, wayland-cursor, wayland-scanner
90 BuildRequires: wayland-devel >= 1.16.91
91 BuildRequires: wayland-egl-devel
92 BuildRequires: wayland-protocols >= 1.21
93 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
95 Requires: xorg-lib-libX11 >= 1.5.0
96 Requires(post,postun): glib2 >= 1:2.66.0
97 Requires: cairo-gobject >= 1.14.0
98 Requires: freetype >= 1:2.7.1
99 Requires: gdk-pixbuf2 >= 2.31.0
100 Requires: glib2 >= 1:2.66.0
101 Requires: graphene >= 1.9.1
103 %{?with_cloudproviders:Requires: libcloudproviders >= 0.3.1}
104 Requires: libepoxy >= 1.4
105 Requires: pango >= 1:1.47.0
106 Requires: xorg-lib-libXi >= 1.3.0
107 Requires: xorg-lib-libXrandr >= 1.5.0
109 Requires: wayland >= 1.16.91
110 Requires: xorg-lib-libxkbcommon >= 0.2.0
112 # evince is used as gtk-print-preview-command by default
113 Suggests: evince-backend-pdf
115 # cups is used by default if gtk is built with cups
116 Suggests: %{name}-cups = %{version}-%{release}
118 Obsoletes: gtk+4 < 3.95
119 Obsoletes: gtk+4-papi < 3.94
120 Obsoletes: gtk+4-cloudprint < 3.95
121 Obsoletes: gtk4-cloudprint < 4.4
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.66.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.16.91
222 Requires: wayland-egl-devel
223 Requires: wayland-protocols >= 1.21
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.
276 %package media-ffmpeg
277 Summary: FFmpeg media backend for GTK
278 Summary(pl.UTF-8): Backend multimedialny FFmpeg dla GTK
280 Requires: %{name} = %{version}-%{release}
281 Requires: ffmpeg-libs >= 3.1.1
283 %description media-ffmpeg
284 FFmpeg media backend for GTK.
286 %description media-ffmpeg -l pl.UTF-8
287 Backend multimedialny FFmpeg dla GTK.
289 %package media-gstreamer
290 Summary: GStreamer media backend for GTK
291 Summary(pl.UTF-8): Backend multimedialny GStreamer dla GTK
293 Requires: %{name} = %{version}-%{release}
294 Requires: gstreamer >= 1.12.3
296 %description media-gstreamer
297 GStreamer media backend for GTK.
299 %description media-gstreamer -l pl.UTF-8
300 Backend multimedialny GStreamer dla GTK.
303 Summary: CUPS printing module for GTK
304 Summary(pl.UTF-8): Moduł GTK do drukowania przez CUPS
306 Requires: %{name} = %{version}-%{release}
307 Requires: cups-lib >= 2.0
308 Obsoletes: gtk+4-cups < 3.95
311 CUPS printing module for GTK.
313 %description cups -l pl.UTF-8
314 Moduł GTK do drukowania przez CUPS.
317 %setup -q -n gtk-%{version}
320 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' demos/gtk-demo/geninclude.py
321 %{__sed} -i -e '1s,/usr/bin/env .* gjs,/usr/bin/gjs,' examples/labels.js
322 %{__sed} -i -e '1s,/usr/bin/env .* python3,%{__python3},' examples/squares.py
324 %if %{with static_libs}
325 %{__sed} -i -e '/^libgtk = / s/shared_library/library/' gtk/meson.build
328 # FIXME: common location for gi-docgen generated docs
329 %{__sed} -i -e "/^docs_dir =/ s,gtk_datadir / 'doc','%{_gtkdocdir}'," docs/reference/meson.build
333 %{?with_broadway:-Dbroadway-backend=true} \
334 %{?with_cloudproviders:-Dcloudproviders=enabled} \
336 %{?with_apidocs:-Dgtk_doc=true} \
337 -Dinstall-tests=false \
339 %{?with_ffmpeg:-Dmedia-ffmpeg=enabled} \
340 %{!?with_gstreamer:-Dmedia-gstreamer=disabled} \
341 %{!?with_cups:-Dprint-cups=disabled} \
343 %{?with_sysprof:-Dsysprof=enabled} \
344 %{?with_tracker:-Dtracker=enabled} \
345 %{!?with_vulkan:-Dvulkan=disabled} \
346 %{!?with_wayland:-Dwayland-backend=false}
348 %ninja_build -C build
351 rm -rf $RPM_BUILD_ROOT
353 %ninja_install -C build
355 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{abivers}/{immodules,inspector}
357 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
358 cp -a demos examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
360 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
361 # unsupported by glibc
362 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
364 # gtk40 and gtk40-properties domains
365 %find_lang %{name} --all-name
368 rm -rf $RPM_BUILD_ROOT
372 %glib_compile_schemas
374 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
375 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
380 if [ "$1" != "0" ]; then
382 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
383 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
385 %glib_compile_schemas
390 %glib_compile_schemas
391 %update_desktop_database
392 %update_icon_cache hicolor
395 %glib_compile_schemas
396 %update_desktop_database
397 %update_icon_cache hicolor
401 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
404 if [ "$1" != "0" ]; then
406 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
410 %files -f %{name}.lang
411 %defattr(644,root,root,755)
412 %doc AUTHORS NEWS README.md
413 %{?with_broadway:%attr(755,root,root) %{_bindir}/gtk4-broadwayd}
414 %attr(755,root,root) %{_bindir}/gtk4-launch
415 %attr(755,root,root) %{_libdir}/libgtk-4.so.*.*.*
416 %attr(755,root,root) %ghost %{_libdir}/libgtk-4.so.1
418 %dir %{_libdir}/gtk-4.0
419 %dir %{_libdir}/gtk-4.0/%{abivers}
420 %dir %{_libdir}/gtk-4.0/%{abivers}/immodules
421 %dir %{_libdir}/gtk-4.0/%{abivers}/inspector
422 %dir %{_libdir}/gtk-4.0/%{abivers}/media
423 %dir %{_libdir}/gtk-4.0/%{abivers}/printbackends
424 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-file.so
425 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-lpr.so
426 %{_libdir}/girepository-1.0/Gdk-4.0.typelib
428 %{_libdir}/girepository-1.0/GdkWayland-4.0.typelib
430 %{_libdir}/girepository-1.0/GdkX11-4.0.typelib
431 %{_libdir}/girepository-1.0/Gsk-4.0.typelib
432 %{_libdir}/girepository-1.0/Gtk-4.0.typelib
434 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
435 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
436 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
437 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
438 %{?with_broadway:%{_mandir}/man1/gtk4-broadwayd.1*}
439 %{_mandir}/man1/gtk4-launch.1*
441 %files update-icon-cache
442 %defattr(644,root,root,755)
443 %attr(755,root,root) %{_bindir}/gtk4-encode-symbolic-svg
444 %attr(755,root,root) %{_bindir}/gtk4-update-icon-cache
445 %{_mandir}/man1/gtk4-encode-symbolic-svg.1*
446 %{_mandir}/man1/gtk4-update-icon-cache.1*
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_bindir}/gtk4-builder-tool
451 %attr(755,root,root) %{_bindir}/gtk4-query-settings
452 %attr(755,root,root) %{_libdir}/libgtk-4.so
453 %{_includedir}/gtk-4.0
454 %{_pkgconfigdir}/gtk4.pc
455 %{_pkgconfigdir}/gtk4-unix-print.pc
456 %{_pkgconfigdir}/gtk4-x11.pc
458 %{_pkgconfigdir}/gtk4-broadway.pc
461 %{_pkgconfigdir}/gtk4-wayland.pc
463 %{_datadir}/gettext/its/gtk4builder.its
464 %{_datadir}/gettext/its/gtk4builder.loc
466 %{_datadir}/gir-1.0/Gdk-4.0.gir
468 %{_datadir}/gir-1.0/GdkWayland-4.0.gir
470 %{_datadir}/gir-1.0/GdkX11-4.0.gir
471 %{_datadir}/gir-1.0/Gsk-4.0.gir
472 %{_datadir}/gir-1.0/Gtk-4.0.gir
473 %{_mandir}/man1/gtk4-builder-tool.1*
474 %{_mandir}/man1/gtk4-query-settings.1*
476 %if %{with static_libs}
478 %defattr(644,root,root,755)
479 %{_libdir}/libgtk-4.a
484 %defattr(644,root,root,755)
486 %{_gtkdocdir}/gdk4-wayland
487 %{_gtkdocdir}/gdk4-x11
493 %defattr(644,root,root,755)
494 %attr(755,root,root) %{_bindir}/gtk4-demo
495 %attr(755,root,root) %{_bindir}/gtk4-demo-application
496 %attr(755,root,root) %{_bindir}/gtk4-icon-browser
497 %attr(755,root,root) %{_bindir}/gtk4-print-editor
498 %attr(755,root,root) %{_bindir}/gtk4-widget-factory
499 %{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
500 %{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
501 %{_datadir}/metainfo/org.gtk.IconBrowser4.appdata.xml
502 %{_datadir}/metainfo/org.gtk.PrintEditor4.appdata.xml
503 %{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
504 %{_desktopdir}/org.gtk.Demo4.desktop
505 %{_desktopdir}/org.gtk.IconBrowser4.desktop
506 %{_desktopdir}/org.gtk.PrintEditor4.desktop
507 %{_desktopdir}/org.gtk.WidgetFactory4.desktop
508 %{_iconsdir}/hicolor/scalable/apps/org.gtk.Demo4.svg
509 %{_iconsdir}/hicolor/scalable/apps/org.gtk.IconBrowser4.svg
510 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.svg
511 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.Devel.svg
512 %{_iconsdir}/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg
513 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.Demo4-symbolic.svg
514 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.IconBrowser4-symbolic.svg
515 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.PrintEditor4-symbolic.svg
516 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.WidgetFactory4-symbolic.svg
517 %{_mandir}/man1/gtk4-demo.1*
518 %{_mandir}/man1/gtk4-demo-application.1*
519 %{_mandir}/man1/gtk4-icon-browser.1*
520 %{_mandir}/man1/gtk4-widget-factory.1*
521 %{_examplesdir}/%{name}-%{version}
525 %defattr(644,root,root,755)
526 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-ffmpeg.so
529 %if %{with gstreamer}
530 %files media-gstreamer
531 %defattr(644,root,root,755)
532 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-gstreamer.so
537 %defattr(644,root,root,755)
538 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cups.so