1 # TODO: tracker=enabled (BR: tracker3)
4 %bcond_with apidocs # gtk-doc build (fails as of 3.99.4)
5 %bcond_without broadway # Broadway target
6 %bcond_without wayland # Wayland target
7 %bcond_without vulkan # Vulkan graphics support
8 %bcond_without ffmpeg # FFmpeg media backend
9 %bcond_without gstreamer # GStreamer media backend
10 %bcond_without cloudprint # cloudprint print backend
11 %bcond_without cups # CUPS print backend
12 %bcond_without cloudproviders # cloudproviders support
13 %bcond_with sysprof # sysprof tracing support
14 %bcond_with tracker # Tracker3 filechooser search
16 Summary: The GIMP Toolkit
17 Summary(cs.UTF-8): Sada nástrojů pro GIMP
18 Summary(de.UTF-8): Der GIMP-Toolkit
19 Summary(fi.UTF-8): GIMP-työkalukokoelma
20 Summary(fr.UTF-8): Le toolkit de GIMP
21 Summary(it.UTF-8): Il toolkit per GIMP
22 Summary(pl.UTF-8): GIMP Toolkit
23 Summary(tr.UTF-8): GIMP ToolKit arayüz kitaplığı
29 Source0: https://download.gnome.org/sources/gtk/3.99/gtk-%{version}.tar.xz
30 # Source0-md5: 5b07a69b90a8a55084a1efe23c074b42
31 Patch0: %{name}-lpr.patch
32 Patch1: %{name}-pc.patch
33 URL: https://www.gtk.org/
34 %{?with_vulkan:BuildRequires: Vulkan-Loader-devel}
35 # cairo-gobject + cairo-pdf,cairo-ps,cairo-svg
36 BuildRequires: cairo-gobject-devel >= 1.14.0
37 BuildRequires: colord-devel >= 0.1.9
39 BuildRequires: cups-devel >= 1:2.0
41 BuildRequires: docbook-dtd412-xml
42 BuildRequires: docbook-style-xsl
43 BuildRequires: fontconfig-devel
44 # libavfilter >= 6.47.100, libavformat >= 57.41.100, libavcodec >= 57.48.101, libavutil >= 55.28.100, libswscale >= 4.6.100
45 %{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 3.1.1}
46 BuildRequires: freetype-devel >= 1:2.7.1
47 BuildRequires: fribidi-devel >= 0.19.7
48 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
49 BuildRequires: gettext-tools >= 0.19.7
50 BuildRequires: glib2-devel >= 1:2.65.0
51 BuildRequires: gobject-introspection-devel >= 1.39.0
52 BuildRequires: graphene-devel >= 1.9.1
53 %{?with_gstreamer:BuildRequires: gstreamer-devel >= 1.12.3}
55 BuildRequires: gtk-doc >= 1.33
57 BuildRequires: harfbuzz-devel >= 0.9
58 %{?with_cloudprint:BuildRequires: json-glib-devel >= 1.0}
59 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.3.1}
60 BuildRequires: libepoxy-devel >= 1.4
61 BuildRequires: libstdc++-devel
62 BuildRequires: libtool >= 2:2.2.6
63 BuildRequires: libxml2-progs >= 1:2.6.31
64 BuildRequires: libxslt-progs >= 1.1.20
65 BuildRequires: meson >= 0.54
66 BuildRequires: ninja >= 1.5
67 BuildRequires: pango-devel >= 1:1.47.0
68 BuildRequires: perl-base
69 BuildRequires: pkgconfig
70 %{?with_cloudprint:BuildRequires: rest-devel >= 0.7}
71 BuildRequires: rpm-pythonprov
72 BuildRequires: rpmbuild(macros) >= 1.752
73 # glslc required to rebuild some files from source
74 %{?with_vulkan:BuildRequires: shaderc}
75 BuildRequires: sqlite3-devel
76 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.38.0}
77 BuildRequires: tar >= 1:1.22
78 %{?with_tracker:BuildRequires: tracker3-devel >= 3.0}
79 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
80 BuildRequires: xorg-lib-libXcomposite-devel
81 BuildRequires: xorg-lib-libXcursor-devel
82 BuildRequires: xorg-lib-libXdamage-devel
83 BuildRequires: xorg-lib-libXext-devel
84 BuildRequires: xorg-lib-libXfixes-devel
85 BuildRequires: xorg-lib-libXft-devel
86 BuildRequires: xorg-lib-libXi-devel
87 BuildRequires: xorg-lib-libXinerama-devel
88 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
89 BuildRequires: xorg-lib-libXrender-devel
91 %{?with_broadway:BuildRequires: zlib-devel}
93 # wayland-client, wayland-cursor, wayland-scanner
94 BuildRequires: wayland-devel >= 1.14.91
95 BuildRequires: wayland-egl-devel
96 BuildRequires: wayland-protocols >= 1.20
97 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
99 Requires: xorg-lib-libX11 >= 1.5.0
100 Requires(post,postun): glib2 >= 1:2.65.0
101 Requires: cairo-gobject >= 1.14.0
102 Requires: freetype >= 1:2.7.1
103 Requires: gdk-pixbuf2 >= 2.31.0
104 Requires: glib2 >= 1:2.65.0
105 Requires: graphene >= 1.9.1
106 %{?with_cloudproviders:Requires: libcloudproviders >= 0.3.1}
107 Requires: libepoxy >= 1.4
108 Requires: pango >= 1:1.47.0
109 Requires: xorg-lib-libXi >= 1.3.0
110 Requires: xorg-lib-libXrandr >= 1.5.0
112 Requires: wayland >= 1.14.91
113 Requires: xorg-lib-libxkbcommon >= 0.2.0
115 # evince is used as gtk-print-preview-command by default
116 Suggests: evince-backend-pdf
118 # cups is used by default if gtk is built with cups
119 Suggests: %{name}-cups = %{version}-%{release}
121 Obsoletes: gtk+4 < 3.95
122 Obsoletes: gtk+4-papi
123 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
125 %define abivers 4.0.0
127 %if "%{_lib}" != "lib"
128 %define libext %(lib="%{_lib}"; echo ${lib#lib})
129 %define pqext -%{libext}
135 GTK, which stands for the GIMP ToolKit, is a library for creating
136 graphical user interfaces for the X Window System. It is designed to
137 be small, efficient, and flexible. GTK is written in C with a very
138 object-oriented approach. GDK (part of GTK) is a drawing toolkit
139 which provides a thin layer over Xlib to help automate things like
140 dealing with different color depths, and GTK is a widget set for
141 creating user interfaces.
143 %description -l cs.UTF-8
144 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
147 %description -l da.UTF-8
148 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
149 forskellige programmer.
151 %description -l de.UTF-8
152 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
153 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
155 %description -l fr.UTF-8
156 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
157 käytetään nyt myös useissa muissakin ohjelmissa.
159 %description -l it.UTF-8
160 Libreria X scritta per GIMP. Viene usata da diversi programmi.
162 %description -l pl.UTF-8
163 GTK, która to biblioteka stała się podstawą programu GIMP, zawiera
164 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
165 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK
166 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
167 (część GTK) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
168 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
169 piksel). GTK (druga część GTK) jest natomiast już zbiorem różnego
170 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
172 %description -l tr.UTF-8
173 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
174 programlarca da kullanılmaktadır.
176 %package update-icon-cache
177 Summary: Utility to update icon cache used by GTK library
178 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK
179 Group: Applications/System
180 Requires: gdk-pixbuf2 >= 2.31.0
181 Requires: glib2 >= 1:2.65.0
182 Obsoletes: gtk+4-update-icon-cache < 3.95
184 %description update-icon-cache
185 Utility to update icon cache used by GTK library.
187 %description update-icon-cache -l pl.UTF-8
188 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
192 Summary: GTK header files and development documentation
193 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
194 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
195 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
196 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
197 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
198 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
199 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK
200 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
201 Group: X11/Development/Libraries
202 Requires: %{name} = %{version}-%{release}
203 %{?with_vulkan:Requires: Vulkan-Loader-devel}
204 Requires: cairo-gobject-devel >= 1.14.0
205 Requires: fontconfig-devel
206 Requires: gdk-pixbuf2-devel >= 2.31.0
207 Requires: glib2-devel >= 1:2.65.0
208 Requires: graphene-devel >= 1.9.1
209 Requires: libepoxy-devel >= 1.4
210 Requires: pango-devel >= 1:1.47.0
211 Requires: shared-mime-info
212 Requires: xorg-lib-libX11-devel >= 1.5.0
213 Requires: xorg-lib-libXcomposite-devel
214 Requires: xorg-lib-libXcursor-devel
215 Requires: xorg-lib-libXdamage-devel
216 Requires: xorg-lib-libXext-devel
217 Requires: xorg-lib-libXfixes-devel
218 Requires: xorg-lib-libXi-devel
219 Requires: xorg-lib-libXinerama-devel
220 Requires: xorg-lib-libXrandr-devel >= 1.5.0
222 Requires: wayland-devel >= 1.14.91
223 Requires: wayland-egl-devel
224 Requires: wayland-protocols >= 1.20
225 Requires: xorg-lib-libxkbcommon-devel >= 0.2.0
228 Obsoletes: gtk+4-devel < 3.95
231 Header files and development documentation for the GTK libraries.
233 %description devel -l pl.UTF-8
234 Pliki nagłówkowe i dokumentacja do bibliotek GTK.
237 Summary: GTK static libraries
238 Summary(pl.UTF-8): Biblioteki statyczne GTK
239 Group: X11/Development/Libraries
240 Requires: %{name}-devel = %{version}-%{release}
241 Obsoletes: gtk+4-static < 3.95
244 GTK static libraries.
246 %description static -l pl.UTF-8
247 Biblioteki statyczne GTK
250 Summary: GTK API documentation
251 Summary(pl.UTF-8): Dokumentacja API GTK
253 Requires: gtk-doc-common
254 Obsoletes: gtk+4-apidocs < 3.95
258 GTK API documentation.
260 %description apidocs -l pl.UTF-8
261 Dokumentacja API GTK.
264 Summary: GTK - example programs
265 Summary(pl.UTF-8): GTK - programy przykładowe
266 Group: X11/Development/Libraries
267 Requires(post,postun): glib2 >= 1:2.65.0
268 Requires: %{name}-devel = %{version}-%{release}
269 Obsoletes: gtk+4-examples < 3.95
271 %description examples
272 GTK - example programs.
274 %description examples -l pl.UTF-8
275 GTK - przykładowe programy.
278 Summary: Cloudprint printing module for GTK
279 Summary(pl.UTF-8): Moduł GTK do drukowania przez Cloudprint
281 Requires: %{name} = %{version}-%{release}
282 Obsoletes: gtk+4-cloudprint < 3.95
284 %description cloudprint
285 Cloudprint printing module for GTK.
287 %description cloudprint -l pl.UTF-8
288 Moduł GTK do drukowania przez Cloudprint.
290 %package media-ffmpeg
291 Summary: FFmpeg media backend for GTK
292 Summary(pl.UTF-8): Backend multimedialny FFmpeg dla GTK
294 Requires: %{name} = %{version}-%{release}
295 Requires: ffmpeg-libs >= 3.1.1
297 %description media-ffmpeg
298 FFmpeg media backend for GTK.
300 %description media-ffmpeg -l pl.UTF-8
301 Backend multimedialny FFmpeg dla GTK.
303 %package media-gstreamer
304 Summary: GStreamer media backend for GTK
305 Summary(pl.UTF-8): Backend multimedialny GStreamer dla GTK
307 Requires: %{name} = %{version}-%{release}
308 Requires: gstreamer >= 1.12.3
310 %description media-gstreamer
311 GStreamer media backend for GTK.
313 %description media-gstreamer -l pl.UTF-8
314 Backend multimedialny GStreamer dla GTK.
317 Summary: CUPS printing module for GTK
318 Summary(pl.UTF-8): Moduł GTK do drukowania przez CUPS
320 Requires: %{name} = %{version}-%{release}
321 Requires: cups-lib >= 2.0
322 Obsoletes: gtk+4-cups < 3.95
325 CUPS printing module for GTK.
327 %description cups -l pl.UTF-8
328 Moduł GTK do drukowania przez CUPS.
331 %setup -q -n gtk-%{version}
335 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' demos/gtk-demo/geninclude.py
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=disabled} \
346 %{!?with_gstreamer:-Dmedia-gstreamer=disabled} \
347 %{!?with_cloudprint:-Dprint-cloudprint=disabled} \
348 %{!?with_cups:-Dprint-cups=disabled} \
350 %{?with_sysprof:-Dsysprof=enabled} \
351 %{?with_tracker:-Dtracker=enabled} \
352 %{!?with_vulkan:-Dvulkan=disabled} \
353 %{!?with_wayland:-Dwayland-backend=false}
355 %ninja_build -C build
358 rm -rf $RPM_BUILD_ROOT
360 %ninja_install -C build
362 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{abivers}/{immodules,inspector}
364 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
365 cp -a demos examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
367 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
368 # unsupported by glibc
369 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
371 # gtk40 and gtk40-properties domains
372 %find_lang %{name} --all-name
375 rm -rf $RPM_BUILD_ROOT
379 %glib_compile_schemas
381 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
382 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
387 if [ "$1" != "0" ]; then
389 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
390 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
392 %glib_compile_schemas
397 %glib_compile_schemas
398 %update_desktop_database
399 %update_icon_cache hicolor
402 %glib_compile_schemas
403 %update_desktop_database
404 %update_icon_cache hicolor
408 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
411 if [ "$1" != "0" ]; then
413 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
419 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
422 if [ "$1" != "0" ]; then
424 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
428 %files -f %{name}.lang
429 %defattr(644,root,root,755)
430 %doc AUTHORS NEWS README.md
431 %{?with_broadway:%attr(755,root,root) %{_bindir}/gtk4-broadwayd}
432 %attr(755,root,root) %{_bindir}/gtk4-launch
433 %attr(755,root,root) %{_libdir}/libgtk-4.so.*.*.*
434 %attr(755,root,root) %ghost %{_libdir}/libgtk-4.so.0
436 %dir %{_libdir}/gtk-4.0
437 %dir %{_libdir}/gtk-4.0/%{abivers}
438 %dir %{_libdir}/gtk-4.0/%{abivers}/immodules
439 %dir %{_libdir}/gtk-4.0/%{abivers}/inspector
440 %dir %{_libdir}/gtk-4.0/%{abivers}/media
441 %dir %{_libdir}/gtk-4.0/%{abivers}/printbackends
442 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-file.so
443 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-lpr.so
444 %{_libdir}/girepository-1.0/Gdk-4.0.typelib
446 %{_libdir}/girepository-1.0/GdkWayland-4.0.typelib
448 %{_libdir}/girepository-1.0/GdkX11-4.0.typelib
449 %{_libdir}/girepository-1.0/Gsk-4.0.typelib
450 %{_libdir}/girepository-1.0/Gtk-4.0.typelib
452 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
453 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
454 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
455 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
456 %{?with_broadway:%{_mandir}/man1/gtk4-broadwayd.1*}
457 %{_mandir}/man1/gtk4-launch.1*
459 %files update-icon-cache
460 %defattr(644,root,root,755)
461 %attr(755,root,root) %{_bindir}/gtk4-encode-symbolic-svg
462 %attr(755,root,root) %{_bindir}/gtk4-update-icon-cache
463 %{_mandir}/man1/gtk4-encode-symbolic-svg.1*
464 %{_mandir}/man1/gtk4-update-icon-cache.1*
467 %defattr(644,root,root,755)
468 %attr(755,root,root) %{_bindir}/gtk4-builder-tool
469 %attr(755,root,root) %{_bindir}/gtk4-query-settings
470 %attr(755,root,root) %{_libdir}/libgtk-4.so
471 %{_includedir}/gtk-4.0
472 %{_pkgconfigdir}/gtk4.pc
473 %{_pkgconfigdir}/gtk4-unix-print.pc
474 %{_pkgconfigdir}/gtk4-x11.pc
476 %{_pkgconfigdir}/gtk4-broadway.pc
479 %{_pkgconfigdir}/gtk4-wayland.pc
481 %{_datadir}/gettext/its/gtk4builder.its
482 %{_datadir}/gettext/its/gtk4builder.loc
484 %{_datadir}/gir-1.0/Gdk-4.0.gir
486 %{_datadir}/gir-1.0/GdkWayland-4.0.gir
488 %{_datadir}/gir-1.0/GdkX11-4.0.gir
489 %{_datadir}/gir-1.0/Gsk-4.0.gir
490 %{_datadir}/gir-1.0/Gtk-4.0.gir
491 %{_mandir}/man1/gtk4-builder-tool.1*
492 %{_mandir}/man1/gtk4-query-settings.1*
495 %defattr(644,root,root,755)
496 %{_libdir}/libgtk-4.a
500 %defattr(644,root,root,755)
507 %defattr(644,root,root,755)
508 %attr(755,root,root) %{_bindir}/gtk4-demo
509 %attr(755,root,root) %{_bindir}/gtk4-demo-application
510 %attr(755,root,root) %{_bindir}/gtk4-icon-browser
511 %attr(755,root,root) %{_bindir}/gtk4-print-editor
512 %attr(755,root,root) %{_bindir}/gtk4-widget-factory
513 %{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
514 %{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
515 %{_datadir}/metainfo/org.gtk.IconBrowser4.appdata.xml
516 %{_datadir}/metainfo/org.gtk.PrintEditor4.appdata.xml
517 %{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
518 %{_desktopdir}/org.gtk.Demo4.desktop
519 %{_desktopdir}/org.gtk.IconBrowser4.desktop
520 %{_desktopdir}/org.gtk.PrintEditor4.desktop
521 %{_desktopdir}/org.gtk.WidgetFactory4.desktop
522 %{_iconsdir}/hicolor/scalable/apps/org.gtk.Demo4.svg
523 %{_iconsdir}/hicolor/scalable/apps/org.gtk.IconBrowser4.svg
524 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.svg
525 %{_iconsdir}/hicolor/scalable/apps/org.gtk.PrintEditor4.Devel.svg
526 %{_iconsdir}/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg
527 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.Demo4-symbolic.svg
528 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.IconBrowser4-symbolic.svg
529 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.PrintEditor4-symbolic.svg
530 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.WidgetFactory4-symbolic.svg
531 %{_mandir}/man1/gtk4-demo.1*
532 %{_mandir}/man1/gtk4-demo-application.1*
533 %{_mandir}/man1/gtk4-icon-browser.1*
534 %{_mandir}/man1/gtk4-widget-factory.1*
535 %{_examplesdir}/%{name}-%{version}
539 %defattr(644,root,root,755)
540 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-ffmpeg.so
543 %if %{with gstreamer}
544 %files media-gstreamer
545 %defattr(644,root,root,755)
546 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-gstreamer.so
549 %if %{with cloudprint}
551 %defattr(644,root,root,755)
552 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cloudprint.so
557 %defattr(644,root,root,755)
558 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cups.so