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 gstreamer # GStreamer media backend
8 %bcond_with ffmpeg # FFmpeg media backend
9 %bcond_with cloudproviders # cloudproviders support
10 %bcond_without cloudprint # cloudprint print backend
11 %bcond_without cups # CUPS print backend
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: http://ftp.gnome.org/pub/GNOME/sources/gtk/3.98/gtk-%{version}.tar.xz
27 # Source0-md5: 50b15d06273b00ecb1c6c4b51abac1a5
28 Patch0: %{name}-lpr.patch
29 Patch1: %{name}-pc.patch
30 URL: https://www.gtk.org/
31 %{?with_vulkan:BuildRequires: Vulkan-Loader-devel}
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
38 BuildRequires: cups-devel >= 1:2.0
40 BuildRequires: docbook-dtd412-xml
41 BuildRequires: docbook-style-xsl
42 BuildRequires: fontconfig-devel
43 # libavfilter >= 6.47.100, libavformat >= 57.41.100, libavcodec >= 57.48.101, libavutil >= 55.28.100, libswscale >= 4.6.100
44 %{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 3.1.1}
45 BuildRequires: freetype-devel >= 1:2.7.1
46 BuildRequires: fribidi-devel >= 0.19.7
47 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
48 BuildRequires: gettext-tools >= 0.19.7
49 BuildRequires: glib2-devel >= 1:2.59.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}
54 BuildRequires: gtk-doc >= 1.25-2
56 BuildRequires: harfbuzz-devel >= 0.9
57 %{?with_cloudprint:BuildRequires: json-glib-devel >= 1.0}
58 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.2.5}
59 BuildRequires: libepoxy-devel >= 1.4
60 BuildRequires: libstdc++-devel
61 BuildRequires: libtool >= 2:2.2.6
62 BuildRequires: libxml2-progs >= 1:2.6.31
63 BuildRequires: libxslt-progs >= 1.1.20
64 BuildRequires: meson >= 0.50.1
65 BuildRequires: ninja >= 1.5
66 BuildRequires: pango-devel >= 1:1.44.4
67 BuildRequires: perl-base
68 BuildRequires: pkgconfig
69 %{?with_cloudprint:BuildRequires: rest-devel >= 0.7}
70 BuildRequires: rpm-pythonprov
71 BuildRequires: rpmbuild(macros) >= 1.736
72 # glslc required to rebuild some files from source
73 %{?with_vulkan:BuildRequires: shaderc}
74 BuildRequires: sqlite3-devel
75 BuildRequires: tar >= 1:1.22
76 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
77 BuildRequires: xorg-lib-libXcomposite-devel
78 BuildRequires: xorg-lib-libXcursor-devel
79 BuildRequires: xorg-lib-libXdamage-devel
80 BuildRequires: xorg-lib-libXext-devel
81 BuildRequires: xorg-lib-libXfixes-devel
82 BuildRequires: xorg-lib-libXft-devel
83 BuildRequires: xorg-lib-libXi-devel
84 BuildRequires: xorg-lib-libXinerama-devel
85 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
86 BuildRequires: xorg-lib-libXrender-devel
88 %{?with_broadway:BuildRequires: zlib-devel}
90 # wayland-client, wayland-cursor, wayland-scanner
91 BuildRequires: wayland-devel >= 1.14.91
92 BuildRequires: wayland-egl-devel
93 BuildRequires: wayland-protocols >= 1.14
94 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
96 Requires: xorg-lib-libX11 >= 1.5.0
97 Requires(post,postun): glib2 >= 1:2.59.0
98 Requires: atk >= 1:2.16.0
99 Requires: cairo-gobject >= 1.14.0
100 Requires: freetype >= 1:2.7.1
101 Requires: gdk-pixbuf2 >= 2.31.0
102 Requires: glib2 >= 1:2.59.0
103 Requires: graphene >= 1.9.1
104 %{?with_cloudproviders:Requires: libcloudproviders >= 0.2.5}
105 Requires: libepoxy >= 1.4
106 Requires: pango >= 1:1.44.4
107 Requires: xorg-lib-libXi >= 1.3.0
108 Requires: xorg-lib-libXrandr >= 1.5.0
110 Requires: wayland >= 1.14.91
111 Requires: xorg-lib-libxkbcommon >= 0.2.0
113 # evince is used as gtk-print-preview-command by default
114 Suggests: evince-backend-pdf
116 # cups is used by default if gtk is built with cups
117 Suggests: %{name}-cups = %{version}-%{release}
119 Obsoletes: gtk+4 < 3.95
120 Obsoletes: gtk+4-papi
121 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
123 %define abivers 4.0.0
125 %if "%{_lib}" != "lib"
126 %define libext %(lib="%{_lib}"; echo ${lib#lib})
127 %define pqext -%{libext}
133 GTK+, which stands for the GIMP ToolKit, is a library for creating
134 graphical user interfaces for the X Window System. It is designed to
135 be small, efficient, and flexible. GTK+ is written in C with a very
136 object-oriented approach. GDK (part of GTK+) is a drawing toolkit
137 which provides a thin layer over Xlib to help automate things like
138 dealing with different color depths, and GTK is a widget set for
139 creating user interfaces.
141 %description -l cs.UTF-8
142 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
145 %description -l da.UTF-8
146 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
147 forskellige programmer.
149 %description -l de.UTF-8
150 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
151 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
153 %description -l fr.UTF-8
154 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
155 käytetään nyt myös useissa muissakin ohjelmissa.
157 %description -l it.UTF-8
158 Libreria X scritta per GIMP. Viene usata da diversi programmi.
160 %description -l pl.UTF-8
161 GTK+, która to biblioteka stała się podstawą programu GIMP, zawiera
162 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
163 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK+
164 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
165 (część GTK+) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
166 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
167 piksel). GTK (druga część GTK+) jest natomiast już zbiorem różnego
168 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
170 %description -l tr.UTF-8
171 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
172 programlarca da kullanılmaktadır.
174 %package update-icon-cache
175 Summary: Utility to update icon cache used by GTK+ library
176 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK+
177 Group: Applications/System
178 Requires: gdk-pixbuf2 >= 2.31.0
179 Requires: glib2 >= 1:2.59.0
180 Obsoletes: gtk+4-update-icon-cache < 3.95
182 %description update-icon-cache
183 Utility to update icon cache used by GTK+ library.
185 %description update-icon-cache -l pl.UTF-8
186 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
190 Summary: GTK+ header files and development documentation
191 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
192 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
193 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
194 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
195 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
196 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
197 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK+
198 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
199 Group: X11/Development/Libraries
200 Requires: %{name} = %{version}-%{release}
201 %{?with_vulkan:Requires: Vulkan-Loader-devel}
202 Requires: at-spi2-atk-devel >= 2.6.0
203 Requires: atk-devel >= 1:2.16.0
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.59.0
208 Requires: graphene-devel >= 1.9.1
209 Requires: libepoxy-devel >= 1.4
210 Requires: pango-devel >= 1:1.44.4
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.14
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
255 %if "%{_rpmversion}" >= "4.6"
260 GTK+ API documentation.
262 %description apidocs -l pl.UTF-8
263 Dokumentacja API GTK+.
266 Summary: GTK+ - example programs
267 Summary(pl.UTF-8): GTK+ - programy przykładowe
268 Group: X11/Development/Libraries
269 Requires(post,postun): glib2 >= 1:2.59.0
270 Requires: %{name}-devel = %{version}-%{release}
271 Obsoletes: gtk+4-examples < 3.95
273 %description examples
274 GTK+ - example programs.
276 %description examples -l pl.UTF-8
277 GTK+ - przykładowe programy.
280 Summary: Cloudprint printing module for GTK+
281 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez Cloudprint
283 Requires: %{name} = %{version}-%{release}
284 Obsoletes: gtk+4-cloudprint < 3.95
286 %description cloudprint
287 Cloudprint printing module for GTK+.
289 %description cloudprint -l pl.UTF-8
290 Moduł GTK+ do drukowania przez Cloudprint.
293 Summary: CUPS printing module for GTK+
294 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez CUPS
296 Requires: %{name} = %{version}-%{release}
297 Requires: cups-lib >= 2.0
298 Obsoletes: gtk+4-cups < 3.95
301 CUPS printing module for GTK+.
303 %description cups -l pl.UTF-8
304 Moduł GTK+ do drukowania przez CUPS.
307 %setup -q -n gtk-%{version}
311 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' demos/gtk-demo/geninclude.py
315 %{?with_broadway:-Dbroadway-backend=true} \
316 %{?with_cloudproviders:-Dcloudproviders=true} \
317 %{?with_apidocs:-Dgtk_doc=true} \
318 -Dinstall-tests=false \
320 -Dmedia-backends=%{!?with_ffmpeg:%{!?with_gstreamer:no}}%{?with_ffmpeg:ffmpeg,}%{?with_gstreamer:gstreamer} \
321 -Dprint-backends=file,lpr%{?with_cups:,cups}%{?with_cloudprint:,cloudprint} \
322 %{!?with_vulkan:-Dvulkan=no} \
323 %{!?with_wayland:-Dwayland-backend=false} \
326 %ninja_build -C build
329 rm -rf $RPM_BUILD_ROOT
331 %ninja_install -C build
333 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{abivers}/{immodules,inspector}
335 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
336 cp -a demos examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
338 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
339 # unsupported by glibc
340 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
342 # gtk40 and gtk40-properties domains
343 %find_lang %{name} --all-name
346 rm -rf $RPM_BUILD_ROOT
350 %glib_compile_schemas
352 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
353 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
358 if [ "$1" != "0" ]; then
360 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/immodules
361 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
363 %glib_compile_schemas
368 %glib_compile_schemas
369 %update_desktop_database
370 %update_icon_cache hicolor
373 %glib_compile_schemas
374 %update_desktop_database
375 %update_icon_cache hicolor
379 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
382 if [ "$1" != "0" ]; then
384 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
390 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
393 if [ "$1" != "0" ]; then
395 gio-querymodules %{_libdir}/gtk-4.0/%{abivers}/printbackends
399 %files -f %{name}.lang
400 %defattr(644,root,root,755)
401 %doc AUTHORS NEWS README.md
402 %{?with_broadway:%attr(755,root,root) %{_bindir}/gtk4-broadwayd}
403 %attr(755,root,root) %{_bindir}/gtk4-launch
404 %attr(755,root,root) %{_libdir}/libgtk-4.so.0.9802.0
405 # library filename is actual soname as of 3.9x
406 #attr(755,root,root) %ghost %{_libdir}/libgtk-4.so.0
408 %dir %{_libdir}/gtk-4.0
409 %dir %{_libdir}/gtk-4.0/%{abivers}
410 %dir %{_libdir}/gtk-4.0/%{abivers}/immodules
411 %dir %{_libdir}/gtk-4.0/%{abivers}/inspector
412 %dir %{_libdir}/gtk-4.0/%{abivers}/media
414 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-ffmpeg.so
416 %if %{with gstreamer}
417 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/media/libmedia-gstreamer.so
419 %dir %{_libdir}/gtk-4.0/%{abivers}/printbackends
420 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-file.so
421 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-lpr.so
422 %{_libdir}/girepository-1.0/Gdk-4.0.typelib
423 %{_libdir}/girepository-1.0/GdkX11-4.0.typelib
424 %{_libdir}/girepository-1.0/Gsk-4.0.typelib
425 %{_libdir}/girepository-1.0/Gtk-4.0.typelib
427 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
428 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
429 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
430 %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
431 %{?with_broadway:%{_mandir}/man1/gtk4-broadwayd.1*}
432 %{_mandir}/man1/gtk4-launch.1*
434 %files update-icon-cache
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{_bindir}/gtk4-encode-symbolic-svg
437 %attr(755,root,root) %{_bindir}/gtk4-update-icon-cache
438 %{_mandir}/man1/gtk4-encode-symbolic-svg.1*
439 %{_mandir}/man1/gtk4-update-icon-cache.1*
442 %defattr(644,root,root,755)
443 %attr(755,root,root) %{_bindir}/gtk4-builder-tool
444 %attr(755,root,root) %{_bindir}/gtk4-query-settings
445 %attr(755,root,root) %{_libdir}/libgtk-4.so
446 %{_includedir}/gtk-4.0
447 %{_pkgconfigdir}/gtk4.pc
448 %{_pkgconfigdir}/gtk4-unix-print.pc
449 %{_pkgconfigdir}/gtk4-x11.pc
451 %{_pkgconfigdir}/gtk4-broadway.pc
454 %{_pkgconfigdir}/gtk4-wayland.pc
456 %{_datadir}/gettext/its/gtk4builder.its
457 %{_datadir}/gettext/its/gtk4builder.loc
459 %{_datadir}/gir-1.0/Gdk-4.0.gir
460 %{_datadir}/gir-1.0/GdkX11-4.0.gir
461 %{_datadir}/gir-1.0/Gsk-4.0.gir
462 %{_datadir}/gir-1.0/Gtk-4.0.gir
463 %{_mandir}/man1/gtk4-builder-tool.1*
464 %{_mandir}/man1/gtk4-query-settings.1*
467 %defattr(644,root,root,755)
468 %{_libdir}/libgtk-4.a
472 %defattr(644,root,root,755)
479 %defattr(644,root,root,755)
480 %attr(755,root,root) %{_bindir}/gtk4-demo
481 %attr(755,root,root) %{_bindir}/gtk4-demo-application
482 %attr(755,root,root) %{_bindir}/gtk4-icon-browser
483 %attr(755,root,root) %{_bindir}/gtk4-widget-factory
484 %{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
485 %{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
486 %{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
487 %{_desktopdir}/org.gtk.Demo4.desktop
488 %{_desktopdir}/org.gtk.IconBrowser4.desktop
489 %{_desktopdir}/org.gtk.WidgetFactory4.desktop
490 %{_iconsdir}/hicolor/scalable/apps/org.gtk.Demo4.svg
491 %{_iconsdir}/hicolor/scalable/apps/org.gtk.IconBrowser4.svg
492 %{_iconsdir}/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg
493 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.Demo4-symbolic.svg
494 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.IconBrowser4-symbolic.svg
495 %{_iconsdir}/hicolor/symbolic/apps/org.gtk.WidgetFactory4-symbolic.svg
496 %{_mandir}/man1/gtk4-demo.1*
497 %{_mandir}/man1/gtk4-demo-application.1*
498 %{_mandir}/man1/gtk4-icon-browser.1*
499 %{_mandir}/man1/gtk4-widget-factory.1*
500 %{_examplesdir}/%{name}-%{version}
502 %if %{with cloudprint}
504 %defattr(644,root,root,755)
505 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cloudprint.so
510 %defattr(644,root,root,755)
511 %attr(755,root,root) %{_libdir}/gtk-4.0/%{abivers}/printbackends/libprintbackend-cups.so