bf23fe8522
See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
333 lines
10 KiB
RPMSpec
333 lines
10 KiB
RPMSpec
%if 0%{?fedora}
|
|
%global with_wayland 1
|
|
%global with_broadway 1
|
|
%endif
|
|
|
|
%global glib2_version 2.53.7
|
|
%global pango_version 1.37.3
|
|
%global atk_version 2.15.1
|
|
%global cairo_version 1.14.0
|
|
%global gdk_pixbuf_version 2.30.0
|
|
%global wayland_version 1.9.91
|
|
%global wayland_protocols_version 1.9
|
|
%global epoxy_version 1.0
|
|
|
|
%global bin_version 4.0.0
|
|
|
|
# Filter provides for private modules
|
|
%global __provides_exclude_from ^%{_libdir}/gtk-4.0
|
|
|
|
Name: gtk4
|
|
Version: 3.92.1
|
|
Release: 3%{?dist}
|
|
Summary: GTK+ graphical user interface library
|
|
|
|
License: LGPLv2+
|
|
URL: http://www.gtk.org
|
|
Source0: http://download.gnome.org/sources/gtk+/3.92/gtk+-%{version}.tar.xz
|
|
# Build fixes backported from upstream
|
|
Patch0: 0001-Add-default-return-values-to-switch-statements.patch
|
|
Patch1: 0001-Fix-build.patch
|
|
Patch2: 0001-Add-a-return-value.patch
|
|
# Fix installing printbackends, backported from upstream
|
|
Patch3: 0001-printing-Install-printbackends.patch
|
|
|
|
BuildRequires: cups-devel
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: gettext
|
|
BuildRequires: gtk-doc
|
|
BuildRequires: meson
|
|
BuildRequires: pkgconfig(atk) >= %{atk_version}
|
|
BuildRequires: pkgconfig(atk-bridge-2.0)
|
|
BuildRequires: pkgconfig(avahi-gobject)
|
|
BuildRequires: pkgconfig(cairo) >= %{cairo_version}
|
|
BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version}
|
|
BuildRequires: pkgconfig(colord)
|
|
BuildRequires: pkgconfig(epoxy)
|
|
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
|
|
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
|
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
|
BuildRequires: pkgconfig(graphene-gobject-1.0)
|
|
BuildRequires: pkgconfig(json-glib-1.0)
|
|
BuildRequires: pkgconfig(pango) >= %{pango_version}
|
|
BuildRequires: pkgconfig(rest-0.7)
|
|
BuildRequires: pkgconfig(xcomposite)
|
|
BuildRequires: pkgconfig(xcursor)
|
|
BuildRequires: pkgconfig(xdamage)
|
|
BuildRequires: pkgconfig(xfixes)
|
|
BuildRequires: pkgconfig(xi)
|
|
BuildRequires: pkgconfig(xinerama)
|
|
BuildRequires: pkgconfig(xrandr)
|
|
BuildRequires: pkgconfig(xrender)
|
|
BuildRequires: pkgconfig(xrender)
|
|
%if 0%{?with_wayland}
|
|
BuildRequires: pkgconfig(egl)
|
|
BuildRequires: pkgconfig(wayland-client) >= %{wayland_version}
|
|
BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version}
|
|
BuildRequires: pkgconfig(wayland-egl) >= %{wayland_version}
|
|
BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version}
|
|
BuildRequires: pkgconfig(xkbcommon)
|
|
%endif
|
|
|
|
# standard icons
|
|
Requires: adwaita-icon-theme
|
|
# required for icon theme apis to work
|
|
Requires: hicolor-icon-theme
|
|
# split out in a subpackage
|
|
Requires: gtk-update-icon-cache
|
|
|
|
Requires: atk%{?_isa} >= %{atk_version}
|
|
Requires: cairo%{?_isa} >= %{cairo_version}
|
|
Requires: cairo-gobject%{?_isa} >= %{cairo_version}
|
|
Requires: glib2%{?_isa} >= %{glib2_version}
|
|
Requires: libepoxy%{?_isa} >= %{epoxy_version}
|
|
Requires: pango%{?_isa} >= %{pango_version}
|
|
%if 0%{?with_wayland}
|
|
Requires: libwayland-client%{?_isa} >= %{wayland_version}
|
|
Requires: libwayland-cursor%{?_isa} >= %{wayland_version}
|
|
%endif
|
|
|
|
# required to support all the different image formats
|
|
Requires: gdk-pixbuf2-modules%{?_isa}
|
|
|
|
# make sure we have a reasonable gsettings backend
|
|
%if 0%{?fedora}
|
|
Recommends: dconf%{?_isa}
|
|
%else
|
|
Requires: dconf%{?_isa}
|
|
%endif
|
|
|
|
%description
|
|
GTK+ is a multi-platform toolkit for creating graphical user
|
|
interfaces. Offering a complete set of widgets, GTK+ is suitable for
|
|
projects ranging from small one-off tools to complete application
|
|
suites.
|
|
|
|
This package contains version 4 of GTK+.
|
|
|
|
%package immodules
|
|
Summary: Input methods for GTK+
|
|
Requires: gtk4%{?_isa} = %{version}-%{release}
|
|
# for im-cedilla.conf
|
|
Requires: gtk2-immodules%{?_isa}
|
|
|
|
%description immodules
|
|
The gtk4-immodules package contains standalone input methods that
|
|
are shipped as part of GTK+ 4.
|
|
|
|
%package immodule-xim
|
|
Summary: XIM support for GTK+
|
|
Requires: gtk4%{?_isa} = %{version}-%{release}
|
|
|
|
%description immodule-xim
|
|
The gtk4-immodule-xim package contains XIM support for GTK+ 4.
|
|
|
|
%package devel
|
|
Summary: Development files for GTK+
|
|
Requires: gtk4%{?_isa} = %{version}-%{release}
|
|
|
|
%description devel
|
|
This package contains the libraries and header files that are needed
|
|
for writing applications with version 4 of the GTK+ widget toolkit. If
|
|
you plan to develop applications with GTK+, consider installing the
|
|
gtk4-devel-docs package.
|
|
|
|
%package devel-docs
|
|
Summary: Developer documentation for GTK+
|
|
Requires: gtk4 = %{version}-%{release}
|
|
|
|
%description devel-docs
|
|
This package contains developer documentation for version 4 of the GTK+
|
|
widget toolkit.
|
|
|
|
%package tests
|
|
Summary: Tests for the %{name} package
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description tests
|
|
The %{name}-tests package contains tests that can be used to verify
|
|
the functionality of the installed %{name} package.
|
|
|
|
%prep
|
|
%setup -q -n gtk+-%{version}
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
|
|
%build
|
|
export CFLAGS='-fno-strict-aliasing %optflags'
|
|
%meson \
|
|
-Denable-xinerama=yes \
|
|
-Denable-x11-backend=true \
|
|
%if 0%{?with_wayland}
|
|
-Denable-wayland-backend=true \
|
|
%endif
|
|
%if 0%{?with_broadway}
|
|
-Denable-broadway-backend=true \
|
|
%endif
|
|
-Denable-colord=yes \
|
|
-Ddocumentation=true \
|
|
-Dman-pages=true \
|
|
-Denable-installed-tests=true
|
|
|
|
%meson_build
|
|
|
|
%install
|
|
%meson_install
|
|
|
|
%find_lang gtk40
|
|
%find_lang gtk40-properties
|
|
|
|
(cd $RPM_BUILD_ROOT%{_bindir}
|
|
mv gtk4-query-immodules gtk4-query-immodules-%{__isa_bits}
|
|
)
|
|
|
|
echo ".so man1/gtk4-query-immodules.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk4-query-immodules-%{__isa_bits}.1
|
|
|
|
%if !0%{?with_broadway}
|
|
rm $RPM_BUILD_ROOT%{_mandir}/man1/gtk4-broadwayd.1*
|
|
%endif
|
|
|
|
touch $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{bin_version}/immodules.cache
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-4.0
|
|
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/modules
|
|
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/immodules
|
|
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{bin_version}/theming-engines
|
|
|
|
%check
|
|
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%post devel
|
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
|
|
|
%postun devel
|
|
if [ $1 -eq 0 ] ; then
|
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
fi
|
|
|
|
%posttrans devel
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
|
|
%transfiletriggerin -- %{_libdir}/gtk-4.0/%{bin_version}/immodules
|
|
gtk4-query-immodules-%{__isa_bits} --update-cache &>/dev/null || :
|
|
|
|
%transfiletriggerpostun -- %{_libdir}/gtk-4.0/%{bin_version}/immodules
|
|
gtk-query-immodules-4.0-%{__isa_bits} --update-cache &>/dev/null || :
|
|
|
|
%files -f gtk40.lang
|
|
%license COPYING
|
|
%doc AUTHORS NEWS README.md
|
|
%{_bindir}/gtk4-query-immodules*
|
|
%{_bindir}/gtk4-launch
|
|
%{_bindir}/gtk4-update-icon-cache
|
|
%{_libdir}/libgtk-4.so.*
|
|
%dir %{_libdir}/gtk-4.0
|
|
%dir %{_libdir}/gtk-4.0/%{bin_version}
|
|
%dir %{_datadir}/gtk-4.0
|
|
%{_libdir}/gtk-4.0/%{bin_version}/theming-engines
|
|
%dir %{_libdir}/gtk-4.0/%{bin_version}/immodules
|
|
%{_libdir}/gtk-4.0/%{bin_version}/printbackends
|
|
%{_libdir}/gtk-4.0/modules
|
|
%{_libdir}/gtk-4.0/immodules
|
|
%{_libdir}/girepository-1.0
|
|
%ghost %{_libdir}/gtk-4.0/%{bin_version}/immodules.cache
|
|
%{_mandir}/man1/gtk4-query-immodules*
|
|
%{_mandir}/man1/gtk4-launch.1*
|
|
%{_mandir}/man1/gtk4-update-icon-cache.1*
|
|
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml
|
|
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml
|
|
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml
|
|
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
|
|
%if 0%{?with_broadway}
|
|
%{_bindir}/gtk4-broadwayd
|
|
%{_mandir}/man1/gtk4-broadwayd.1*
|
|
%endif
|
|
|
|
%files immodules
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-cedilla.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-am-et.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-cyrillic-translit.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-inuktitut.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-ipa.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-multipress.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-thai.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-ti-er.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-ti-et.so
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-viqr.so
|
|
%if 0%{?with_broadway}
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-broadway.so
|
|
%endif
|
|
%config(noreplace) %{_sysconfdir}/gtk-4.0/im-multipress.conf
|
|
|
|
%files immodule-xim
|
|
%{_libdir}/gtk-4.0/%{bin_version}/immodules/im-xim.so
|
|
|
|
%files devel -f gtk40-properties.lang
|
|
%{_libdir}/lib*.so
|
|
%{_includedir}/*
|
|
%{_libdir}/pkgconfig/*
|
|
%{_bindir}/gtk4-builder-tool
|
|
%{_bindir}/gtk4-demo
|
|
%{_bindir}/gtk4-encode-symbolic-svg
|
|
%{_bindir}/gtk4-icon-browser
|
|
%{_bindir}/gtk4-query-settings
|
|
%{_datadir}/applications/gtk4-demo.desktop
|
|
%{_datadir}/applications/gtk4-icon-browser.desktop
|
|
%{_datadir}/applications/gtk4-widget-factory.desktop
|
|
%{_datadir}/icons/hicolor/*/apps/gtk4-demo.png
|
|
%{_datadir}/icons/hicolor/*/apps/gtk4-demo-symbolic.symbolic.png
|
|
%{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory.png
|
|
%{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory-symbolic.symbolic.png
|
|
%{_bindir}/gtk4-demo-application
|
|
%{_bindir}/gtk4-widget-factory
|
|
%{_datadir}/gettext/
|
|
%{_datadir}/gtk-4.0/gtkbuilder.rng
|
|
%{_datadir}/gir-1.0
|
|
%{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
|
|
%{_mandir}/man1/gtk4-builder-tool.1*
|
|
%{_mandir}/man1/gtk4-demo.1*
|
|
%{_mandir}/man1/gtk4-demo-application.1*
|
|
%{_mandir}/man1/gtk4-encode-symbolic-svg.1*
|
|
%{_mandir}/man1/gtk4-icon-browser.1*
|
|
%{_mandir}/man1/gtk4-query-settings.1*
|
|
%{_mandir}/man1/gtk4-widget-factory.1*
|
|
|
|
%files devel-docs
|
|
%{_datadir}/gtk-doc
|
|
|
|
%files tests
|
|
%dir %{_libexecdir}/installed-tests
|
|
%{_libexecdir}/installed-tests/gtk-4.0/
|
|
|
|
%changelog
|
|
* Wed Mar 07 2018 Adam Williamson <awilliam@redhat.com> - 3.92.1-3
|
|
- Rebuild to fix GCC 8 mis-compilation
|
|
See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
|
|
|
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.92.1-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
|
|
* Thu Nov 02 2017 Kalev Lember <klember@redhat.com> - 3.92.1-1
|
|
- Update to 3.92.1
|
|
- Enable installed tests
|
|
|
|
* Tue Aug 08 2017 Kalev Lember <klember@redhat.com> - 3.91.2-1
|
|
- Update to 3.91.2
|
|
|
|
* Thu Jul 20 2017 Kalev Lember <klember@redhat.com> - 3.91.1-1
|
|
- Update to 3.91.1
|
|
|
|
* Wed Jun 14 2017 Kalev Lember <klember@redhat.com> - 3.91.0-2
|
|
- Disable installed tests due to file conflicts between gtk3-tests and
|
|
gtk4-tests
|
|
|
|
* Wed Jun 14 2017 Kalev Lember <klember@redhat.com> - 3.91.0-1
|
|
- Initial Fedora packaging
|