summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>1995-03-06 08:12:40 +0000
committerSatoshi Asami <asami@FreeBSD.org>1995-03-06 08:12:40 +0000
commitb4fd20d4a03f300ca97a2d4d2e0792d2d70afb92 (patch)
treeda60c82c1468301e563a104c55b767edecba24bf
parentRemove VERSION = 4.22 out of patch file so this patch file does not (diff)
Canna, a kana-kanji conversion engine from NEC.
-rw-r--r--japanese/Canna/Makefile17
-rw-r--r--japanese/Canna/distinfo1
-rw-r--r--japanese/Canna/files/patch-aa383
-rw-r--r--japanese/Canna/pkg-comment1
-rw-r--r--japanese/Canna/pkg-descr20
-rw-r--r--japanese/Canna/pkg-plist11
-rw-r--r--japanese/canna-lib/Makefile17
-rw-r--r--japanese/canna-lib/distinfo1
-rw-r--r--japanese/canna-lib/files/patch-aa383
-rw-r--r--japanese/canna-lib/pkg-comment1
-rw-r--r--japanese/canna-lib/pkg-descr20
-rw-r--r--japanese/canna-lib/pkg-plist11
-rw-r--r--japanese/canna-server/Makefile17
-rw-r--r--japanese/canna-server/distinfo1
-rw-r--r--japanese/canna-server/files/patch-aa383
-rw-r--r--japanese/canna-server/pkg-comment1
-rw-r--r--japanese/canna-server/pkg-descr20
-rw-r--r--japanese/canna-server/pkg-plist11
18 files changed, 1299 insertions, 0 deletions
diff --git a/japanese/Canna/Makefile b/japanese/Canna/Makefile
new file mode 100644
index 000000000000..b5a80410c80c
--- /dev/null
+++ b/japanese/Canna/Makefile
@@ -0,0 +1,17 @@
+# New ports collection makefile for: Canna
+# Version required: 3.2p1
+# Date created: 3 November 1995
+# Whom: Nobuhiro Yasutomi
+#
+# $Id:$
+#
+
+DISTNAME= Canna32p1
+MASTER_SITES= ftp://ftp.nec.co.jp/pub/packages/Canna32/
+PATCH_STRIP= -p1
+ALL_TARGET= canna
+
+pre-configure:
+ @(cd ${WRKSRC}; ${XMKMF})
+
+.include <bsd.port.mk>
diff --git a/japanese/Canna/distinfo b/japanese/Canna/distinfo
new file mode 100644
index 000000000000..1486bbe4af0c
--- /dev/null
+++ b/japanese/Canna/distinfo
@@ -0,0 +1 @@
+MD5 (Canna32p1.tar.gz) = dfe6ef05c20d62b3baf4f6ddb4ef71b2
diff --git a/japanese/Canna/files/patch-aa b/japanese/Canna/files/patch-aa
new file mode 100644
index 000000000000..a34b243c2e09
--- /dev/null
+++ b/japanese/Canna/files/patch-aa
@@ -0,0 +1,383 @@
+diff -uNr Canna32p1/Canna.conf Canna32p1-FreeBSD2.0/Canna.conf
+--- Canna32p1/Canna.conf Tue May 31 08:47:26 1994
++++ Canna32p1-FreeBSD2.0/Canna.conf Sat Jan 14 00:00:01 1995
+@@ -119,10 +119,10 @@
+ cannaLibDir = /usr/local/canna/lib
+ cannaManDir = /usr/local/canna/man
+ cannaIncDir = /usr/local/canna/include/canna
+-libCannaDir = /usr/lib
++libCannaDir = /usr/local/lib
+
+-ErrDir = /usr/spool/canna
+-LockDir = /usr/spool/canna/lock
++ErrDir = /var/spool/canna
++LockDir = /var/spool/canna/lock
+
+ wcharDefinition = -DCANNA_WCHAR
+ Wlib =
+@@ -135,7 +135,7 @@
+
+ pointerIntegerDef =
+
+-cannaDsoRev = 1
++cannaDsoRev = 1.0
+ sharedLibExtension = so.$(cannaDsoRev)
+
+ /* 以下の3つは root にならないでインストールするのであれば echo に
+diff -uNr Canna32p1/canna/Imakefile Canna32p1-FreeBSD2.0/canna/Imakefile
+--- Canna32p1/canna/Imakefile Tue Apr 12 07:32:59 1994
++++ Canna32p1-FreeBSD2.0/canna/Imakefile Sat Jan 14 13:37:38 1995
+@@ -1,7 +1,6 @@
+ /* $Id: Imakefile,v 2.4 1994/04/12 12:32:59 kon Exp $ */
+ #include "../Canna.conf"
+
+- INSTALLFLAGS = $(INSTINCFLAGS)
+ CANNAROOT = ..
+ CANNA_HEADER = jrkanji.h keydef.h mfdef.h
+ OSDEP_HEADER = net.h widedef.h
+diff -uNr Canna32p1/canna/widedef.h Canna32p1-FreeBSD2.0/canna/widedef.h
+--- Canna32p1/canna/widedef.h Tue May 31 08:47:33 1994
++++ Canna32p1-FreeBSD2.0/canna/widedef.h Sat Jan 14 14:03:43 1995
+@@ -27,6 +27,10 @@
+ #ifndef _WIDEDEF_H_
+ #define _WIDEDEF_H_
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# include <machine/ansi.h>
++#endif
++
+ #if __STDC__ || defined(SVR4) || defined(sun) /* This may be wrong. */
+ # if !defined(WCHAR16) && !defined(CANNA_WCHAR)
+ # define HAVE_WCHAR_OPERATION
+@@ -40,6 +44,18 @@
+ #endif
+ #endif /* HAVE_WCHAR_OPERATION */
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# ifdef _BSD_WCHAR_T_
++# undef _BSD_WCHAR_T_
++# ifdef WCHAR16
++# define _BSD_WCHAR_T_ unsigned short
++# else
++# define _BSD_WCHAR_T_ unsigned long
++# endif
++# include <stddef.h>
++# define _WCHAR_T
++# endif
++#else
+ #if !defined(WCHAR_T) && !defined(_WCHAR_T) && !defined(_WCHAR_T_) \
+ && !defined(__WCHAR_T) && !defined(_GCC_WCHAR_T)
+ # ifdef WCHAR16
+@@ -53,6 +69,7 @@
+ # define _WCHAR_T_
+ # define __WCHAR_T
+ # define _GCC_WCHAR_T
++#endif
+ #endif
+
+ #endif /* _WIDEDEF_H_ */
+diff -uNr Canna32p1/cmd/crfreq/crfreq.c Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c
+--- Canna32p1/cmd/crfreq/crfreq.c Mon Feb 7 04:52:39 1994
++++ Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c Sat Jan 14 13:37:51 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+
+@@ -148,7 +149,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -211,7 +212,7 @@
+ }
+ fqoffset = 0;
+ for (i = 0; i < lk; i++) {
+- (void)lseek(fd, (long)doff, 0);
++ (void)lseek(fd, (off_t)doff, 0);
+ doff += sz;
+ if (read(fd, (char *)buf, sz) != sz) {
+ (void)fprintf(stderr, "%s: cannot read %s.\n", program, dmnm);
+diff -uNr Canna32p1/cmd/dicar/dicar.c Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c
+--- Canna32p1/cmd/dicar/dicar.c Fri Jan 28 01:37:36 1994
++++ Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c Sat Jan 14 13:37:55 1995
+@@ -229,7 +229,7 @@
+ if (!fname || !strcmp(fname, key)) { /* 原子辞書が同じ時 */
+ if ((dst = openForWrite(key)) >= 0) {
+ actmessage("x", key); /* 出力メッセージ */
+- (void)lseek(fd, offset, 0);
++ (void)lseek(fd, (off_t)offset, 0);
+ copyfile(fd, dst, dmsize);
+ closeForWrite(dst, key);
+ }
+@@ -330,7 +330,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("r", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ childdic[i].flag = 0;
+ break;
+@@ -339,7 +339,7 @@
+ _RkClearHeader(&hd);
+
+ if (i == num) { /* リプレース指定されていなければ */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ offset += dmsize;
+@@ -352,7 +352,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("a", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ }
+ }
+@@ -385,7 +385,7 @@
+ _RkClearHeader(&hd);
+
+ if (strcmp(fname, key)) { /* 指定原子辞書以外はコピー */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ else {
+diff -uNr Canna32p1/cmd/dpxdic/dpxdic.c Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c
+--- Canna32p1/cmd/dpxdic/dpxdic.c Sat Jan 14 12:57:21 1995
++++ Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c Sat Jan 14 13:37:57 1995
+@@ -219,7 +219,7 @@
+ }
+ if (!(buf = (unsigned char *)malloc(size)))
+ return(-1);
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size)
+ return(-1);
+ dic->buf = buf;
+@@ -253,7 +253,7 @@
+ return(-1);
+ }
+
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ (void)fprintf(stderr, "cannot read page %d (%d)\n", id, size);
+ return(-1);
+@@ -445,7 +445,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+diff -uNr Canna32p1/lib/RK/RKfq.c Canna32p1-FreeBSD2.0/lib/RK/RKfq.c
+--- Canna32p1/lib/RK/RKfq.c Wed Jun 1 01:54:20 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKfq.c Sat Jan 14 13:37:28 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+
+ #if defined(USG) || defined(SYSV) || defined(SVR4)
+ #include <string.h>
+@@ -542,13 +543,13 @@
+ || ((struct ND *)codm->dm_xdm)->can != hd.data[HD_CAN].var)
+ break;
+ off += hd.data[HD_HSZ].var;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ (void)read(fd, (char *)ll, 4);
+ off += 4;
+ bitsiz = L4TOL(ll);
+ bitoff = off;
+ off += bitsiz;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ dmh = &df->df_members;
+ for (dm = dmh->dm_next; dm != dmh; dm = dm->dm_next) {
+ if (!strcmp((char *)dm->dm_dicname, (char *)hd.data[HD_CODM].ptr)) {
+@@ -620,7 +621,7 @@
+ qm->dm_qbits = (unsigned char *)malloc((unsigned)xqm->ex_bsiz);
+ if (!qm->dm_qbits)
+ return -1;
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)read(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ qm->dm_rut = LoadRUC(fd);
+ qm->dm_nv = readNV(fd);
+@@ -650,7 +651,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ };
+ (void)free((char *)qm->dm_qbits);
+@@ -702,7 +703,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ if (write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz) !=
+ (int) xqm->ex_bsiz)
+ rv = -1;
+diff -uNr Canna32p1/lib/RK/RKngram.c Canna32p1-FreeBSD2.0/lib/RK/RKngram.c
+--- Canna32p1/lib/RK/RKngram.c Wed Jun 1 01:54:27 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKngram.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #include <stdio.h>
+ #ifdef SVR4
+ #include <unistd.h>
+@@ -141,7 +142,7 @@
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+ lk = 0;
+- if (lseek(fd, off, 0) < 0) {
++ if (lseek(fd, (off_t)off, 0) < 0) {
+ lk = 1;
+ RkSetErrno(RK_ERRNO_EACCES);
+ }
+diff -uNr Canna32p1/lib/RK/RKpermdic.c Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c
+--- Canna32p1/lib/RK/RKpermdic.c Sat Jan 14 12:57:51 1995
++++ Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #ifdef SVR4
+ #include <unistd.h>
+ #endif
+@@ -82,7 +83,7 @@
+ (char *)(hd.data[HD_DMNM].ptr
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+- if (lseek(fd, off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err++;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -159,7 +160,7 @@
+ xdm->pgs[i].count = 0;
+ xdm->pgs[i].buf = (unsigned char *) 0;
+ }
+- (void)lseek(fd, xdm->doff, 0);
++ (void)lseek(fd, (off_t)xdm->doff, 0);
+ if (read(fd, (char *)xdm->buf, xdm->drsz) != xdm->drsz) {
+ (void)free((char *)xdm->pgs);
+ (void)free((char *)xdm->buf);
+@@ -170,7 +171,7 @@
+ if (dm->dm_class == ND_SWD) {
+ struct RkKxGram *gram;
+
+- lseek(fd, xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz, 0);
++ lseek(fd, (off_t)(xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz), 0);
+ gram = RkReadGram(fd);
+ if (gram) {
+ dm->dm_gram = (struct RkGram *)malloc(sizeof(struct RkGram));
+@@ -265,7 +266,7 @@
+ if (!isLoadedPage(dic->pgs + id)) {
+ if (!(buf = (unsigned char *)malloc(size)))
+ return((unsigned char *)0);
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ free((char *)buf);
+ return((unsigned char *)0);
+diff -uNr Canna32p1/lib/RK/RKutil.c Canna32p1-FreeBSD2.0/lib/RK/RKutil.c
+--- Canna32p1/lib/RK/RKutil.c Wed Jun 1 01:54:39 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKutil.c Sat Jan 14 13:37:31 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+
+ static char *Hdrtag[] = {
+@@ -219,7 +220,7 @@
+ hd->flag[i] = 0;
+ }
+ /* 次の off_from_top の計算がうさんくさいぞ */
+- if (lseek(fd, off_from_top, 0) < 0) {
++ if (lseek(fd, (off_t)off_from_top, 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+@@ -255,7 +256,7 @@
+ if (off < hdrsize) {
+ (void)memcpy(hd->data[i].ptr, localbuffer + off, len);
+ } else {
+- if (lseek(fd, (long)(off_from_top + off), 0) < 0) {
++ if (lseek(fd, (off_t)(off_from_top + off), 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+diff -uNr Canna32p1/lib/RKC/Imakefile Canna32p1-FreeBSD2.0/lib/RKC/Imakefile
+--- Canna32p1/lib/RKC/Imakefile Sat Jan 14 12:57:53 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC/Imakefile Sat Jan 14 13:37:36 1995
+@@ -26,7 +26,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/RKC16/Imakefile Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile
+--- Canna32p1/lib/RKC16/Imakefile Sat Jan 14 12:57:58 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile Sat Jan 14 13:37:37 1995
+@@ -23,7 +23,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna/Imakefile Canna32p1-FreeBSD2.0/lib/canna/Imakefile
+--- Canna32p1/lib/canna/Imakefile Sat Jan 14 12:58:00 1995
++++ Canna32p1-FreeBSD2.0/lib/canna/Imakefile Sat Jan 14 13:37:32 1995
+@@ -56,7 +56,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna16/Imakefile Canna32p1-FreeBSD2.0/lib/canna16/Imakefile
+--- Canna32p1/lib/canna16/Imakefile Sat Jan 14 12:58:07 1995
++++ Canna32p1-FreeBSD2.0/lib/canna16/Imakefile Sat Jan 14 13:37:35 1995
+@@ -58,7 +58,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
diff --git a/japanese/Canna/pkg-comment b/japanese/Canna/pkg-comment
new file mode 100644
index 000000000000..7afc25672120
--- /dev/null
+++ b/japanese/Canna/pkg-comment
@@ -0,0 +1 @@
+Canna 3.2p1 - Kana-Kanji convertion system
diff --git a/japanese/Canna/pkg-descr b/japanese/Canna/pkg-descr
new file mode 100644
index 000000000000..e3f9d4d17c9c
--- /dev/null
+++ b/japanese/Canna/pkg-descr
@@ -0,0 +1,20 @@
+Canna is a Kana-Kanji conversion server.
+Support Mule(Multi-lingal extention Emacs), kinput2 X11 input method,
+cannum front end and some others.
+
+ For example server start at bootup `/etc/rc.local':
+
+ canna=/usr/local/canna/bin/cannaserver
+ if [ -f $canna ]; then
+ echo -n " Canna"; $canna
+ fi
+
+ To use from Mule (CANNA version), in .emacs file:
+
+ (if (and (boundp 'CANNA) CANNA) ; Is it CANNA MULE?
+ (progn
+ (load-library "canna")
+ (canna) ))
+
+ Then kana-kanji conversion begin to `C-o' key. Show more detail
+Info, and/or documents.
diff --git a/japanese/Canna/pkg-plist b/japanese/Canna/pkg-plist
new file mode 100644
index 000000000000..7945e62d77c1
--- /dev/null
+++ b/japanese/Canna/pkg-plist
@@ -0,0 +1,11 @@
+@cwd /usr/local
+canna
+lib/libcanna.a
+lib/libcanna.so.1.0
+lib/libcanna16.a
+lib/libcanna16.so.1.0
+lib/libRKC.a
+lib/libRKC.so.1.0
+lib/libRKC16.a
+lib/libRKC16.so.1.0
+@exec mkdir -p /var/spool/canna/lock
diff --git a/japanese/canna-lib/Makefile b/japanese/canna-lib/Makefile
new file mode 100644
index 000000000000..b5a80410c80c
--- /dev/null
+++ b/japanese/canna-lib/Makefile
@@ -0,0 +1,17 @@
+# New ports collection makefile for: Canna
+# Version required: 3.2p1
+# Date created: 3 November 1995
+# Whom: Nobuhiro Yasutomi
+#
+# $Id:$
+#
+
+DISTNAME= Canna32p1
+MASTER_SITES= ftp://ftp.nec.co.jp/pub/packages/Canna32/
+PATCH_STRIP= -p1
+ALL_TARGET= canna
+
+pre-configure:
+ @(cd ${WRKSRC}; ${XMKMF})
+
+.include <bsd.port.mk>
diff --git a/japanese/canna-lib/distinfo b/japanese/canna-lib/distinfo
new file mode 100644
index 000000000000..1486bbe4af0c
--- /dev/null
+++ b/japanese/canna-lib/distinfo
@@ -0,0 +1 @@
+MD5 (Canna32p1.tar.gz) = dfe6ef05c20d62b3baf4f6ddb4ef71b2
diff --git a/japanese/canna-lib/files/patch-aa b/japanese/canna-lib/files/patch-aa
new file mode 100644
index 000000000000..a34b243c2e09
--- /dev/null
+++ b/japanese/canna-lib/files/patch-aa
@@ -0,0 +1,383 @@
+diff -uNr Canna32p1/Canna.conf Canna32p1-FreeBSD2.0/Canna.conf
+--- Canna32p1/Canna.conf Tue May 31 08:47:26 1994
++++ Canna32p1-FreeBSD2.0/Canna.conf Sat Jan 14 00:00:01 1995
+@@ -119,10 +119,10 @@
+ cannaLibDir = /usr/local/canna/lib
+ cannaManDir = /usr/local/canna/man
+ cannaIncDir = /usr/local/canna/include/canna
+-libCannaDir = /usr/lib
++libCannaDir = /usr/local/lib
+
+-ErrDir = /usr/spool/canna
+-LockDir = /usr/spool/canna/lock
++ErrDir = /var/spool/canna
++LockDir = /var/spool/canna/lock
+
+ wcharDefinition = -DCANNA_WCHAR
+ Wlib =
+@@ -135,7 +135,7 @@
+
+ pointerIntegerDef =
+
+-cannaDsoRev = 1
++cannaDsoRev = 1.0
+ sharedLibExtension = so.$(cannaDsoRev)
+
+ /* 以下の3つは root にならないでインストールするのであれば echo に
+diff -uNr Canna32p1/canna/Imakefile Canna32p1-FreeBSD2.0/canna/Imakefile
+--- Canna32p1/canna/Imakefile Tue Apr 12 07:32:59 1994
++++ Canna32p1-FreeBSD2.0/canna/Imakefile Sat Jan 14 13:37:38 1995
+@@ -1,7 +1,6 @@
+ /* $Id: Imakefile,v 2.4 1994/04/12 12:32:59 kon Exp $ */
+ #include "../Canna.conf"
+
+- INSTALLFLAGS = $(INSTINCFLAGS)
+ CANNAROOT = ..
+ CANNA_HEADER = jrkanji.h keydef.h mfdef.h
+ OSDEP_HEADER = net.h widedef.h
+diff -uNr Canna32p1/canna/widedef.h Canna32p1-FreeBSD2.0/canna/widedef.h
+--- Canna32p1/canna/widedef.h Tue May 31 08:47:33 1994
++++ Canna32p1-FreeBSD2.0/canna/widedef.h Sat Jan 14 14:03:43 1995
+@@ -27,6 +27,10 @@
+ #ifndef _WIDEDEF_H_
+ #define _WIDEDEF_H_
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# include <machine/ansi.h>
++#endif
++
+ #if __STDC__ || defined(SVR4) || defined(sun) /* This may be wrong. */
+ # if !defined(WCHAR16) && !defined(CANNA_WCHAR)
+ # define HAVE_WCHAR_OPERATION
+@@ -40,6 +44,18 @@
+ #endif
+ #endif /* HAVE_WCHAR_OPERATION */
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# ifdef _BSD_WCHAR_T_
++# undef _BSD_WCHAR_T_
++# ifdef WCHAR16
++# define _BSD_WCHAR_T_ unsigned short
++# else
++# define _BSD_WCHAR_T_ unsigned long
++# endif
++# include <stddef.h>
++# define _WCHAR_T
++# endif
++#else
+ #if !defined(WCHAR_T) && !defined(_WCHAR_T) && !defined(_WCHAR_T_) \
+ && !defined(__WCHAR_T) && !defined(_GCC_WCHAR_T)
+ # ifdef WCHAR16
+@@ -53,6 +69,7 @@
+ # define _WCHAR_T_
+ # define __WCHAR_T
+ # define _GCC_WCHAR_T
++#endif
+ #endif
+
+ #endif /* _WIDEDEF_H_ */
+diff -uNr Canna32p1/cmd/crfreq/crfreq.c Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c
+--- Canna32p1/cmd/crfreq/crfreq.c Mon Feb 7 04:52:39 1994
++++ Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c Sat Jan 14 13:37:51 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+
+@@ -148,7 +149,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -211,7 +212,7 @@
+ }
+ fqoffset = 0;
+ for (i = 0; i < lk; i++) {
+- (void)lseek(fd, (long)doff, 0);
++ (void)lseek(fd, (off_t)doff, 0);
+ doff += sz;
+ if (read(fd, (char *)buf, sz) != sz) {
+ (void)fprintf(stderr, "%s: cannot read %s.\n", program, dmnm);
+diff -uNr Canna32p1/cmd/dicar/dicar.c Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c
+--- Canna32p1/cmd/dicar/dicar.c Fri Jan 28 01:37:36 1994
++++ Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c Sat Jan 14 13:37:55 1995
+@@ -229,7 +229,7 @@
+ if (!fname || !strcmp(fname, key)) { /* 原子辞書が同じ時 */
+ if ((dst = openForWrite(key)) >= 0) {
+ actmessage("x", key); /* 出力メッセージ */
+- (void)lseek(fd, offset, 0);
++ (void)lseek(fd, (off_t)offset, 0);
+ copyfile(fd, dst, dmsize);
+ closeForWrite(dst, key);
+ }
+@@ -330,7 +330,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("r", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ childdic[i].flag = 0;
+ break;
+@@ -339,7 +339,7 @@
+ _RkClearHeader(&hd);
+
+ if (i == num) { /* リプレース指定されていなければ */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ offset += dmsize;
+@@ -352,7 +352,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("a", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ }
+ }
+@@ -385,7 +385,7 @@
+ _RkClearHeader(&hd);
+
+ if (strcmp(fname, key)) { /* 指定原子辞書以外はコピー */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ else {
+diff -uNr Canna32p1/cmd/dpxdic/dpxdic.c Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c
+--- Canna32p1/cmd/dpxdic/dpxdic.c Sat Jan 14 12:57:21 1995
++++ Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c Sat Jan 14 13:37:57 1995
+@@ -219,7 +219,7 @@
+ }
+ if (!(buf = (unsigned char *)malloc(size)))
+ return(-1);
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size)
+ return(-1);
+ dic->buf = buf;
+@@ -253,7 +253,7 @@
+ return(-1);
+ }
+
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ (void)fprintf(stderr, "cannot read page %d (%d)\n", id, size);
+ return(-1);
+@@ -445,7 +445,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+diff -uNr Canna32p1/lib/RK/RKfq.c Canna32p1-FreeBSD2.0/lib/RK/RKfq.c
+--- Canna32p1/lib/RK/RKfq.c Wed Jun 1 01:54:20 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKfq.c Sat Jan 14 13:37:28 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+
+ #if defined(USG) || defined(SYSV) || defined(SVR4)
+ #include <string.h>
+@@ -542,13 +543,13 @@
+ || ((struct ND *)codm->dm_xdm)->can != hd.data[HD_CAN].var)
+ break;
+ off += hd.data[HD_HSZ].var;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ (void)read(fd, (char *)ll, 4);
+ off += 4;
+ bitsiz = L4TOL(ll);
+ bitoff = off;
+ off += bitsiz;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ dmh = &df->df_members;
+ for (dm = dmh->dm_next; dm != dmh; dm = dm->dm_next) {
+ if (!strcmp((char *)dm->dm_dicname, (char *)hd.data[HD_CODM].ptr)) {
+@@ -620,7 +621,7 @@
+ qm->dm_qbits = (unsigned char *)malloc((unsigned)xqm->ex_bsiz);
+ if (!qm->dm_qbits)
+ return -1;
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)read(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ qm->dm_rut = LoadRUC(fd);
+ qm->dm_nv = readNV(fd);
+@@ -650,7 +651,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ };
+ (void)free((char *)qm->dm_qbits);
+@@ -702,7 +703,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ if (write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz) !=
+ (int) xqm->ex_bsiz)
+ rv = -1;
+diff -uNr Canna32p1/lib/RK/RKngram.c Canna32p1-FreeBSD2.0/lib/RK/RKngram.c
+--- Canna32p1/lib/RK/RKngram.c Wed Jun 1 01:54:27 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKngram.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #include <stdio.h>
+ #ifdef SVR4
+ #include <unistd.h>
+@@ -141,7 +142,7 @@
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+ lk = 0;
+- if (lseek(fd, off, 0) < 0) {
++ if (lseek(fd, (off_t)off, 0) < 0) {
+ lk = 1;
+ RkSetErrno(RK_ERRNO_EACCES);
+ }
+diff -uNr Canna32p1/lib/RK/RKpermdic.c Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c
+--- Canna32p1/lib/RK/RKpermdic.c Sat Jan 14 12:57:51 1995
++++ Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #ifdef SVR4
+ #include <unistd.h>
+ #endif
+@@ -82,7 +83,7 @@
+ (char *)(hd.data[HD_DMNM].ptr
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+- if (lseek(fd, off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err++;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -159,7 +160,7 @@
+ xdm->pgs[i].count = 0;
+ xdm->pgs[i].buf = (unsigned char *) 0;
+ }
+- (void)lseek(fd, xdm->doff, 0);
++ (void)lseek(fd, (off_t)xdm->doff, 0);
+ if (read(fd, (char *)xdm->buf, xdm->drsz) != xdm->drsz) {
+ (void)free((char *)xdm->pgs);
+ (void)free((char *)xdm->buf);
+@@ -170,7 +171,7 @@
+ if (dm->dm_class == ND_SWD) {
+ struct RkKxGram *gram;
+
+- lseek(fd, xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz, 0);
++ lseek(fd, (off_t)(xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz), 0);
+ gram = RkReadGram(fd);
+ if (gram) {
+ dm->dm_gram = (struct RkGram *)malloc(sizeof(struct RkGram));
+@@ -265,7 +266,7 @@
+ if (!isLoadedPage(dic->pgs + id)) {
+ if (!(buf = (unsigned char *)malloc(size)))
+ return((unsigned char *)0);
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ free((char *)buf);
+ return((unsigned char *)0);
+diff -uNr Canna32p1/lib/RK/RKutil.c Canna32p1-FreeBSD2.0/lib/RK/RKutil.c
+--- Canna32p1/lib/RK/RKutil.c Wed Jun 1 01:54:39 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKutil.c Sat Jan 14 13:37:31 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+
+ static char *Hdrtag[] = {
+@@ -219,7 +220,7 @@
+ hd->flag[i] = 0;
+ }
+ /* 次の off_from_top の計算がうさんくさいぞ */
+- if (lseek(fd, off_from_top, 0) < 0) {
++ if (lseek(fd, (off_t)off_from_top, 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+@@ -255,7 +256,7 @@
+ if (off < hdrsize) {
+ (void)memcpy(hd->data[i].ptr, localbuffer + off, len);
+ } else {
+- if (lseek(fd, (long)(off_from_top + off), 0) < 0) {
++ if (lseek(fd, (off_t)(off_from_top + off), 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+diff -uNr Canna32p1/lib/RKC/Imakefile Canna32p1-FreeBSD2.0/lib/RKC/Imakefile
+--- Canna32p1/lib/RKC/Imakefile Sat Jan 14 12:57:53 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC/Imakefile Sat Jan 14 13:37:36 1995
+@@ -26,7 +26,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/RKC16/Imakefile Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile
+--- Canna32p1/lib/RKC16/Imakefile Sat Jan 14 12:57:58 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile Sat Jan 14 13:37:37 1995
+@@ -23,7 +23,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna/Imakefile Canna32p1-FreeBSD2.0/lib/canna/Imakefile
+--- Canna32p1/lib/canna/Imakefile Sat Jan 14 12:58:00 1995
++++ Canna32p1-FreeBSD2.0/lib/canna/Imakefile Sat Jan 14 13:37:32 1995
+@@ -56,7 +56,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna16/Imakefile Canna32p1-FreeBSD2.0/lib/canna16/Imakefile
+--- Canna32p1/lib/canna16/Imakefile Sat Jan 14 12:58:07 1995
++++ Canna32p1-FreeBSD2.0/lib/canna16/Imakefile Sat Jan 14 13:37:35 1995
+@@ -58,7 +58,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
diff --git a/japanese/canna-lib/pkg-comment b/japanese/canna-lib/pkg-comment
new file mode 100644
index 000000000000..7afc25672120
--- /dev/null
+++ b/japanese/canna-lib/pkg-comment
@@ -0,0 +1 @@
+Canna 3.2p1 - Kana-Kanji convertion system
diff --git a/japanese/canna-lib/pkg-descr b/japanese/canna-lib/pkg-descr
new file mode 100644
index 000000000000..e3f9d4d17c9c
--- /dev/null
+++ b/japanese/canna-lib/pkg-descr
@@ -0,0 +1,20 @@
+Canna is a Kana-Kanji conversion server.
+Support Mule(Multi-lingal extention Emacs), kinput2 X11 input method,
+cannum front end and some others.
+
+ For example server start at bootup `/etc/rc.local':
+
+ canna=/usr/local/canna/bin/cannaserver
+ if [ -f $canna ]; then
+ echo -n " Canna"; $canna
+ fi
+
+ To use from Mule (CANNA version), in .emacs file:
+
+ (if (and (boundp 'CANNA) CANNA) ; Is it CANNA MULE?
+ (progn
+ (load-library "canna")
+ (canna) ))
+
+ Then kana-kanji conversion begin to `C-o' key. Show more detail
+Info, and/or documents.
diff --git a/japanese/canna-lib/pkg-plist b/japanese/canna-lib/pkg-plist
new file mode 100644
index 000000000000..7945e62d77c1
--- /dev/null
+++ b/japanese/canna-lib/pkg-plist
@@ -0,0 +1,11 @@
+@cwd /usr/local
+canna
+lib/libcanna.a
+lib/libcanna.so.1.0
+lib/libcanna16.a
+lib/libcanna16.so.1.0
+lib/libRKC.a
+lib/libRKC.so.1.0
+lib/libRKC16.a
+lib/libRKC16.so.1.0
+@exec mkdir -p /var/spool/canna/lock
diff --git a/japanese/canna-server/Makefile b/japanese/canna-server/Makefile
new file mode 100644
index 000000000000..b5a80410c80c
--- /dev/null
+++ b/japanese/canna-server/Makefile
@@ -0,0 +1,17 @@
+# New ports collection makefile for: Canna
+# Version required: 3.2p1
+# Date created: 3 November 1995
+# Whom: Nobuhiro Yasutomi
+#
+# $Id:$
+#
+
+DISTNAME= Canna32p1
+MASTER_SITES= ftp://ftp.nec.co.jp/pub/packages/Canna32/
+PATCH_STRIP= -p1
+ALL_TARGET= canna
+
+pre-configure:
+ @(cd ${WRKSRC}; ${XMKMF})
+
+.include <bsd.port.mk>
diff --git a/japanese/canna-server/distinfo b/japanese/canna-server/distinfo
new file mode 100644
index 000000000000..1486bbe4af0c
--- /dev/null
+++ b/japanese/canna-server/distinfo
@@ -0,0 +1 @@
+MD5 (Canna32p1.tar.gz) = dfe6ef05c20d62b3baf4f6ddb4ef71b2
diff --git a/japanese/canna-server/files/patch-aa b/japanese/canna-server/files/patch-aa
new file mode 100644
index 000000000000..a34b243c2e09
--- /dev/null
+++ b/japanese/canna-server/files/patch-aa
@@ -0,0 +1,383 @@
+diff -uNr Canna32p1/Canna.conf Canna32p1-FreeBSD2.0/Canna.conf
+--- Canna32p1/Canna.conf Tue May 31 08:47:26 1994
++++ Canna32p1-FreeBSD2.0/Canna.conf Sat Jan 14 00:00:01 1995
+@@ -119,10 +119,10 @@
+ cannaLibDir = /usr/local/canna/lib
+ cannaManDir = /usr/local/canna/man
+ cannaIncDir = /usr/local/canna/include/canna
+-libCannaDir = /usr/lib
++libCannaDir = /usr/local/lib
+
+-ErrDir = /usr/spool/canna
+-LockDir = /usr/spool/canna/lock
++ErrDir = /var/spool/canna
++LockDir = /var/spool/canna/lock
+
+ wcharDefinition = -DCANNA_WCHAR
+ Wlib =
+@@ -135,7 +135,7 @@
+
+ pointerIntegerDef =
+
+-cannaDsoRev = 1
++cannaDsoRev = 1.0
+ sharedLibExtension = so.$(cannaDsoRev)
+
+ /* 以下の3つは root にならないでインストールするのであれば echo に
+diff -uNr Canna32p1/canna/Imakefile Canna32p1-FreeBSD2.0/canna/Imakefile
+--- Canna32p1/canna/Imakefile Tue Apr 12 07:32:59 1994
++++ Canna32p1-FreeBSD2.0/canna/Imakefile Sat Jan 14 13:37:38 1995
+@@ -1,7 +1,6 @@
+ /* $Id: Imakefile,v 2.4 1994/04/12 12:32:59 kon Exp $ */
+ #include "../Canna.conf"
+
+- INSTALLFLAGS = $(INSTINCFLAGS)
+ CANNAROOT = ..
+ CANNA_HEADER = jrkanji.h keydef.h mfdef.h
+ OSDEP_HEADER = net.h widedef.h
+diff -uNr Canna32p1/canna/widedef.h Canna32p1-FreeBSD2.0/canna/widedef.h
+--- Canna32p1/canna/widedef.h Tue May 31 08:47:33 1994
++++ Canna32p1-FreeBSD2.0/canna/widedef.h Sat Jan 14 14:03:43 1995
+@@ -27,6 +27,10 @@
+ #ifndef _WIDEDEF_H_
+ #define _WIDEDEF_H_
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# include <machine/ansi.h>
++#endif
++
+ #if __STDC__ || defined(SVR4) || defined(sun) /* This may be wrong. */
+ # if !defined(WCHAR16) && !defined(CANNA_WCHAR)
+ # define HAVE_WCHAR_OPERATION
+@@ -40,6 +44,18 @@
+ #endif
+ #endif /* HAVE_WCHAR_OPERATION */
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++# ifdef _BSD_WCHAR_T_
++# undef _BSD_WCHAR_T_
++# ifdef WCHAR16
++# define _BSD_WCHAR_T_ unsigned short
++# else
++# define _BSD_WCHAR_T_ unsigned long
++# endif
++# include <stddef.h>
++# define _WCHAR_T
++# endif
++#else
+ #if !defined(WCHAR_T) && !defined(_WCHAR_T) && !defined(_WCHAR_T_) \
+ && !defined(__WCHAR_T) && !defined(_GCC_WCHAR_T)
+ # ifdef WCHAR16
+@@ -53,6 +69,7 @@
+ # define _WCHAR_T_
+ # define __WCHAR_T
+ # define _GCC_WCHAR_T
++#endif
+ #endif
+
+ #endif /* _WIDEDEF_H_ */
+diff -uNr Canna32p1/cmd/crfreq/crfreq.c Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c
+--- Canna32p1/cmd/crfreq/crfreq.c Mon Feb 7 04:52:39 1994
++++ Canna32p1-FreeBSD2.0/cmd/crfreq/crfreq.c Sat Jan 14 13:37:51 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+
+@@ -148,7 +149,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -211,7 +212,7 @@
+ }
+ fqoffset = 0;
+ for (i = 0; i < lk; i++) {
+- (void)lseek(fd, (long)doff, 0);
++ (void)lseek(fd, (off_t)doff, 0);
+ doff += sz;
+ if (read(fd, (char *)buf, sz) != sz) {
+ (void)fprintf(stderr, "%s: cannot read %s.\n", program, dmnm);
+diff -uNr Canna32p1/cmd/dicar/dicar.c Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c
+--- Canna32p1/cmd/dicar/dicar.c Fri Jan 28 01:37:36 1994
++++ Canna32p1-FreeBSD2.0/cmd/dicar/dicar.c Sat Jan 14 13:37:55 1995
+@@ -229,7 +229,7 @@
+ if (!fname || !strcmp(fname, key)) { /* 原子辞書が同じ時 */
+ if ((dst = openForWrite(key)) >= 0) {
+ actmessage("x", key); /* 出力メッセージ */
+- (void)lseek(fd, offset, 0);
++ (void)lseek(fd, (off_t)offset, 0);
+ copyfile(fd, dst, dmsize);
+ closeForWrite(dst, key);
+ }
+@@ -330,7 +330,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("r", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ childdic[i].flag = 0;
+ break;
+@@ -339,7 +339,7 @@
+ _RkClearHeader(&hd);
+
+ if (i == num) { /* リプレース指定されていなければ */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ offset += dmsize;
+@@ -352,7 +352,7 @@
+ (void)strcpy(key, childdic[i].key);
+ (void)strcat(key, ".d");
+ actmessage("a", key); /* 出力メッセージ */
+- (void)lseek(atm, childdic[i].offset, 0);
++ (void)lseek(atm, (off_t)childdic[i].offset, 0);
+ copyfile(atm, dst, childdic[i].size);
+ }
+ }
+@@ -385,7 +385,7 @@
+ _RkClearHeader(&hd);
+
+ if (strcmp(fname, key)) { /* 指定原子辞書以外はコピー */
+- (void)lseek(src, offset, 0);
++ (void)lseek(src, (off_t)offset, 0);
+ copyfile(src, dst, dmsize);
+ }
+ else {
+diff -uNr Canna32p1/cmd/dpxdic/dpxdic.c Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c
+--- Canna32p1/cmd/dpxdic/dpxdic.c Sat Jan 14 12:57:21 1995
++++ Canna32p1-FreeBSD2.0/cmd/dpxdic/dpxdic.c Sat Jan 14 13:37:57 1995
+@@ -219,7 +219,7 @@
+ }
+ if (!(buf = (unsigned char *)malloc(size)))
+ return(-1);
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size)
+ return(-1);
+ dic->buf = buf;
+@@ -253,7 +253,7 @@
+ return(-1);
+ }
+
+- (void)lseek(fd, (long)off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ (void)fprintf(stderr, "cannot read page %d (%d)\n", id, size);
+ return(-1);
+@@ -445,7 +445,7 @@
+ doff = off;
+ off += hd.data[HD_SIZ].var;
+ if (!strncmp(".swd", (char *)(hd.data[HD_DMNM].ptr + strlen((char *)hd.data[HD_DMNM].ptr) - 4), 4)) {
+- if (lseek(fd, (long)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err = 1;
+ off += bst4_to_l(ll) + 4;
+ }
+diff -uNr Canna32p1/lib/RK/RKfq.c Canna32p1-FreeBSD2.0/lib/RK/RKfq.c
+--- Canna32p1/lib/RK/RKfq.c Wed Jun 1 01:54:20 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKfq.c Sat Jan 14 13:37:28 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+
+ #if defined(USG) || defined(SYSV) || defined(SVR4)
+ #include <string.h>
+@@ -542,13 +543,13 @@
+ || ((struct ND *)codm->dm_xdm)->can != hd.data[HD_CAN].var)
+ break;
+ off += hd.data[HD_HSZ].var;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ (void)read(fd, (char *)ll, 4);
+ off += 4;
+ bitsiz = L4TOL(ll);
+ bitoff = off;
+ off += bitsiz;
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ dmh = &df->df_members;
+ for (dm = dmh->dm_next; dm != dmh; dm = dm->dm_next) {
+ if (!strcmp((char *)dm->dm_dicname, (char *)hd.data[HD_CODM].ptr)) {
+@@ -620,7 +621,7 @@
+ qm->dm_qbits = (unsigned char *)malloc((unsigned)xqm->ex_bsiz);
+ if (!qm->dm_qbits)
+ return -1;
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)read(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ qm->dm_rut = LoadRUC(fd);
+ qm->dm_nv = readNV(fd);
+@@ -650,7 +651,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ (void)write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz);
+ };
+ (void)free((char *)qm->dm_qbits);
+@@ -702,7 +703,7 @@
+ if (xqm) {
+ if (qm->dm_qbits) {
+ if (qm->dm_flags & DM_UPDATED) {
+- (void)lseek(fd, xqm->ex_boff, 0);
++ (void)lseek(fd, (off_t)xqm->ex_boff, 0);
+ if (write(fd, (char *)qm->dm_qbits, (int)xqm->ex_bsiz) !=
+ (int) xqm->ex_bsiz)
+ rv = -1;
+diff -uNr Canna32p1/lib/RK/RKngram.c Canna32p1-FreeBSD2.0/lib/RK/RKngram.c
+--- Canna32p1/lib/RK/RKngram.c Wed Jun 1 01:54:27 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKngram.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #include <stdio.h>
+ #ifdef SVR4
+ #include <unistd.h>
+@@ -141,7 +142,7 @@
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+ lk = 0;
+- if (lseek(fd, off, 0) < 0) {
++ if (lseek(fd, (off_t)off, 0) < 0) {
+ lk = 1;
+ RkSetErrno(RK_ERRNO_EACCES);
+ }
+diff -uNr Canna32p1/lib/RK/RKpermdic.c Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c
+--- Canna32p1/lib/RK/RKpermdic.c Sat Jan 14 12:57:51 1995
++++ Canna32p1-FreeBSD2.0/lib/RK/RKpermdic.c Sat Jan 14 13:37:30 1995
+@@ -26,6 +26,7 @@
+
+ #include "RKintern.h"
+
++#include <sys/types.h>
+ #ifdef SVR4
+ #include <unistd.h>
+ #endif
+@@ -82,7 +83,7 @@
+ (char *)(hd.data[HD_DMNM].ptr
+ + strlen((char *)hd.data[HD_DMNM].ptr) - 4),
+ 4)) {
+- if (lseek(fd, off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
++ if (lseek(fd, (off_t)off, 0) < 0 || read(fd, (char *)ll, 4) != 4)
+ err++;
+ off += bst4_to_l(ll) + 4;
+ }
+@@ -159,7 +160,7 @@
+ xdm->pgs[i].count = 0;
+ xdm->pgs[i].buf = (unsigned char *) 0;
+ }
+- (void)lseek(fd, xdm->doff, 0);
++ (void)lseek(fd, (off_t)xdm->doff, 0);
+ if (read(fd, (char *)xdm->buf, xdm->drsz) != xdm->drsz) {
+ (void)free((char *)xdm->pgs);
+ (void)free((char *)xdm->buf);
+@@ -170,7 +171,7 @@
+ if (dm->dm_class == ND_SWD) {
+ struct RkKxGram *gram;
+
+- lseek(fd, xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz, 0);
++ lseek(fd, (off_t)(xdm->doff + xdm->drsz + xdm->ttlpg * xdm->pgsz), 0);
+ gram = RkReadGram(fd);
+ if (gram) {
+ dm->dm_gram = (struct RkGram *)malloc(sizeof(struct RkGram));
+@@ -265,7 +266,7 @@
+ if (!isLoadedPage(dic->pgs + id)) {
+ if (!(buf = (unsigned char *)malloc(size)))
+ return((unsigned char *)0);
+- (void)lseek(fd, off, 0);
++ (void)lseek(fd, (off_t)off, 0);
+ if (read(fd, (char *)buf, size) != size) {
+ free((char *)buf);
+ return((unsigned char *)0);
+diff -uNr Canna32p1/lib/RK/RKutil.c Canna32p1-FreeBSD2.0/lib/RK/RKutil.c
+--- Canna32p1/lib/RK/RKutil.c Wed Jun 1 01:54:39 1994
++++ Canna32p1-FreeBSD2.0/lib/RK/RKutil.c Sat Jan 14 13:37:31 1995
+@@ -25,6 +25,7 @@
+ #endif
+
+ #include "RKintern.h"
++#include <sys/types.h>
+ #include <stdio.h>
+
+ static char *Hdrtag[] = {
+@@ -219,7 +220,7 @@
+ hd->flag[i] = 0;
+ }
+ /* 次の off_from_top の計算がうさんくさいぞ */
+- if (lseek(fd, off_from_top, 0) < 0) {
++ if (lseek(fd, (off_t)off_from_top, 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+@@ -255,7 +256,7 @@
+ if (off < hdrsize) {
+ (void)memcpy(hd->data[i].ptr, localbuffer + off, len);
+ } else {
+- if (lseek(fd, (long)(off_from_top + off), 0) < 0) {
++ if (lseek(fd, (off_t)(off_from_top + off), 0) < 0) {
+ RkSetErrno(RK_ERRNO_EACCES);
+ goto read_err;
+ }
+diff -uNr Canna32p1/lib/RKC/Imakefile Canna32p1-FreeBSD2.0/lib/RKC/Imakefile
+--- Canna32p1/lib/RKC/Imakefile Sat Jan 14 12:57:53 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC/Imakefile Sat Jan 14 13:37:36 1995
+@@ -26,7 +26,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/RKC16/Imakefile Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile
+--- Canna32p1/lib/RKC16/Imakefile Sat Jan 14 12:57:58 1995
++++ Canna32p1-FreeBSD2.0/lib/RKC16/Imakefile Sat Jan 14 13:37:37 1995
+@@ -23,7 +23,7 @@
+
+ #if ProjectX > 5
+ #define LibName RKC16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna/Imakefile Canna32p1-FreeBSD2.0/lib/canna/Imakefile
+--- Canna32p1/lib/canna/Imakefile Sat Jan 14 12:58:00 1995
++++ Canna32p1-FreeBSD2.0/lib/canna/Imakefile Sat Jan 14 13:37:32 1995
+@@ -56,7 +56,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
+diff -uNr Canna32p1/lib/canna16/Imakefile Canna32p1-FreeBSD2.0/lib/canna16/Imakefile
+--- Canna32p1/lib/canna16/Imakefile Sat Jan 14 12:58:07 1995
++++ Canna32p1-FreeBSD2.0/lib/canna16/Imakefile Sat Jan 14 13:37:35 1995
+@@ -58,7 +58,7 @@
+
+ #if ProjectX > 5
+ #define LibName canna16
+-#define SoRev cannaDsoRev
++#define SoRev cannaDsoRev
+ #define SHLIBDIR libCannaDir
+ #define USRLIBDIR libCannaDir
+ #define LibHeaders 0
diff --git a/japanese/canna-server/pkg-comment b/japanese/canna-server/pkg-comment
new file mode 100644
index 000000000000..7afc25672120
--- /dev/null
+++ b/japanese/canna-server/pkg-comment
@@ -0,0 +1 @@
+Canna 3.2p1 - Kana-Kanji convertion system
diff --git a/japanese/canna-server/pkg-descr b/japanese/canna-server/pkg-descr
new file mode 100644
index 000000000000..e3f9d4d17c9c
--- /dev/null
+++ b/japanese/canna-server/pkg-descr
@@ -0,0 +1,20 @@
+Canna is a Kana-Kanji conversion server.
+Support Mule(Multi-lingal extention Emacs), kinput2 X11 input method,
+cannum front end and some others.
+
+ For example server start at bootup `/etc/rc.local':
+
+ canna=/usr/local/canna/bin/cannaserver
+ if [ -f $canna ]; then
+ echo -n " Canna"; $canna
+ fi
+
+ To use from Mule (CANNA version), in .emacs file:
+
+ (if (and (boundp 'CANNA) CANNA) ; Is it CANNA MULE?
+ (progn
+ (load-library "canna")
+ (canna) ))
+
+ Then kana-kanji conversion begin to `C-o' key. Show more detail
+Info, and/or documents.
diff --git a/japanese/canna-server/pkg-plist b/japanese/canna-server/pkg-plist
new file mode 100644
index 000000000000..7945e62d77c1
--- /dev/null
+++ b/japanese/canna-server/pkg-plist
@@ -0,0 +1,11 @@
+@cwd /usr/local
+canna
+lib/libcanna.a
+lib/libcanna.so.1.0
+lib/libcanna16.a
+lib/libcanna16.so.1.0
+lib/libRKC.a
+lib/libRKC.so.1.0
+lib/libRKC16.a
+lib/libRKC16.so.1.0
+@exec mkdir -p /var/spool/canna/lock