|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||||||
2011年01月14日(金) 旧暦 [n年日記] [更新:"2011/01/16 01:00:16"]#1 [pkgsrc][TeX] (dvipdfmx) Error: /undefinedresource in /findfontError: /undefinedresource in /findfont Operand stack: 6.6587 Ryumin-Light-EUC-H2010/12/19/ doesn't make it. @ cidfmap の位置:
実は機械をすっかり入替えていて、
@ cidfmap を読んでくれない:
それで、今一つ得たことは、cidfmap の位置が
/usr/pkg/share/ghostscript/8.71/Resource/Init/cidfmapでは読んでくれなくて、少なくとも現 direcotry (current directory) に置けば 読む、ということだ。 前の機械では、次のところにもあったが、 /usr/pkg/share/ghostscript/8.71/Resource/Init/cidfmap /usr/pkg/share/ghostscript/8.71/lib/cidfmap今回はこれでもだめらしい。 t-105@makoto 22:25:25/110114(..8.71/lib)% ls -l ../Resource/Init/cidfmap -rw-r--r-- 1 root wheel 1244 Jan 13 23:34 ../Resource/Init/cidfmap t-105@makoto 22:25:37/110114(..8.71/lib)% sudo ln -s ../Resource/Init/cidfmap .2010/12/18 の日記 を見ると、一度だけ Init の下を見に行っている ktrace -t n の記録がある。 だから条件によっては、そこを見に行くらしい。 少なくとも FONTDIR 変数の内容によるものではなかった気がする。 普通だったら source を見ればいいはずだけれど gs の場合には postscript 語で書いてあるので、(僕には) 読むのはかなり大変 @ libpng 1.5:
ちなみに、今は png が 1.5 になっていて、僕の観察では ghostscript-8.71nb6 は
png 1.5 では build 出来ない。(なので今は 1.4.5 に戻して試しているところ)
@ disable-compile-init:
宇羅さんによれば、--disable-compile-init の有無は関係ない、ということになっている
(付けなくても大丈夫の意味)。
これに関連して(と思うが) 次のような表示が出る t-105@makoto 23:21:14/110114(~)% gs --help |grep compile Initialization files are compiled into the executable.これは --disable-compile-init の意味に見えるが、build の指定に関係なく、 上記表示が出る、というのが今の僕の理解(観察) そして man gs すると、FILES の項目に少し書いてあって、 いろいろなファイルを参照する時に、その探索位置をコンパイル時に 埋込むかどうか、という話で、やはり今回の(僕の)関心事としては、この指定 は関係ないのではないかと思っている。 @ GS_LIB:
それで、同じく man page の INITIALIZATION FILES の項に GS_LIB への言及がある。
試しにその GS_LIB を指定すると、cidfmap を読んでくれる。
(実際には、cidfmap のある位置への直接の指定でなく *.ps を探すのかとは思う)
env GS_LIB=/usr/pkg/share/ghostscript/8.71/Resource/Init gs /tmp/ps更に次のような説明があるので、make する時に GS_LIB_DEFAULT を入れておけば良いのかな。 3. the directories specified by the GS_LIB_DEFAULT macro in the Ghostscript makefile when the executable was built.次のようなものは記述がある (..print/ghostscript)% grep GS_LIB_DEFAULT `find . -name unix-gcc.mak` GS_LIB_DEFAULT= $(gsdatadir)/Resource/Init: $(gsdatadir)/lib: $(gsdatadir)/Resource/Font: $(gsdir)/fonts(実際には一行)。これらは --help で Search path: の部分に表示されるものと一致している (と思う) Search path: . : %rom%Resource/Init/ : %rom%lib/ : /usr/pkg/share/ghostscript/8.71/Resource/Init : /usr/pkg/share/ghostscript/8.71/lib : /usr/pkg/share/ghostscript/8.71/Resource/Font : /usr/pkg/share/ghostscript/fonts : /usr/pkg/share/fonts/default/ghostscript : ... (omitted) ...これ以外に GS_LIB が上書きされていて動作が変になっている、と考えるのかな。 @ 正常時と異常時の違い:
異常時
Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... .... Can't find (or can't open) font file %rom%Resource/Font/Ryumin-Light-H.正常時 (env GS_LIB= を付けた時) Loading NimbusSanL-Bold font from /usr/pkg/share/ghostscript/8.71/Resource/ Font/NimbusSanL-Bold... 3277152 1721013 3752160 2466406 1 done. Loading NimbusSanL-Regu font from /usr/pkg/share/ghostscript/8.71/Resource/ Font/NimbusSanL-Regu... 3310432 1821787 3752160 2467288 1 done. Loading Ryumin-Light-H font from /usr/pkg/share/ghostscript/8.71/Resource/ Font/Ryumin-Light-H... Loading a TT font from /usr/pkg/lib/X11/fonts/TTF/ipam.ttf to emulate a CID font Ryumin-Light ... Done. 912 /* Print the standard help message. */ 913 static void 914 print_help(gs_main_instance * minst) 915 { 916 int i, have_rom_device = 0; 917 918 print_revision(minst); 919 print_usage(minst); 920 print_emulators(minst); 921 print_devices(minst); 922 print_paths(minst); 923 /* Check if we have the %rom device */ 924 for (i = 0; i < gx_io_device_table_count; i++) { 925 const gx_io_device *iodev = gx_io_device_table[i]; 926 const char *dname = iodev->dname; 927 928 if (dname && strlen(dname) == 5 && !memcmp("%rom%", dname, 5)) { 929 have_rom_device = 1; 930 break; 931 } 932 } 933 if (have_rom_device) { 934 outprintf(minst->heap, "Initialization files are compiled into the executable.\n"); 935 } 936 print_help_trailer(minst); 937 }%rom% という字は rom_device がある時に表示される gs.mk の説明 # COMPILE_INITS - normally 1; compiles the PostScript language # initialization files (gs_init.ps et al) and Resource/* tree # into the executable, eliminating the need for these files # to be present at run time. Files will be placed in the # %rom% device.仮説:
@ 以前の機械では --disable-compile-inits が有効になっている:
そう言えば、最近まで使っていた機械では、cidfmap
を読んでくれていたので調べると、次のように compile-inits が無効になっている。
gs --help .... Search path: . : /usr/pkg/share/ghostscript/8.71/Resource/Init : /usr/pkg/share/ghostscript/8.71/lib : /usr/pkg/share/ghostscript/8.71/Resource/Font : /usr/pkg/share/ghostscript/fonts : /usr/pkg/share/fonts/default/ghostscript : /usr/pkg/share/fonts/default/Type1 : /usr/pkg/share/fonts/default/TrueType : /usr/lib/DPS/outline/base : /usr/openwin/lib/X11/fonts/Type1 : /usr/openwin/lib/X11/fonts/TrueType For more information, see /usr/pkg/share/ghostscript/8.71/doc/Use.htm. Please report bugs to bugs.ghostscript.com.さて、これはどうやって作ったのかな。 (いまもう一度 make して見たら、同じものが出来ている) 参考: # The .ps library files and Resources tree are now compiled into Ghostscript by default. This means -Ilib is no longer needed when running gs uninstalled. Run './configure --disable-compile-inits' or set COMPILE_INITS=0 in the makefile to recover the old behaviour. The library files are still installed for reference. @ ldd で見ると設置済の /usr/pkg/lib を参照している:
--disable-compile-inits が効かないと思っていたのは間違いでした。
今は gs -h で効くか、効かないかを確めていたのですが、実際には work/.destdir/pkg/bin/gs のまま確認していました。ところが、これは ldd で見ると、次のようになっていて、libgs.so については、作った ばかりのものではなく、設置済のものを見ていました。 t-105@makoto 16:32:47/110115(..print/ghostscript)% !ldd ldd ./work/.destdir/usr/pkg/bin/gs ./work/.destdir/usr/pkg/bin/gs: -lgs.8 => /usr/pkg/lib/libgs.so.8 -lXt.6 => /usr/pkg/lib/libXt.so.6make package-install する前に、正しく確認するには、 次のように、共有ライブラリの探索位置を指定してやる必要がありました。 t-105@makoto 16:34:51/110115(..print/ghostscript)% \ env LD_LIBRARY_PATH=./work/.destdir/usr/pkg/lib ./work/.destdir/usr/pkg/bin/gs -h ( つっこみ )
|
最近の日記 2025年02月13日 ・dvipdfmx ICC profile format spec. version 4.3.0 2025年01月29日 ・ham/wsjtx 2025年01月27日 ・wip/wsjtx 5.4.2 2025年01月25日 ・ham/wsjtx 2025年01月15日 ・今更 advent calendar | ||||||||||