diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..9ef0130 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + gtk4 + + diff --git a/baselibs.conf b/baselibs.conf index d48abc6..fbbfe45 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -9,7 +9,7 @@ ibus-gtk postun "%else" postun "%{_bindir}/gtk-query-immodules-2.0 --update-cache" postun "%endif" - supplements "packageand(ibus:gtk2-)" + supplements "(ibus and gtk2-)" ibus-gtk3 post "%if "%_lib" == "lib64"" post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" @@ -21,7 +21,7 @@ ibus-gtk3 postun "%else" postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" postun "%endif" - supplements "packageand(ibus:gtk3-)" + supplements "(ibus and gtk3-)" libibus-1_0-5 obsoletes "libibus2- < " diff --git a/ibus-python-install-dir.patch b/ibus-python-install-dir.patch deleted file mode 100644 index f06ac2f..0000000 --- a/ibus-python-install-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 9a502ec..42aaadf 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -420,7 +420,7 @@ if test x"$enable_python_library" = x"yes"; then - - PYTHON2_PREFIX=`$PYTHON2 -c "import sys; sys.stdout.write(sys.prefix)"` - PYTHON2_VERSION=`$PYTHON2 -c "import sys; sys.stdout.write(sys.version[[:3]])"` -- PYTHON2_LIBDIR="$PYTHON2_PREFIX/lib/python$PYTHON2_VERSION" -+ PYTHON2_LIBDIR="$libdir/python$PYTHON2_VERSION" - python2dir="$PYTHON2_LIBDIR/site-packages" - pkgpython2dir="$python2dir/ibus" - AC_SUBST(pkgpython2dir) diff --git a/ibus.changes b/ibus.changes index bb33463..9a26a21 100644 --- a/ibus.changes +++ b/ibus.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Wed Jan 5 11:56:17 UTC 2022 - Dominique Leuenberger + +- Do not introduce ibus-gtk4-32bit unless there will be demand for + it: drop its definition from baselibs.conf. + +------------------------------------------------------------------- +Tue Dec 21 14:51:48 UTC 2021 - Dominique Leuenberger + +- Fix name of gtk4 flavor generated packages (was ibus-gtk4-gtk4). + +------------------------------------------------------------------- +Thu Dec 16 11:25:07 UTC 2021 - Dominique Leuenberger + +- Split build of gtk4 module into an own flavor, allowing us to + break a build cycle. + +------------------------------------------------------------------- +Sun Oct 3 13:51:18 UTC 2021 - Fuminobu Takeyama + +- Enable GTK 4 IM Module for Leap 15.4 and Tumbleweed +- Remove ibus-python-install-dir.patch + * Not used for build anymore + ------------------------------------------------------------------- Wed Sep 8 13:04:55 UTC 2021 - Predrag Ivanović diff --git a/ibus.spec b/ibus.spec index 7e8d5e9..a71acb6 100644 --- a/ibus.spec +++ b/ibus.spec @@ -1,7 +1,7 @@ # -# spec file for package ibus +# spec file # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,22 +16,32 @@ # +%define flavor @BUILD_FLAVOR@%nil + +%define with_gtk4 0 %define with_wayland 1 %define with_emoji 1 + +%if "%{flavor}" == "gtk4" +%define with_gtk4 1 +%define nsuffix _%{flavor} +%endif + %if ! %{defined _distconfdir} %define _distconfdir %{_sysconfdir} %else %define use_usretc 1 %endif -Name: ibus +%define _name ibus +Name: %{_name}%{?nsuffix} Version: 1.5.25 Release: 0 Summary: The "Intelligent Input Bus" input method License: LGPL-2.1-or-later Group: System/I18n/Chinese URL: https://github.com/ibus/ -Source: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz +Source: https://github.com/ibus/ibus/releases/download/%{version}/%{_name}-%{version}.tar.gz Source2: README.SUSE Source3: xim.ibus.suse.template Source4: xim.d-ibus-121 @@ -39,8 +49,6 @@ Source7: macros.ibus Source10: ibus-autostart Source11: ibus-autostart.desktop Source99: baselibs.conf -# PATCH-FIX-OPENSUSE ibus-python-install-dir.patch ftake@geeko.jp -Patch0: ibus-python-install-dir.patch # PATFH-FIX-OPENSUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwai@suse.de # Fix lost XIM input after screenlock Patch4: ibus-xim-fix-re-focus-after-lock.patch @@ -67,6 +75,8 @@ Patch15: ibus-socket-name-compatibility.patch Patch16: ibus-missing-include.patch # PATCH-FIX-UPSTREAM ibus-fix-wrong-cursor-location.patch gh#ibus/ibus#2337 Patch17: ibus-fix-wrong-cursor-location.patch +BuildRequires: pkgconfig(iso-codes) +%if ! 0%{?with_gtk4} BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: gobject-introspection-devel >= 0.9.6 @@ -81,7 +91,6 @@ BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(dconf) >= 0.7.5 BuildRequires: pkgconfig(glib-2.0) >= 2.34.0 BuildRequires: pkgconfig(gtk+-2.0) -BuildRequires: pkgconfig(iso-codes) BuildRequires: pkgconfig(libnotify) >= 0.7 BuildRequires: pkgconfig(python3) # copy_deep method is supported since 0.31.1 @@ -92,7 +101,7 @@ BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(vapigen) BuildRequires: pkgconfig(xkbcommon) %if %{with_emoji} -Requires: %{name}-dict-emoji = %{version} +Requires: %{_name}-dict-emoji = %{version} %endif Requires: dconf Requires: iso-codes @@ -112,6 +121,7 @@ BuildRequires: pkgconfig(wayland-client) >= 1.2.0 BuildRequires: unicode-emoji BuildRequires: pkgconfig(cldr-emoji-annotation) %endif +%endif %description IBus, short for Intelligent Input Bus, is an input framework. IBus @@ -119,6 +129,7 @@ plugins then provide the particular logic how to translate keypresses to input characters and possibly show disambiguation windows around the text cursor. +%if ! 0%{?with_gtk4} %package -n libibus-1_0-5 Summary: IBus libraries Group: System/Libraries @@ -148,7 +159,7 @@ This package contains data of emoji dictionary for IBus and other applications %package gtk Summary: IBus input method support for gtk2 applications Group: System/I18n/Chinese -Requires: %{name} = %{version} +Requires: %{_name} = %{version} Supplements: (ibus and gtk2) %{gtk2_immodule_requires} @@ -159,7 +170,7 @@ This package contains ibus im module for use by gtk2. Summary: IBus input method support for gtk3 applications Group: System/I18n/Chinese BuildRequires: pkgconfig(gtk+-3.0) -Requires: %{name} = %{version} +Requires: %{_name} = %{version} Supplements: (ibus and gtk3) %{gtk3_immodule_requires} @@ -182,8 +193,24 @@ docs for ibus. %lang_package +%else + +%package -n %{_name}-gtk4 +Summary: IBus input method support for gtk4 applications +# on 15.4, both gtk4-devel and gtk4-devel-32bit provide pkgconfig(gtk4) +Group: System/I18n/Chinese +BuildRequires: gtk4-devel +BuildRequires: pkgconfig(dbus-1) +Requires: %{_name} = %{version} +Supplements: (ibus and gtk4) +%{gtk4_immodule_requires} + +%description -n %{_name}-gtk4 +This package contains ibus im module for use by gtk4. +%endif + %prep -%setup -q +%setup -q -n %{_name}-%{version} #%patch0 -p1 %patch4 -p1 %patch8 -p1 @@ -209,25 +236,34 @@ cp -r %{SOURCE11} . %build %configure --disable-static \ - --enable-gtk3 \ - --enable-vala \ + --libexecdir=%{_libdir}/ibus \ +%if %{with_wayland} + --enable-wayland \ +%endif %if %{with_emoji} --enable-emoji-dict \ %else --disable-emoji-dict \ %endif + --disable-python2 \ +%if ! 0%{?with_gtk4} + --enable-gtk3 \ + --enable-vala \ --enable-appindicator \ --with-python=python3 \ - --disable-python2 \ --enable-python-library \ --enable-introspection \ - --enable-dconf \ --enable-gtk-doc \ -%if %{with_wayland} - --enable-wayland \ -%endif --enable-surrounding-text \ - --libexecdir=%{_libdir}/ibus +%else + --disable-dconf \ + --disable-emoji-dict \ + --disable-unicode-dict \ + --disable-xim \ + --disable-gtk2 \ + --disable-gtk3 \ + --enable-gtk4 \ +%endif # non-parallel to have reproducible results in spite of non-deterministic build scripts https://github.com/ibus/ibus/issues/2272 make @@ -235,6 +271,10 @@ make %install %make_install +# Remove libtool archives +find %{buildroot} -type f -name "*.la" -delete -print + +%if ! 0%{?with_gtk4} # autostart mkdir -p %{buildroot}%{_distconfdir}/X11/xim.d/ install -m 644 xim.d-ibus-121 %{buildroot}%{_distconfdir}/X11/xim.d/ibus @@ -256,9 +296,6 @@ pushd %{buildroot}%{_distconfdir}/X11/xim.d/ done popd -# remove static libs -find %{buildroot} -type f -name "*.la" -delete -print - mkdir -p %{buildroot}%{_datadir}/pixmaps ln -sf %{_datadir}/icons/hicolor/48x48/apps/ibus-keyboard.png \ %{buildroot}%{_datadir}/pixmaps/ibus-keyboard.png @@ -301,6 +338,31 @@ dconf update %postun gtk3 %{gtk3_immodule_postun} +%else + +# cleanup stuff that is packaged as part of the main ibus flavor +rm -rf %{buildroot}%{_datadir} +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_bindir} +rm -rf %{buildroot}%{_libdir}/ibus +rm -rf %{buildroot}%{_libdir}/libibus* +rm -rf %{buildroot}%{_libdir}/pkgconfig + +%post -n %{_name}-gtk4 +%{gtk4_immodule_post} + +%postun -n %{_name}-gtk4 +#{gtk4_immodule_postun} there is a syntax error in the macro from gtk4-devel +if [ $1 -eq 0 ]; then + if [[ -x %{_bindir}/gio-querymodules-64 ]]; then + %{_bindir}/gio-querymodules-64 %{_libdir}/gtk-4.0/4.0.0/immodules + else + %{_bindir}/gio-querymodules %{_libdir}/gtk-4.0/4.0.0/immodules + fi +fi +%endif + +%if ! 0%{?with_gtk4} %files %doc AUTHORS README README.SUSE xim.ibus.suse.template %license COPYING @@ -386,4 +448,11 @@ dconf update %{_datadir}/vala/vapi/ibus-1.0.deps %{_datadir}/vala/vapi/ibus-1.0.vapi +%else + +%files -n %{_name}-gtk4 +%dir %{_libdir}/gtk-4.0/4.0.0/immodules +%{_libdir}/gtk-4.0/4.0.0/immodules/libim-ibus.so +%endif + %changelog