Accepting request 126044 from M17N

(forwarded request 125973 from MargueriteSu)

OBS-URL: https://build.opensuse.org/request/show/126044
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fcitx?expand=0&rev=10
This commit is contained in:
Stephan Kulow 2012-06-26 13:19:26 +00:00 committed by Git OBS Bridge
commit 291381209b
5 changed files with 471 additions and 52 deletions

View File

@ -4,7 +4,7 @@
<param name="history-depth">all</param><param name="url">http://code.google.com/p/fcitx/</param><param name="versionprefix">4.2git</param><param name="filename">fcitx</param><param name="scm">git</param></service> <param name="history-depth">all</param><param name="url">https://github.com/fcitx/fcitx.git</param><param name="versionprefix">4.2git</param><param name="filename">fcitx</param><param name="scm">git</param></service>
<service name="recompress" mode="disabled"> <service name="recompress" mode="disabled">
<param name="file">*.tar</param> <param name="file">*.tar</param>
<param name="compression">bz2</param> <param name="compression">bz2</param>

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Sat Jun 16 14:32:39 UTC 2012 - i@marguerite.su
- fix memory overflow, thanks to reporter dieter.
* http://lists.opensuse.org/opensuse-factory/2012-06/msg00359.html
- support fedora builds.
- further split packages by input engines and tables, no longer a big mess.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 12 07:22:31 UTC 2012 - i@marguerite.su Tue Jun 12 07:22:31 UTC 2012 - i@marguerite.su

View File

@ -21,7 +21,7 @@
Name: fcitx Name: fcitx
Version: 4.2.4.1 Version: 4.2.4.1
Release: 0 Release: 0
Summary: A Flexible Input Method Framework for CJK Summary: Flexible Context-aware Input Tool with eXtension
License: GPL-2.0+ License: GPL-2.0+
Group: System/I18n/Chinese Group: System/I18n/Chinese
Url: http://code.google.com/p/fcitx Url: http://code.google.com/p/fcitx
@ -33,22 +33,34 @@ Source2: fcitx-README.suse
Source3: xim.fcitx.suse.template Source3: xim.fcitx.suse.template
Source5: pinyin.tar.gz Source5: pinyin.tar.gz
Source6: table.tar.gz Source6: table.tar.gz
# for fedora auto-start
Source7: xinput-fcitx
#FIX-FOR-UPSTREAM i@marguerite.su - dont download online #FIX-FOR-UPSTREAM i@marguerite.su - dont download online
Patch1: fix_fcitx_googlecode_resolv_error.patch Patch1: fix_fcitx_googlecode_resolv_error.patch
#FIX-FOR-UPSTREAM wengxuetian@gmail.com - fix memeory overflow
Patch2: fix-fcitx-4.2.4.1-memory-overflow.patch
BuildRequires: cairo-devel BuildRequires: cairo-devel
%if 0%{?suse_version}
BuildRequires: dbus-1-devel BuildRequires: dbus-1-devel
BuildRequires: dbus-1-glib-devel BuildRequires: dbus-1-glib-devel
BuildRequires: update-desktop-files
%endif
%if 0%{?fedora_version}
BuildRequires: dbus-devel
BuildRequires: dbus-glib-devel
BuildRequires: desktop-file-utils
BuildRequires: libxkbfile-devel
%endif
BuildRequires: enchant-devel BuildRequires: enchant-devel
BuildRequires: iso-codes-devel BuildRequires: iso-codes-devel
BuildRequires: pango-devel BuildRequires: pango-devel
BuildRequires: update-desktop-files %if 0%{?suse_version} >= 1110 || 0%{?fedora_version}
%if 0%{?suse_version} >= 1110
BuildRequires: fdupes BuildRequires: fdupes
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
BuildRequires: libqt4-devel BuildRequires: libqt4-devel
%endif %endif
%if 0%{?suse_version} <= 1210 %if 0%{?suse_version} <= 1210 || 0%{?fedora_version}
BuildRequires: lua-devel BuildRequires: lua-devel
%else %else
BuildRequires: lua51-devel BuildRequires: lua51-devel
@ -57,7 +69,7 @@ BuildRequires: cmake
BuildRequires: gtk2-devel BuildRequires: gtk2-devel
BuildRequires: intltool BuildRequires: intltool
BuildRequires: opencc-devel BuildRequires: opencc-devel
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildRequires: gtk3-devel BuildRequires: gtk3-devel
BuildRequires: gobject-introspection-devel BuildRequires: gobject-introspection-devel
%endif %endif
@ -66,28 +78,33 @@ BuildRequires: libicu-devel
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
Requires: %{name}-gtk2 = %{version}-%{release} Requires: %{name}-gtk2 = %{version}-%{release}
Requires: lib%{name}%{libver} = %{version}-%{release} Requires: lib%{name}%{libver} = %{version}-%{release}
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
Requires: %{name}-gtk3 = %{version}-%{release} Requires: %{name}-gtk3 = %{version}-%{release}
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
Requires: %{name}-qt4 = %{version}-%{release} Requires: %{name}-qt4 = %{version}-%{release}
%endif %endif
%if 0%{?suse_version}
Recommends: %{name}-pinyin = %{version}-%{release}
Recommends: %{name}-table = %{version}-%{release}
%endif
%if 0%{?fedora_version}
Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: locale(ko;zh_CN;zh_SG) Provides: locale(ko;zh_CN;zh_SG)
%description %description
FCITX is a simplified Chinese input server. It supports Tables, Fcitx is a CJK input method framework. It supports Table,
Pinyin and QuWei input method. It's small and fast. Pinyin and QuWei input methods. It's flexible and fast.
Since version 4.1, FCITX itself can be use as an im-module. XIM
can still be used but not necessary.
%package -n lib%{name}%{libver} %package -n lib%{name}%{libver}
Summary: Shared Libraries for %{name} Summary: Shared libraries for %{name}
Group: System/I18n/Chinese Group: System/I18n/Chinese
%description -n lib%{name}%{libver} %description -n lib%{name}%{libver}
The libfcitx4_2_0 package includes the shared libraries for the fictx package. Shared libraries for Fcitx input method framework.
%package devel %package devel
Summary: Development files for %{name} Summary: Development files for %{name}
@ -95,54 +112,231 @@ Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description devel %description devel
The fcitx-devel package includes the header files for the fcitx package. Development header files for Fcitx input method framework.
%package gtk2 %package gtk2
Summary: Gtk2 IM Module for %{name} Summary: Gtk2 IM module for %{name}
Group: System/I18n/Chinese Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%if 0%{?suse_version} >= 1140
%gtk2_immodule_requires %gtk2_immodule_requires
%else
Requires(post): gtk2
Requires(postun): gtk2
%endif
%description gtk2 %description gtk2
This package contains fcitx im module for gtk2 GTK+ version 2 input module for Fcitx input method rfamework.
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
%package gtk3 %package gtk3
Summary: Gtk3 IM Module for %{name} Summary: Gtk3 IM module for %{name}
Group: System/I18n/Chinese Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%if 0%{?suse_version}
%gtk3_immodule_requires %gtk3_immodule_requires
%else
Requires(post): gtk3
Requires(postun): gtk3
%endif
%description gtk3 %description gtk3
This package contains fcitx im module for gtk3 GTK+ version 3 input module for Fcitx input method framework.
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
%package qt4 %package qt4
Summary: Qt4 IM Module for %{name} Summary: Qt4 IM module for %{name}
Group: System/I18n/Chinese Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description qt4 %description qt4
This package contains fcitx im module for qt4 QT4 input module for Fcitx input method framework.
%endif %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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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 skin-classic
Summary: Fcitx Classic Skin
Group: System/I18n/Chinese
Requires: %{name} = %{version}-%{release}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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}
%if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
BuildArch: noarch
%endif
%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 %prep
%setup -q -n %{name}-%{version} %setup -q -n %{name}-%{version}
%patch1 -p1 %patch1 -p1
# remove when next release
%patch2 -p1
%build %build
mkdir build mkdir build
cd build cd build
cmake .. -DENABLE_GTK2_IM_MODULE=On \ cmake .. -DENABLE_GTK2_IM_MODULE=On \
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
-DENABLE_GTK3_IM_MODULE=On \ -DENABLE_GTK3_IM_MODULE=On \
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
-DENABLE_QT_IM_MODULE=On \ -DENABLE_QT_IM_MODULE=On \
%endif %endif
-DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
@ -151,7 +345,7 @@ cmake .. -DENABLE_GTK2_IM_MODULE=On \
-DENABLE_OPENCC=On \ -DENABLE_OPENCC=On \
-DENABLE_LUA=On -DENABLE_LUA=On
#copy external data # copy external data
pushd ../data pushd ../data
cp -r %{S:5} ./ cp -r %{S:5} ./
popd popd
@ -159,28 +353,51 @@ pushd ../data/table
cp -r %{S:6} ./ cp -r %{S:6} ./
popd popd
#fix gobject-introspection build # fix gobject-introspection build
export SUSE_ASNEEDED=0 export SUSE_ASNEEDED=0
make make
%install %install
cd build cd build
%makeinstall # support fedora 17
make DESTDIR=%{buildroot} install
cd .. cd ..
#fix desktop file # fix desktop file
sed -i "2d" %{buildroot}%{_datadir}/applications/fcitx-skin-installer.desktop sed -i "s/x-fskin/x-fskin;/" %{buildroot}%{_datadir}/applications/fcitx-skin-installer.desktop
sed -i "2iMimeType=applicatio\/x-fskin;" %{buildroot}%{_datadir}/applications/fcitx-skin-installer.desktop
%if 0%{?suse_version}
%suse_update_desktop_file fcitx Utility DesktopUtility %suse_update_desktop_file fcitx Utility DesktopUtility
%suse_update_desktop_file fcitx-skin-installer Utility DesktopUtility %suse_update_desktop_file fcitx-skin-installer Utility DesktopUtility
%suse_update_desktop_file fcitx-configtool System X-SuSE-SystemSetup %suse_update_desktop_file fcitx-configtool System X-SuSE-SystemSetup
%endif
#fix doc %if 0%{?fedora_version}
%{__rm} -rf %{buildroot}%{_datadir}/doc/%{name}/ desktop-file-install --add-category="Utility" --delete-original --dir=%{buildroot}%{_datadir}/applications \
%{buildroot}/%{_datadir}/applications/fcitx.desktop
desktop-file-install --add-category="Utility" --delete-original --dir=%{buildroot}%{_datadir}/applications \
%{buildroot}/%{_datadir}/applications/fcitx-skin-installer.desktop
desktop-file-install --add-category="System" --delete-original --dir=%{buildroot}%{_datadir}/applications \
%{buildroot}/%{_datadir}/applications/fcitx-configtool.desktop
%endif
#create autostart # fix doc
%if 0%{?suse_version}
mkdir %{buildroot}%{_docdir}
mv %{buildroot}%{_datadir}/doc/%{name}/ %{buildroot}%{_docdir}
cp -r AUTHORS %{buildroot}%{_docdir}/%{name}/
cp -r ChangeLog %{buildroot}%{_docdir}/%{name}/
%endif
%if 0%{?fedora_version}
mkdir %{buildroot}%{_docdir}/packages/
mv %{buildroot}%{_datadir}/doc/%{name}/ %{buildroot}%{_docdir}/packages/
cp -r AUTHORS %{buildroot}%{_docdir}/packages/%{name}/
cp -r ChangeLog %{buildroot}%{_docdir}/packages/%{name}/
%endif
# create autostart
%if 0%{?suse_version}
mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/ mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/
install -m 644 %{S:1} %{buildroot}%{_sysconfdir}/X11/xim.d/fcitx install -m 644 %{S:1} %{buildroot}%{_sysconfdir}/X11/xim.d/fcitx
@ -193,28 +410,38 @@ pushd %{buildroot}%{_sysconfdir}/X11/xim.d/
popd popd
done done
popd popd
%endif
#remove *.la %if 0%{?fedora_version}
mkdir -pv %{buildroot}%{_sysconfdir}/X11/xinit/xinput.d/
install -pm 644 -D %{SOURCE7} %{buildroot}%{_sysconfdir}/X11/xinit/xinput.d/fcitx.conf
%endif
# remove *.la
%{__rm} -rf %{buildroot}%{_libdir}/lib%{name}-config.la %{__rm} -rf %{buildroot}%{_libdir}/lib%{name}-config.la
%find_lang %{name} %find_lang %{name}
%if 0%{?suse_version} >= 1110 %if 0%{?suse_version} >= 1110
%fdupes %{buildroot} %fdupes %{buildroot}
%else
%if 0%{?fedora_version}
fdupes -n -q -r %{buildroot}
%endif
%endif %endif
#strip libraries # strip unnessary libraries
%{__strip} %{buildroot}%{_libdir}/%{name}/*.so %{__strip} %{buildroot}%{_libdir}/%{name}/*.so
%{__strip} %{buildroot}%{_libdir}/libfcitx*.so.* %{__strip} %{buildroot}%{_libdir}/libfcitx*.so.*
%{__strip} %{buildroot}%{_libdir}/gtk-2.0/*/immodules/im-%{name}.so %{__strip} %{buildroot}%{_libdir}/gtk-2.0/*/immodules/im-%{name}.so
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
%{__strip} %{buildroot}%{_libdir}/gtk-3.0/*/immodules/im-%{name}.so %{__strip} %{buildroot}%{_libdir}/gtk-3.0/*/immodules/im-%{name}.so
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
%{__strip} %{buildroot}%{_libdir}/qt4/plugins/inputmethods/qtim-%{name}.so %{__strip} %{buildroot}%{_libdir}/qt4/plugins/inputmethods/qtim-%{name}.so
%endif %endif
#Convenient define for the scriplets # Convenient define for the scriplets
%if %{_lib} == lib64 %if %{_lib} == lib64
%define _gtk2_query_immodules %{_bindir}/gtk-query-immodules-2.0-64 %define _gtk2_query_immodules %{_bindir}/gtk-query-immodules-2.0-64
%define _gtk2_query_immodules_update_cache %{_gtk2_query_immodules} > %{_sysconfdir}/gtk-2.0/gtk64.immodules %define _gtk2_query_immodules_update_cache %{_gtk2_query_immodules} > %{_sysconfdir}/gtk-2.0/gtk64.immodules
@ -229,7 +456,7 @@ popd
%postun gtk2 %postun gtk2
%{_gtk2_query_immodules_update_cache} %{_gtk2_query_immodules_update_cache}
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
%if %{_lib} == lib64 %if %{_lib} == lib64
%define _gtk3_query_immodules %{_bindir}/gtk-query-immodules-3.0-64 %define _gtk3_query_immodules %{_bindir}/gtk-query-immodules-3.0-64
@ -241,7 +468,7 @@ popd
%post gtk3 %post gtk3
%{_gtk3_query_immodules_update_cache} %{_gtk3_query_immodules_update_cache}
#Add fcitx icons to gnome3 panel # Add fcitx icons to gnome3 panel
TARGET="/usr/share/gnome-shell/js/ui/statusIconDispatcher.js" TARGET="/usr/share/gnome-shell/js/ui/statusIconDispatcher.js"
if [ -f $TARGET ] && [ ! -f $TARGET-fcitx ] ; then if [ -f $TARGET ] && [ ! -f $TARGET-fcitx ] ; then
mv $TARGET $TARGET-fcitx mv $TARGET $TARGET-fcitx
@ -253,25 +480,72 @@ fi
%endif %endif
# fedora autostart
%if 0%{?fedora_version}
%post
/sbin/ldconfig
%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_sysconfdir}/X11/xinit/xinput.d/fcitx.conf 55 || :
update-desktop-database %{_datadir}/applications &>/dev/null || :
%postun
/sbin/ldconfig
if [ "$1" = "0" ]; then
%{_sbindir}/alternatives --remove xinputrc %{_sysconfdir}/X11/xinit/xinput.d/fcitx.conf || :
# if alternative was set to manual, reset to auto
[ -L %{_sysconfdir}/alternatives/xinputrc -a "`readlink %{_sysconfdir}/alternatives/xinputrc`" = "%{_sysconfdir}/X11/xinit/xinput.d/fcitx.conf" ] && %{_sbindir}/alternatives --auto xinputrc || :
fi
update-desktop-database %{_datadir}/applications &>/dev/null ||
%endif
%if 0%{?suse_version}
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
%post -n lib%{name}%{libver} -p /sbin/ldconfig
%postun -p /sbin/ldconfig %postun -p /sbin/ldconfig
%endif
%post -n lib%{name}%{libver} -p /sbin/ldconfig
%postun -n lib%{name}%{libver} -p /sbin/ldconfig %postun -n lib%{name}%{libver} -p /sbin/ldconfig
%files -f %{name}.lang %files -f %{name}.lang
%defattr(-,root,root) %defattr(-,root,root)
%doc AUTHORS ChangeLog %{_bindir}/%{name}
%{_bindir}/* %{_bindir}/%{name}4-config
%{_bindir}/%{name}-configtool
%{_bindir}/%{name}-remote
%{_bindir}/%{name}-skin-installer
%{_datadir}/%{name}/ %{_datadir}/%{name}/
%{_datadir}/applications/*.desktop %{_datadir}/applications/*.desktop
%{_datadir}/icons/* %{_datadir}/icons/*
%{_datadir}/mime/packages/* %{_datadir}/mime/packages/*
%{_mandir}/man1/*.gz %{_mandir}/man1/fcitx.1.gz
%{_libdir}/fcitx/ %{_mandir}/man1/fcitx-remote.1.gz
%config /etc/X11/xim.d/ %{_libdir}/%{name}/
%if 0%{?suse_version}
%config %{_sysconfdir}/X11/xim.d/
%{_docdir}/%{name}/
%endif
%if 0%{?fedora_version}
%config %{_sysconfdir}/X11/xinit/xinput.d/
%{_docdir}/packages/%{name}/
%endif
# 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 %{_datadir}/%{name}/skin/classic
%exclude %{_datadir}/%{name}/skin/dark
%files -n lib%{name}%{libver} %files -n lib%{name}%{libver}
%defattr(-,root,root) %defattr(-,root,root)
@ -282,7 +556,7 @@ fi
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/gtk-2.0/* %{_libdir}/gtk-2.0/*
%if 0%{?suse_version} >= 1140 %if 0%{?suse_version} >= 1140 || 0%{?fedora_version}
%files gtk3 %files gtk3
%defattr(-,root,root) %defattr(-,root,root)
@ -292,13 +566,110 @@ fi
%endif %endif
%files quwei
%defattr(-,root,root)
%dir %{_datadir}/%{name}/inputmethod
%{_libdir}/%{name}/%{name}-qw.so
%{_datadir}/%{name}/inputmethod/qw.conf
%{_datadir}/%{name}/addon/%{name}-qw.conf
%files pinyin
%defattr(-,root,root)
%dir %{_datadir}/%{name}/imicon
%dir %{_datadir}/%{name}/inputmethod
%{_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)
%dir %{_datadir}/%{name}/table/
%{_libdir}/%{name}/%{name}-table.so
%{_datadir}/%{name}/addon/%{name}-table.conf
%{_datadir}/%{name}/configdesc/table.desc
%files table-cn-cangjie
%defattr(-,root,root)
%dir %{_datadir}/%{name}/imicon
%{_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)
%dir %{_datadir}/%{name}/imicon
%{_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)
%dir %{_datadir}/%{name}/imicon
%{_datadir}/%{name}/table/wbpy.*
%{_datadir}/%{name}/imicon/wbpy.png
%files table-cn-wubi
%defattr(-,root,root)
%dir %{_datadir}/%{name}/imicon
%{_datadir}/%{name}/table/wbx.*
%{_datadir}/%{name}/imicon/wubi.png
%files table-cn-ziran
%defattr(-,root,root)
%dir %{_datadir}/%{name}/imicon
%{_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 skin-classic
%defattr(-,root,root)
%{_datadir}/%{name}/skin/classic
%files skin-dark
%defattr(-,root,root)
%{_datadir}/%{name}/skin/dark
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/pkgconfig/*.pc %{_libdir}/pkgconfig/*.pc
%{_datadir}/cmake/ %{_datadir}/cmake/
%{_includedir}/* %{_includedir}/*
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110 || 0%{?fedora_version}
%files qt4 %files qt4
%defattr(-,root,root) %defattr(-,root,root)

View File

@ -0,0 +1,25 @@
diff -urN fcitx-4.2.4.1.orig/src/module/xkb/xkb.c fcitx-4.2.4.1/src/module/xkb/xkb.c
--- fcitx-4.2.4.1.orig/src/module/xkb/xkb.c 2012-06-16 22:27:00.087029656 +0800
+++ fcitx-4.2.4.1/src/module/xkb/xkb.c 2012-06-16 22:29:18.941293740 +0800
@@ -197,8 +197,7 @@
xkbParentDir = strdup("/usr/share/X11");
}
- rulesFile = fcitx_utils_malloc0(sizeof(char) * (1 + strlen(xkbParentDir) + strlen(rulesName) + strlen("/xkb/rules/")));
- sprintf(rulesFile, "%s/xkb/rules/%s.xml", xkbParentDir, rulesName);
+ asprintf(&rulesFile, "%s/xkb/rules/%s.xml", xkbParentDir, rulesName);
fcitx_utils_free(xkbParentDir);
}
diff -urN fcitx-4.2.4.1.orig/src/ui/classic/skin.c fcitx-4.2.4.1/src/ui/classic/skin.c
--- fcitx-4.2.4.1.orig/src/ui/classic/skin.c 2012-06-16 22:27:00.090029620 +0800
+++ fcitx-4.2.4.1/src/ui/classic/skin.c 2012-06-16 22:30:39.775283176 +0800
@@ -216,7 +216,7 @@
const char* fallbackChainNoFallback[] = { buf };
const char* fallbackChainPanel[] = { buf, "skin/default" };
const char* fallbackChainTray[] = { "imicon" };
- const char* fallbackChainPanelIMIcon[] = { buf, "imicon" };
+ const char* fallbackChainPanelIMIcon[] = { buf, "imicon", "skin/default" };
HASH_FIND_STR(*imageTable, name, image);
if (image != NULL) {

15
xinput-fcitx Normal file
View File

@ -0,0 +1,15 @@
XIM=fcitx
XIM_PROGRAM=/usr/bin/fcitx
ICON="/usr/share/pixmaps/fcitx.png"
XIM_ARGS="-D"
PREFERENCE_PROGRAM=/usr/bin/fcitx-configtool
SHORT_DESC="FCITX"
GTK_IM_MODULE=fcitx
if test -f /usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so || \
test -f /usr/lib64/qt4/plugins/inputmethods/qtim-fcitx.so;
then
QT_IM_MODULE=fcitx
else
QT_IM_MODULE=xim
fi