summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-i18n/xsim')
-rw-r--r--app-i18n/xsim/Manifest1
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-64bit.patch57
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-compile-fix.patch77
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-eof.patch92
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-gcc-3.4.patch116
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-gcc-4.3.patch44
-rw-r--r--app-i18n/xsim/files/xsim-0.3.9.4-makefile.patch153
-rw-r--r--app-i18n/xsim/metadata.xml5
-rw-r--r--app-i18n/xsim/xsim-0.3.9.4-r5.ebuild78
9 files changed, 623 insertions, 0 deletions
diff --git a/app-i18n/xsim/Manifest b/app-i18n/xsim/Manifest
new file mode 100644
index 000000000000..65de86a14572
--- /dev/null
+++ b/app-i18n/xsim/Manifest
@@ -0,0 +1 @@
+DIST xsim-0.3.9.4.tar.gz 1025640 SHA256 048f23527543b21c4d52dc98967ec7253c34eb704056767364c6dc5007971b2c SHA512 07955cf68cc060724db5fdf04f2f55a93dfe29064b63170bb3c090443aa617de5d76ddd5cda971b16833fd2e090aa78a3bbc0c85e9eb2b4716dfa90c994fc8d3 WHIRLPOOL 9de70a58279849d8e370d96f97459d866ca213feeeed16f00ddcd48d003f994999da26e635c718ffd9da8291c8c97bfe043df851ef809ee6e888492f7bcda8e7
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-64bit.patch b/app-i18n/xsim/files/xsim-0.3.9.4-64bit.patch
new file mode 100644
index 000000000000..3b6f0f5d06a5
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-64bit.patch
@@ -0,0 +1,57 @@
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/jianpin/simpleimc.h xsim-0.3.9.4/plugins/IMs/jianpin/simpleimc.h
+--- xsim-0.3.9.4.orig/plugins/IMs/jianpin/simpleimc.h 2002-10-22 18:01:04.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/jianpin/simpleimc.h 2007-08-20 23:15:06.000000000 +0900
+@@ -45,7 +45,7 @@
+ uint16_t access_count;
+ wchar_t w[MAX_WORD_LEN + 1];
+
+- size_t ac_size() { return (uint32_t) w - (uint32_t)&access_count; }
++ size_t ac_size() { return (size_t) w - (size_t)&access_count; }
+ size_t size(){ return ac_size() + wcslen(w) * sizeof(wchar_t); }
+ void copy(struct Word_Rec_tag * val) { memcpy(this, val, sizeof(Word_Rec_tag));}
+ }Word_Rec;
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/table/tableimc.h xsim-0.3.9.4/plugins/IMs/table/tableimc.h
+--- xsim-0.3.9.4.orig/plugins/IMs/table/tableimc.h 2002-09-13 20:34:03.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/table/tableimc.h 2007-08-20 23:15:47.000000000 +0900
+@@ -23,7 +23,7 @@
+ uint8_t sort_index;
+ wchar_t w[MAX_WORD_LEN + 1];
+
+- size_t si_size() { return (uint32_t) w - (uint32_t)&sort_index; }
++ size_t si_size() { return (size_t) w - (size_t)&sort_index; }
+ size_t size(){ return si_size() + (wcslen(w) + 1) * sizeof(wchar_t); }
+ void copy(struct Word_Rec_tag * val) { memcpy(this, val, sizeof(Word_Rec_tag));}
+ }Word_Rec;
+diff -Naur xsim-0.3.9.4.orig/xsim/ic.cpp xsim-0.3.9.4/xsim/ic.cpp
+--- xsim-0.3.9.4.orig/xsim/ic.cpp 2002-10-01 14:41:23.000000000 +0900
++++ xsim-0.3.9.4/xsim/ic.cpp 2007-08-20 23:16:11.000000000 +0900
+@@ -101,7 +101,7 @@
+ on_stat = 0;
+ }
+
+-int TIC::alive()
++long TIC::alive()
+ {
+- return (int)im;
++ return (long)im;
+ }
+diff -Naur xsim-0.3.9.4.orig/xsim/ic.h xsim-0.3.9.4/xsim/ic.h
+--- xsim-0.3.9.4.orig/xsim/ic.h 2002-07-15 00:14:24.000000000 +0900
++++ xsim-0.3.9.4/xsim/ic.h 2007-08-20 23:16:52.000000000 +0900
+@@ -76,14 +76,14 @@
+ void set_im(TIM * val);
+
+ TIMC * get_imc();
+- int has_imc() { return (int)imc; }
++ long has_imc() { return (long)imc; }
+
+ void init(int init_mode, TIM * val);
+
+ static TIC * get_focus_ic() { return focused_ic; }
+ IC * get_IC() { return &ic_; };
+
+- int alive();
++ long alive();
+ Window get_client_win() { return ic_.client_win; }
+
+ int has_focus() { return (focused_ic == this); }
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-compile-fix.patch b/app-i18n/xsim/files/xsim-0.3.9.4-compile-fix.patch
new file mode 100644
index 000000000000..0a53e3431261
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-compile-fix.patch
@@ -0,0 +1,77 @@
+diff -uNr xsim-0.3.9.4.orig/configure xsim-0.3.9.4/configure
+--- xsim-0.3.9.4.orig/configure 2002-10-24 20:53:57.000000000 +0200
++++ xsim-0.3.9.4/configure 2005-01-27 16:21:18.553956144 +0100
+@@ -5067,13 +5067,13 @@
+
+
+ if test "x$enable_debug" = "x1" ; then
+- CFLAGS="-g -Wall -O2 -DDEBUG -I$x_includes"
++ CFLAGS="-g -Wall -O2 -DDEBUG"
+ CXXFLAGS=$CFLAGS
+- LDFLAGS="-g -L$x_libraries"
++ LDFLAGS="-g"
+ else
+- CFLAGS="-Wall -O2 -I$x_includes"
++ CFLAGS="-Wall -O2"
+ CXXFLAGS=$CFLAGS
+- LDFLAGS="-L$x_libraries"
++ LDFLAGS=""
+ fi
+
+ if test "x$enable_mdk_patch" = "x1" ; then
+@@ -5085,6 +5085,7 @@
+
+ if test "$bdbinc" = "NONE"; then
+ bdb_include_dirs="\
++ /usr/include/db4.1 \
+ /usr/include/db4 \
+ /usr/include/db3 \
+ /usr/local/include \
+diff -uNr xsim-0.3.9.4.orig/plugins/IMs/jianpin/pyphraser.cpp xsim-0.3.9.4/plugins/IMs/jianpin/pyphraser.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/jianpin/pyphraser.cpp 2002-09-29 05:03:29.000000000 +0200
++++ xsim-0.3.9.4/plugins/IMs/jianpin/pyphraser.cpp 2005-01-27 15:42:06.553514560 +0100
+@@ -16,6 +16,8 @@
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
++#include <cassert>
++
+ #include "wstring.h"
+ #include "pyphraser.h"
+ #include "simpleimc.h"
+diff -uNr xsim-0.3.9.4.orig/plugins/IMs/jianpin/simpleim.cpp xsim-0.3.9.4/plugins/IMs/jianpin/simpleim.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/jianpin/simpleim.cpp 2002-10-22 11:42:51.000000000 +0200
++++ xsim-0.3.9.4/plugins/IMs/jianpin/simpleim.cpp 2005-01-27 15:38:13.771902744 +0100
+@@ -15,6 +15,8 @@
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
++#include <cassert>
++
+ #include <X11/keysym.h>
+
+ #include "simpleim.h"
+diff -uNr xsim-0.3.9.4.orig/plugins/IMs/wubi/wubiim.cpp xsim-0.3.9.4/plugins/IMs/wubi/wubiim.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/wubi/wubiim.cpp 2002-10-22 11:22:13.000000000 +0200
++++ xsim-0.3.9.4/plugins/IMs/wubi/wubiim.cpp 2005-01-27 16:06:29.427123968 +0100
+@@ -16,6 +16,8 @@
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
++#include <cassert>
++
+ #include <X11/keysym.h>
+
+ #include "wubiim.h"
+diff -uNr xsim-0.3.9.4.orig/xsim/im.cpp xsim-0.3.9.4/xsim/im.cpp
+--- xsim-0.3.9.4.orig/xsim/im.cpp 2002-09-17 09:55:26.000000000 +0200
++++ xsim-0.3.9.4/xsim/im.cpp 2005-01-27 16:07:52.252532592 +0100
+@@ -16,6 +16,8 @@
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
++#include <cassert>
++
+ #include <dlfcn.h>
+
+ #include "im.h"
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-eof.patch b/app-i18n/xsim/files/xsim-0.3.9.4-eof.patch
new file mode 100644
index 000000000000..3982bf2703c9
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-eof.patch
@@ -0,0 +1,92 @@
+diff --git a/plugins/IMs/jianpin/dict/char2db.cpp b/plugins/IMs/jianpin/dict/char2db.cpp
+index f36dda9..fb17c6e 100644
+--- a/plugins/IMs/jianpin/dict/char2db.cpp
++++ b/plugins/IMs/jianpin/dict/char2db.cpp
+@@ -166,6 +166,8 @@ int main(int argc, char * argv[])
+ int i = 0;
+ for (;;){
+ in >> mark;
++ if (in.eof())
++ break;
+ in.unget();
+ if (mark == '%'){ //for comments
+ in.getline(dummy, 255);
+@@ -175,9 +177,6 @@ int main(int argc, char * argv[])
+ }
+ in >> ckey.py >> c;
+
+- if (in.eof())
+- break;
+-
+ if (strlen(c) != 2){
+ cout << "error on line: " << i << endl;
+ exit(1);
+diff --git a/plugins/IMs/jianpin/dict/word2db.cpp b/plugins/IMs/jianpin/dict/word2db.cpp
+index 6b6b8e0..f9a6d0b 100644
+--- a/plugins/IMs/jianpin/dict/word2db.cpp
++++ b/plugins/IMs/jianpin/dict/word2db.cpp
+@@ -103,6 +103,8 @@ int main(int argc, char * argv[])
+ rec.access_count = MAX_ACCESS_COUNT;
+ for (;;){
+ in >> mark;
++ if (in.eof())
++ break;
+ in.unget();
+ if (mark == '%'){ //for comments
+ in.getline(wk.py, sizeof(wk.py));
+@@ -113,9 +115,6 @@ int main(int argc, char * argv[])
+
+ in >> w >> wk.py;
+
+- if (in.eof())
+- break;
+-
+ if ((wk.py[0] < 'a') || (wk.py[0] > 'z')){
+ cerr << " error on line:" << i << endl;
+ db.close(0);
+diff --git a/plugins/IMs/table/dict/word2db.cpp b/plugins/IMs/table/dict/word2db.cpp
+index aa19a60..f0368ce 100644
+--- a/plugins/IMs/table/dict/word2db.cpp
++++ b/plugins/IMs/table/dict/word2db.cpp
+@@ -112,6 +112,8 @@ int main(int argc, char * argv[])
+ for (;;){
+ j++;
+ in >> mark;
++ if (in.eof())
++ break;
+ in.unget();
+ if ((mark == '%') || (mark == '#')){ //for comments
+ in.getline((char *)wbuf, 1000);
+@@ -123,9 +125,6 @@ int main(int argc, char * argv[])
+
+ in >> wk.key >> w;
+
+- if (in.eof())
+- break;
+-
+ if ((wk.key[0] < 'a') || (wk.key[0] > 'z')){
+ //cerr << " error on line:" << j << endl;
+ errcnt ++;
+diff --git a/plugins/IMs/wubi/dict/word2db.cpp b/plugins/IMs/wubi/dict/word2db.cpp
+index a1df52b..3fe1e3e 100644
+--- a/plugins/IMs/wubi/dict/word2db.cpp
++++ b/plugins/IMs/wubi/dict/word2db.cpp
+@@ -103,6 +103,8 @@ int main(int argc, char * argv[])
+ for (;;){
+ j++;
+ in >> mark;
++ if (in.eof())
++ break;
+ in.unget();
+ if (mark == '%'){ //for comments
+ in.getline(wk.key, sizeof(wk.key));
+@@ -114,9 +116,6 @@ int main(int argc, char * argv[])
+
+ in >> wk.key >> w;
+
+- if (in.eof())
+- break;
+-
+ if ((wk.key[0] < 'a') || (wk.key[0] > 'z')){
+ //cerr << " error on line:" << j << endl;
+ errcnt ++;
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-gcc-3.4.patch b/app-i18n/xsim/files/xsim-0.3.9.4-gcc-3.4.patch
new file mode 100644
index 000000000000..0464d47dad08
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-gcc-3.4.patch
@@ -0,0 +1,116 @@
+diff --git a/plugins/IMs/jianpin/dict/char2db.cpp b/plugins/IMs/jianpin/dict/char2db.cpp
+index d881f20..e4ddbab 100644
+--- a/plugins/IMs/jianpin/dict/char2db.cpp
++++ b/plugins/IMs/jianpin/dict/char2db.cpp
+@@ -74,11 +74,7 @@ void build_freq_tab(char * filename)
+ {
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ f.open(filename, ios_base::in);
+-#else
+- f.open(filename, "r");
+-#endif
+ istream in(&f);
+
+ char cbuf[10];
+@@ -154,11 +150,7 @@ int main(int argc, char * argv[])
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ f.open(argv[1], ios_base::in);
+-#else
+- f.open(argv[1], "r");
+-#endif
+ istream in(&f);
+
+ char mark;
+diff --git a/plugins/IMs/jianpin/dict/word2db.cpp b/plugins/IMs/jianpin/dict/word2db.cpp
+index 806f6c4..5baa630 100644
+--- a/plugins/IMs/jianpin/dict/word2db.cpp
++++ b/plugins/IMs/jianpin/dict/word2db.cpp
+@@ -83,11 +83,7 @@ int main(int argc, char * argv[])
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ f.open(argv[1], ios_base::in);
+-#else
+- f.open(argv[1], "r");
+-#endif
+ istream in(&f);
+
+ char mark;
+diff --git a/plugins/IMs/table/dict/word2db.cpp b/plugins/IMs/table/dict/word2db.cpp
+index 17d0dcf..275ee61 100644
+--- a/plugins/IMs/table/dict/word2db.cpp
++++ b/plugins/IMs/table/dict/word2db.cpp
+@@ -90,11 +90,7 @@ int main(int argc, char * argv[])
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ f.open(argv[1], ios_base::in);
+-#else
+- f.open(argv[1], "r");
+-#endif
+ istream in(&f);
+
+ char mark;
+diff --git a/plugins/IMs/wubi/dict/word2db.cpp b/plugins/IMs/wubi/dict/word2db.cpp
+index 0dbc7e4..e191aa8 100644
+--- a/plugins/IMs/wubi/dict/word2db.cpp
++++ b/plugins/IMs/wubi/dict/word2db.cpp
+@@ -81,11 +81,7 @@ int main(int argc, char * argv[])
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ f.open(argv[1], ios_base::in);
+-#else
+- f.open(argv[1], "r");
+-#endif
+ istream in(&f);
+
+ char mark;
+diff --git a/xsim/conf.cpp b/xsim/conf.cpp
+index a073bb2..a2bffb0 100644
+--- a/xsim/conf.cpp
++++ b/xsim/conf.cpp
+@@ -133,11 +133,7 @@ int TConf::init()
+ filebuf f;
+
+ char dummy[MAX_PATH_LEN + 1];
+-#ifdef _CPP_BITS_IOSBASE_H
+ if (!f.open(config_path.tombs(dummy, MAX_PATH_LEN), ios_base::in)){
+-#else
+- if (!f.open(config_path.tombs(dummy, MAX_PATH_LEN), "r")){
+-#endif
+ cerr << "XSIM: failed opening config file" << endl;
+ return 1;
+ }
+@@ -340,11 +336,7 @@ void TConf::save_config(const wchar_t * configname, vector<TWstring> & name, vec
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ if (f.open(path.tombs(dummy, MAX_PATH_LEN), ios_base::out)){
+-#else
+- if (f.open(path.tombs(dummy, MAX_PATH_LEN), "w")){
+-#endif
+ ostream out(&f);
+ for (size_t i = 0; i < name.size(); i++){
+ out << name[i].tombs(dummy, MAX_PATH_LEN) << '\t';
+@@ -372,11 +364,7 @@ int TConf::load_config(const wchar_t * configname, vector<TWstring> & name, vect
+
+ filebuf f;
+
+-#ifdef _CPP_BITS_IOSBASE_H
+ if (f.open(path.tombs(dummy, MAX_PATH_LEN), ios_base::in)){
+-#else
+- if (f.open(path.tombs(dummy, MAX_PATH_LEN), "r")){
+-#endif
+ istream in(&f);
+ char n[MAX_PATH_LEN + 1];
+ char v[MAX_PATH_LEN + 1];
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-gcc-4.3.patch b/app-i18n/xsim/files/xsim-0.3.9.4-gcc-4.3.patch
new file mode 100644
index 000000000000..f6df247b03ef
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-gcc-4.3.patch
@@ -0,0 +1,44 @@
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/jianpin/dict/char2db.cpp xsim-0.3.9.4/plugins/IMs/jianpin/dict/char2db.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/jianpin/dict/char2db.cpp 2002-09-23 13:22:39.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/jianpin/dict/char2db.cpp 2008-09-09 18:56:56.000000000 +0900
+@@ -21,6 +21,7 @@
+ #include <clocale>
+ #include <vector>
+ #include <fstream>
++#include <cstdlib>
+
+ #include <db_cxx.h>
+
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/jianpin/dict/word2db.cpp xsim-0.3.9.4/plugins/IMs/jianpin/dict/word2db.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/jianpin/dict/word2db.cpp 2002-09-23 13:24:17.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/jianpin/dict/word2db.cpp 2008-09-09 18:59:33.000000000 +0900
+@@ -21,6 +21,7 @@
+ #include <string>
+ #include <db_cxx.h>
+ #include <locale.h>
++#include <cstdlib>
+
+ #include "../simpleimc.h"
+
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/table/dict/word2db.cpp xsim-0.3.9.4/plugins/IMs/table/dict/word2db.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/table/dict/word2db.cpp 2002-09-23 13:34:06.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/table/dict/word2db.cpp 2008-09-09 23:52:31.000000000 +0900
+@@ -21,6 +21,7 @@
+ #include <string>
+ #include <db_cxx.h>
+ #include <clocale>
++#include <cstdlib>
+
+ #include "../tableimc.h"
+
+diff -Naur xsim-0.3.9.4.orig/plugins/IMs/wubi/dict/word2db.cpp xsim-0.3.9.4/plugins/IMs/wubi/dict/word2db.cpp
+--- xsim-0.3.9.4.orig/plugins/IMs/wubi/dict/word2db.cpp 2002-09-23 13:28:45.000000000 +0900
++++ xsim-0.3.9.4/plugins/IMs/wubi/dict/word2db.cpp 2008-09-09 23:19:27.000000000 +0900
+@@ -21,6 +21,7 @@
+ #include <string>
+ #include <db_cxx.h>
+ #include <locale.h>
++#include <cstdlib>
+
+ #include "../wubiimc.h"
+
diff --git a/app-i18n/xsim/files/xsim-0.3.9.4-makefile.patch b/app-i18n/xsim/files/xsim-0.3.9.4-makefile.patch
new file mode 100644
index 000000000000..8488d1bf135b
--- /dev/null
+++ b/app-i18n/xsim/files/xsim-0.3.9.4-makefile.patch
@@ -0,0 +1,153 @@
+diff --git a/Makefile.in b/Makefile.in
+index 6a7a195..6d2b4e6 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -36,7 +36,7 @@ distclean: clean
+ done && test -z "$$fail"
+
+ install-data:
+- cd plugins/IMs;make install-data
++ cd plugins/IMs;$(MAKE) install-data
+
+ uninstall:
+ @for dir in ${subdirs}; do \
+diff --git a/plugins/IMs/jianpin/Makefile.in b/plugins/IMs/jianpin/Makefile.in
+index cbbac33..50d7ef0 100644
+--- a/plugins/IMs/jianpin/Makefile.in
++++ b/plugins/IMs/jianpin/Makefile.in
+@@ -25,7 +25,7 @@ OBJS=simpleim.o simpleimc.o pyphraser.o
+ TARGET=jianpin.so
+
+ all:$(TARGET)
+- cd dict; make
++ cd dict; $(MAKE)
+
+ jianpin.so:$(OBJS)
+ $(LD_SHAREEXE) -shared -o $(TARGET) $(OBJS) $(LDFLAGS) -L$(bdblibs) $(LIBS) -l$(bdblib) $(gcclib)
+@@ -41,20 +41,20 @@ pyphraser.o:pyphraser.cpp pyphraser.h simpleimc.h $(include_path)wstring.h
+
+ clean:
+ rm -f *.o $(TARGET) core *~ *.bak
+- cd dict; make clean
++ cd dict; $(MAKE) clean
+
+ distclean:clean
+ rm -rf Makefile
+- cd dict; make distclean
++ cd dict; $(MAKE) distclean
+
+ install:all
+ $(topdir)/mkinstalldirs $(xsim_libp)
+ cp -f $(TARGET) $(xsim_libp)
+- cd dict; make install
++ cd dict; $(MAKE) install
+
+ install-data:
+- cd dict;make install-data
++ cd dict;$(MAKE) install-data
+
+ uninstall:
+ cd $(xsim_libp); rm -f $(TARGET)
+- cd dict;make uninstall
++ cd dict;$(MAKE) uninstall
+diff --git a/plugins/IMs/table/Makefile.in b/plugins/IMs/table/Makefile.in
+index a747560..cbc67bc 100644
+--- a/plugins/IMs/table/Makefile.in
++++ b/plugins/IMs/table/Makefile.in
+@@ -25,7 +25,7 @@ OBJS=tableim.o tableimc.o
+ TARGET=table.so
+
+ all:$(TARGET)
+- cd dict; make
++ cd dict; $(MAKE)
+
+ $(TARGET):$(OBJS)
+ $(LD_SHAREEXE) -shared -o $(TARGET) $(OBJS) $(LDFLAGS) -L$(bdblibs) $(LIBS) -l$(bdblib) $(gcclib)
+@@ -38,20 +38,20 @@ tableimc.o:tableimc.h tableimc.cpp $(include_path)wstring.h $(include_path)imc.h
+
+ clean:
+ rm -f *.o $(TARGET) core *~ *.bak
+- cd dict; make clean
++ cd dict; $(MAKE) clean
+
+ distclean:clean
+ rm -rf Makefile
+- cd dict; make distclean
++ cd dict; $(MAKE) distclean
+
+ install:all
+ $(topdir)/mkinstalldirs $(xsim_libp)
+ cp -f $(TARGET) $(xsim_libp)
+- cd dict; make install
++ cd dict; $(MAKE) install
+
+ install-data:
+- cd dict;make install-data
++ cd dict;$(MAKE) install-data
+
+ uninstall:
+ cd $(xsim_libp); rm -f $(TARGET)
+- cd dict; make uninstall
++ cd dict; $(MAKE) uninstall
+diff --git a/plugins/IMs/wubi/Makefile.in b/plugins/IMs/wubi/Makefile.in
+index 031f1a7..c3d0f88 100644
+--- a/plugins/IMs/wubi/Makefile.in
++++ b/plugins/IMs/wubi/Makefile.in
+@@ -25,7 +25,7 @@ OBJS=wubiim.o wubiimc.o
+ TARGET=wubi.so
+
+ all:$(TARGET)
+- cd dict; make
++ cd dict; $(MAKE)
+
+ $(TARGET):$(OBJS)
+ $(LD_SHAREEXE) -shared -o $(TARGET) $(OBJS) $(LDFLAGS) -L$(bdblibs) $(LIBS) -l$(bdblib) $(gcclib)
+@@ -38,20 +38,20 @@ wubiimc.o:wubiimc.h wubiimc.cpp $(include_path)wstring.h $(include_path)imc.h
+
+ clean:
+ rm -f *.o $(TARGET) core *~ *.bak
+- cd dict; make clean
++ cd dict; $(MAKE) clean
+
+ distclean:clean
+ rm -rf Makefile
+- cd dict; make distclean
++ cd dict; $(MAKE) distclean
+
+ install:all
+ $(topdir)/mkinstalldirs $(xsim_libp)
+ cp -f $(TARGET) $(xsim_libp)
+- cd dict; make install
++ cd dict; $(MAKE) install
+
+ install-data:
+- cd dict;make install-data
++ cd dict;$(MAKE) install-data
+
+ uninstall:
+ cd $(xsim_libp); rm -f $(TARGET)
+- cd dict; make uninstall
++ cd dict; $(MAKE) uninstall
+diff --git a/xsim/Makefile.in b/xsim/Makefile.in
+index d618a2c..bbe1599 100644
+--- a/xsim/Makefile.in
++++ b/xsim/Makefile.in
+@@ -58,15 +58,15 @@ wstring.o:wstring.h wstring.cpp
+ $(CXX) -c wstring.cpp $(CXXFLAGS) -I./IMdkit
+
+ IMdkit/libXimd.a:
+- cd IMdkit;make
++ cd IMdkit;$(MAKE)
+
+ clean:
+ rm -f *.o xsim core *~ *.bak
+- cd IMdkit; make clean
++ cd IMdkit; $(MAKE) clean
+
+ distclean:clean
+ rm -rf Makefile tags
+- cd IMdkit; make distclean
++ cd IMdkit; $(MAKE) distclean
+
+ install:all
+ $(topdir)/mkinstalldirs $(xsim_binp)
diff --git a/app-i18n/xsim/metadata.xml b/app-i18n/xsim/metadata.xml
new file mode 100644
index 000000000000..cb36a2fd8c76
--- /dev/null
+++ b/app-i18n/xsim/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cjk</herd>
+</pkgmetadata>
diff --git a/app-i18n/xsim/xsim-0.3.9.4-r5.ebuild b/app-i18n/xsim/xsim-0.3.9.4-r5.ebuild
new file mode 100644
index 000000000000..bcb48b6d9279
--- /dev/null
+++ b/app-i18n/xsim/xsim-0.3.9.4-r5.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit db-use eutils flag-o-matic multilib
+
+DESCRIPTION="A simple and fast GB and BIG5 Chinese XIM server"
+HOMEPAGE="http://developer.berlios.de/projects/xsim/"
+SRC_URI="mirror://berlios/xsim/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug"
+
+RDEPEND=">=sys-libs/db-4.1
+ x11-libs/libX11
+ x11-libs/libXt"
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4"
+
+src_prepare() {
+ local dbver
+
+ epatch "${FILESDIR}"/${P}-compile-fix.patch
+ epatch "${FILESDIR}"/${P}-gcc-3.4.patch
+ epatch "${FILESDIR}"/${P}-64bit.patch
+ # bug 227117
+ epatch "${FILESDIR}"/${P}-gcc-4.3.patch
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ epatch "${FILESDIR}"/${P}-eof.patch
+
+ append-cppflags -DPIC
+ append-flags -fPIC -fno-strict-aliasing
+
+ dbver="$(db_findver sys-libs/db)"
+ sed -i -e "s/\(CFLAGS.*\)-O2/\1${CFLAGS}/" \
+ -e "s/LDFLAGS=\"/LDFLAGS=\"${LDFLAGS} /" \
+ -e "s/libdb_cxx.so/libdb_cxx-${dbver}.so/" \
+ -e "s/bdblib=\"db_cxx\"/bdblib=\"db_cxx-${dbver}\"/" configure* || die
+
+ find . -name '*.in' | xargs sed -i \
+ -e "s#\(@prefix@/\)\(dat\|plugins\)#\1$(get_libdir)/xsim/\2#" \
+ -e "s#@prefix@/etc#/etc#" || die
+}
+
+src_configure() {
+ local myconf=""
+
+ use debug && myconf="--enable-debug"
+
+ econf \
+ --with-bdb-includes=$(db_includedir) \
+ --without-qt3 \
+ --without-kde3 \
+ ${myconf}
+}
+
+src_install() {
+ emake \
+ xsim_datp="${D}"/usr/$(get_libdir)/xsim/dat \
+ xsim_libp="${D}"usr/$(get_libdir)/xsim/plugins \
+ xsim_binp="${D}"/usr/bin \
+ xsim_etcp="${D}"/etc \
+ install install-data
+
+ dodoc ChangeLog KNOWNBUG README* TODO
+}
+
+pkg_postinst() {
+ elog "XSIM needs write access to /usr/$(get_libdir)/xsim/dat/chardb, so if you"
+ elog "not running it as root, you need to do the following:"
+ elog
+ elog " cp -r /usr/$(get_libdir)/xsim/dat \${HOME}/.xsim"
+ elog " sed -i \"s#DICT_LOCAL.*#DICT_LOCAL \${HOME}/.xsim#\" > \${HOME}/.xsim/xsimrc"
+ echo
+}