summaryrefslogtreecommitdiff
path: root/japanese/skkserv
diff options
context:
space:
mode:
authoritohy <itohy@pkgsrc.org>1999-12-24 03:19:23 +0000
committeritohy <itohy@pkgsrc.org>1999-12-24 03:19:23 +0000
commitc6eaa6cbd8d68b443d16f3ff573860f4ab57ee1c (patch)
tree44e0a81bbd34ecf3ba29efaf9b843d6f716f0faf /japanese/skkserv
parentd6bb8f46db001a8e0c2f5e83b9c9d83538cf0282 (diff)
downloadpkgsrc-c6eaa6cbd8d68b443d16f3ff573860f4ab57ee1c.tar.gz
Dictionary server for Simple Kana-Kanji conversion programs.
This pkg is composed of: - skkserv-3.9.4 (from SKK-9.6), - SKK dictionary, and - dictionary manipulation tools.
Diffstat (limited to 'japanese/skkserv')
-rw-r--r--japanese/skkserv/Makefile50
-rw-r--r--japanese/skkserv/files/md54
-rw-r--r--japanese/skkserv/files/patch-sum11
-rw-r--r--japanese/skkserv/files/skkserv.sh7
-rw-r--r--japanese/skkserv/patches/patch-aa21
-rw-r--r--japanese/skkserv/patches/patch-ab13
-rw-r--r--japanese/skkserv/patches/patch-ac15
-rw-r--r--japanese/skkserv/patches/patch-ad13
-rw-r--r--japanese/skkserv/patches/patch-ae14
-rw-r--r--japanese/skkserv/patches/patch-af41
-rw-r--r--japanese/skkserv/patches/patch-ag114
-rw-r--r--japanese/skkserv/patches/patch-bsearch123
-rw-r--r--japanese/skkserv/patches/patch-jisyo28
-rw-r--r--japanese/skkserv/pkg/COMMENT1
-rw-r--r--japanese/skkserv/pkg/DESCR6
-rw-r--r--japanese/skkserv/pkg/INSTALL13
-rw-r--r--japanese/skkserv/pkg/MESSAGE1
-rw-r--r--japanese/skkserv/pkg/PLIST11
18 files changed, 486 insertions, 0 deletions
diff --git a/japanese/skkserv/Makefile b/japanese/skkserv/Makefile
new file mode 100644
index 00000000000..098c26b1880
--- /dev/null
+++ b/japanese/skkserv/Makefile
@@ -0,0 +1,50 @@
+# $NetBSD: Makefile,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+DISTNAME= skk9.6
+PKGNAME= skkserv-3.9.4
+WRKSRC= ${WRKDIR}/skk-9.6
+CATEGORIES= japanese
+MASTER_SITES= ftp://skk.kuis.kyoto-u.ac.jp/skk/9.6/
+
+PATCHFILES= SKK-JISYO.L.diff.gz
+PATCH_SITES= http://www.ht-net21.ne.jp/%7Enaoki-w/skk/
+PATCH_DIST_ARGS= -d ${WRKSRC}/jisyo --forward --quiet
+
+MAINTAINER= packages@netbsd.org
+HOMEPAGE= http://skk.kuis.kyoto-u.ac.jp/
+
+DIST_SUBDIR= skk
+
+GNU_CONFIGURE= YES
+INSTALL_FILE= ${WRKDIR}/INSTALL
+MESSAGE_FILE= ${WRKDIR}/MESSAGE
+
+SKKSERV_UID?= 32767
+SKKSERV_GID?= 32766
+MAKE_ENV= MAKE_FLAGS='SKKUID=${SKKSERV_UID} SKKGID=${SKKSERV_GID}'
+
+# tmp for building dictionary. ~16MB required. mfs would be much faster.
+TMPDIR?= ${WRKDIR}
+
+post-build:
+ ${SED} -e 's#@PREFIX@#${PREFIX}#g' <${FILESDIR}/skkserv.sh \
+ >${WRKDIR}/skkserv.sh
+ ${SED} -e 's#@PREFIX@#${PREFIX}#g' <${PKGDIR}/INSTALL >${INSTALL_FILE}
+ ${SED} -e 's#@PREFIX@#${PREFIX}#g' <${PKGDIR}/MESSAGE >${MESSAGE_FILE}
+ :
+ : Merging dictionaries....
+ :
+ ${WRKSRC}/jisyo-tools/skkdic-expr -d ${TMPDIR} \
+ ${WRKSRC}/jisyo/SKK-JISYO.L + ${WRKSRC}/jisyo/SKK-JISYO.JIS2 | \
+ ${WRKSRC}/jisyo-tools/skkdic-sort >${WRKDIR}/SKK-JISYO.L
+
+post-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/skkserv.sh ${PREFIX}/etc/rc.d
+ ${MKDIR} ${PREFIX}/share/skk
+ ${INSTALL_DATA} ${WRKDIR}/SKK-JISYO.L ${PREFIX}/share/skk/SKK-JISYO.L
+ ${INSTALL_DATA} ${WRKSRC}/skkserv/README ${PREFIX}/share/skk/README.skkserv
+ ${INSTALL_DATA} ${WRKSRC}/jisyo-tools/README.1st ${PREFIX}/share/skk/README.1st.jisyo-tools
+ ${INSTALL_DATA} ${WRKSRC}/jisyo-tools/README ${PREFIX}/share/skk/README.jisyo-tools
+ ${SH} ${INSTALL_FILE} ${PKGNAME} POST-INSTALL
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/japanese/skkserv/files/md5 b/japanese/skkserv/files/md5
new file mode 100644
index 00000000000..8f1e6b818b0
--- /dev/null
+++ b/japanese/skkserv/files/md5
@@ -0,0 +1,4 @@
+$NetBSD: md5,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+MD5 (skk/skk9.6.tar.gz) = 26bd151234f69caa2e1591aaf551fb1d
+MD5 (skk/SKK-JISYO.L.diff.gz) = b02ed27b6b05fe1fbc06ce108d79aa16
diff --git a/japanese/skkserv/files/patch-sum b/japanese/skkserv/files/patch-sum
new file mode 100644
index 00000000000..4564c455d5b
--- /dev/null
+++ b/japanese/skkserv/files/patch-sum
@@ -0,0 +1,11 @@
+$NetBSD: patch-sum,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+MD5 (patch-aa) = 4755129f92972489cb1f7bba2a7370f9
+MD5 (patch-ab) = ea1b5133ffe3184d6a92735eb9f31f13
+MD5 (patch-ac) = 35889fef05e7b4b7d12376c9e2ce5bba
+MD5 (patch-ad) = 5e4b28776c2bf7753dc095df10468b36
+MD5 (patch-ae) = 126c617a8a4d630a9785aa639ede10f5
+MD5 (patch-af) = ff628b3980e6f0cdc9269215478c2526
+MD5 (patch-ag) = 264a703f7141e814998af34bf97bdeb1
+MD5 (patch-bsearch) = ae90c6d2ed8f4e529f66f3cde3d2f60d
+MD5 (patch-jisyo) = 20cad7a6a9929754edd1ad67a321e601
diff --git a/japanese/skkserv/files/skkserv.sh b/japanese/skkserv/files/skkserv.sh
new file mode 100644
index 00000000000..838bcd12c0b
--- /dev/null
+++ b/japanese/skkserv/files/skkserv.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+# $NetBSD: skkserv.sh,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+if [ -f @PREFIX@/libexec/skkserv ]; then
+ echo -n ' skkserv'
+ PATH=@PREFIX@/libexec skkserv
+fi
diff --git a/japanese/skkserv/patches/patch-aa b/japanese/skkserv/patches/patch-aa
new file mode 100644
index 00000000000..23128327c5d
--- /dev/null
+++ b/japanese/skkserv/patches/patch-aa
@@ -0,0 +1,21 @@
+$NetBSD: patch-aa,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- Makefile.in.orig Mon Feb 3 18:21:39 1997
++++ Makefile.in Tue Dec 21 20:03:09 1999
+@@ -33,7 +33,7 @@
+ JISYO = @JISYO@
+ JISYODIR = $(datadir)/skk
+
+-SUBDIRS = lisp skkserv jisyo-tools doc etc
++SUBDIRS = skkserv jisyo-tools
+
+ MDEFINES = CC='$(CC)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' \
+ EMACS='$(EMACS)' JISYO='$(JISYO)' JISYODIR='$(JISYODIR)' \
+@@ -50,7 +50,6 @@
+ echo making $@ in $$subdir; \
+ (cd $$subdir && $(MAKE) $(MDEFINES) $@) || exit 1; \
+ done
+- $(INSTALL_DATA) jisyo/$(JISYO) $(JISYODIR)/$(JISYO)
+
+ clean:
+ cd lisp; $(MAKE) clean
diff --git a/japanese/skkserv/patches/patch-ab b/japanese/skkserv/patches/patch-ab
new file mode 100644
index 00000000000..125f6a8fa94
--- /dev/null
+++ b/japanese/skkserv/patches/patch-ab
@@ -0,0 +1,13 @@
+$NetBSD: patch-ab,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- configure.in.orig Mon Feb 3 17:02:01 1997
++++ configure.in Tue Dec 21 15:46:54 1999
+@@ -18,7 +18,7 @@
+ AC_PROG_GCC_TRADITIONAL
+ AC_FUNC_SETPGRP
+ AC_TYPE_SIGNAL
+-AC_CHECK_FUNCS(bzero tiocnotty getdtablesize)
++AC_CHECK_FUNCS(bzero setsid getdtablesize)
+
+ AC_CHECK_FUNC(dbm_open, , [DBMLIB="-ldbm"])
+
diff --git a/japanese/skkserv/patches/patch-ac b/japanese/skkserv/patches/patch-ac
new file mode 100644
index 00000000000..0542b2cfc61
--- /dev/null
+++ b/japanese/skkserv/patches/patch-ac
@@ -0,0 +1,15 @@
+$NetBSD: patch-ac,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- config.h.in.orig Fri Jan 17 20:27:10 1997
++++ config.h.in Tue Dec 21 15:52:49 1999
+@@ -15,8 +15,8 @@
+ /* Define if you have the getdtablesize function. */
+ #undef HAVE_GETDTABLESIZE
+
+-/* Define if you have the tiocnotty function. */
+-#undef HAVE_TIOCNOTTY
++/* Define if you have the setsid function. */
++#undef HAVE_SETSID
+
+ /* Define if you have the <fcntl.h> header file. */
+ #undef HAVE_FCNTL_H
diff --git a/japanese/skkserv/patches/patch-ad b/japanese/skkserv/patches/patch-ad
new file mode 100644
index 00000000000..15df3e012da
--- /dev/null
+++ b/japanese/skkserv/patches/patch-ad
@@ -0,0 +1,13 @@
+$NetBSD: patch-ad,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- configure.orig Fri Feb 7 14:00:43 1997
++++ configure Tue Dec 21 15:46:55 1999
+@@ -1191,7 +1191,7 @@
+ EOF
+
+
+-for ac_func in bzero tiocnotty getdtablesize
++for ac_func in bzero setsid getdtablesize
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+ echo "configure:1198: checking for $ac_func" >&5
diff --git a/japanese/skkserv/patches/patch-ae b/japanese/skkserv/patches/patch-ae
new file mode 100644
index 00000000000..5ef74e1009a
--- /dev/null
+++ b/japanese/skkserv/patches/patch-ae
@@ -0,0 +1,14 @@
+$NetBSD: patch-ae,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- skkserv/Makefile.in.orig Fri Feb 7 11:05:23 1997
++++ skkserv/Makefile.in Tue Dec 21 07:41:57 1999
+@@ -28,7 +28,8 @@
+ SERVERDIR = @libexecdir@
+
+ DEFS = -I$(srcdir) -I$(top_srcdir) $(CFLAGS) @DEFS@ @PRIVATE@ \
+- -DDEFAULT_JISYO=\"$(JISYODIR)/$(JISYO)\"
++ -DDEFAULT_JISYO=\"$(JISYODIR)/$(JISYO)\" \
++ -DSKKSERV_UID=${SKKUID} -DSKKSERV_GID=${SKKGID}
+
+ all: skkserv
+
diff --git a/japanese/skkserv/patches/patch-af b/japanese/skkserv/patches/patch-af
new file mode 100644
index 00000000000..5085219f185
--- /dev/null
+++ b/japanese/skkserv/patches/patch-af
@@ -0,0 +1,41 @@
+$NetBSD: patch-af,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- skkserv/skkserv.c.orig Tue Jan 21 04:16:36 1997
++++ skkserv/skkserv.c Tue Dec 21 15:50:59 1999
+@@ -132,6 +132,16 @@
+ int ctlterm; /* fildes for control terminal */
+ void reread();
+
++#ifdef SKKSERV_UID
++ gid_t gid = SKKSERV_GID;
++
++ /* revoke privilege if any */
++ if (getuid() == 0) {
++ setgroups(1, &gid);
++ setgid(SKKSERV_GID);
++ setuid(SKKSERV_UID);
++ }
++#endif
+ pgmnm = argv[0];
+ debug = 0;
+ errout = stderr;
+@@ -200,7 +210,10 @@
+ fclose(stderr);
+
+ /* detach child process from control terminal */
+-#ifdef HAVE_TIOCNOTTY
++#ifdef HAVE_SETSID
++ setsid();
++#else
++#ifdef TIOCNOTTY
+ if ((ctlterm = open("/dev/tty", 2)) >= 0) {
+ ioctl(ctlterm, TIOCNOTTY, 0);
+ close(ctlterm);
+@@ -214,6 +227,7 @@
+ setpgrp();
+ signal(SIGHUP, SIG_IGN);
+ if (fork() != 0) exit(0);
++#endif
+ #endif
+ } else { /* debug mode */
+ fprintf(errout, "SKK-JISYO is %s\n", jname);
diff --git a/japanese/skkserv/patches/patch-ag b/japanese/skkserv/patches/patch-ag
new file mode 100644
index 00000000000..b2aad4f39e2
--- /dev/null
+++ b/japanese/skkserv/patches/patch-ag
@@ -0,0 +1,114 @@
+$NetBSD: patch-ag,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+--- jisyo-tools/skkdic-expr.c.orig Tue Dec 17 14:51:28 1996
++++ jisyo-tools/skkdic-expr.c Tue Dec 21 20:37:29 1999
+@@ -78,41 +78,62 @@
+ }
+ }
+
++#if !defined(dbm_pagfno) || defined(DBM_SUFFIX)
++#define NEW_DB
++#endif
++
+ /* 作業用データベースファイルを削除
+ file_name には content が格納される */
+ static void db_remove_files()
+ {
+- char pag_name[256];
+- char dir_name[256];
++ char db_name[256];
+
+ db_remove_file(file_name);
+- sprintf(pag_name, "%s.pag", file_name);
+- db_remove_file(pag_name);
+- sprintf(dir_name, "%s.dir", file_name);
+- db_remove_file(dir_name);
++#ifdef NEW_DB
++ sprintf(db_name, "%s.db", file_name);
++ db_remove_file(db_name);
++#else
++ sprintf(db_name, "%s.pag", file_name);
++ db_remove_file(db_name);
++ sprintf(db_name, "%s.dir", file_name);
++ db_remove_file(db_name);
++#endif
+
+ if (okurigana_flag) {
+ db_remove_file(okuri_head_name);
+- sprintf(pag_name, "%s.pag", okuri_head_name);
+- db_remove_file(pag_name);
+- sprintf(dir_name, "%s.dir", okuri_head_name);
+- db_remove_file(dir_name);
++#ifdef NEW_DB
++ sprintf(db_name, "%s.db", okuri_head_name);
++ db_remove_file(db_name);
++#else
++ sprintf(db_name, "%s.pag", okuri_head_name);
++ db_remove_file(db_name);
++ sprintf(db_name, "%s.dir", okuri_head_name);
++ db_remove_file(db_name);
++#endif
+
+ db_remove_file(okuri_tail_name);
+- sprintf(pag_name, "%s.pag", okuri_tail_name);
+- db_remove_file(pag_name);
+- sprintf(dir_name, "%s.dir", okuri_tail_name);
+- db_remove_file(dir_name);
++#ifdef NEW_DB
++ sprintf(db_name, "%s.db", okuri_tail_name);
++ db_remove_file(db_name);
++#else
++ sprintf(db_name, "%s.pag", okuri_tail_name);
++ db_remove_file(db_name);
++ sprintf(db_name, "%s.dir", okuri_tail_name);
++ db_remove_file(db_name);
++#endif
+ }
+ }
+
+ /* データベースファイルを作成 */
+-static void db_make_files()
++static void db_make_files(tmpdir)
++ char *tmpdir;
+ {
+- sprintf(file_name, "/tmp/skkjisyo.%d", getpid());
++ int pid = getpid();
++
++ sprintf(file_name, "%s/skkjisyo.%d", tmpdir, pid);
+ if (okurigana_flag) {
+- sprintf(okuri_head_name, "/tmp/skkhead.%d", getpid());
+- sprintf(okuri_tail_name, "/tmp/skktail.%d", getpid());
++ sprintf(okuri_head_name, "%s/skkhead.%d", tmpdir, pid);
++ sprintf(okuri_tail_name, "%s/skktail.%d", tmpdir, pid);
+ }
+
+ db_remove_files();
+@@ -698,7 +719,7 @@
+ for (key = dbm_firstkey(db); key.dptr != NULL; key = dbm_nextkey(db)) {
+ content = dbm_fetch(db, key);
+ for(i = 0; i < key.dsize; ++ i)
+- putc((key.dptr)[i], output);
++ putc(((char *) key.dptr)[i], output);
+ putc(' ', output);
+ fseek(dbcontent, getpos(content.dptr), 0);
+ db_gets(kanji, BLEN, dbcontent);
+@@ -716,7 +737,7 @@
+ if (entry.dptr != NULL) continue;
+
+ for(i = 0; i < key.dsize; ++ i)
+- putc((key.dptr)[i], output);
++ putc(((char *) key.dptr)[i], output);
+ putc(' ', output);
+ putc('/', output);
+ okuri_type_out(&key, output);
+@@ -775,9 +796,8 @@
+ exit(1);
+ }
+
+- sprintf(file_name, "%s/skkjisyo.%d", tmpdir, getpid());
+ set_signal_handler();
+- db_make_files();
++ db_make_files(tmpdir);
+
+ negate = 0;
+ for (; i < argc; ++ i) {
diff --git a/japanese/skkserv/patches/patch-bsearch b/japanese/skkserv/patches/patch-bsearch
new file mode 100644
index 00000000000..ea66753b588
--- /dev/null
+++ b/japanese/skkserv/patches/patch-bsearch
@@ -0,0 +1,123 @@
+$NetBSD: patch-bsearch,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+Binary search patch.
+Originally from skk-users mailing list
+(Masahiro Doteguchi, Mailinglist-Id: 1779).
+
+--- skkserv/skkserv.c.patch1 Tue Dec 21 15:50:59 1999
++++ skkserv/skkserv.c Tue Dec 21 16:01:06 1999
+@@ -107,7 +107,7 @@
+ * Global Variables
+ */
+
+-char pgmver[] = "3.9.4 "; /* version number */
++char pgmver[] = "3.9.4 (binary search) "; /* version number */
+
+ char *pgmnm; /* program name */
+ char *jname; /* name of shared dictionary */
+@@ -538,7 +538,7 @@
+ }
+
+ /*
+- * reply to client: linear search
++ * reply to client: binary search
+ */
+
+ search(commsock)
+@@ -551,6 +551,7 @@
+ int n; /* number of characters from client */
+ int sttpnt; /* start point of searching */
+ int endpnt; /* end point of searching */
++ int curpnt; /* current point of searching */
+ int errcod = 0; /* error flag */
+ int sstyle; /* search style */
+
+@@ -659,18 +660,36 @@
+ endpnt = jtab1[KANA_END - code + 1];
+ }
+ }
+- fseek(jisho, sttpnt, 0);
+ if (debug)
+- fprintf(stderr, "from %d to %d\n", sttpnt, endpnt);
++ fprintf(errout, "from %d to %d\n", sttpnt, endpnt);
+
+- while ((c = fgetc(jisho)) != EOF) {
++ for (;;) {
++ if ((sstyle & 0x4) == 0) { /* binary search? */
++ curpnt = (sttpnt + endpnt) / 2;
++ fseek(jisho, curpnt, 0);
++ while ((c = fgetc(jisho)) != EOF) {
++ curpnt++;
++ if (c == EOL) break;
++ }
++ if (c == EOF) break;
++ if (curpnt >= endpnt) {
++ fseek(jisho, sttpnt, 0);
++ sstyle |= 0x4; /* linear search */
++ }
++ }
++
++ if (debug) {fprintf(errout, "%d:%d\t%d\t%d\t", sstyle, sttpnt, curpnt, endpnt);}
++ c = fgetc(jisho);
+ pbuf = &combuf[1]; /* ' ' is end-symbol */
+ while (c == *pbuf && c != ' ' && c != EOL) {
+- if (debug) {fprintf(errout, "1:%d:%d:%d:%d:\n", c, *pbuf, ' ', EOL);}
++/* if (debug) {fprintf(errout, "1:%d:%d:%d:%d:", c, *pbuf, ' ', EOL);}*/
++ if (debug) {fprintf(errout, "%c", c);}
+ c = fgetc(jisho); pbuf++;
+- }
+- if (debug) {fprintf(errout, "1:%d:%d:%d:%d:\n", c, *pbuf, ' ', EOL);}
++ }
++/* if (debug) {fprintf(errout, "1:%d:%d:%d:%d:", c, *pbuf, ' ', EOL);}*/
++ if (debug) {fprintf(errout, "%c", c);}
+ if (c == ' ' && (*pbuf == ' ' || *pbuf == '\n')) { /* found */
++ if (debug) {fprintf(errout, "found\n");}
+ if ((errcod = write(commsock, SERVER_FOUND, 1)) >= 0)
+ while ((c = fgetc(jisho)) != EOF) {
+ *pbuf = c;
+@@ -686,18 +705,35 @@
+ }
+ return(0);
+ }
+- if (comp(*pbuf, c, sstyle)) {
+- if (debug) {
+- fprintf(stderr, "comp break %d \n", ftell(jisho));
+- }
+- break;
++ if (debug) {
++ int ch;
++
++ if (c != ' ')
++ do {
++ ch = fgetc(jisho);
++ fprintf(errout, "%c", ch);
++ } while (ch != ' ' && ch != EOL);
++ fprintf(errout, "unmatched\n");
+ }
+- /* fix 1992/3/6 under suggestion */
+- /* of guchi@pfu.fujitsu.co.jp */
+- while ((c = fgetc(jisho)) != EOF) {
+- if (c == EOL) break;
++ if (sstyle & 0x4) {
++ if (comp(*pbuf, c, sstyle&~0x4)) {
++ if (debug) {
++ fprintf(stderr, "comp break %d \n", ftell(jisho));
++ }
++ break;
++ }
++ /* fix 1992/3/6 under suggestion */
++ /* of guchi@pfu.fujitsu.co.jp */
++ while ((c = fgetc(jisho)) != EOF) {
++ if (c == EOL) break;
++ }
++ if (ftell(jisho) >= endpnt) break;
++ } else {
++ if (comp(*pbuf, c, sstyle&~0x4))
++ endpnt = curpnt;
++ else
++ sttpnt = curpnt;
+ }
+- if (ftell(jisho) >= endpnt) break;
+ }
+
+ if ((errcod = write(commsock, SERVER_NOT_FOUND, 1)) >= 0) {
diff --git a/japanese/skkserv/patches/patch-jisyo b/japanese/skkserv/patches/patch-jisyo
new file mode 100644
index 00000000000..d2ce4467bb9
--- /dev/null
+++ b/japanese/skkserv/patches/patch-jisyo
@@ -0,0 +1,28 @@
+$NetBSD: patch-jisyo,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+Dictionary (SKK-JISYO.L) corrigenda.
+Partially from skk-dic mailing list.
+
+--- jisyo/SKK-JISYO.L.fix1 Mon Dec 20 16:28:52 1999
++++ jisyo/SKK-JISYO.L Mon Dec 20 16:28:56 1999
+@@ -35040,9 +35040,9 @@
+ きょうぞんきょうえい /共存共栄/
+ きょうぞんほう /共存法/
+ きょうぞんほうほう /共存方法/
+-きょうたい /匡体/筐体/狂態/矯態/嬌態/筺体/
++きょうたい /筐体/狂態/嬌態/
+ きょうたいいき /狭帯域/
+-きょうたいじっそうぎじゅつ /匡体実装技術/
++きょうたいじっそうぎじゅつ /筐体実装技術/
+ きょうたく /供託/教卓/
+ きょうたくきん /供託金/
+ きょうたくしょ /供託所/
+@@ -36904,7 +36904,7 @@
+ ぎじんほう /擬人法/
+ ぎせい /犠牲/擬声/擬制/
+ ぎせいご /擬声語/
+-ぎせいしゃ /儀牲者/犠牲者/
++ぎせいしゃ /犠牲者/
+ ぎせき /議席/
+ ぎせきすう /議席数/
+ ぎせきはいぶん /議席配分/
diff --git a/japanese/skkserv/pkg/COMMENT b/japanese/skkserv/pkg/COMMENT
new file mode 100644
index 00000000000..dd58161ec05
--- /dev/null
+++ b/japanese/skkserv/pkg/COMMENT
@@ -0,0 +1 @@
+Dictionary server for Simple Kana-Kanji conversion programs
diff --git a/japanese/skkserv/pkg/DESCR b/japanese/skkserv/pkg/DESCR
new file mode 100644
index 00000000000..7694fcc0c93
--- /dev/null
+++ b/japanese/skkserv/pkg/DESCR
@@ -0,0 +1,6 @@
+ skkserv is a dictionary server for SKK (Simple Kana to
+Kanji conversion) programs, including skk.el (Emacs Lisp),
+skkfep (tty-based frontend), and skkinput (X11 frontend).
+
+ This package also contains manipulation tools of
+SKK-format dictionaries.
diff --git a/japanese/skkserv/pkg/INSTALL b/japanese/skkserv/pkg/INSTALL
new file mode 100644
index 00000000000..e6d13f9903e
--- /dev/null
+++ b/japanese/skkserv/pkg/INSTALL
@@ -0,0 +1,13 @@
+#! /bin/sh
+# $NetBSD: INSTALL,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+
+case "$2" in
+POST-INSTALL)
+ if egrep '^skkserv[ ]' /etc/services >/dev/null; then
+ :
+ else
+ echo '
+skkserv 1178/tcp # SKK server' >>/etc/services
+ fi
+ ;;
+esac
diff --git a/japanese/skkserv/pkg/MESSAGE b/japanese/skkserv/pkg/MESSAGE
new file mode 100644
index 00000000000..00734702a59
--- /dev/null
+++ b/japanese/skkserv/pkg/MESSAGE
@@ -0,0 +1 @@
+Please add "@PREFIX@/etc/rc.d/skkserv.sh" to "/etc/rc.local".
diff --git a/japanese/skkserv/pkg/PLIST b/japanese/skkserv/pkg/PLIST
new file mode 100644
index 00000000000..3b6e6158fdf
--- /dev/null
+++ b/japanese/skkserv/pkg/PLIST
@@ -0,0 +1,11 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $
+bin/skkdic-expr
+bin/skkdic-sort
+bin/skkdic-count
+etc/rc.d/skkserv.sh
+libexec/skkserv
+share/skk/SKK-JISYO.L
+share/skk/README.skkserv
+share/skk/README.1st.jisyo-tools
+share/skk/README.jisyo-tools
+@dirrm share/skk