From 12ba8f1e1ca2f8249c81590b061be6e2127c600b6f389604b8b36e62999d6add Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 5 Dec 2016 13:00:26 +0000 Subject: [PATCH] Accepting request 443858 from GNOME:Next Let's try to get the GTK4 stack ready for TW before we rely on it OBS-URL: https://build.opensuse.org/request/show/443858 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk4?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + baselibs.conf | 38 +++ gtk+-3.89.1.tar.xz | 3 + gtk4-find-wayland.patch | 30 ++ gtk4.spec | 590 ++++++++++++++++++++++++++++++++++++++++ macros.gtk4 | 27 ++ settings.ini | 14 + 8 files changed, 726 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 gtk+-3.89.1.tar.xz create mode 100644 gtk4-find-wayland.patch create mode 100644 gtk4.spec create mode 100644 macros.gtk4 create mode 100644 settings.ini diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b69587a --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,38 @@ +gtk4-devel + requires -gtk4- + requires "libgtk-4-0- = " +gtk4-tools + +/usr/bin/gtk4-query-immodules-3.0 + post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-4.0/4.0.0; if test $? -eq 0; then %{_bindir}/gtk4-query-immodules --update-cache; fi; fi" +libgtk-4-0 + requires "gtk4-tools-" + provides "gtk4- = " + post "if test -f %{_bindir}/gtk4-query-immodules; then %{_bindir}/gtk4-query-immodules --update-cache; fi" +gtk4-immodule-amharic + requires "gtk4-" + post "%{_bindir}/gtk-query4-immodules --update-cache" + postun "%{_bindir}/gtk-query4-immodules --update-cache" +gtk4-immodule-inuktitut + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" +gtk4-immodule-multipress + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" +gtk4-immodule-thai + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" +gtk4-immodules-tigrigna + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" +gtk4-immodule-vietnamese + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" +gtk4-immodule-xim + requires "gtk4-" + post "%{_bindir}/gtk4-query-immodules --update-cache" + postun "%{_bindir}/gtk4-query-immodules --update-cache" diff --git a/gtk+-3.89.1.tar.xz b/gtk+-3.89.1.tar.xz new file mode 100644 index 0000000..f7ddf43 --- /dev/null +++ b/gtk+-3.89.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e2580268994b561ff9d66803cb8d299b25ea181243c7567d0a7104ddca7b706 +size 20440564 diff --git a/gtk4-find-wayland.patch b/gtk4-find-wayland.patch new file mode 100644 index 0000000..dcbaea5 --- /dev/null +++ b/gtk4-find-wayland.patch @@ -0,0 +1,30 @@ +From cae8fc74ac384efea24fa0625d6d5f76be612b99 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Thu, 24 Nov 2016 19:50:34 +0100 +Subject: [PATCH] Build: Add wayland to GSKs dependencies + +gskrenderer.c includes gdk/wayland/gdkwayland.h and as a consequence +we need to be able to locate wayland's headers in case they are not +in standard location. + +https://bugzilla.gnome.org/show_bug.cgi?id=775038 +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 83110e7..8ea6556 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1374,7 +1374,7 @@ GSK_EXTRA_LIBS= + GSK_EXTRA_CFLAGS= + + GSK_PACKAGES="gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version graphene-1.0 >= graphene_required_version" +-GSK_PRIVATE_PACKAGES="epoxy >= epoxy_required_version" ++GSK_PRIVATE_PACKAGES="epoxy >= epoxy_required_version $WAYLAND_PACKAGES" + + PKG_CHECK_MODULES(GSK_DEP, $PANGO_PACKAGES $GSK_PACKAGES $GSK_PRIVATE_PACKAGES) + GSK_DEP_LIBS="$GSK_EXTRA_LIBS $GSK_DEP_LIBS $MATH_LIB" +-- +2.10.2 + diff --git a/gtk4.spec b/gtk4.spec new file mode 100644 index 0000000..27fdf88 --- /dev/null +++ b/gtk4.spec @@ -0,0 +1,590 @@ +# +# spec file for package gtk4 +# +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2010 Dominique Leuenebrger, Amsterdam, Netherlands +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} == 1315 +%define build_wayland_backend 0 +%else +%define build_wayland_backend 1 +%endif + +# When updating the binary version, do not forget to also update baselibs.conf +%define gtk_binary_version 4.0.0 + +Name: gtk4 +%define _name gtk+ +Version: 3.89.1 +Release: 0 +Summary: The GTK+ toolkit library (version 4) +License: LGPL-2.1+ +Group: System/Libraries +Url: http://www.gtk.org/ +Source: http://download.gnome.org/sources/gtk+/3.89/%{_name}-%{version}.tar.xz +Source2: settings.ini +Source3: macros.gtk4 +Source99: baselibs.conf +# PATCH-FIX-UPSTREAM gtk4-find-wayland.patch bgo#775038 dimstar@opensuse.org -- Find wayland headers that are not installed in default locations +Patch0: gtk4-find-wayland.patch +BuildRequires: cups-devel >= 1.2 +BuildRequires: docbook-xsl-stylesheets +BuildRequires: fdupes +BuildRequires: gettext-tools >= 0.19.7 +# Needed for patch0 +BuildRequires: gnome-common +BuildRequires: hicolor-icon-theme +%if !0%{?is_opensuse} +BuildRequires: translation-update-upstream +%endif +BuildRequires: xsltproc +BuildRequires: pkgconfig(atk) >= 2.15.1 +BuildRequires: pkgconfig(atk-bridge-2.0) +BuildRequires: pkgconfig(cairo) >= 1.14.0 +BuildRequires: pkgconfig(colord) +BuildRequires: pkgconfig(epoxy) >= 1.0 +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.0 +BuildRequires: pkgconfig(glib-2.0) >= 2.49.1 +BuildRequires: pkgconfig(gmodule-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.39.0 +BuildRequires: pkgconfig(graphene-1.0) >= 1.5.1 +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(pango) >= 1.37.3 +BuildRequires: pkgconfig(pangoft2) +BuildRequires: pkgconfig(rest-0.7) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xi) +BuildRequires: pkgconfig(xinerama) +BuildRequires: pkgconfig(xrandr) +%if %{build_wayland_backend} +BuildRequires: pkgconfig(wayland-client) >= 1.9.90 +BuildRequires: pkgconfig(wayland-cursor) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-protocols) >= 1.7 +BuildRequires: pkgconfig(xkbcommon) +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%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 projects to complete application suites. + +%package -n libgtk-4-0 +Summary: The GTK+ toolkit library (version 4) +Group: System/Libraries +Requires(post): %{name}-tools +Requires: %{name}-data >= %{version} +# While hicolor is not a Requires strictly speaking, we put it as +# such instead of as a Recommends because many applications just +# assume it's there and we need to have a low-level package to +# bring it in. +Requires: hicolor-icon-theme +# Require Adwaita Icon Theme: It's GTKs icon set, that's guaranteed to be there +Requires: adwaita-icon-theme +# gtk+ can work without branding/translations. Built in defaults will be used then. +Recommends: %{name}-branding +# it's nice to have input modules for various locales installed by default +Recommends: %{name}-immodule-amharic = %{version} +Recommends: %{name}-immodule-inuktitut = %{version} +Recommends: %{name}-immodule-thai = %{version} +Recommends: %{name}-immodule-tigrigna = %{version} +Recommends: %{name}-immodule-vietnamese = %{version} +Recommends: %{name}-lang +Recommends: gvfs +# Provide %%{name} to make the lang and immodules packages installable +Provides: %{name} = %{version} + +%description -n libgtk-4-0 +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 projects to complete application suites. + +%package -n typelib-1_0-Gtk-4_0 +Summary: The GTK+ toolkit library (version 4) -- Introspection bindings +Group: System/Libraries + +%description -n typelib-1_0-Gtk-4_0 +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 projects to complete application suites. + +This package provides the GObject Introspection bindings for GTK+. + +%package immodule-amharic +Summary: The GTK+ toolkit library (version 4) -- Amharic Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:am) + +%description immodule-amharic +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 projects to complete application suites. + +This package provides an input method for Amharic. + +%package immodule-broadway +Summary: The GTK+ toolkit library (version 4) -- Broadway Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools + +%description immodule-broadway +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 projects to complete application suites. + +This package provides an input method for Broadway. + +%package immodule-inuktitut +Summary: The GTK+ toolkit library (version 4) -- Inuktitut Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:iu) + +%description immodule-inuktitut +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 projects to complete application suites. + +This package provides an input method for Inuktitut. + +%package immodule-multipress +Summary: The GTK+ toolkit library (version 4) -- Multipress Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools + +%description immodule-multipress +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 projects to complete application suites. + +This package provides an input method which allows text entry via the +multi-press method, as on a mobile phone. + +%package immodule-thai +Summary: The GTK+ toolkit library (version 4) -- Thai-Lao Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:lo) +Provides: locale(%{name}:th) + +%description immodule-thai +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 projects to complete application suites. + +This package provides an input method for Thai-Lao. + +%package immodules-tigrigna +Summary: The GTK+ toolkit library (version 4) -- Tigrigna Input Methods +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:ti) + +%description immodules-tigrigna +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 projects to complete application suites. + +This package provides two input methods for Tigrigna. + +%package immodule-vietnamese +Summary: The GTK+ toolkit library (version 4) -- Vietnamese Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:vi) + +%description immodule-vietnamese +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 projects to complete application suites. + +This package provides an input method for Vietnamese. + +%package immodule-xim +Summary: The GTK+ toolkit library (version 4) -- X Input Method +Group: System/Libraries +Requires: %{name} = %{version} +Requires(post): %{name}-tools +Requires(postun): %{name}-tools +Provides: locale(%{name}:ja) +Provides: locale(%{name}:ko) +Provides: locale(%{name}:th) +Provides: locale(%{name}:zh) + +%description immodule-xim +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 projects to complete application suites. + +This package provides an input method based on the X Input Method. + +%package tools +Summary: The GTK+ toolkit library (version 4) -- Tools +Group: System/Libraries + +%description tools +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 projects to complete application suites. + +%package data +Summary: The GTK+ toolkit library (version 4) -- Data Files +Group: System/Libraries +BuildArch: noarch +%glib2_gsettings_schema_requires + +%description data +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 projects to complete application suites. + +%package branding-upstream +Summary: The GTK+ toolkit library (version 4) -- Upstream theme configuration +Group: System/Libraries +Requires: libgtk-4-0 = %{version} +Provides: %{name}-branding = %{version} +Conflicts: otherproviders(%{name}-branding) +Supplements: packageand(libgtk-4-0:branding-upstream) +BuildArch: noarch +#BRAND: Provides /usr/share/gtk-4.0/settings.ini, to define default theme and icon +#BRAND: theme. +#BRAND: Do not forget to add proper Requires in branding package if changing +#BRAND: those. + +%description branding-upstream +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 projects to complete application suites. + +This package provides the upstream theme configuration for widgets and +icon themes. + +%package devel +Summary: The GTK+ toolkit library (version 4) -- Development Files +Group: Development/Libraries/X11 +Requires: libgtk-4-0 = %{version} +Requires: typelib-1_0-Gtk-4_0 = %{version} +%glib2_gsettings_schema_requires + +%description devel +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 projects to complete application suites. + +This package contains the development files for GTK+ 4.x. + +%lang_package +%prep +%setup -q -n %{_name}-%{version} +%patch0 -p1 + +%build +# Needed for patch0 +autoreconf -fiv +%configure \ + --disable-static \ + --enable-man \ + --enable-x11-backend \ + --enable-introspection \ + --enable-broadway-backend \ +%if %{build_wayland_backend} + --enable-wayland-backend \ + --enable-explicit-deps=yes \ +%endif + --enable-colord +%{__make} %{?_smp_mflags} + +%install +%makeinstall +find %{buildroot}%{_libdir} -name '*.la' -delete -print +# Do not install the exampleapp glib schema, as the app itself is noinst +rm %{buildroot}%{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml +%find_lang gtk40 +%find_lang gtk40-properties +install -m 644 -D %{S:2} %{buildroot}%{_datadir}/gtk-4.0/settings.ini +touch %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules.cache +# create modules directory that should have been created during the build +test ! -d %{buildroot}%{_libdir}/gtk-4.0/modules +mkdir %{buildroot}%{_libdir}/gtk-4.0/modules +# create theming-engines directory that should have been created during the build +test ! -d %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines +mkdir %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines +# Install rpm macros +mkdir -p %{buildroot}%{_sysconfdir}/rpm +cp %{S:3} %{buildroot}%{_sysconfdir}/rpm +%fdupes %{buildroot}%{_datadir} +%fdupes %{buildroot}%{_libdir} + +########################################################################### +# Note: when updating scriptlets, don't forget to also update baselibs.conf +########################################################################### + +# Convenient %%define for the scriplets +%define _gtk_query_immodules %{_bindir}/gtk4-query-immodules +%define _gtk_query_immodules_update_cache %{_gtk_query_immodules} --update-cache + +%post -n libgtk-4-0 +/sbin/ldconfig +%if 0 +# In case libgtk-4-0 gets installed before gtk4-tools, we don't want to fail. +# So we make the call to gtk4-query-immodules dependent on the existence of +# the binary. This is why we also have a %%post for gtk4-tools. +%endif +if test -f %{_gtk_query_immodules}; then + %{_gtk_query_immodules_update_cache} +fi + +%post immodule-amharic +%{_gtk_query_immodules_update_cache} + +%post immodule-broadway +%{_gtk_query_immodules_update_cache} + +%post immodule-inuktitut +%{_gtk_query_immodules_update_cache} + +%post immodule-multipress +%{_gtk_query_immodules_update_cache} + +%post immodule-thai +%{_gtk_query_immodules_update_cache} + +%post immodules-tigrigna +%{_gtk_query_immodules_update_cache} + +%post immodule-vietnamese +%{_gtk_query_immodules_update_cache} + +%post immodule-xim +%{_gtk_query_immodules_update_cache} + +%post tools +%if 0 +# If we install gtk4-tools for the first time, then we should run it in case +# libgtk-4-0 was installed first (ie, if +# %%{_libdir}/gtk-4.0/%%{gtk_binary_version} already exists) which means +# gtk4-query-immodules couldn't run there. +%endif +if [ $1 = 1 ]; then + test -d %{_libdir}/gtk-4.0/%{gtk_binary_version} + if test $? -eq 0; then + %{_gtk_query_immodules_update_cache} + fi +fi + +%post data +%glib2_gsettings_schema_post + +%post devel +%icon_theme_cache_post +%glib2_gsettings_schema_post + +%if 0 +# No need to call gtk-query-immodules-3.0 in postun: +# - if it's an upgrade, it will have been called in post +# - if it's an uninstall, we don't care about this anymore +%endif + +%postun -n libgtk-4-0 -p /sbin/ldconfig + +%postun immodule-amharic +%{_gtk_query_immodules_update_cache} + +%postun immodule-broadway +%{_gtk_query_immodules_update_cache} + +%postun immodule-inuktitut +%{_gtk_query_immodules_update_cache} + +%postun immodule-multipress +%{_gtk_query_immodules_update_cache} + +%postun immodule-thai +%{_gtk_query_immodules_update_cache} + +%postun immodules-tigrigna +%{_gtk_query_immodules_update_cache} + +%postun immodule-vietnamese +%{_gtk_query_immodules_update_cache} + +%postun immodule-xim +%{_gtk_query_immodules_update_cache} + +%postun data +%glib2_gsettings_schema_postun + +%postun devel +%glib2_gsettings_schema_postun +%icon_theme_cache_post + +%files -n libgtk-4-0 +%defattr(-, root, root) +%doc AUTHORS COPYING README NEWS +%dir %{_sysconfdir}/gtk-4.0 +%dir %{_libdir}/gtk-4.0 +%dir %{_libdir}/gtk-4.0/%{gtk_binary_version} +%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/ +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-cedilla.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-cyrillic-translit.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ipa.so +%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/ +%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cloudprint.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cups.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-file.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-lpr.so +%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines/ +%ghost %{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules.cache +%dir %{_libdir}/gtk-4.0/modules +%{_libdir}/libgtk-4.so.* + +%files -n typelib-1_0-Gtk-4_0 +%defattr(-,root,root) +%{_libdir}/girepository-1.0/Gdk-4.0.typelib +%{_libdir}/girepository-1.0/GdkX11-4.0.typelib +%{_libdir}/girepository-1.0/Gsk-4.0.typelib +%{_libdir}/girepository-1.0/Gtk-4.0.typelib + +%files immodule-amharic +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-am-et.so + +%files immodule-broadway +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-broadway.so + +%files immodule-inuktitut +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-inuktitut.so + +%files immodule-multipress +%defattr(-,root,root) +%doc modules/input/README.multipress +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-multipress.so +%config %{_sysconfdir}/gtk-4.0/im-multipress.conf + +%files immodule-thai +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-thai.so + +%files immodules-tigrigna +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ti-er.so +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ti-et.so + +%files immodule-vietnamese +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-viqr.so + +%files immodule-xim +%defattr(-,root,root) +%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-xim.so + +%files tools +%defattr(-,root,root) +%{_bindir}/gtk4-broadwayd +%{_bindir}/gtk4-icon-browser +%{_bindir}/gtk4-builder-tool +%{_bindir}/gtk4-encode-symbolic-svg +%{_bindir}/gtk4-launch +%{_bindir}/gtk4-query-immodules +%{_bindir}/gtk4-query-settings +%{_bindir}/gtk4-update-icon-cache +%{_datadir}/applications/gtk4-icon-browser.desktop +%{_mandir}/man1/gtk4-broadwayd.1%{?ext_man} +%{_mandir}/man1/gtk4-icon-browser.1%{ext_man} +%{_mandir}/man1/gtk4-builder-tool.1%{?ext_man} +%{_mandir}/man1/gtk4-encode-symbolic-svg.1%{?ext_man} +%{_mandir}/man1/gtk4-launch.1%{?ext_man} +%{_mandir}/man1/gtk4-query-immodules.1%{?ext_man} +%{_mandir}/man1/gtk4-query-settings.1%{?ext_man} +%{_mandir}/man1/gtk4-update-icon-cache.1%{?ext_man} + +%files data +%defattr(-,root,root) +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml +%{_datadir}/themes/Default/ +%{_datadir}/themes/Emacs/ + +%files branding-upstream +%defattr(-,root,root) +%{_datadir}/gtk-4.0/settings.ini + +%files lang -f gtk40.lang -f gtk40-properties.lang + +%files devel +%defattr(-,root,root) +%doc ChangeLog +%doc %{_datadir}/gtk-doc/html/gdk4/ +%doc %{_datadir}/gtk-doc/html/gsk4/ +%doc %{_datadir}/gtk-doc/html/gtk4/ +%{_bindir}/gtk4-demo +%{_bindir}/gtk4-demo-application +%{_bindir}/gtk4-widget-factory +%{_mandir}/man1/gtk4-demo.1%{?ext_man} +%{_mandir}/man1/gtk4-demo-application.1%{?ext_man} +%{_mandir}/man1/gtk4-widget-factory.1%{?ext_man} +%{_datadir}/applications/gtk4-demo.desktop +%{_datadir}/applications/gtk4-widget-factory.desktop +%{_datadir}/gir-1.0/*.gir +%{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml +%dir %{_datadir}/gtk-4.0 +%{_datadir}/gtk-4.0/gtkbuilder.rng +%{_datadir}/icons/hicolor/*/apps/gtk4-demo.png +%{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory.png +%{_datadir}/icons/hicolor/*/apps/gtk4-demo-symbolic.symbolic.png +%{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory-symbolic.symbolic.png +%{_includedir}/gtk-4.0/ +%{_libdir}/pkgconfig/gail-4.0.pc +%{_libdir}/pkgconfig/gtk+-4.0.pc +%{_libdir}/pkgconfig/gtk+-broadway-4.0.pc +%if %{build_wayland_backend} +%{_libdir}/pkgconfig/gtk+-wayland-4.0.pc +%endif +%{_libdir}/pkgconfig/gtk+-unix-print-4.0.pc +%{_libdir}/pkgconfig/gtk+-x11-4.0.pc +%{_libdir}/libgtk-4.so +%{_sysconfdir}/rpm/macros.gtk4 +%dir %{_datadir}/gettext/ +%dir %{_datadir}/gettext/its/ +%{_datadir}/gettext/its/gtkbuilder.its +%{_datadir}/gettext/its/gtkbuilder.loc + +%changelog diff --git a/macros.gtk4 b/macros.gtk4 new file mode 100644 index 0000000..c647a59 --- /dev/null +++ b/macros.gtk4 @@ -0,0 +1,27 @@ +# RPM macros for packages installing a GTK+ IM module +# +### +# +# When a package installs a GTK+ IM module, it should use all +# three macros: +# +# - %gtk4_immodule_requires in the preamble +# - %gtk4_immodule_post in %post +# - %gtk4_immodule_postun in %postun +# +### + +%gtk4_immodule_requires \ +Requires(post): gtk4-tools \ +Requires(postun): gtk4-tools + +# On install, update the cache +%gtk4_immodule_post \ + %{_bindir}/gtk4-query-immodules --update-cache \ + +# On uninstall, update the cache. Note: we ignore upgrades (already +# handled in %post of the new package). +%gtk3_immodule_postun \ +if [ $1 -eq 0 ]; then \ + %{_bindir}/gtk4-query-immodules --update-cache \ +fi diff --git a/settings.ini b/settings.ini new file mode 100644 index 0000000..74205c2 --- /dev/null +++ b/settings.ini @@ -0,0 +1,14 @@ +# +# settings.ini file allows you to define system wide defaults for +# all GTK+ applications. This file is branding specific. +# +# For complete list of available settings see the Settings chapter +# in the GTK+ documentation. +# +# You most probably want to change the following settings. + +[Settings] +#gtk-theme-name = +#gtk-icon-theme-name = +#gtk-fallback-icon-theme = Adwaita +#gtk-entry-password-hint-timeout = 600