SHA256
1
0
forked from pool/fcitx
fcitx/fcitx.spec
Marguerite Su 660d90e068 Accepting request 547499 from home:MargueriteSu:branches:M17N
- update 4.2.9.5
  * [qt] remove quickphrase editor, moved to qt5
  * [misc] forget to remove the add_directory for quickphrase editor
  * fcitx-configtool.desktop: Remove MimeType entry
  * [frontend] add a compatibility layer for ofd.portal.Fcitx
  * [gtk] run clang-format on gtk libraries
  * [gclinet] remove a undefined function
  * set display for fcitx and harden dbus frontend with sender verification
  * extend dbus module to be able to accept external dbus connection
  * [ipcportal] fix signal sending in portal
  * [qt] delay the recheck on availability, but does do the recheck
  * [portal] put ipc portal in queue
  * [qt] do the real unwatch
  * [misc] make more optional disabled option for easier flatpak
  * [table] make sure we don't download table data if we disable table
- changes in 4.2.9.4
  * [gtk, kimpanel] add relative coordinate support
  * [kimpanel] check null before use ic
  * [kimpanel] correctly reset relative spot state
  * [notificationitem] Reply event method call
- changes in 4.2.9.3
  * [core] Make sure when RealEnd is called, instance->destroy == true
- changes in 4.2.9.2
  * [notificationitem] avoid unnecessary xembed tray icon fallback
  * [classicui] give tray icon a default size
  * [qt] fix inconsistency when handling qstring and ucs4 string
  * [classicui] Watch for dockWindow visual property change
  * [qt] fromUcs4 expect a nul terminated string by default, give it a size
  * [core] Expose internal show input speed function
  * logging should not include the build path(boo#951602)
  * autostart desktop file should not be shown(boo#968486)
  * [qt] replace QPointer with raw pointer in icdata
  * [notificationitem] display layout under unity 
  * [diagnose] Print info about dbus name owner
  * Include emoji short codes ("emoji alpha codes") 
  * [notificationitem] Fix a bug in plugin entry
  * [core] Add a new hook to watch ui status changed
  * [xim] handle reset ic
  * [utils] Improve process name detection on *BSD
  * [quickphrase] use some different character, original one looks bad under noto
  * [misc] use RTLD_NODELETE for all dlopen
  * Call sem_post() only on valid semaphore
  * [unicode] Update Unicode 9.0 descriptions
  * [classicui] Check XShape version before using it 
  * [remote] exit the loop after trying 20 times
  * Require bash in fcitx-cmake-helper.sh
  * [xim] fix a memset
  * [pinyin] fix missing files
  * [dbus] fix a wrong dbus destruct order that my cause deadlock on exit
  * [xkb] handle some corner case for any evil third party that override layout
  * [xkb, xkbdbus] add support for our gnome-shell kimpanel dbus helper
  * [xkb] fix circular deps between xkb and xkbdbus
  * [gclient] try to eliminate a warning for configtool
  * [misc] enforce c99 for compiler 
  * [core] call backtrace() ahead to let it finish init()
  * [misc] remove a dup define
  * [unicode] enable prev/next key and enter to choose for unicode
  * [gtk] fix wrong gobject add weak pointer
  * [misc] use unsigned int instead for portability
  * Remove deprecated api in enchant so we can also support 2.1.0.
  * Fix bashism/use correct shebang
- drop fcitx-autostart-desktop-no-display.patch, upstreamed
- drop fcitx-use-basename-for-log.patch, upstreamed
- drop boo954623.patch, upstreamed

OBS-URL: https://build.opensuse.org/request/show/547499
OBS-URL: https://build.opensuse.org/package/show/M17N/fcitx?expand=0&rev=147
2017-12-02 11:16:29 +00:00

599 lines
17 KiB
RPMSpec

#
# spec file for package fcitx
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 libver -4_2_9
Name: fcitx
Version: 4.2.9.5
Release: 0
Summary: Flexible Context-aware Input Tool with eXtension
License: GPL-2.0+
Group: System/I18n/Chinese
Url: http://code.google.com/p/fcitx
Source: http://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}
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE fcitx-autostart-check-INPUT_METHOD.patch boo#947576
Patch2: fcitx-autostart-check-INPUT_METHOD.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
BuildRequires: libqt4-devel
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: opencc-devel
BuildRequires: pango-devel
BuildRequires: pkg-config
BuildRequires: update-desktop-files
BuildRequires: xz
BuildRequires: pkgconfig(lua)
BuildRequires: pkgconfig(xkbcommon) >= 0.5.0
Requires: %{name}-gtk2 = %{version}-%{release}
Requires: %{name}-gtk3 = %{version}-%{release}
Requires: %{name}-qt4 = %{version}-%{release}
Requires: lib%{name}%{libver} = %{version}-%{release}
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: libopencc2
Recommends: libpresage1
Recommends: libenchant1
Requires: %{name}-branding = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
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 lib%{name}%{libver}
Summary: Shared libraries for %{name}
Group: System/I18n/Chinese
Obsoletes: lib%{name} < %{version}
Provides: lib%{name} = %{version}
%description -n lib%{name}%{libver}
Shared libraries for Fcitx input method framework.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
%description devel
Development header files for Fcitx input method framework.
%package gtk2
Summary: Gtk2 IM module for %{name}
Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release}
%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
Requires: %{name} = %{version}-%{release}
%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.
%package qt4
Summary: Qt4 IM module for %{name}
Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release}
%description qt4
QT4 input module for Fcitx input method framework.
%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
Provides: locale(fcitx-table:zh_CN;)
Requires: %{name}-table = %{version}-%{release}
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
Provides: locale(fcitx-table:zh_CN;)
Requires: %{name}-table = %{version}-%{release}
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
Requires: lib%{name}%{libver} = %{version}-%{release}
%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
Requires: lib%{name}%{libver} = %{version}-%{release}
%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}
BuildArch: noarch
Provides: %{name}-branding = %{version}
Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(%{name}:branding-openSUSE)
%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 -n %{name}-%{version}
%patch2 -p1
%build
mkdir build
cd build
# fix dlopen-ed library name
cmake .. \
-DCMAKE_C_FLAGS="$RPM_OPT_FLAGS" \
-DCMAKE_CXX_FLAGS="$RPM_OPT_FLAGS" \
-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}
-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
%install
cd build
%makeinstall
cd ..
# 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/
# Change default skin
pushd %{buildroot}%{_datadir}/%{name}/configdesc
sed -i 's/DefaultValue=default/DefaultValue=Harlequin/' %{buildroot}%{_datadir}/%{name}/configdesc/fcitx-classic-ui.desc
popd
%suse_update_desktop_file fcitx Utility DesktopUtility
%suse_update_desktop_file fcitx-skin-installer Utility DesktopUtility
%suse_update_desktop_file -r fcitx-configtool System X-SuSE-SystemSetup
# 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}/
cp -r COPYING %{buildroot}%{_docdir}/%{name}/
# create autostart
mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/
install -m 644 %{S:1} %{buildroot}%{_sysconfdir}/X11/xim.d/fcitx
priority=30
pushd %{buildroot}%{_sysconfdir}/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}%{_sysconfdir}/rpm/macros.%{name}
# remove *.la
%{__rm} -rf %{buildroot}%{_libdir}/lib%{name}-config.la
%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="/usr/share/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 lib%{name}%{libver} -p /sbin/ldconfig
%postun -n lib%{name}%{libver} -p /sbin/ldconfig
%files -f %{name}.lang
%defattr(-,root,root)
%{_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.gz
%{_mandir}/man1/fcitx-remote.1.gz
%{_libdir}/%{name}/
%{_sysconfdir}/xdg/autostart/%{name}*.desktop
%config %{_sysconfdir}/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 lib%{name}%{libver}
%defattr(-,root,root)
%{_libdir}/libfcitx*.so.*
%{_libdir}/libfcitx*.so
%files gtk2
%defattr(-,root,root)
%{_libdir}/gtk-2.0/*
%files gtk3
%defattr(-,root,root)
%{_libdir}/gtk-3.0/*
%files -n typelib-1_0-Fcitx-1_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/Fcitx-1.0.typelib
%files quwei
%defattr(-,root,root)
%{_libdir}/%{name}/%{name}-qw.so
%{_datadir}/%{name}/inputmethod/qw.conf
%{_datadir}/%{name}/addon/%{name}-qw.conf
%files pinyin
%defattr(-,root,root)
%{_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
%defattr(-,root,root)
%{_libdir}/%{name}/%{name}-table.so
%{_datadir}/%{name}/addon/%{name}-table.conf
%{_datadir}/%{name}/configdesc/table.desc
%files table-cn-cangjie
%defattr(-,root,root)
%{_datadir}/%{name}/table/cangjie.*
%{_datadir}/%{name}/imicon/cangjie.png
%files table-cn-dianbao
%defattr(-,root,root)
%{_datadir}/%{name}/table/db.*
%files table-cn-erbi
%defattr(-,root,root)
%{_datadir}/%{name}/table/erbi.*
%{_datadir}/%{name}/imicon/erbi.png
%files table-cn-bingchan
%defattr(-,root,root)
%{_datadir}/%{name}/table/qxm.*
%files table-cn-wanfeng
%defattr(-,root,root)
%{_datadir}/%{name}/table/wanfeng.*
%files table-cn-wubi-pinyin
%defattr(-,root,root)
%{_datadir}/%{name}/table/wbpy.*
%{_datadir}/%{name}/imicon/wbpy.png
%files table-cn-wubi
%defattr(-,root,root)
%{_datadir}/%{name}/table/wbx.*
%{_datadir}/%{name}/imicon/wubi.png
%files table-cn-ziran
%defattr(-,root,root)
%{_datadir}/%{name}/table/zrm.*
%{_datadir}/%{name}/imicon/ziranma.png
%files table-tools
%defattr(-,root,root)
%{_bindir}/mb2txt
%{_bindir}/txt2mb
%{_mandir}/man1/mb2txt.1.gz
%{_mandir}/man1/txt2mb.1.gz
%files pinyin-tools
%defattr(-,root,root)
%{_bindir}/createPYMB
%{_bindir}/readPYMB
%{_bindir}/readPYBase
%{_bindir}/mb2org
%{_bindir}/scel2org
%{_mandir}/man1/createPYMB.1.gz
%{_mandir}/man1/readPYMB.1.gz
%{_mandir}/man1/readPYBase.1.gz
%{_mandir}/man1/mb2org.1.gz
%{_mandir}/man1/scel2org.1.gz
%files branding-openSUSE
%defattr(-,root,root)
%{_datadir}/%{name}/skin/Harlequin
%{_datadir}/%{name}/skin/Dartmouth
%files skin-new-air
%defattr(-,root,root)
%{_datadir}/%{name}/skin/NewAir
%files skin-classic
%defattr(-,root,root)
%{_datadir}/%{name}/skin/classic
%files skin-dark
%defattr(-,root,root)
%{_datadir}/%{name}/skin/dark
%files devel
%defattr(-,root,root)
%config %{_sysconfdir}/rpm/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
%files qt4
%defattr(-,root,root)
%{_libdir}/qt4/*
%changelog