ports/125683: ports/japanese/edict does not work on 7.0/i386, 7.0/amd64
Kazunori_Fujiwara
fujiwara at wide.ad.jp
Wed Jul 16 16:40:02 UTC 2008
>Number: 125683
>Category: ports
>Synopsis: ports/japanese/edict does not work on 7.0/i386, 7.0/amd64
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jul 16 16:40:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Kazunori_Fujiwara
>Release: FreeBSD 7.0-STABLE amd64
>Organization:
WIDE Project
>Environment:
System: FreeBSD f.pyon.org 7.0-STABLE FreeBSD 7.0-STABLE #1: Sun Jun 29 01:18:10 JST 2008 fujiwara at f.pyon.org:/usr/obj/usr/src/sys/SC7 amd64
ports-current on FreeBSD 7.0 i386
ports-current on FreeBSD 7.0 amd64
>Description:
pors/japanese/edict has two problems.
1. It does not work on FreeBSD 7.0 i386.
xjdic cannot handle input characters from tty on FreeBSD 7.0.
Adding "new.c_cc[VMIN] = 1;" for tcsetattr() solves this problem.
2. Marked as BROKEN for amd64
Patch to xjdxgen.c solves this problem.
- indlen = (diclen * 3)/4;
+ indlen = (diclen * 3*(sizeof(void *)/4))/4;
>How-To-Repeat:
>Fix:
Index: Makefile
===================================================================
RCS file: /ncvs/ports/japanese/edict/Makefile,v
retrieving revision 1.23
diff -u -b -r1.23 Makefile
--- Makefile 14 Mar 2008 19:07:39 -0000 1.23
+++ Makefile 16 Jul 2008 14:21:55 -0000
@@ -60,10 +60,6 @@
.include <bsd.port.pre.mk>
-.if ${ARCH} != "i386"
-BROKEN= Does not build
-.endif
-
do-extract:
@${RM} -rf ${WRKDIR}
@${MKDIR} ${WRKDIR}
Index: files/patch-xjdfrontend.c
===================================================================
RCS file: /ncvs/ports/japanese/edict/files/patch-xjdfrontend.c,v
retrieving revision 1.1
diff -u -b -r1.1 patch-xjdfrontend.c
--- files/patch-xjdfrontend.c 15 Feb 2008 22:05:09 -0000 1.1
+++ files/patch-xjdfrontend.c 19 Jun 2008 09:29:34 -0000
@@ -16,7 +16,7 @@
+#elif defined(__POSIX__)
+ tcgetattr(0, &orig); tcgetattr(0, &new);
+ new.c_lflag &= ~ICANON; new.c_lflag &= ~ISIG; new.c_lflag &= ~ECHO;
-+ new.c_lflag &= ~IXON;
++ new.c_lflag &= ~IXON; new.c_cc[VMIN] = 1;
+ new.c_cc[4] = 1; new.c_cc[5] = 0; tcsetattr(0, TCSANOW, &new);
#else
ioctl(0, TCGETA, &orig); ioctl(0, TCGETA, &new);
files/patch-64bit:
--- xjdxgen.c 2008-06-19 17:51:17.000000000 +0900
+++ xjdxgen.c- 2008-06-19 17:50:47.000000000 +0900
@@ -154,7 +154,7 @@
db[diclen] = 10;
db[0] = 10;
printf("Dictionary size: %ld bytes.\n",dbyte);
- indlen = (diclen * 3)/4;
+ indlen = (diclen * 3*(sizeof(void *)/4))/4;
jindex = (unsigned long *)malloc(indlen);
if(jindex == NULL)
{
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list