diff --git a/baselibs.conf b/baselibs.conf index b7dc674..6308249 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,6 +1,99 @@ gtk3-tools +/usr/bin/gtk-query-immodules-3.0(-64)? - post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/3.0.0; if test $? -eq 0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi; fi" + post "%if "%_lib" == "lib64"" + post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/3.0.0; if test $? -eq 0; then %{_bindir}/gtk-query-immodules-3.0-64 --update-cache; fi; fi" + post "%else" + post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/3.0.0; if test $? -eq 0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi; fi" + post "%endif" libgtk-3_0-0 + requires "gtk3-tools-" provides "gtk3- = " - post "if test -f %{_bindir}/gtk-query-immodules-3.0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi" + post "%if "%_lib" == "lib64"" + post "if test -f %{_bindir}/gtk-query-immodules-3.0-64; then %{_bindir}/gtk-query-immodules-3.0-64 --update-cache; fi" + post "%else" + post "if test -f %{_bindir}/gtk-query-immodules-3.0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi" + post "%endif" +gtk3-immodule-amharic + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodule-inuktitut + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodule-multipress + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodule-thai + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodules-tigrigna + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodule-vietnamese + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" +gtk3-immodule-xim + requires "gtk3-" + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" diff --git a/gtk3.changes b/gtk3.changes index 005e6b7..91b2374 100644 --- a/gtk3.changes +++ b/gtk3.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Mon Oct 11 13:44:31 CEST 2010 - vuntz@opensuse.org + +- Split input methods in subpackages: + + Create gtk3-immodule-amharic, gtk3-immodule-inuktitut, + gtk3-immodule-multipress, gtk3-immodule-thai, + gtk3-immodules-tigrigna, gtk3-immodule-vietnamese, + gtk3-immodule-xim subpackages. For the modules that are useful + for specific locales, we use a locale(gtk3:$locale) Provides to + make those packages installed by default when the locale is + used. + + Add Recommends to libgtk-3_0-0 for gtk3-immodule-amharic, + gtk3-immodule-inuktitut, gtk3-immodule-thai, + gtk3-immodules-tigrigna, gtk3-immodule-vietnamese. This makes + sense since this helps people discover them without having to + look for them. + + gtk3-immodule-multipress is not useful by default. + + gtk3-immodule-xim is creating performance issues, so we don't + want it by default. + + Fix bnc#629995. +- Make the gtk3-data package own the directories of the themes, + instead of just the files. +- Move the ferret module to the devel package: it's useful for + tests, but not in general. +- Update the %gtk3_immodule_post and %gtk3_immodule_postun macros + to use --update-cache instead of redirecting the output to a + file. That's more solid. +- Remove gtk3-tools Requires(postun) in libgtk-3_0-0: it's not + needed. +- Do not version the Recommends on the lang package. +- Update baselibs.conf to remove assumption in the scriptlets of + the generated packages that they are 32bit packages. +- Use in baselibs.conf since we use full paths there, and + this is needed for x86 packages that put files in + /emul/ia32-linux. + ------------------------------------------------------------------- Tue Oct 5 09:49:22 CEST 2010 - vuntz@opensuse.org diff --git a/gtk3.spec b/gtk3.spec index 83bbb39..ad242f9 100644 --- a/gtk3.spec +++ b/gtk3.spec @@ -17,12 +17,15 @@ # +# 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: 2.91.0 Release: 1 # FIXME: 2.90.5 doesn't compile with parallel build (bgo#624304). Check if this is still true for later versions. +# FIXME: once https://bugzilla.gnome.org/show_bug.cgi?id=631872 is fixed, distribute README.multipress License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) Url: http://www.gtk.org/ @@ -70,14 +73,19 @@ ranging from small one-off projects to complete application suites. License: LGPLv2.1+ Summary: The GTK+ toolkit library (version 3) Group: System/Libraries -# Provide %{name} to make the lang package installable +# Provide %{name} to make the lang and immodules packages installable Provides: %{name} = %{version} Requires(post): %{name}-tools -Requires(postun): %{name}-tools # gtk+ can work without branding/data/translations. Built in defaults will be used then. Recommends: %{name}-branding Recommends: %{name}-data = %{version} -Recommends: %{name}-lang = %{version} +# 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 Recommends: hicolor-icon-theme @@ -86,6 +94,122 @@ 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 @@ -164,7 +288,7 @@ find %{buildroot}%{_libdir} -name '*.la' -delete -print %find_lang gtk30 %find_lang gtk30-properties install -m 644 -D %{S:2} %{buildroot}%{_sysconfdir}/gtk-3.0/gtkrc -touch %{buildroot}%{_libdir}/gtk-3.0/3.0.0/immodules.cache +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 @@ -178,35 +302,59 @@ cp %{S:3} %{buildroot}%{_sysconfdir}/rpm %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 +%define _gtk_query_immodules %{_bindir}/gtk-query-immodules-3.0-64 %else -%define GTK_QUERY_IMMODULES %{_bindir}/gtk-query-immodules-3.0 +%define _gtk_query_immodules %{_bindir}/gtk-query-immodules-3.0 %endif +%define _gtk_query_immodules_update_cache %{_gtk_query_immodules} --update-cache -# In case libgtk-3_0-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. +# In case libgtk-3_0-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. %post -n libgtk-3_0-0 /sbin/ldconfig -if test -f %{GTK_QUERY_IMMODULES}; then - %{GTK_QUERY_IMMODULES} --update-cache +if test -f %{_gtk_query_immodules}; then + %{_gtk_query_immodules_update_cache} fi -# If we install gtk3-tools for the first time, -# then we should run it in case libgtk-3_0-0 was installed -# first (ie, if %{_libdir}/gtk-3.0/3.0.0 already exists) which means +%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} + +# If we install gtk3-tools for the first time, then we should run it in case +# libgtk-3_0-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. %post tools if [ $1 == 1 ]; then - test -d %{_libdir}/gtk-3.0/3.0.0 + test -d %{_libdir}/gtk-3.0/%{gtk_binary_version} if test $? -eq 0; then - %{GTK_QUERY_IMMODULES} --update-cache + %{_gtk_query_immodules_update_cache} fi fi @@ -216,24 +364,87 @@ fi %postun -n libgtk-3_0-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} + %files -n libgtk-3_0-0 %defattr(-, root, root) %doc AUTHORS COPYING README NEWS ChangeLog %if "%_lib" == "lib64" %doc README.SUSE %endif -%config %{_sysconfdir}/gtk-3.0/im-multipress.conf +%dir %{_sysconfdir}/gtk-3.0 %dir %{_libdir}/gtk-3.0 -%dir %{_libdir}/gtk-3.0/3.0.0 -%{_libdir}/gtk-3.0/modules/ -%{_libdir}/gtk-3.0/3.0.0/engines/ -%{_libdir}/gtk-3.0/3.0.0/immodules/ -%{_libdir}/gtk-3.0/3.0.0/printbackends/ -%ghost %{_libdir}/gtk-3.0/3.0.0/immodules.cache +%dir %{_libdir}/gtk-3.0/%{gtk_binary_version} +%dir %{_libdir}/gtk-3.0/%{gtk_binary_version}/engines +%{_libdir}/gtk-3.0/%{gtk_binary_version}/engines/libpixmap.so +%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 +%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.0.so.* %{_libdir}/libgdk-x11-3.0.so.* %{_libdir}/libgtk-x11-3.0.so.* -%{_libdir}/girepository-1.0/*.typelib +%{_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) +# Not in tarball +#%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) @@ -244,9 +455,9 @@ fi %files data %defattr(-,root,root) -%{_datadir}/themes/Default/gtk-3.0-key/gtkrc -%{_datadir}/themes/Emacs/gtk-3.0-key/gtkrc -%{_datadir}/themes/Raleigh/gtk-3.0/gtkrc +%{_datadir}/themes/Default/ +%{_datadir}/themes/Emacs/ +%{_datadir}/themes/Raleigh/ %files branding-upstream %defattr(-,root,root) @@ -256,17 +467,20 @@ fi %files devel %defattr(-,root,root) -%doc %{_datadir}/gtk-doc/html/* +%doc %{_datadir}/gtk-doc/html/gail-libgail-util3/ +%doc %{_datadir}/gtk-doc/html/gdk3/ +%doc %{_datadir}/gtk-doc/html/gtk3/ %{_bindir}/gtk3-demo %{_bindir}/gtk-builder-convert-3.0 %{_mandir}/man1/gtk-builder-convert-3.0.1* %{_datadir}/aclocal/gtk-3.0.m4 +%{_datadir}/gir-1.0/*.gir %dir %{_datadir}/gtk-3.0 %{_datadir}/gtk-3.0/demo/ -%{_datadir}/gir-1.0/*.gir %{_includedir}/gail-3.0/ %{_includedir}/gtk-3.0/ %{_libdir}/gtk-3.0/include/ +%{_libdir}/gtk-3.0/modules/libferret.so %{_libdir}/pkgconfig/gail-3.0.pc %{_libdir}/pkgconfig/gdk-3.0.pc %{_libdir}/pkgconfig/gdk-x11-3.0.pc diff --git a/macros.gtk3 b/macros.gtk3 index 3e0938b..3d4a650 100644 --- a/macros.gtk3 +++ b/macros.gtk3 @@ -11,25 +11,25 @@ # ### -%gtk3_immodule_requires \ -Requires(post): gtk3-tools \ +%gtk3_immodule_requires \ +Requires(post): gtk3-tools \ Requires(postun): gtk3-tools # On install, update the cache -%gtk3_immodule_post \ -%if "%_lib" == "lib64" \ - %{_bindir}/gtk-query-immodules-3.0-64 > {_sysconfdir}/gtk.immodules \ -%else \ - %{_bindir}/gtk-query-immodules-3.0 > {_sysconfdir}/gtk64.immodules \ +%gtk3_immodule_post \ +%if "%_lib" == "lib64" \ + %{_bindir}/gtk-query-immodules-3.0-64 --update-cache \ +%else \ + %{_bindir}/gtk-query-immodules-3.0 --update-cache \ %endif # 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 \ - %if "%_lib" == "lib64" \ - %{_bindir}/gtk-query-immodules-3.0-64 > {_sysconfdir}/gtk.immodules \ - %else \ - %{_bindir}/gtk-query-immodules-3.0 > {_sysconfdir}/gtk64.immodules \ - %endif \ +%gtk3_immodule_postun \ +if [ $1 -eq 0 ]; then \ + %if "%_lib" == "lib64" \ + %{_bindir}/gtk-query-immodules-3.0-64 --update-cache \ + %else \ + %{_bindir}/gtk-query-immodules-3.0 --update-cache \ + %endif \ fi