diff -urN Canna36p3.OLD/Canna.conf Canna36p3/Canna.conf --- Canna36p3.OLD/Canna.conf 2003-01-25 17:47:47.000000000 +0900 +++ Canna36p3/Canna.conf 2003-06-02 03:27:46.000000000 +0900 @@ -133,7 +133,7 @@ /* rootにならずにインストールする時はこれを定義して下さい */ /* #define InstallAsUser */ /* 従来と互換のディレクトリ構造にする場合はこれを定義してください */ -#define ObsoleteInstallDir +/* #define ObsoleteInstallDir */ #ifdef InstallAsUser # define DefCannaPrefix $(HOME)/canna # define DefErrDir $(cannaPrefix)/log @@ -144,7 +144,7 @@ # define DefErrDir /usr/spool/canna # define DefLibCannaDir /usr/lib # else -# define DefErrDir /var/log +# define DefErrDir /var/log/canna # define DefLibCannaDir $(cannaExecPrefix)/lib # endif #endif @@ -156,16 +156,18 @@ # define DefCannaLibDir $(cannaPrefix)/share/canna #endif -cannaPrefix = DefCannaPrefix +cannaPrefix = /usr cannaExecPrefix = $(cannaPrefix) cannaBinDir = $(cannaExecPrefix)/bin cannaSrvDir = DefCannaSrvDir XCOMM cannaLibDir = /var/lib/canna XCOMM cannaLibDir = /var/db/canna cannaLibDir = DefCannaLibDir -XCOMM cannaManDir = $(cannaPrefix)/share/man -cannaManDir = $(cannaPrefix)/man +cannaManDir = $(cannaPrefix)/share/man +XCOMM cannaManDir = $(cannaPrefix)/man cannaIncDir = $(cannaPrefix)/include/canna +cannaDocDir = $(cannaPrefix)/share/doc/canna-3.6_p3 +cannaShareDir = $(cannaPrefix)/share/canna libCannaDir = DefLibCannaDir ErrDir = DefErrDir @@ -248,7 +250,7 @@ /* #define UseInstalledLibCanna YES */ #define UseInstalledLibCanna NO -DicDir = $(cannaLibDir)/dic +DicDir = /var/lib/canna/dic #ifdef NeXT #define NO_X_ENV @@ -365,6 +367,7 @@ echo "s%@(UnixSockDir)%$(UnixSockDir)%g"; \ @@\ echo "s%@(UnixSockName)%$(UnixSockName)%g"; \ @@\ echo "s%@(AccessFile)%$(AccessFile)%g"; \ @@\ + echo "s%@(DicDir)%$(DicDir)%g"; \ @@\ echo "s%@(ErrDir)%$(ErrDir)%g") > $(MANUALSED) @@\ clean:: @@\ $(RM) $(MANUALSED) @@ -381,6 +384,7 @@ echo "s%@(UnixSockDir)%$(UnixSockDir)%g" >> $(MANUALSED) @@\ echo "s%@(UnixSockName)%$(UnixSockName)%g" >> $(MANUALSED) @@\ echo "s%@(AccessFile)%$(AccessFile)%g" >> $(MANUALSED) @@\ + echo "s%@(DicDir)%$(DicDir)%g" >> $(MANUALSED) @@\ echo "s%@(ErrDir)%$(ErrDir)%g" >> $(MANUALSED) @@\ clean:: @@\ $(RM) $(MANUALSED) @@ -561,6 +565,7 @@ echo "#define CANNAHOSTFILE '$(cannaLibDir)/cannahost'" >> junk @@\ echo "/* for lib/canna */" >> junk @@\ echo "#define CANNALIBDIR '$(cannaLibDir)'" >> junk @@\ + echo "#define CANNASHAREDIR '$(cannaShareDir)'" >> junk @@\ echo "/* for scripts */" >> junk @@\ echo "#define CANNABINDIR $(cannaBinDir)" >> junk @@\ echo "/* others */" >> junk @@\ @@ -587,6 +592,7 @@ echo "#define CANNAHOSTFILE \"$(cannaLibDir)/cannahost\"";\ @@\ echo "/* for lib/canna */";\ @@\ echo "#define CANNALIBDIR \"$(cannaLibDir)\""; \ @@\ + echo "#define CANNASHAREDIR \"$(cannaShareDir)\""; \ @@\ echo "/* for scripts */";\ @@\ echo "#define CANNABINDIR $(cannaBinDir)"; \ @@\ echo "/* others */";\ @@\ diff -urN Canna36p3.OLD/dic/phono/Imakefile Canna36p3/dic/phono/Imakefile --- Canna36p3.OLD/dic/phono/Imakefile 2002-10-19 17:27:40.000000000 +0900 +++ Canna36p3/dic/phono/Imakefile 2003-06-02 03:27:46.000000000 +0900 @@ -27,9 +27,10 @@ ROMAJI_DIC_DEF = -DSHIFT - DICDIR = $(cannaLibDir)/dic - SAMPLEDIR = $(cannaLibDir)/sample - SAMPLESRCDIR = $(cannaLibDir)/sample/src + DICDIR = $(DicDir) + CANNASHAREDIR = $(cannaShareDir) + SAMPLEDIR = $(cannaDocDir)/sample + SAMPLESRCDIR = $(cannaDocDir)/sample/src KPDEF = default.kpdef jdaemon.kpdef just.kpdef kaisoku.kpdef kana.kpdef \ lan5.kpdef matsu.kpdef newjis.kpdef romaji.kpdef sokuon.kpdef \ @@ -69,7 +70,7 @@ MakeDirectories(install,$(DICDIR)) MakeDirectories(install,$(SAMPLESRCDIR)) -InstallMultiple($(ROMKANA_TABLES),$(DICDIR)) +InstallMultiple($(ROMKANA_TABLES),$(CANNASHAREDIR)) #ifdef USE_OBSOLETE_STYLE_FILENAME InstallNonExec(default.kpdef,$(SAMPLESRCDIR)) diff -urN Canna36p3.OLD/lib/canna/Imakefile Canna36p3/lib/canna/Imakefile --- Canna36p3.OLD/lib/canna/Imakefile 2002-10-20 17:20:33.000000000 +0900 +++ Canna36p3/lib/canna/Imakefile 2003-06-02 03:27:46.000000000 +0900 @@ -116,8 +116,8 @@ #endif /* ProjectX */ #endif /* DoSharedLib */ -sglobal.h: GSYM.awk globnames - awk -f GSYM.awk < globnames > $@ +includes:: + awk -f GSYM.awk < globnames > sglobal.h clean:: $(RM) y.tab.h y.tab.c lex.yy.c gram.h gram.c lex.c sglobal.h diff -urN Canna36p3.OLD/lib/canna/romaji.c Canna36p3/lib/canna/romaji.c --- Canna36p3.OLD/lib/canna/romaji.c 2003-01-17 17:48:19.000000000 +0900 +++ Canna36p3/lib/canna/romaji.c 2003-06-02 03:27:46.000000000 +0900 @@ -438,7 +438,7 @@ } } -#if 0 /* currently CANNASHAREDDIR is not defined */ +#if 1 /* currently CANNASHAREDDIR is defined */ if (retval == (struct RkRxDic *)NULL) { /* added for Debian by ISHIKAWA Mutsumi */ extern jrUserInfoStruct *uinfo; diff -urN Canna36p3.OLD/misc/Imakefile Canna36p3/misc/Imakefile --- Canna36p3.OLD/misc/Imakefile 2003-01-13 14:34:30.000000000 +0900 +++ Canna36p3/misc/Imakefile 2003-06-02 03:27:46.000000000 +0900 @@ -34,14 +34,14 @@ MakeLintLibSubdirs($(SUBDIRS)) MakeLintSubdirs($(SUBDIRS),install.ln,install.ln) -MakeDirectories(install,$(cannaLibDir)/sample/src) +MakeDirectories(install,$(cannaDocDir)/sample/src) #if defined(nec_ews_svr4) || defined(pcux_r32) -InstallNamedNonExec(rMakefile,Makefile,$(cannaLibDir)/sample/src) +InstallNamedNonExec(rMakefile,Makefile,$(cannaDocDir)/sample/src) #else -InstallNamedNonExec(cMakefile,Makefile,$(cannaLibDir)/sample/src) +InstallNamedNonExec(cMakefile,Makefile,$(cannaDocDir)/sample/src) #endif /* nec_ews_svr4 */ -InstallNonExec(is.c,$(cannaLibDir)/sample/src) +InstallNonExec(is.c,$(cannaDocDir)/sample/src) clean:: $(RM) $(PROGRAMS) diff -urN Canna36p3.OLD/misc/initfiles/Imakefile Canna36p3/misc/initfiles/Imakefile --- Canna36p3.OLD/misc/initfiles/Imakefile 2003-01-21 19:57:03.000000000 +0900 +++ Canna36p3/misc/initfiles/Imakefile 2003-06-02 03:27:46.000000000 +0900 @@ -6,7 +6,7 @@ #endif CANNAROOT = ../.. - SAMPLEDIR = $(cannaLibDir)/sample + SAMPLEDIR = $(cannaShareDir) all:: @@ -22,7 +22,7 @@ Install: 1.1.cob 1.2.cob fixer.cob jdemon.cob just.cob lan5.cob modes.cob \ matsu.cob sample.cob skk.cob tut.cob unix.cob vje.cob wx2+.cob \ default.cob -InstallNamedNonExec(default.cob,default.canna,$(cannaLibDir)) +InstallNamedNonExec(default.cob,default.canna,$(cannaShareDir)) InstallNamedNonExec(1.1.cob,1.1.canna,$(SAMPLEDIR)) InstallNamedNonExec(1.2.cob,1.2.canna,$(SAMPLEDIR)) InstallNamedNonExec(fixer.cob,fixer.canna,$(SAMPLEDIR)) @@ -38,7 +38,7 @@ InstallNamedNonExec(vje.cob,vje.canna,$(SAMPLEDIR)) InstallNamedNonExec(wx2+.cob,wx2+.canna,$(SAMPLEDIR)) #else -InstallNamedNonExec(default.ca,default.canna,$(cannaLibDir)) +InstallNamedNonExec(default.ca,default.canna,$(cannaShareDir)) InstallNonExec(1.1.canna,$(SAMPLEDIR)) InstallNonExec(1.2.canna,$(SAMPLEDIR)) InstallNonExec(fixer.canna,$(SAMPLEDIR)) diff -urN Canna36p3.OLD/server/main.c Canna36p3/server/main.c --- Canna36p3.OLD/server/main.c 2002-10-19 17:27:53.000000000 +0900 +++ Canna36p3/server/main.c 2003-06-02 03:32:05.000000000 +0900 @@ -73,6 +73,9 @@ long start_real_time, start_user_time, start_sys_time ; extern void ClientStat(); +void EarlyInit pro((int, char **)); +int BecomeDaemon pro((void)); + main(argc, argv) int argc ; char *argv[] ; @@ -83,13 +86,11 @@ extern struct sockaddr_un unsock; #endif - /* サーバを子プロセス(デーモン)として起動する */ - parentid = BecomeDaemon(argc, argv); - + EarlyInit(argc, argv); + /* コンテクスト数の malloc 処理 */ if(!WidenTables(INITSOCKS)){ PrintMsg("十分なメモリがありません。mallocに失敗しました。\n"); - if (parentid) kill(parentid, SIGTERM); exit(1); /* まだ UNIXドメインを作っていない */ } @@ -110,10 +111,12 @@ #endif fprintf(stderr, "\n"); CloseServer(); - if (parentid) kill(parentid, SIGTERM); exit(2); } + /* サーバを子プロセス(デーモン)として起動する */ + parentid = BecomeDaemon(); + /* エラー出力の切り替え、TTYの切り離し */ if (parentid) kill(parentid, SIGTERM); DetachTTY(); diff -urN Canna36p3.OLD/server/misc.c Canna36p3/server/misc.c --- Canna36p3.OLD/server/misc.c 2002-12-18 17:29:09.000000000 +0900 +++ Canna36p3/server/misc.c 2003-06-02 03:34:02.000000000 +0900 @@ -125,14 +125,14 @@ extern void getserver_version pro((void)); -int -BecomeDaemon ( argc, argv ) +void +EarlyInit ( argc, argv ) int argc; char *argv[]; { char *ddname = (char *)NULL; char buf[ MAXDATA ]; - int parent, parentid, i; + int i; int context; struct passwd *pwent; @@ -276,15 +276,16 @@ return 0; /* デーモンにならない */ } #endif - /* - * FORK a CHILD - */ - - parentid = getpid() ; - bzero(PreMountTabl, MAX_PREMOUNTS * sizeof(unsigned char *)); CreateAccessControlList() ; +} + +int +BecomeDaemon () +{ + int parent, parentid ; + parentid = getpid() ; signal(SIGTERM, parQUIT); #ifndef __EMX__ @@ -294,7 +295,7 @@ } if ( parent ) { pause() ; - exit( 0 ) ; + _exit( 0 ) ; /* wait( (int *)0 ) ; */ } else signal(SIGTERM, SIG_DFL);