# # spec file for package fcitx # # Copyright (c) 2023 SUSE LLC # # 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 https://bugs.opensuse.org/ # %if ! %{defined _distconfdir} %define _distconfdir %{_sysconfdir} %endif Name: fcitx Version: 4.2.9.9 Release: 0 Summary: Flexible Context-aware Input Tool with eXtension License: GPL-2.0-or-later Group: System/I18n/Chinese URL: https://github.com/fcitx/fcitx Source: https://download.fcitx-im.org/fcitx/%{name}-%{version}_dict.tar.xz Source1: xim.d-fcitx Source2: fcitx-README.suse Source3: xim.fcitx.suse.template Source8: openSUSE-themes.tar.gz Source9: macros.%{name} Source10: %{name}.keyring Source99: baselibs.conf Source100: https://download.fcitx-im.org/fcitx/%{name}-%{version}_dict.tar.xz.sig # PATCH-FIX-OPENSUSE fcitx-autostart-check-INPUT_METHOD.patch boo#947576 Patch2: fcitx-autostart-check-INPUT_METHOD.patch # PATCH-FIX-OPENSUSE downgrade cmake requirement to 3.1 again Patch3: fcitx-cmake-3.1.patch Patch4: remote-module-use-safe-directory-for-socket-API-sock.patch BuildRequires: cairo-devel BuildRequires: cmake BuildRequires: dbus-1-devel BuildRequires: dbus-1-glib-devel BuildRequires: enchant-devel BuildRequires: extra-cmake-modules BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gobject-introspection-devel BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: hicolor-icon-theme BuildRequires: iso-codes-devel BuildRequires: libicu-devel BuildRequires: libpresage-devel # Only for leap < 15.2 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150200 BuildRequires: libqt4-devel %endif BuildRequires: libuuid-devel BuildRequires: libxml2-devel BuildRequires: opencc-devel BuildRequires: pango-devel BuildRequires: pkgconfig BuildRequires: update-desktop-files BuildRequires: xz BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(xkbcommon) >= 0.5.0 BuildRequires: pkgconfig(xkbfile) Requires: %{name}-branding = %{version} Recommends: %{name}-pinyin = %{version}-%{release} Recommends: %{name}-table = %{version}-%{release} # These libraries are dlopen-ed in fcitx at runtime # for spell-checking for keyboard users. ld can't find # them, so explicitly recommends. Recommends: libenchant1 Recommends: libopencc1_1 Recommends: libpresage1 Provides: locale(ko;zh_CN;zh_SG) %description Fcitx is a CJK input method framework. It supports Table, Pinyin and QuWei input methods. It's flexible and fast. %package -n libfcitx-core0 Summary: Core library of fcitx Group: System/Libraries Provides: libfcitx-4_2_9 = %{version} Obsoletes: libfcitx-4_2_9 <= %{version} %description -n libfcitx-core0 Core library of fcitx. %package -n libfcitx-gclient1 Summary: GClient library of fcitx Group: System/Libraries %description -n libfcitx-gclient1 GClient library of fcitx %package -n libfcitx-utils0 Summary: Util library of fcitx Group: System/Libraries %description -n libfcitx-utils0 Util library of fcitx %package -n libfcitx-config4 Summary: Config library of fcitx4 Group: System/Libraries %description -n libfcitx-config4 Config library of fcitx %package devel Summary: Development files for %{name} Group: Development/Libraries/C and C++ Requires: %{name} = %{version}-%{release} Requires: libfcitx-config4 = %{version} Requires: libfcitx-core0 = %{version} Requires: libfcitx-gclient1 = %{version} Requires: libfcitx-utils0 = %{version} %description devel Development header files for Fcitx input method framework. %package gtk2 Summary: Gtk2 IM module for %{name} Group: System/I18n/Chinese Supplements: (fcitx and libgtk-2_0-0) %{gtk2_immodule_requires} %description gtk2 GTK+ version 2 input module for Fcitx input method rfamework. %package gtk3 Summary: Gtk3 IM module for %{name} Group: System/I18n/Chinese Supplements: (fcitx and libgtk-3-0) %{gtk3_immodule_requires} %description gtk3 GTK+ version 3 input module for Fcitx input method framework. %package -n typelib-1_0-Fcitx-1_0 Summary: The Flexible Context-aware Input Tool with eXtension -- Introspection bindings Group: System/Libraries %description -n typelib-1_0-Fcitx-1_0 Fcitx is a CJK input method framework. It supports Table, Pinyin and QuWei input methods. It's flexible and fast. This package provides the GObject Introspection bindings for Fcitx. %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150200 %package qt4 Summary: Qt4 IM module for %{name} Group: System/I18n/Chinese Supplements: (fcitx and libqt4) %description qt4 QT4 input module for Fcitx input method framework. %endif %package quwei Summary: Chinese Zone-bit(QuWei) engine for %{name} Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} %description quwei Chinese Zone-bit(QuWei) engine for Fcitx input method framework. %package pinyin Summary: Chinese Pinyin engine for %{name} Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} %description pinyin Chinese Pinyin engine for Fcitx input method framework. %package table Summary: Table engine for %{name} Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} %description table Table engine for Fcitx input method framework. It's the basic component for other users except some Chinese. %package table-cn-cangjie Summary: Simplified Chinese Tsang-Jei(Cangjie) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-cangjie Fcitx Tsang Jei (Cang Jie) input tables for Simplified Chinese. %package table-cn-dianbao Summary: Telegram(Dianbao) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-dianbao Fcitx Telegram (Dian Bao) input tables for Simplified Chinese. %package table-cn-erbi Summary: Two stroke(Erbi) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-erbi Fcitx Two Stroke (Er Bi) input tables for Simplified Chinese. %package table-cn-bingchan Summary: Icefrog Holography(QXM) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-bingchan Fcitx Icefrog Holography (Bing Chan Quan Xi, or QXM) input tables for Simplified Chinese. %package table-cn-wanfeng Summary: Evening Breeze(Wanfeng) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-wanfeng Fcitx Evening Breeze (Wan feng) input tables for Simplified Chinese. %package table-cn-wubi-pinyin Summary: Wubi and pinyin(wubi-pinyin) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} Provides: locale(fcitx-table:zh_CN;) BuildArch: noarch %description table-cn-wubi-pinyin Fcitx Wubi (Wu Bi Zi Xing) and Pinyin mixed input tables for Simplified Chinese. Wubi in Fcitx is based on wubi x86. %package table-cn-wubi Summary: Wubi table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} Provides: locale(fcitx-table:zh_CN;) BuildArch: noarch %description table-cn-wubi Fcitx Wubi (Wu Bi Zi Xing) input tables for Simplified Chinese. Wubi in Fcitx is based on wubi x86. %package table-cn-ziran Summary: Nature(Ziran) table for %{name} Group: System/I18n/Chinese Requires: %{name}-table = %{version}-%{release} BuildArch: noarch %description table-cn-ziran Fcitx Nature (Zi Ran Ma) input tables for Simplified Chinese. %package table-tools Summary: Fcitx tools to make tables Group: System/I18n/Chinese %description table-tools Tools to convert txt word sheets to fcitx tables. see manpage for details %package pinyin-tools Summary: Fcitx tools to make pinyin match list Group: System/I18n/Chinese %description pinyin-tools Tools to convert txt or scel(sougou pinyin data format) pinyin sheets to fcitx match lists. %package branding-openSUSE Summary: openSUSE default Skins for Fcitx Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} Supplements: (%{name} and branding-openSUSE) Conflicts: %{name}-branding Provides: %{name}-branding = %{version} BuildArch: noarch %description branding-openSUSE openSUSE default skins for Fcitx You can either use this package or download from kde-look.org using knewstaff in fcitx-config-kde4. %package skin-new-air Summary: New Air skin for Fcitx Group: System/I18n/Chinese Requires: %{name} = %{version} BuildArch: noarch %description skin-new-air New Air skin for Fcitx, inspired by KDE Air theme. You can either use this package or download from kde-look.org using knewstaff in fcitx-config-kde4. %package skin-classic Summary: Fcitx Classic Skin Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} BuildArch: noarch %description skin-classic Fcitx classic skin. You can either use this package or download from kde-look.org using knewstaff in fcitx-config-kde4. %package skin-dark Summary: Fcitx Dark Skin Group: System/I18n/Chinese Requires: %{name} = %{version}-%{release} BuildArch: noarch %description skin-dark Fcitx dark skin. You can either use this package for download from kde-look.org using knewstaff in fcitx-config-kde4. %prep %setup -q %patch2 -p1 %patch3 -p1 %patch4 -p1 %build mkdir build cd build # fix dlopen-ed library name cmake .. \ -DCMAKE_C_FLAGS="%{optflags}" \ -DCMAKE_CXX_FLAGS="%{optflags}" \ -DCMAKE_VERBOSE_MAKEFILE=On \ -DCMAKE_BUILD_TYPE=Release \ -DOPENCC_LIBRARY_FILENAME=libopencc.so.2 \ -DENCHANT_LIBRARY_FILENAME=libenchant.so.1 \ -DPRESAGE_LIBRARY_FILENAME=libpresage.so.1 \ -DENABLE_GTK3_IM_MODULE=On \ %if 0%{?sles_version} || 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 -DENABLE_QT=Off \ -DENABLE_QT_IM_MODULE=off \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DLIB_INSTALL_DIR=%{_libdir} \ -DSYSCONFDIR=%{_sysconfdir} \ -DENABLE_LUA=On # fix gobject-introspection build export SUSE_ASNEEDED=0 %make_build %install %cmake_install # install openSUSE skins tar -xzf %{SOURCE8} mv openSUSE-themes/Harlequin %{buildroot}%{_datadir}/%{name}/skin/ mv openSUSE-themes/Dartmouth %{buildroot}%{_datadir}/%{name}/skin/ mv openSUSE-themes/NewAir %{buildroot}%{_datadir}/%{name}/skin/ %suse_update_desktop_file fcitx Utility DesktopUtility %suse_update_desktop_file fcitx-skin-installer Utility DesktopUtility %suse_update_desktop_file fcitx-configtool Settings DesktopSettings # fix doc mkdir -p %{buildroot}%{_docdir}/ mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{_docdir}/ cp -r %{SOURCE2} %{buildroot}%{_docdir}/%{name}/ cp -r %{SOURCE3} %{buildroot}%{_docdir}/%{name}/ cp -r AUTHORS %{buildroot}%{_docdir}/%{name}/ cp -r ChangeLog %{buildroot}%{_docdir}/%{name}/ # create autostart mkdir -p %{buildroot}%{_distconfdir}/X11/xim.d/ install -m 644 %{SOURCE1} %{buildroot}%{_distconfdir}/X11/xim.d/fcitx priority=30 pushd %{buildroot}%{_distconfdir}/X11/xim.d/ for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \ pa ru sk vi zh_TW zh_CN zh_HK zh_SG \ de fr it es nl cs pl da nn nb fi en sv ; do mkdir $lang pushd $lang ln -s ../fcitx $priority-fcitx popd done popd # install rpm macros install -D -m644 %{SOURCE9} %{buildroot}%{_rpmmacrodir}/macros.%{name} # remove *.la rm -rf %{buildroot}%{_libdir}/lib%{name}-config.la # fix scripts for script in $(ls %{buildroot}%{_datadir}/cmake/fcitx/*.sh) ; do sed -i "s/\/usr\/bin\/env bash/\/usr\/bin\/bash/" $script; chmod +x $script; done sed -i "s/\/usr\/bin\/env bash/\/usr\/bin\/bash/" %{buildroot}%{_bindir}/fcitx-diagnose %find_lang %{name} %fdupes %{buildroot} %post gtk2 %{gtk2_immodule_post} %postun gtk2 %{gtk2_immodule_postun} %post gtk3 %{gtk3_immodule_post} # Add fcitx icons to gnome3 panel TARGET="%{_datadir}/gnome-shell/js/ui/statusIconDispatcher.js" if [ -f $TARGET ] && [ ! -f $TARGET-fcitx ] ; then mv $TARGET $TARGET-fcitx sed "/^const STANDARD_TRAY_ICON_IMPLEMENTATIONS/a \ 'fcitx': 'input-method'," $TARGET-fcitx > $TARGET fi %postun gtk3 %{gtk3_immodule_postun} %post %desktop_database_post %icon_theme_cache_post exit 0 %postun %desktop_database_postun %icon_theme_cache_postun exit 0 %post -n libfcitx-core0 -p /sbin/ldconfig %post -n libfcitx-gclient1 -p /sbin/ldconfig %post -n libfcitx-utils0 -p /sbin/ldconfig %post -n libfcitx-config4 -p /sbin/ldconfig %postun -n libfcitx-core0 -p /sbin/ldconfig %postun -n libfcitx-gclient1 -p /sbin/ldconfig %postun -n libfcitx-utils0 -p /sbin/ldconfig %postun -n libfcitx-config4 -p /sbin/ldconfig %files -f %{name}.lang %license COPYING %{_bindir}/%{name} %{_bindir}/%{name}-autostart %{_bindir}/%{name}-configtool %{_bindir}/%{name}-remote %{_bindir}/%{name}-skin-installer %{_bindir}/%{name}-dbus-watcher %{_bindir}/%{name}-diagnose %{_datadir}/%{name}/ %{_datadir}/applications/*.desktop %{_datadir}/icons/* %{_datadir}/mime/packages/* %{_datadir}/dbus-1/services/org.fcitx.Fcitx.service %{_mandir}/man1/fcitx.1%{?ext_man} %{_mandir}/man1/fcitx-remote.1%{?ext_man} %{_libdir}/%{name}/ %{_sysconfdir}/xdg/autostart/%{name}*.desktop %{_distconfdir}/X11/xim.d %doc %{_docdir}/%{name}/ # excludes %exclude %{_datadir}/%{name}/pinyin %exclude %{_datadir}/%{name}/table/* %exclude %{_datadir}/%{name}/imicon/* %exclude %{_datadir}/%{name}/inputmethod/* %exclude %{_datadir}/%{name}/addon/%{name}-pinyin.conf %exclude %{_datadir}/%{name}/addon/%{name}-table.conf %exclude %{_datadir}/%{name}/addon/%{name}-qw.conf %exclude %{_datadir}/%{name}/configdesc/%{name}-pinyin.desc %exclude %{_datadir}/%{name}/configdesc/table.desc %exclude %{_libdir}/%{name}/fcitx-pinyin.so %exclude %{_libdir}/%{name}/fcitx-table.so %exclude %{_libdir}/%{name}/fcitx-qw.so %exclude %{_libdir}/%{name}/libexec/comp-spell-dict %exclude %{_libdir}/%{name}/libexec/fcitx-po-parser %exclude %{_libdir}/%{name}/libexec/fcitx-scanner %exclude %{_datadir}/%{name}/skin/Harlequin %exclude %{_datadir}/%{name}/skin/Dartmouth %exclude %{_datadir}/%{name}/skin/NewAir %exclude %{_datadir}/%{name}/skin/classic %exclude %{_datadir}/%{name}/skin/dark %files -n libfcitx-core0 %{_libdir}/libfcitx-core.so.0 %{_libdir}/libfcitx-core.so.0.3 %files -n libfcitx-gclient1 %{_libdir}/libfcitx-gclient.so.1 %{_libdir}/libfcitx-gclient.so.0.2 %files -n libfcitx-utils0 %{_libdir}/libfcitx-utils.so.0 %{_libdir}/libfcitx-utils.so.0.1 %files -n libfcitx-config4 %{_libdir}/libfcitx-config.so.4 %{_libdir}/libfcitx-config.so.4.1 %files gtk2 %{_libdir}/gtk-2.0/* %files gtk3 %{_libdir}/gtk-3.0/* %files -n typelib-1_0-Fcitx-1_0 %{_libdir}/girepository-1.0/Fcitx-1.0.typelib %files quwei %{_libdir}/%{name}/%{name}-qw.so %{_datadir}/%{name}/inputmethod/qw.conf %{_datadir}/%{name}/addon/%{name}-qw.conf %files pinyin %{_libdir}/%{name}/%{name}-pinyin.so %{_datadir}/%{name}/pinyin/ %{_datadir}/%{name}/inputmethod/pinyin.conf %{_datadir}/%{name}/inputmethod/shuangpin.conf %{_datadir}/%{name}/addon/%{name}-pinyin.conf %{_datadir}/%{name}/imicon/pinyin.png %{_datadir}/%{name}/imicon/shuangpin.png %{_datadir}/%{name}/configdesc/%{name}-pinyin.desc %files table %{_libdir}/%{name}/%{name}-table.so %{_datadir}/%{name}/addon/%{name}-table.conf %{_datadir}/%{name}/configdesc/table.desc %files table-cn-cangjie %{_datadir}/%{name}/table/cangjie.* %{_datadir}/%{name}/imicon/cangjie.png %files table-cn-dianbao %{_datadir}/%{name}/table/db.* %files table-cn-erbi %{_datadir}/%{name}/table/erbi.* %{_datadir}/%{name}/imicon/erbi.png %files table-cn-bingchan %{_datadir}/%{name}/table/qxm.* %files table-cn-wanfeng %{_datadir}/%{name}/table/wanfeng.* %files table-cn-wubi-pinyin %{_datadir}/%{name}/table/wbpy.* %{_datadir}/%{name}/imicon/wbpy.png %files table-cn-wubi %{_datadir}/%{name}/table/wbx.* %{_datadir}/%{name}/imicon/wubi.png %files table-cn-ziran %{_datadir}/%{name}/table/zrm.* %{_datadir}/%{name}/imicon/ziranma.png %files table-tools %{_bindir}/mb2txt %{_bindir}/txt2mb %{_mandir}/man1/mb2txt.1%{?ext_man} %{_mandir}/man1/txt2mb.1%{?ext_man} %files pinyin-tools %{_bindir}/createPYMB %{_bindir}/readPYMB %{_bindir}/readPYBase %{_bindir}/mb2org %{_bindir}/scel2org %{_mandir}/man1/createPYMB.1%{?ext_man} %{_mandir}/man1/readPYMB.1%{?ext_man} %{_mandir}/man1/readPYBase.1%{?ext_man} %{_mandir}/man1/mb2org.1%{?ext_man} %{_mandir}/man1/scel2org.1%{?ext_man} %files branding-openSUSE %{_datadir}/%{name}/skin/Harlequin %{_datadir}/%{name}/skin/Dartmouth %files skin-new-air %{_datadir}/%{name}/skin/NewAir %files skin-classic %{_datadir}/%{name}/skin/classic %files skin-dark %{_datadir}/%{name}/skin/dark %files devel %{_rpmmacrodir}/macros.%{name} %{_includedir}/* %{_bindir}/%{name}4-config %{_libdir}/%{name}/libexec/comp-spell-dict %{_libdir}/%{name}/libexec/fcitx-po-parser %{_libdir}/%{name}/libexec/fcitx-scanner %{_libdir}/pkgconfig/*.pc %{_datadir}/cmake/ %{_datadir}/gir-1.0/Fcitx-1.0.gir %{_libdir}/libfcitx-config.so %{_libdir}/libfcitx-core.so %{_libdir}/libfcitx-utils.so %{_libdir}/libfcitx-gclient.so %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150200 %files qt4 %{_libdir}/qt4/* %endif %changelog