Date: Wed, 18 Dec 2002 08:50:50 +0000 From: Dima Dorfman <dima@trit.org> To: Clive Lin <clive@tongi.org> Cc: ports@freebsd.org, portmgr@freebsd.org Subject: Re: ports/45755: /usr/ports/net/dictd does not build, at least on 4.7-RELEASE Message-ID: <20021218085050.GA23253@trit.org> In-Reply-To: <200212180830.gBI8U4V8042817@freefall.freebsd.org> References: <200212180830.gBI8U4V8042817@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[cc'd to ports in the hope that someone will make portmgr reply] Clive Lin <clive@tongi.org> wrote: > > cc -c -Ilibmaa -DHAVE_CONFIG_H -I. -O -pipe -I/usr/local/include -DDICT_VERSION=\"1.8.0\" -DDICT_CONFIG_PATH=\"/usr/local/etc/\" index.c > > In file included from index.c:26: > > utf8_ucs4.h:26: syntax error before `wint_t' > > utf8_ucs4.h:34: syntax error before `ucs4' > > index.c: In function `tolower_alnumspace_utf8': > > index.c:114: syntax error before `ucs4_char' > > index.c:117: `ucs4_char' undeclared (first use in this function) > > index.c:117: (Each undeclared identifier is reported only once > > index.c:117: for each function it appears in.) > > gmake: *** [index.o] Error 1 > > *** Error code 2 > > > > Stop in /usr/ports/net/dictd. > > netcom1# > > I think it's impossible to fix dictd on RELENG_4. I beg to differ. The attached patch makes it compile on RELENG_4, but possibly breaks UTF8 dictionaries (I haven't tried). It does not affect functionality on 5.0. I've sent this to portmgr three times (this message is the fourth), but have heard no reply. I think breaking a new feature is better than breaking it completely. If someone wants to use UTF8 dictionaries, they can install 5.0--we need more testers anyway. For most people, it will work just fine. E.g.: dima@harpoon% dict -Ih dict.trit.org dictd 1.8.0/rf on FreeBSD 4.7-STABLE On phalanx.trit.org: up 16+10:16:01, 987 forks (2.5/hour) Index: patch-break-utf8 =================================================================== RCS file: patch-break-utf8 diff -N patch-break-utf8 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patch-break-utf8 1 Dec 2002 22:45:21 -0000 @@ -0,0 +1,98 @@ +diff -ru ../dictd-freebsd/dictd.c ./dictd.c +--- ../dictd-freebsd/dictd.c Sun Nov 24 09:35:55 2002 ++++ ./dictd.c Sun Dec 1 22:29:55 2002 +@@ -662,6 +662,7 @@ + + static void set_utf8_mode (const char *locale) + { ++#if __FreeBSD__ > 4 + char *locale_copy; + locale_copy = strdup (locale); + strlwr_8bit (locale_copy); +@@ -671,6 +672,9 @@ + strstr (locale_copy, "utf8"); + + free (locale_copy); ++#else ++ utf8_mode = 0; ++#endif + } + + static void init (const char *fn) +diff -ru ../dictd-freebsd/index.c ./index.c +--- ../dictd-freebsd/index.c Sun Dec 1 22:12:49 2002 ++++ ./index.c Sun Dec 1 22:25:06 2002 +@@ -111,6 +111,9 @@ + const char *src, char *dest, + int allchars_mode) + { ++#if __FreeBSD__ < 5 ++ abort(); ++#else + wint_t ucs4_char; + + while (src && src [0]){ +@@ -130,6 +133,7 @@ + *dest = 0; + + return (src != NULL); ++#endif + } + + static void dict_table_init(void) +@@ -166,9 +170,11 @@ + p[i] = &s[2 * i]; + } + /* Sort those strings in the locale */ ++#if __FreeBSD__ > 4 + if (utf8_mode) + qsort(p, UCHAR_MAX + 1, sizeof(p[0]), dict_table_init_compare_utf8); + else ++#endif + qsort(p, UCHAR_MAX + 1, sizeof(p[0]), dict_table_init_compare_strcoll); + + /* Extract our unordered arrays */ +@@ -1126,6 +1132,9 @@ + */ + static int stranagram_utf8 (char *str) + { ++#if __FreeBSD__ < 5 ++ abort(); ++#else + size_t len; + char *p; + +@@ -1142,6 +1151,7 @@ + + stranagram_8bit (str, -1); + return 1; ++#endif + } + + /* makes anagram of utf-8 string 'str' */ +diff -ru ../dictd-freebsd/utf8_ucs4.c ./utf8_ucs4.c +--- ../dictd-freebsd/utf8_ucs4.c Sun Nov 24 09:35:55 2002 ++++ ./utf8_ucs4.c Sun Dec 1 22:44:40 2002 +@@ -1,3 +1,4 @@ ++#if __FreeBSD__ > 4 + #include <wctype.h> + #include <stdlib.h> + #include <ctype.h> +@@ -210,3 +211,4 @@ + else + return (size_t) -1; + } ++#endif // __FreeBSD__ > 4 +diff -ru ../dictd-freebsd/utf8_ucs4.h ./utf8_ucs4.h +--- ../dictd-freebsd/utf8_ucs4.h Sun Nov 24 09:35:55 2002 ++++ ./utf8_ucs4.h Sun Dec 1 22:26:15 2002 +@@ -1,3 +1,4 @@ ++#if __FreeBSD__ > 4 + #ifndef _UTF8_UCS4_H_ + #define _UTF8_UCS4_H_ + +@@ -73,3 +74,4 @@ + __END_DECLS + + #endif // _UTF8_UCS4_H_ ++#endif // __FreeBSD__ > 4 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021218085050.GA23253>