# # spec file for package gtk3 # # Copyright (c) 2011 SUSE LINUX Products 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/ # %define build_broadway_backend 1 # When updating the binary version, do not forget to also update baselibs.conf %define gtk_binary_version 3.0.0 Name: gtk3 %define _name gtk+ Version: 3.1.8 Release: 3 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) Url: http://www.gtk.org/ Group: System/Libraries Source: http://download.gnome.org/sources/gtk+/3.1/%{_name}-%{version}.tar.bz2 Source1: README.SUSE Source2: settings.ini Source3: macros.gtk3 Source99: baselibs.conf # PATCH-FIX-OPENSUSE gtk3-GTK_PATH64.patch sbrabec@novell.com - 64-bit dual install. Use GTK_PATH64 environment variable instead of GTK_PATH Patch0: gtk3-GTK_PATH64.patch # PATCH-FIX-OPENSUSE gtk3-path-local.patch Search in /usr/local/%{_lib} by default. bnc369696 bgo534474 Patch1: gtk3-path-local.patch # PATCH-FEATURE-UPSTREAM gtk3-bnc129753-localize-font-style-name.patch bnc129753 bgo319484 mfabian@novell.com - Translate the font styles in the GUI Patch2: gtk3-bnc129753-localize-font-style-name.patch # PATCH-FIX-UPSTREAM gtk3-bnc130159-bgo319483-async-font-selection.patch bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages Patch3: gtk3-bnc130159-bgo319483-async-font-selection.patch # PATCH-FIX-UPSTREAM gtk3-fix-crash-recent-glib.patch vuntz@opensuse.org -- Fix crash with glib 2.29.12, taken from git Patch4: gtk3-fix-crash-recent-glib.patch BuildRequires: fdupes BuildRequires: cups-devel BuildRequires: gnome-patch-translation BuildRequires: pkgconfig(atk) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(colord) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.21.0 BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(pango) 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) 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-3-0 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) Group: System/Libraries Requires(post): %{name}-tools # 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: %{name}-data = %{version} Requires: hicolor-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} # Before 3.0, the package was actually libgtk-3_0-0 and files might # conflict Provides: libgtk-3_0-0 = %{version} Obsoletes: libgtk-3_0-0 < %{version} %description -n libgtk-3-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 immodule-amharic License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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-inuktitut License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- X Input Method Group: System/Libraries Requires: %{name} = %{version} Requires(post): %{name}-tools Requires(postun): %{name}-tools Provides: locale(%{name}:ko) Provides: locale(%{name}:ja) 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- Tools Group: System/Libraries Requires(post): update-alternatives Requires(postun): update-alternatives %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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- 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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- Upstream theme configuration Group: System/Libraries Requires: libgtk-3-0 = %{version} Provides: %{name}-branding = %{version} Conflicts: otherproviders(%{name}-branding) Supplements: packageand(%{name}:branding-upstream) BuildArch: noarch #BRAND: Provides /etc/gtk-3.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 License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) -- Development Files Group: Development/Libraries/X11 Requires: libgtk-3-0 = %{version} %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+ 3.x. %lang_package %prep %setup -q -n %{_name}-%{version} gnome-patch-translation-prepare %if "%_lib" == "lib64" cp -a %{S:1} . %patch0 -p1 %endif %patch1 -p0 %patch2 -p1 %patch3 -p1 %patch4 -p1 gnome-patch-translation-update %build %configure \ --disable-static \ --enable-man \ --enable-x11-backend \ %if %{build_broadway_backend} --enable-broadway-backend \ %endif --enable-introspection %{__make} V=1 %{?_smp_mflags} %install %makeinstall find %{buildroot}%{_libdir} -name '*.la' -delete -print %if 0%{?suse_version} <= 1130 %{__rm} %{buildroot}%{_datadir}/locale/kg/LC_MESSAGES/* %endif %find_lang gtk30 %find_lang gtk30-properties install -m 644 -D %{S:2} %{buildroot}%{_sysconfdir}/gtk-3.0/settings.ini touch %{buildroot}%{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules.cache %if "%_lib" == "lib64" mv %{buildroot}%{_bindir}/gtk-query-immodules-3.0 %{buildroot}%{_bindir}/gtk-query-immodules-3.0-64 mv %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0.1 %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0-64.1 %endif # create theming-engines directory that should have been created during the build test ! -d %{buildroot}%{_libdir}/gtk-3.0/%{gtk_binary_version}/theming-engines mkdir %{buildroot}%{_libdir}/gtk-3.0/%{gtk_binary_version}/theming-engines # Alternatives for gtk-update-icon-cache and gtk-builder-convert mv %{buildroot}%{_bindir}/gtk-update-icon-cache %{buildroot}%{_bindir}/gtk-update-icon-cache-3.0 mv %{buildroot}%{_mandir}/man1/gtk-update-icon-cache.1 %{buildroot}%{_mandir}/man1/gtk-update-icon-cache-3.0.1 touch %{buildroot}%{_bindir}/gtk-update-icon-cache touch %{buildroot}%{_mandir}/man1/gtk-update-icon-cache.1 chmod a+x %{buildroot}%{_bindir}/gtk-update-icon-cache # Install rpm macros mkdir -p %{buildroot}%{_sysconfdir}/rpm cp %{S:3} %{buildroot}%{_sysconfdir}/rpm %fdupes %{buildroot}%{_datadir} %fdupes %{buildroot}%{_libdir} %clean rm -rf %{buildroot} ########################################################################### # Note: when updating scriptlets, don't forget to also update baselibs.conf ########################################################################### # Convenient %define for the scriplets %if "%_lib" == "lib64" %define _gtk_query_immodules %{_bindir}/gtk-query-immodules-3.0-64 %else %define _gtk_query_immodules %{_bindir}/gtk-query-immodules-3.0 %endif %define _gtk_query_immodules_update_cache %{_gtk_query_immodules} --update-cache %post -n libgtk-3-0 /sbin/ldconfig %if 0 # In case libgtk-3-0 gets installed before gtk3-tools, we don't want to fail. # So we make the call to gtk-query-immodules-3.0 dependent on the existence of # the binary. This is why we also have a %post for gtk3-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-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 gtk3-tools for the first time, then we should run it in case # libgtk-3-0 was installed first (ie, if # %{_libdir}/gtk-3.0/%{gtk_binary_version} already exists) which means # gtk-query-immodules-3.0 couldn't run there. %endif if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/%{gtk_binary_version} if test $? -eq 0; then %{_gtk_query_immodules_update_cache} fi fi %if 0 # If the gtk-update-icon-cache group is in automatic mode, then this will also # switch all symlinks automatically %endif update-alternatives --install %{_bindir}/gtk-update-icon-cache gtk-update-icon-cache %{_bindir}/gtk-update-icon-cache-3.0 3 \ --slave %{_mandir}/man1/gtk-update-icon-cache.1.gz gtk-update-icon-cache.1.gz %{_mandir}/man1/gtk-update-icon-cache-3.0.1.gz %post data %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-3-0 -p /sbin/ldconfig %postun immodule-amharic %{_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 tools %if 0 # Note: we don't use "$1 -eq 0", to avoid issues if the package gets renamed %endif if [ ! -f %{_bindir}/gtk-update-icon-cache-3.0 ]; then update-alternatives --remove gtk-update-icon-cache %{_bindir}/gtk-update-icon-cache-3.0 fi %files -n libgtk-3-0 %defattr(-, root, root) %doc AUTHORS COPYING README NEWS ChangeLog %if "%_lib" == "lib64" %doc README.SUSE %endif %dir %{_sysconfdir}/gtk-3.0 %dir %{_libdir}/gtk-3.0 %dir %{_libdir}/gtk-3.0/%{gtk_binary_version} %dir %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/ %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-cedilla.so %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-cyrillic-translit.so %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-ipa.so %dir %{_libdir}/gtk-3.0/%{gtk_binary_version}/printbackends/ %{_libdir}/gtk-3.0/%{gtk_binary_version}/printbackends/libprintbackend-cups.so %{_libdir}/gtk-3.0/%{gtk_binary_version}/printbackends/libprintbackend-file.so %{_libdir}/gtk-3.0/%{gtk_binary_version}/printbackends/libprintbackend-lpr.so %dir %{_libdir}/gtk-3.0/%{gtk_binary_version}/theming-engines/ %ghost %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules.cache %dir %{_libdir}/gtk-3.0/modules %{_libdir}/gtk-3.0/modules/libgail.so %{_libdir}/libgailutil-3.so.* %{_libdir}/libgdk-3.so.* %{_libdir}/libgtk-3.so.* %{_libdir}/girepository-1.0/Gdk-3.0.typelib %{_libdir}/girepository-1.0/GdkX11-3.0.typelib %{_libdir}/girepository-1.0/Gtk-3.0.typelib %files immodule-amharic %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-am-et.so %files immodule-inuktitut %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-inuktitut.so %files immodule-multipress %defattr(-,root,root) %doc modules/input/README.multipress %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-multipress.so %config %{_sysconfdir}/gtk-3.0/im-multipress.conf %files immodule-thai %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-thai.so %files immodules-tigrigna %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-ti-er.so %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-ti-et.so %files immodule-vietnamese %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-viqr.so %files immodule-xim %defattr(-,root,root) %{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-xim.so %files tools %defattr(-,root,root) %{_bindir}/gtk-query-immodules-3.0* %{_bindir}/gtk-update-icon-cache-3.0 %ghost %{_bindir}/gtk-update-icon-cache %{_mandir}/man1/gtk-query-immodules-3.0*.1* %{_mandir}/man1/gtk-update-icon-cache-3.0.1* %ghost %{_mandir}/man1/gtk-update-icon-cache.1* %files data %defattr(-,root,root) %{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml %{_datadir}/themes/Default/ %{_datadir}/themes/Emacs/ %{_datadir}/themes/Raleigh/ %files branding-upstream %defattr(-,root,root) %config %{_sysconfdir}/gtk-3.0/settings.ini %files lang -f gtk30.lang -f gtk30-properties.lang %files devel %defattr(-,root,root) %doc %{_datadir}/gtk-doc/html/gail-libgail-util3/ %doc %{_datadir}/gtk-doc/html/gdk3/ %doc %{_datadir}/gtk-doc/html/gtk3/ %{_bindir}/gtk3-demo %{_datadir}/aclocal/gtk-3.0.m4 %{_datadir}/gir-1.0/*.gir %dir %{_datadir}/gtk-3.0 %{_datadir}/gtk-3.0/demo/ %{_includedir}/gail-3.0/ %{_includedir}/gtk-3.0/ %{_libdir}/gtk-3.0/modules/libferret.so %{_libdir}/pkgconfig/gail-3.0.pc %{_libdir}/pkgconfig/gdk-3.0.pc %if %{build_broadway_backend} %{_libdir}/pkgconfig/gdk-broadway-3.0.pc %endif %{_libdir}/pkgconfig/gdk-x11-3.0.pc %{_libdir}/pkgconfig/gtk+-3.0.pc %if %{build_broadway_backend} %{_libdir}/pkgconfig/gtk+-broadway-3.0.pc %endif %{_libdir}/pkgconfig/gtk+-unix-print-3.0.pc %{_libdir}/pkgconfig/gtk+-x11-3.0.pc %{_libdir}/libgailutil-3.so %{_libdir}/libgdk-3.so %{_libdir}/libgtk-3.so %{_sysconfdir}/rpm/macros.gtk3 %changelog