----------------------------------------------------------------------------- 98/02/12 K.Fujii Wnn4.2 For MkLinux DR3alpha4 + Shared Libraries Rebuilt With Morishima's Jserver Patch. ----------------------------------------------------------------------------- [0] Files orig: directory containing original source files ftp.tohoku.ac.jp/mirror/Wnn/Wnn4.2.tar.gz /pub/kanakan/wnn/unofficial/Wnn4.2.X11R6.1 (mklinux-jp) Re: Wnn4.2 by Akitoshi MORISHIMA (98/02/12): Wnn4.2-jserver-glibc.patch README: this file. Wnn4.2-bin.tar.gz: precompiled binary (needs shared libs). Wnn4.2-src.tar.gz: modified source codes to build on mklinux DR3alpha4. wnnhindo.tar.gz: wnnhindo utility to update pubdic according to previous usr dictionaries (no need if 1st installtion). [1] Changes to Wnn4.2 Source Files The following is the changes I made to the Wnn4.2 source files in order to compile it with MkLinux DR2.1 upadate2 and shared libraries. $ cd /usr/local/src/wnn $ ls orig Wnn4.2.tar.gz Wnn4.2.X11R6.1 $ tar -zxvf orig/Wnn4.2.tar.gz $ cd Xsi $ vi README $ patch -p1 < ../orig/Wnn4.2.X11R6.1 $ patch < ../orig/Wnn4.2-jserver-glibc.patch $ vi Wnn/include/config.h #ifndef LIBDIR #define LIBDIR "/usr/local/wnn/lib/wnn" #endif /* LIBDIR */ $ cp config/Project.tmpl X11.tmpl $ vi config/X11.tmpl #define WnnInstallDicForcibly YES EXTRA_LIBRARIES = -lcrypt <--- Important(*1) WNNEXTRAFLAGS = MANPATH = /usr/local/wnn/man WNNWNNDIR = /usr/local/wnn/lib/wnn WNNBINDIR = /usr/local/wnn/bin WNNINCDIR = /usr/local/wnn/include WNNLIBDIR = /usr/local/wnn/lib $ vi Wnn/jlib/js.c caddr_t --> struct sockaddr * <--- Important(*3) $ vi Wnn/jserver/Imakefile EXTRA_LDOPTIONS = $(WNNEXTRALDFLAGS) <--- Important(*2) $ vi cWnn/jserver/Imakefile EXTRA_LDOPTIONS = $(WNNEXTRALDFLAGS) <--- Important(*2) $ vi kWnn/jserver/Imakefile EXTRA_LDOPTIONS = $(WNNEXTRALDFLAGS) <--- Important(*2) $ vi Xwnmo/xwnmo/do_socket.c <--- Important(*4) extern int read(), write(); --> extern ssize_t ... $ vi Xwnmo/xwnmo/do_xjpdrct.c <--- Important(*4) extern int read(), write(); --> extern ssize_t ... $ vi Xwnmo/xwnmo/killxwnmo.c <--- Important(*4) extern int getuid(); --> extern uid_t getuid(); [2] Build and Install Wnn4.2 $ su # cd /usr/include # ln -s ncurses/term.h term.h <--- Important(*4) # exit $ cd /usr/local/src/wnn $ tar -zxvf Wnn4.2-src.tar.gz <--- Source with changes described in [1] $ cd Xsi $ make World -f Makefile.inst >& world.log & $ tail -f world.log ^C $ su # vi /etc/group add wnn (GID=127) # vi /etc/passwd add wnn (UID=127) # make install install.man >& install.log & # tail -f install.log ^C # mkdir /usr/local/wnn/lib/wnn/ja_JP/dic/usr # chown wnn:wnn /usr/local/wnn/lib/wnn/ja_JP/dic/usr # mkdir /usr/local/wnn/lib/wnn/zh_TW/dic/usr # chown wnn:wnn /usr/local/wnn/lib/wnn/zh_TW/dic/usr # mkdir /usr/local/wnn/lib/wnn/ko_KR/dic/usr # chown wnn:wnn /usr/local/wnn/lib/wnn/ko_KR/dic/usr # mkdir /usr/local/wnn/lib/wnn/zh_CN/dic/usr # chown wnn:wnn /usr/local/wnn/lib/wnn/zh_CN/dic/usr [3] Notes *1) Somehow crypt is not in libc after moving to shared lib. *3) Incompatible type error occured. *4) Conflicting type error occured. *5) term.h is not in the standard place. [4] Precompiled binary To use precompiled binary, do $ su # tar -zxvf /somewhere/Wnn4.2-bin.tar.gz -C / # cd /usr/local/wnn/lib/wnn/ja_JP/dic/pubdic # /usr/local/wnn/bin/Wnn4/wnntouch * To start jserver $ su wnn # /usr/local/wnn/bin/Wnn4/jserver To use kinput2 $ export JSERVER= $ export WNNENVRC=/usr/local/wnn/lib/wnn/ja_JP/wnnenvrc $ kinput2 -wnn & Notice that WNNENVRC has to be set correctly, since its default value is /usr/local/lib/wnn/ja_JP/wnnenvrc.