diff --git a/.gitignore b/.gitignore index e69de29..1ec6eda 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/gtk+-3.91.2.tar.xz diff --git a/gtk4.spec b/gtk4.spec new file mode 100644 index 0000000..a961a48 --- /dev/null +++ b/gtk4.spec @@ -0,0 +1,332 @@ +%if 0%{?fedora} +%global with_wayland 1 +%global with_broadway 1 +%endif + +# File conflicts between gtk3-tests and gtk4-tests +%global build_installed_tests 0 + +%global glib2_version 2.53.0 +%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.91.2 +Release: 1%{?dist} +Summary: GTK+ graphical user interface library + +License: LGPLv2+ +URL: http://www.gtk.org +Source0: http://download.gnome.org/sources/gtk+/3.91/gtk+-%{version}.tar.xz + +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: gettext +BuildRequires: gtk-doc +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. + +%if 0%{?build_installed_tests} +%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. +%endif + +%prep +%setup -q -n gtk+-%{version} + +%build +export CFLAGS='-fno-strict-aliasing %optflags' +%configure \ + --enable-xkb \ + --enable-xinerama \ + --enable-xrandr \ + --enable-xfixes \ + --enable-xcomposite \ + --enable-xdamage \ + --enable-x11-backend \ +%if 0%{?with_wayland} + --enable-wayland-backend \ +%endif +%if 0%{?with_broadway} + --enable-broadway-backend \ +%endif + --enable-colord \ +%if 0%{?build_installed_tests} + --enable-installed-tests +%else + --disable-installed-tests +%endif + +# fight unused direct deps +sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + +make %{?_smp_mflags} + +%install +%make_install RUN_QUERY_IMMODULES_TEST=false + +%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 + +# Remove unpackaged files +find $RPM_BUILD_ROOT -name '*.la' -delete + +%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 +%{_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 +%{_datadir}/themes/Default +%{_datadir}/themes/Emacs +%{_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.FileChooser.gschema.xml +%{_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.exampleapp.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 + +%if 0%{?build_installed_tests} +%files tests +%{_libexecdir}/installed-tests/gtk+ +%{_datadir}/installed-tests +%endif + +%changelog +* Tue Aug 08 2017 Kalev Lember - 3.91.2-1 +- Update to 3.91.2 + +* Thu Jul 20 2017 Kalev Lember - 3.91.1-1 +- Update to 3.91.1 + +* Wed Jun 14 2017 Kalev Lember - 3.91.0-2 +- Disable installed tests due to file conflicts between gtk3-tests and + gtk4-tests + +* Wed Jun 14 2017 Kalev Lember - 3.91.0-1 +- Initial Fedora packaging diff --git a/sources b/sources index e69de29..4d6d310 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (gtk+-3.91.2.tar.xz) = e89bedd1c6652af7756a398582a94abc6640504b0d97a5084841d582a05ae4ec7c2b2f0121f109d7a72e270d4786de080c3d36d5086e51d0e359858ae8a74a4f