summaryrefslogtreecommitdiff
path: root/app-i18n/zhcon
diff options
context:
space:
mode:
Diffstat (limited to 'app-i18n/zhcon')
-rw-r--r--app-i18n/zhcon/Manifest12
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6+gcc-4.3.patch185
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6+linux-headers-2.6.26.patch18
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch77
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6-automagic-fix.patch36
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6-curses.patch22
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6.configure.in.patch11
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6.make-fix.patch82
-rw-r--r--app-i18n/zhcon/files/zhcon-0.2.6.sysconfdir.patch24
-rw-r--r--app-i18n/zhcon/metadata.xml16
-rw-r--r--app-i18n/zhcon/zhcon-0.2.6-r3.ebuild57
11 files changed, 540 insertions, 0 deletions
diff --git a/app-i18n/zhcon/Manifest b/app-i18n/zhcon/Manifest
new file mode 100644
index 000000000000..8870a37ba72f
--- /dev/null
+++ b/app-i18n/zhcon/Manifest
@@ -0,0 +1,12 @@
+AUX zhcon-0.2.6+gcc-4.3.patch 5808 BLAKE2B 2e0087dd58f52d490df4d064792e22cdc40eb2ceed82989d914e34e1b86aa5a76b20666990b46ffdc190b600475b1310b03bb5e27ba8139558223fa306b5f52a SHA512 f8bc5a21ec505494fa104c16ed1057a73b0da3be060b381a1ba8ad29d470dbb8e9361714821eb9ec19ae8898b77a7c9855ca163daf632c2e3bad90aa3c7239cb
+AUX zhcon-0.2.6+linux-headers-2.6.26.patch 527 BLAKE2B f7f0cd2a975861489dbbf4410859dbab197e72ff2c1f521c58cd7cc981c46e3ee2bd4ae67c6898fc7509e23d21e544312fe368ef4982a95f5e7b2ea33065e9c2 SHA512 2800b14b46341afdaf2e8d555232a78583415de168ba1fef32205a73b32fa838fcdb1a99f6d389b2d5df87c9d5d764fe44eba7e70d5164521e3ac65977de553c
+AUX zhcon-0.2.6-amd64.patch 2760 BLAKE2B eab6f9885400c0282d71cc19970ded49d93fe8c0694a6dec18266fed69ad4acf19b057f159c7f5af2e2eae1a8773cf8ab6edb1217f36735588f86bc8a987ac93 SHA512 4c2a398b78b3026ddfb6a2a77308bb1a78cae51eff0691d42ff7c849a266414c74033f8ce6b6bf211a7ab6dcf39d94dffc96e27dd4e9604629a70f7a65bd907a
+AUX zhcon-0.2.6-automagic-fix.patch 1363 BLAKE2B 6b03a2dd0c91953e75a11685ea0726375a3a972168f62f9beda0ea1839b875b1efdf5313c5b7d26cc3213ee6e5f6c0660a659b0d964101cead275759974b9db9 SHA512 c88b2d15e8a9f47de46d6cd5e0ac6a0e5bbeaa45ffb39a91d9067fc3f730019ac753e8517e2636994b5ab5bc44c1bd081246b0700ecff61b3dab45caba0d3226
+AUX zhcon-0.2.6-curses.patch 694 BLAKE2B 681ad2b8314ce379ccb0ad77123cf168da41656dde31e88e1fc746557e59220645f262a62e8abfd3088c77888f0aa8fb877db7b0eba6e81f5b4299611bb38c8c SHA512 245b60dd255cff47d70cd1d4dea7b816fcbc668cfa74d5642bb9689e3f819667e76b8336ec3c746d34a3c744d2a6c1d88b32b73f20e41e1f5c830524e158c265
+AUX zhcon-0.2.6.configure.in.patch 379 BLAKE2B b87b5e6f61890d058c77eb5d578ec9db6cfc7c66ac2b599bcaef8246da118b63013b4ce918c6ffc996ca41da5d80af2db974b7ef5165b593ce7e15da947af234 SHA512 8d226fb01707b37bc5accd44fad01cf028ccfd4c9d826f4056700c9291b3f544333f80f716da4834dae5e32a6a17bdd1c7913635e14eb10764716a45b91229d6
+AUX zhcon-0.2.6.make-fix.patch 3071 BLAKE2B 527083f2fbe91ffeccdb6b6130f68d32e09e0d3b3738fac0e5626eba886a7f325836305df6ffb6f206d05f220c342b945cab2d442f3165de77e77ea66584dba9 SHA512 25ac39954f69c251ea1587f580879ca1e38502997b1b7313ef43a84d8626811c5b74e1a0065fec94f4c5acf378ee4495cb41c3ff3a902bd73973f15239c593a8
+AUX zhcon-0.2.6.sysconfdir.patch 779 BLAKE2B 869a6fe3bcf632d0c29eb37145dc516fde1bc01066dd3d657b38fa91a355f613b23326653ee7bf06a368cd7fd6fe8012b70fceb0a805f9699910a1b6ad5b241b SHA512 8996e04f6cb7ba7fa1b548fa47ab3463a76aa690e59fce1614986dbf73d3569eea479c5c764e84f6994a6b6795c4fcf29f9018a3b5cee2ec075677f909de4e11
+DIST zhcon-0.2.5-to-0.2.6.diff.gz 2881 BLAKE2B eb7b3bc38ae77c7a0add2a0693822fb34a7721ec4224a5be6fc533f0c69878a66c123a12b2d38a09ab1a3360f3d1e0658ccaf35e138d102748675cd60f81df21 SHA512 c4725e600cde5a629735506c8eaa3b78df4606cd2745891a21c4f25889cff10b6fe4cbeb3cf60b85ad62ed0e46c8e7bbb802b7675f79f3a1d82f6942c393d4ad
+DIST zhcon-0.2.5.tar.gz 5011644 BLAKE2B 326add20cac0bab31c4a34a0261374f2daf8db84f0fafd774c3498c4ba42275a6258bac0b74447626e691c1e86bcd6e0a6408cb8d6af5c1ff2a8912b5dc3d411 SHA512 35f1517b649e5afe3156eb1aa7735f3d3a988fad08c433b8f343df6ba3fdef89493afe61488a76059e4bfa1db4455d21d0bde7041bab37eb50e5ab0b622218fa
+EBUILD zhcon-0.2.6-r3.ebuild 1296 BLAKE2B f75f9fb5c44f4c68ccb783712b7c85e83065055812d2093cbf4fec41dbea50074048e7f6f0ef6c235333259478b6f5a4b46bed137d2dcec5425c13e8cbf9a7a8 SHA512 7c77d58404379cb4d46429d53b6bc66c494b57035bbeb3cd8c4ceb96e2e5164fd6b4762005fe8c72e1a98cfca6072f0dc9e3f93f14a8c4f66be1d5f4cca4322f
+MISC metadata.xml 620 BLAKE2B 2d07a1bd4880b59a4d6c76325ffe19ebaeacb2943797f5afeeb25ce7521d1ca406d3367496a0ebcf0235bcdd54d6e68bbb2196dd24f926877a00a0ce1313aec5 SHA512 f67cb7edc94c9d26bf5b7e89d9a02333aec62d8dce387b2449c1879f93a56654a12292b92be63936615ca916452a0d19d62bee984e2462fb939a0fe98e2e7c84
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6+gcc-4.3.patch b/app-i18n/zhcon/files/zhcon-0.2.6+gcc-4.3.patch
new file mode 100644
index 000000000000..beece66b1da8
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6+gcc-4.3.patch
@@ -0,0 +1,185 @@
+diff -NrU5 zhcon-0.2.6.orig/src/basefont.cpp zhcon-0.2.6/src/basefont.cpp
+--- zhcon-0.2.6.orig/src/basefont.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/basefont.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -27,10 +27,12 @@
+ #include "global.h"
+ #include "debug.h"
+ #include "hzdecoder.h"
+ #include "basefont.h"
+
++#include <cstring>
++
+ BaseFont::BaseFont(string & fn, int w, int h)
+ :mFd(0)
+ ,mpBuf(0)
+ ,mWidth(w)
+ ,mHeight(h) {
+diff -NrU5 zhcon-0.2.6.orig/src/display/fblinear4.cpp zhcon-0.2.6/src/display/fblinear4.cpp
+--- zhcon-0.2.6.orig/src/display/fblinear4.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/display/fblinear4.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -20,10 +20,12 @@
+ #include <assert.h>
+ #include <endian.h>
+ #include "global.h"
+ #include "fblinear4.h"
+
++#include <cstring>
++
+ __u16 FBLinear4::nibbletab_cfb4[] = {
+ #if BYTE_ORDER == LITTLE_ENDIAN
+ 0x0000,0xf000,0x0f00,0xff00,
+ 0x00f0,0xf0f0,0x0ff0,0xfff0,
+ 0x000f,0xf00f,0x0f0f,0xff0f,
+diff -NrU5 zhcon-0.2.6.orig/src/display/fblinear8.cpp zhcon-0.2.6/src/display/fblinear8.cpp
+--- zhcon-0.2.6.orig/src/display/fblinear8.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/display/fblinear8.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -20,10 +20,12 @@
+ #include <assert.h>
+ #include <endian.h>
+ #include "global.h"
+ #include "fblinear8.h"
+
++#include <cstring>
++
+ __u32 FBLinear8::nibbletab_cfb8[] = {
+ #if BYTE_ORDER == LITTLE_ENDIAN
+ 0x00000000,0xff000000,0x00ff0000,0xffff0000,
+ 0x0000ff00,0xff00ff00,0x00ffff00,0xffffff00,
+ 0x000000ff,0xff0000ff,0x00ff00ff,0xffff00ff,
+diff -NrU5 zhcon-0.2.6.orig/src/display/fbvgaplanes.cpp zhcon-0.2.6/src/display/fbvgaplanes.cpp
+--- zhcon-0.2.6.orig/src/display/fbvgaplanes.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/display/fbvgaplanes.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -36,10 +36,12 @@
+ : "a" ((char) value),
+ "d" ((unsigned short) port));
+ }
+ #endif
+
++#include <cstring>
++
+ /* based on kernel
+ * Force strict CPU ordering.
+ * And yes, this is required on UP too when we're talking
+ * to devices.
+ *
+diff -NrU5 zhcon-0.2.6.orig/src/display/vgadev.cpp zhcon-0.2.6/src/display/vgadev.cpp
+--- zhcon-0.2.6.orig/src/display/vgadev.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/display/vgadev.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -35,10 +35,12 @@
+ #include <cassert>
+ #include "debug.h"
+ #include "vgadev.h"
+ #include "lrmi.h"
+
++#include <cstring>
++
+ #define GRAPH_BASE 0xA0000
+ #define GRAPH_ADDR 0x3ce
+ #define GRAPH_DATA 0x3cf
+
+ char *VGADev::mpBuf = NULL;
+diff -NrU5 zhcon-0.2.6.orig/src/graphdev.cpp zhcon-0.2.6/src/graphdev.cpp
+--- zhcon-0.2.6.orig/src/graphdev.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/graphdev.cpp 2008-04-29 23:16:14.000000000 +0200
+@@ -24,20 +24,23 @@
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <assert.h>
+ #include <iostream>
++#include <cstdlib>
+ #include "debug.h"
+
+ #include "display/fbdev.h"
+ #include "display/vgadev.h"
+ #if defined(linux) || defined(__FreeBSD__)
+ #ifdef HAVE_GGI_LIB
+ #include "display/libggi.h"
+ #endif
+ #endif
+
++#include <cstring>
++
+ using namespace std;
+ // mmap framebuffer address
+ GraphDev *GraphDev::mpGraphDev = NULL;
+
+ // font
+diff -NrU5 zhcon-0.2.6.orig/src/inputclient.cpp zhcon-0.2.6/src/inputclient.cpp
+--- zhcon-0.2.6.orig/src/inputclient.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/inputclient.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -14,10 +14,12 @@
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
++#include <cstdlib>
++
+ #include "inputclient.h"
+
+ Console* InputClient::mpCon = NULL;
+ InputClient::InputClient()
+ : mVisible(false),
+diff -NrU5 zhcon-0.2.6.orig/src/inputmanager.cpp zhcon-0.2.6/src/inputmanager.cpp
+--- zhcon-0.2.6.orig/src/inputmanager.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/inputmanager.cpp 2008-04-29 23:19:01.000000000 +0200
+@@ -22,10 +22,11 @@
+ using namespace std;
+
+ #include <unistd.h>
+ #include <sys/time.h>
+ #include <string>
++#include <cstdlib>
+
+ #include "global.h"
+ #include "debug.h"
+ #include "keymap.h"
+ #include "console.h"
+diff -NrU5 zhcon-0.2.6.orig/src/inputmanager.h zhcon-0.2.6/src/inputmanager.h
+--- zhcon-0.2.6.orig/src/inputmanager.h 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/inputmanager.h 2008-04-29 23:15:37.000000000 +0200
+@@ -24,10 +24,11 @@
+ *@author ejoy
+ */
+ using namespace std;
+ #include <cassert>
+ #include <vector>
++#include <sys/types.h>
+
+ #include "mouse.h"
+ #if defined(__FreeBSD__)
+ #include <sys/kbio.h>
+ #endif
+diff -NrU5 zhcon-0.2.6.orig/src/window.cpp zhcon-0.2.6/src/window.cpp
+--- zhcon-0.2.6.orig/src/window.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/window.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -22,10 +22,12 @@
+ #include <algorithm>
+ #include "global.h"
+ #include "debug.h"
+ #include "window.h"
+
++#include <cstring>
++
+ //static members for all the windows
+ Window* Window::mpConsole = NULL;
+ char* Window::mpOverlaps = NULL;
+
+ Window::Window(int x1, int y1, int x2, int y2, int type)
+diff -NrU5 zhcon-0.2.6.orig/src/zhcon.cpp zhcon-0.2.6/src/zhcon.cpp
+--- zhcon-0.2.6.orig/src/zhcon.cpp 2008-04-29 23:15:08.000000000 +0200
++++ zhcon-0.2.6/src/zhcon.cpp 2008-04-29 23:15:37.000000000 +0200
+@@ -81,10 +81,12 @@
+ #ifndef NDEBUG
+ #include "debug.h"
+ ofstream debug("debug");
+ #endif
+
++#include <cstring>
++
+ Zhcon* Zhcon::mpZhcon = NULL;
+ int Zhcon::mTtyPid = 0;
+ Zhcon::STATE Zhcon::mState = STOP;
+
+ void Zhcon::SignalVtLeave(int signo) {
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6+linux-headers-2.6.26.patch b/app-i18n/zhcon/files/zhcon-0.2.6+linux-headers-2.6.26.patch
new file mode 100644
index 000000000000..67d5b961a070
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6+linux-headers-2.6.26.patch
@@ -0,0 +1,18 @@
+diff --git a/src/display/lrmi.c b/src/display/lrmi.c
+index 85c6fe6..5c74260 100644
+--- a/src/display/lrmi.c
++++ b/src/display/lrmi.c
+@@ -33,6 +33,13 @@ This software has NO WARRANTY. Use it at your own risk.
+
+ #include "lrmi.h"
+
++#if defined(__linux__) && !defined(TF_MASK)
++ #define TF_MASK X86_EFLAGS_TF
++ #define IF_MASK X86_EFLAGS_IF
++ #define VIF_MASK X86_EFLAGS_VIF
++ #define IOPL_MASK X86_EFLAGS_IOPL
++#endif
++
+ #define REAL_MEM_BASE ((void *)0x10000)
+ #define REAL_MEM_SIZE 0x10000
+ #define REAL_MEM_BLOCKS 0x100
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch b/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch
new file mode 100644
index 000000000000..58da5e99766a
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch
@@ -0,0 +1,77 @@
+diff --git a/src/winime.cpp b/src/winime.cpp
+index 0c52393..85729a3 100644
+--- a/src/winime.cpp
++++ b/src/winime.cpp
+@@ -56,10 +56,10 @@ mCandilistBufLen(0)
+
+ memcpy(&mHead, mpBuf, sizeof(mHead));
+ int len = strlen(mHead.mCodeSet);
+- mpIndex1 = (char **) (mpBuf + sizeof(mHead));
+- mpIndex2 = (char **) (mpBuf + sizeof(mHead) + len * sizeof(char *));
+- mpText = mpBuf + sizeof(mHead) + len * sizeof(char *) +
+- len * len * sizeof(char *);
++ mpIndex1 = (int *) (mpBuf + sizeof(mHead));
++ mpIndex2 = (int *) (mpBuf + sizeof(mHead) + len * sizeof(int));
++ mpText = mpBuf + sizeof(mHead) + len * sizeof(int) +
++ len * len * sizeof(int);
+ }
+
+ WinIme::~WinIme() {
+@@ -246,32 +246,33 @@ int WinIme::Search(char c) {
+ // p = *t;
+ }
+ else
+- p = mpIndex1[Index(c)];
++ p = (char *)mpIndex1[Index(c)];
+
+ if (p == (char *) 0xffffffff)
+ found = false;
+- p = (unsigned int) p + mpText;
++ p = (unsigned long) p + mpText;
+ } //2nd level index
+ else if (mNum == 1) {
+ int l = strlen(mHead.mCodeSet);
+ if (c == mHead.mWildChar) {
+ char **t;
+ t =
+- find_if(mpIndex2 + Index(mInput[0]) * l,
+- mpIndex2 + (Index(mInput[0]) + 1) * l,
++ find_if((char **)(mpIndex2 + Index(mInput[0]) * l),
++ (char **)(mpIndex2 + (Index(mInput[0]) + 1) * l),
+ bind2nd(not_equal_to < char *>(),
+ (char *) 0xffffffff));
+- if (t == mpIndex2 + (Index(mInput[0]) + 1) * l)
++ if (t == ((char **)mpIndex2) + (Index(mInput[0]) + 1) * l)
+ p = (char *) 0xffffffff;
+ else
+ p = *t;
+- } else
+- p = mpIndex2[Index(mInput[0]) * l + Index(c)];
++ } else {
++ int dd = Index(mInput[0]) * l + Index(c);
++ p = (char *)(mpIndex2[Index(mInput[0]) * l + Index(c)]);
++ }
+
+ if (p == (char *) 0xffffffff)
+ found = false;
+-
+- p = (unsigned int) p + mpText;
++ p = (unsigned long) p + mpText;
+ } else if (mNum < mHead.mMaxCodes) {
+ p = mpOffset[mNum - 1];
+ if (p == (char *) 0xffffffff)
+diff --git a/src/winime.h b/src/winime.h
+index c2f51ab..816a270 100644
+--- a/src/winime.h
++++ b/src/winime.h
+@@ -83,8 +83,8 @@ class WinIme {
+ char* mpOffset[12];
+ int mFd;
+ char* mpBuf;
+- char** mpIndex1;
+- char** mpIndex2;
++ int *mpIndex1;
++ int *mpIndex2;
+ char* mpText;
+ char* mpCur; //current search position
+ unsigned int mBufSize;
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6-automagic-fix.patch b/app-i18n/zhcon/files/zhcon-0.2.6-automagic-fix.patch
new file mode 100644
index 000000000000..5b4b24137f1e
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6-automagic-fix.patch
@@ -0,0 +1,36 @@
+--- zhcon-0.2.5.orig/configure.in 2010-01-31 15:12:10.521592172 +0100
++++ zhcon-0.2.5/configure.in 2010-01-31 15:12:33.939593092 +0100
+@@ -170,18 +170,25 @@
+ dnl-----------------------------------------------------------------------
+ dnl Checks for gpm
+ dnl-----------------------------------------------------------------------
+-usegpm="yes"
+-AC_CHECK_HEADERS(gpm.h,,usegpm="no")
+-AC_CHECK_LIB(gpm,Gpm_Open,,usegpm="no")
++AC_ARG_WITH([gpm], AS_HELP_STRING([--without-gpm], [Build without gpm library (default: test)]))
++
++usegpm='no'
++if test "x$with_gpm" != "xno"; then
++ AC_CHECK_HEADERS(gpm.h,,AC_ERROR([gpm.h not found]))
++ AC_CHECK_LIB(gpm,Gpm_Open,,AC_ERROR([libgpm not found]))
++ usegpm='yes'
++fi
+
+ dnl-----------------------------------------------------------------------
+ dnl Checks for libggi
+ dnl-----------------------------------------------------------------------
+-useggi="yes"
+-AC_CHECK_HEADERS(ggi/ggi.h,,useggi="no")
+-AC_CHECK_LIB(ggi, main,,useggi="no")
+-if test "$useggi" = 'yes';then
+- AC_DEFINE(HAVE_GGI_LIB)
++AC_ARG_WITH([ggi], AS_HELP_STRING([--without-ggi], [Build without ggi library (default: test)]))
++
++useggi='no'
++if test "x$with_ggi" != "xno"; then
++ AC_CHECK_HEADERS(ggi/ggi.h,,AC_ERROR([ggi.h not found]))
++ AC_CHECK_LIB(ggi, ggiInit,, AC_ERROR([libggi not found]))
++ useggi='yes'
+ fi
+
+ AC_OUTPUT([Makefile
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6-curses.patch b/app-i18n/zhcon/files/zhcon-0.2.6-curses.patch
new file mode 100644
index 000000000000..200014e1d717
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6-curses.patch
@@ -0,0 +1,22 @@
+diff --git a/configure.in b/configure.in
+index 63172e4..6c2afcc 100644
+--- a/configure.in
++++ b/configure.in
+@@ -132,7 +132,7 @@ fi
+ AC_SUBST(ZHCON_LOCALE_DIR)
+
+ AC_CHECK_LIB(util, forkpty)
+-AC_CHECK_LIB(curses, main)
++AC_SEARCH_LIBS([tgetent], [cursesw curses ncursesw ncurses], [break;])
+
+ dnl for freebsd
+ dnl AC_CHECK_LIB(c, i386_set_ioperm)
+@@ -172,7 +172,7 @@ dnl Checks for gpm
+ dnl-----------------------------------------------------------------------
+ usegpm="yes"
+ AC_CHECK_HEADERS(gpm.h,,usegpm="no")
+-AC_CHECK_LIB(gpm,main,,usegpm="no")
++AC_CHECK_LIB(gpm,Gpm_Open,,usegpm="no")
+
+ dnl-----------------------------------------------------------------------
+ dnl Checks for libggi
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6.configure.in.patch b/app-i18n/zhcon/files/zhcon-0.2.6.configure.in.patch
new file mode 100644
index 000000000000..0624a934e02c
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6.configure.in.patch
@@ -0,0 +1,11 @@
+--- a/configure.in 2006-06-22 13:02:59.197841560 +0800
++++ b/configure.in 2006-06-22 12:48:59.000000000 +0800
+@@ -55,7 +55,7 @@
+
+ CFLAGS="$CFLAGS -funsigned-char -O2"
+ CXXFLAGS="$CXXFLAGS -funsigned-char -O2"
+-if test $enable_debug = 'yes';then
++if test "x$enable_debug" = "xyes";then
+ CFLAGS="$CFLAGS -O0 -g3 -Wall"
+ CXXFLAGS="$CXXFLAGS -O0 -g3 -Wall"
+ else
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6.make-fix.patch b/app-i18n/zhcon/files/zhcon-0.2.6.make-fix.patch
new file mode 100644
index 000000000000..ccde407ef81a
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6.make-fix.patch
@@ -0,0 +1,82 @@
+diff -Naur zhcon-0.2.5.orig/doc/Makefile.am zhcon-0.2.5/doc/Makefile.am
+--- zhcon-0.2.5.orig/doc/Makefile.am 2006-05-03 02:57:18.000000000 +0900
++++ zhcon-0.2.5/doc/Makefile.am 2011-01-25 18:08:26.483746175 +0900
+@@ -3,8 +3,8 @@
+ EXTRA_DIST = zhcon.1.in poem.big5 poem.gb poem.gb.utf8 bpsf.txt manual.tex manual.dvi manual.ps README.html default.css html.tar.gz
+
+ install-data-local:
+- $(mkinstalldirs) $(mandir)/man1/
+- $(INSTALL_DATA) $(top_builddir)/doc/zhcon.1 $(mandir)/man1/zhcon.1
++ $(mkinstalldirs) $(DESTDIR)$(mandir)/man1/
++ $(INSTALL_DATA) $(top_builddir)/doc/zhcon.1 $(DESTDIR)$(mandir)/man1/zhcon.1
+
+ uninstall-local:
+- -rm -f $(mandir)/man1/zhcon.1
++ -rm -f $(DESTDIR)$(mandir)/man1/zhcon.1
+diff -Naur zhcon-0.2.5.orig/font/Makefile.am zhcon-0.2.5/font/Makefile.am
+--- zhcon-0.2.5.orig/font/Makefile.am 2006-04-25 01:39:04.000000000 +0900
++++ zhcon-0.2.5/font/Makefile.am 2011-01-25 18:08:26.483746175 +0900
+@@ -1,8 +1,8 @@
+ EXTRA_DIST = *.bpsf
+
+ install-data-local:
+- $(mkinstalldirs) $(libdir)/zhcon/font/
+- $(INSTALL_DATA) $(srcdir)/*.bpsf $(libdir)/zhcon/font/
++ $(mkinstalldirs) $(DESTDIR)$(libdir)/zhcon/font/
++ $(INSTALL_DATA) $(srcdir)/*.bpsf $(DESTDIR)$(libdir)/zhcon/font/
+
+ uninstall-local:
+- -rm -f $(libdir)/zhcon/font/*.bpsf
++ -rm -f $(DESTDIR)$(libdir)/zhcon/font/*.bpsf
+diff -Naur zhcon-0.2.5.orig/input/Makefile.am zhcon-0.2.5/input/Makefile.am
+--- zhcon-0.2.5.orig/input/Makefile.am 2006-04-25 01:38:44.000000000 +0900
++++ zhcon-0.2.5/input/Makefile.am 2011-01-25 18:08:26.483746175 +0900
+@@ -1,8 +1,8 @@
+ EXTRA_DIST = *.mb
+
+ install-data-local:
+- $(mkinstalldirs) $(libdir)/zhcon/input/
+- $(INSTALL_DATA) $(srcdir)/*.mb $(libdir)/zhcon/input/
++ $(mkinstalldirs) $(DESTDIR)$(libdir)/zhcon/input/
++ $(INSTALL_DATA) $(srcdir)/*.mb $(DESTDIR)$(libdir)/zhcon/input/
+
+ uninstall-local:
+- -rm -f $(libdir)/zhcon/input/*.mb
++ -rm -f $(DESTDIR)$(libdir)/zhcon/input/*.mb
+diff -Naur zhcon-0.2.5.orig/src/Makefile.am zhcon-0.2.5/src/Makefile.am
+--- zhcon-0.2.5.orig/src/Makefile.am 2006-05-03 02:12:41.000000000 +0900
++++ zhcon-0.2.5/src/Makefile.am 2011-01-25 18:11:42.446555911 +0900
+@@ -7,15 +7,12 @@
+
+ SUBDIRS = display
+
+-install-exec-local:
+- chmod 4755 $(bindir)/zhcon
+-
+ install-data-local:
+- $(mkinstalldirs) $(prefix)/etc
+- $(INSTALL_DATA) $(srcdir)/zhcon.conf $(prefix)/etc/zhcon.conf
++ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
++ $(INSTALL_DATA) $(srcdir)/zhcon.conf $(DESTDIR)$(sysconfdir)/zhcon.conf
+
+ uninstall-local:
+- -rm -f $(prefix)/etc/zhcon.conf
++ -rm -f $(DESTDIR)$(sysconfdir)/zhcon.conf
+
+ # set the include path found by configure
+ INCLUDES= $(all_includes)
+diff -Naur zhcon-0.2.5.orig/tools/Makefile.am zhcon-0.2.5/tools/Makefile.am
+--- zhcon-0.2.5.orig/tools/Makefile.am 2006-04-25 01:38:46.000000000 +0900
++++ zhcon-0.2.5/tools/Makefile.am 2011-01-25 18:04:22.701226453 +0900
+@@ -9,11 +9,6 @@
+ #getbpsf_LDADD = -L/usr/X11R6/lib -lX11
+ #getbpsf_CPPFLAGS = -I/usr/X11R6/include
+
+-LDFLAGS=
+-CXXFLAGS=
+-CCFLAGS=
+-LIBS=
+-
+ EXTRA_DIST = README getbpsf.txt gpm-1.19.6-pty.diff\
+ gpm-1.19.6-patched.tar.gz
+
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6.sysconfdir.patch b/app-i18n/zhcon/files/zhcon-0.2.6.sysconfdir.patch
new file mode 100644
index 000000000000..551d656dd6e2
--- /dev/null
+++ b/app-i18n/zhcon/files/zhcon-0.2.6.sysconfdir.patch
@@ -0,0 +1,24 @@
+diff -ruN /src/Makefile.am /tmp/src/Makefile.am
+--- a/src/Makefile.am 2006-06-22 12:35:01.531885552 +0800
++++ b/src/Makefile.am 2006-06-22 12:31:44.000000000 +0800
+@@ -5,6 +5,8 @@
+
+ zhcon_LDADD = display/libdisplay.a
+
++zhcon_CPPFLAGS = -DSYSCONF_DIR=\"${sysconfdir}\"
++
+ SUBDIRS = display
+
+ install-exec-local:
+diff -ruN src/zhcon.cpp /tmp/src/zhcon.cpp
+--- a/src/zhcon.cpp 2006-06-22 12:35:01.398905768 +0800
++++ b/src/zhcon.cpp 2006-06-22 12:32:41.000000000 +0800
+@@ -123,7 +123,7 @@
+ string cfgfile = getenv("HOME");
+ cfgfile += "/.zhconrc";
+ if (access(cfgfile.c_str(), R_OK) != 0)
+- cfgfile = PREFIX "/etc/zhcon.conf";
++ cfgfile = SYSCONF_DIR"/zhcon.conf";
+
+ //for debug,a pause enable us to attach zhcon's pid in gdb
+ //char c;cin>>c;
diff --git a/app-i18n/zhcon/metadata.xml b/app-i18n/zhcon/metadata.xml
new file mode 100644
index 000000000000..b720aad5796d
--- /dev/null
+++ b/app-i18n/zhcon/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
+ </maintainer>
+ <longdescription>zhcon is a Fast double-byte virtual console for
+Chinese/Japanese/Korean (CJK) running under GNU/Linux and FreeBSD.
+It adds the ability of displaying and inputting CJK double-byte
+characters on console device. Currently Japanese display and input
+function seems to be broken.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">zhcon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-i18n/zhcon/zhcon-0.2.6-r3.ebuild b/app-i18n/zhcon/zhcon-0.2.6-r3.ebuild
new file mode 100644
index 000000000000..f428d22d614f
--- /dev/null
+++ b/app-i18n/zhcon/zhcon-0.2.6-r3.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+WANT_AUTOMAKE="1.9"
+
+inherit autotools eutils
+
+MY_P="${P/6/5}"
+
+DESCRIPTION="A Fast CJK (Chinese/Japanese/Korean) Console Environment"
+HOMEPAGE="http://zhcon.sourceforge.net/"
+SRC_URI="mirror://sourceforge/zhcon/${MY_P}.tar.gz
+ mirror://sourceforge/zhcon/zhcon-0.2.5-to-0.2.6.diff.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ggi gpm"
+
+DEPEND="ggi? ( media-libs/libggi[X] )
+ gpm? ( sys-libs/gpm )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}.sysconfdir.patch
+ "${FILESDIR}"/${P}.configure.in.patch
+ "${FILESDIR}"/${P}+gcc-4.3.patch
+ "${FILESDIR}"/${P}+linux-headers-2.6.26.patch
+ "${FILESDIR}"/${P}-curses.patch
+ "${FILESDIR}"/${P}-amd64.patch
+ "${FILESDIR}"/${P}-automagic-fix.patch
+ "${FILESDIR}"/${P}.make-fix.patch
+)
+
+src_prepare() {
+ epatch "${DISTDIR}"/zhcon-0.2.5-to-0.2.6.diff.gz
+ default
+ for f in $(grep -lir HAVE_GGI_LIB *); do
+ sed -i -e "s/HAVE_GGI_LIB/HAVE_LIBGGI/" "${f}" || die "sed failed"
+ done
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with ggi) \
+ $(use_with gpm)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS ChangeLog README NEWS TODO THANKS
+ dodoc README.BSD README.gpm README.utf8
+}