トップ «前の日(08-23) 最新 次の日(08-25)» 追記

Masa's blog

検索キーワード:

2010年08月24日 Libretto 100 + Cardbus LAN card + kernel 2.6.17.14 = NG

_ Libretto 100 + Cardbus LAN card + kernel 2.6.17.14 = NG

やっぱり安定しなかった。ファイルシステム(ext3)壊れた。

この機械では10BASE-Tのカードで運用しようと決めた。

_ firefox-3.6.8のビルドでsedがループ

した。

以下のステップ

cat ../../browser/locales/en-US/updater/updater.ini | \
          sed -e "s/^InfoText=/Info=/" -e "s/^TitleText=/Title=/" | \
          sed -e "s/%MOZ_APP_DISPLAYNAME%/Namoroka/" > \
          ../../dist/bin/updater.ini

を実行し始めたとたんに、急にシステムが重くなって、実行ステップがその先に一切進まなくなった。

その時のtopの表示が以下で

top - 13:16:16 up 18 min,  7 users,  load average: 1.12, 0.64, 0.42
Tasks: 116 total,   2 running, 114 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.7%us,  0.7%sy, 98.6%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    245632k total,   239056k used,     6576k free,    74084k buffers
Swap:   530104k total,      232k used,   529872k free,    97016k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16770 m-ito     30  10  3112  956  716 R 98.6  0.4   0:09.66 sed
 1819 root      20   0  145m 9836 3468 S  1.0  4.0   1:21.90 X
    1 root      20   0   772  324  280 S  0.0  0.1   0:02.79 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    6 root      20   0     0    0    0 S  0.0  0.0   0:00.52 events/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.04 khelper
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr

sedが頑張っている。

vmstat 3 の表示が以下

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  0    232   6716  74148  97100    0    0   281   141  506  306 36 10 50  5
 1  0    232   6716  74148  97092    0    0     0     0  958   96 100  0  0  0
 1  0    232   6716  74148  97092    0    0     0     0  971   63 100  0  0  0
 1  0    232   6716  74148  97092    0    0     0     0  958   27 100  0  0  0
 1  0    232   6716  74148  97092    0    0     0     0  976   74 99  1  0  0
 1  0    232   6716  74148  97092    0    0     0     0  987   87 99  1  0  0
 1  0    232   6716  74148  97092    0    0     0     0  967   41 100  0  0  0
 1  0    232   6716  74148  97092    0    0     0     0  964   28 100  0  0  0

IOが一切無くて、CPUはユーザでほとんど100%使い切ってる状況。

browser/locales/en-US/updater/updater.iniに何か原因があるのではと当たりをつけ、とりあえず中身を表示してみると以下のように

$ cat browser/locales/en-US/updater/updater.ini
; This file is in the UTF-8 encoding
[Strings]
TitleText=%MOZ_APP_DISPLAYNAME% Update
InfoText=%MOZ_APP_DISPLAYNAME% is installing your updates and will start in a few moments

特におかしい所は見当たらないような...

同じファイルをvimで開いてみたら

; This file is in the UTF-8 encoding
[Strings]
TitleText=%MOZ_APP_DISPLAYNAME% Update
InfoText=%MOZ_APP_DISPLAYNAME% is installing your updates and will start in a few moments|&

最終行の末尾に「|&」の文字が現れた(@O@;

odで確認すると

$ tail -1 browser/locales/en-US/updater/updater.ini | od -xc
0000000  49  6e  66  6f  54  65  78  74  3d  25  4d  4f  5a  5f  41  50
           6e49    6f66    6554    7478    253d    4f4d    5f5a    5041
          I   n   f   o   T   e   x   t   =   %   M   O   Z   _   A   P
0000020  50  5f  44  49  53  50  4c  41  59  4e  41  4d  45  25  20  69
           5f50    4944    5053    414c    4e59    4d41    2545    6920
          P   _   D   I   S   P   L   A   Y   N   A   M   E   %       i
0000040  73  20  69  6e  73  74  61  6c  6c  69  6e  67  20  79  6f  75
           2073    6e69    7473    6c61    696c    676e    7920    756f
          s       i   n   s   t   a   l   l   i   n   g       y   o   u
0000060  72  20  75  70  64  61  74  65  73  20  61  6e  64  20  77  69
           2072    7075    6164    6574    2073    6e61    2064    6977
          r       u   p   d   a   t   e   s       a   n   d       w   i
0000100  6c  6c  20  73  74  61  72  74  20  69  6e  20  61  20  66  65
           6c6c    7320    6174    7472    6920    206e    2061    6566
          l   l       s   t   a   r   t       i   n       a       f   e
0000120  77  20  6d  6f  6d  65  6e  74  73  e2  80  a6  0a
           2077    6f6d    656d    746e    e273    a680    000a
          w       m   o   m   e   n   t   s 342 200 246  \n
0000135

末尾に「e2 80 a6」のゴミっぽいものが付いている(?)

vimでこのゴミっぽいものを削除してビルドを再開したら、何事も無かったかのようにスルスル完了しましたとさ。

_ Slackware-13.1 + firefox-3.6.8 + kinput2

Slackware-13.1な環境でfirefoxを起動すると、かな漢字変換にSCIMが起動される。それはそれで、昔からのSlackwareユーザとしては

「ほぉ〜すらっくも便利になったもんじゃのぉ〜」

なのだが、やはり使い慣れたkinput2 + Cannaにしがみつきたい。

その場合は、環境変数を以下のように設定し

XMODIFIERS='@im=kinput2'; export XMODIFIERS
GTK_IM_MODULE=xim; export GTK_IM_MODULE

kinput2を起動する際にximプロトコルを有効にしてやるとよい。

kinput2 -canna -xim -kinput +ximp &

2016年08月24日 Slackware64-14.2 on NEC VersaPro

_ CPU

$ cat /proc/cpuinfo | egrep "model name"
model name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
model name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
model name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
model name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
$

_ Memory

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        1.7G        835M        163M        5.2G        5.3G
Swap:          8.0G        2.1M        8.0G
$

_ Disk

$ LANG=C LC_ALL=C sudo fdisk -l /dev/sda
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x579556b7

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sda1           2048  16779263  16777216     8G 82 Linux swap
/dev/sda2       16779264 625142447 608363184 290.1G 83 Linux
$

_ w3m-0.5.3.tar.gz

$ tar xvf w3m-0.5.3.tar.gz

w3m-0.5.3.diff

*** ./istream.h.ORG	2012-11-28 12:23:44.903821617 +0900
--- ./istream.h	2012-11-28 12:24:31.368727065 +0900
***************
*** 20,26 ****

  typedef struct stream_buffer *StreamBuffer;

! struct file_handle {
      FILE *f;
      void (*close) ();
  };
--- 20,26 ----

  typedef struct stream_buffer *StreamBuffer;

! struct File_handle {
      FILE *f;
      void (*close) ();
  };
***************
*** 53,59 ****

  struct file_stream {
      struct stream_buffer stream;
!     struct file_handle *handle;
      char type;
      char iseos;
      int (*read) ();
--- 53,59 ----

  struct file_stream {
      struct stream_buffer stream;
!     struct File_handle *handle;
      char type;
      char iseos;
      int (*read) ();
*** ./istream.c.ORG	2012-11-28 12:23:39.465130387 +0900
--- ./istream.c	2012-11-28 12:24:16.455831711 +0900
***************
*** 22,29 ****
  static void basic_close(int *handle);
  static int basic_read(int *handle, char *buf, int len);

! static void file_close(struct file_handle *handle);
! static int file_read(struct file_handle *handle, char *buf, int len);

  static int str_read(Str handle, char *buf, int len);

--- 22,29 ----
  static void basic_close(int *handle);
  static int basic_read(int *handle, char *buf, int len);

! static void file_close(struct File_handle *handle);
! static int file_read(struct File_handle *handle, char *buf, int len);

  static int str_read(Str handle, char *buf, int len);

***************
*** 114,120 ****
      stream = New(union input_stream);
      init_base_stream(&stream->base, STREAM_BUF_SIZE);
      stream->file.type = IST_FILE;
!     stream->file.handle = New(struct file_handle);
      stream->file.handle->f = f;
      if (closep)
  	stream->file.handle->close = closep;
--- 114,120 ----
      stream = New(union input_stream);
      init_base_stream(&stream->base, STREAM_BUF_SIZE);
      stream->file.type = IST_FILE;
!     stream->file.handle = New(struct File_handle);
      stream->file.handle->f = f;
      if (closep)
  	stream->file.handle->close = closep;
***************
*** 638,650 ****
  }

  static void
! file_close(struct file_handle *handle)
  {
      handle->close(handle->f);
  }

  static int
! file_read(struct file_handle *handle, char *buf, int len)
  {
      return fread(buf, 1, len, handle->f);
  }
--- 638,650 ----
  }

  static void
! file_close(struct File_handle *handle)
  {
      handle->close(handle->f);
  }

  static int
! file_read(struct File_handle *handle, char *buf, int len)
  {
      return fread(buf, 1, len, handle->f);
  }
*** ./main.c.ORG	2016-08-01 21:43:32.714706108 +0900
--- ./main.c	2016-08-01 21:45:27.569705061 +0900
***************
*** 833,839 ****
--- 833,844 ----
      mySignal(SIGPIPE, SigPipe);
  #endif

+ #if 0
      orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
+ #else
+     orig_GC_warn_proc = GC_get_warn_proc();
+     GC_set_warn_proc(wrap_GC_warn_proc);
+ #endif
      err_msg = Strnew();
      if (load_argc == 0) {
  	/* no URL specified */
$ cd w3m-0.5.3
$ cat ../w3m-0.5.3.diff | patch -p0
$ LIBS=-lX11 ./configure && make
$ sudo make install && sudo ldconfig

_ less-382.tar.gz with iso262 patch

$ tar xvf less-382.tar.gz
$ chmod -R +w less-382
$ cd less-382
$ zcat ../less-382-iso258.patch.gz | patch -p1
$ zcat ../less-382-iso258-259.patch.gz | patch -p1
$ zcat ../less-382-iso259-260.patch.gz | patch -p1
$ zcat ../less-382-iso260-261.patch.gz | patch -p1
$ zcat ../less-382-iso261-262.patch.gz | patch -p1
$ zcat ../less-382-iso262.ext03.patch.gz | patch -p1
$ ./configure && make
$ sudo make install && sudo ldconfig

_ Canna37p3.tar.bz2

$ tar xvf Canna37p3.tar.bz2
$ cd Canna37p3
$ xmkmf
$ make canna
$ sudo make install
$ sudo make install.man

Add some next lines into /etc/rc.d/rc.local to run cannaserver at boot time.

if [ -x /usr/local/canna/sbin/cannaserver ]
then
        rm /tmp/.iroha_unix/IROHA
        /usr/local/canna/sbin/cannaserver -inet -u bin
        echo "Starting cannaserver."
fi

Create /var/log/CANNA0msgs.

$ sudo touch /var/log/CANNA0msgs
$ sudo chown bin.bin /var/log/CANNA0msgs

Add next line into /etc/ld.so.conf.

/usr/local/canna/lib

After above, do "sudo ldconfig".

Create ~/.cannax/rkc.conf

$ mkdir ~/.cannax
$ touch ~/.cannax/rkc.conf

_ nkf-2.1.2.tar.gz

$ tar xvf nkf-2.1.2.tar.gz
$ cd nkf-2.1.2
$ make
$ sudo make install
$ cd NKF.mod/
$ perl Makefile.PL
$ make
$ sudo make install

_ SKK-JISYO for Canna

Get SKK-JISYO.* from http://openlab.ring.gr.jp/skk/dic.html

$ LANG=C LC_ALL=C ls -l SKK-JISYO.*
-rw-r--r-- 1 m-ito m-ito   14055 May 29  2001 SKK-JISYO.JIS2
-rw-r--r-- 1 m-ito m-ito 2816928 May 29  2001 SKK-JISYO.L
-rw-r--r-- 1 m-ito m-ito  520977 May 29  2001 SKK-JISYO.edict
-rw-r--r-- 1 m-ito m-ito 1728337 May 29  2001 SKK-JISYO.geo
-rw-r--r-- 1 m-ito m-ito  408438 May 29  2001 SKK-JISYO.jinmei
-rw-r--r-- 1 m-ito m-ito  406311 May 29  2001 SKK-JISYO.law
-rw-r--r-- 1 m-ito m-ito 1513714 May 29  2001 SKK-JISYO.office.zipcode
-rw-r--r-- 1 m-ito m-ito   47834 May 29  2001 SKK-JISYO.okinawa
-rw-r--r-- 1 m-ito m-ito 3980829 May 29  2001 SKK-JISYO.zipcode
$

Convert SKK dic to Canna dic.

$ cat SKK-JISYO.JIS2 |\
nkf -e |\
grep -v '^;' |\
gawk 'BEGIN{
    FS = "/";
}
{
    tango = $0;
    gsub(/^.* \//, "", tango);
    gsub(/\//, " ", tango);
    gsub(/;.* /, " ", tango);
    printf("%-s #T35 %s\n", $1, tango);
}
END{
}' |\
sed -e 's/  */ /g' |\
sort |\
grep -v '^ *$' >skkjis2.t
$ mkbindic skkjis2.t

After above, skkjis2.cbd and skkjis2.cld will be created. Do same convert method for other SKK-JISYO.*.

Install *.cbd and *.cld.

# cp *.cbd /usr/local/canna/share/canna/dic/canna/
# chown bin.bin /usr/local/canna/share/canna/dic/canna/skk*.cbd
# chmod 664 /usr/local/canna/share/canna/dic/canna/skk*.cbd
# cp *.cld /usr/local/canna/share/canna/dic/canna/
# chown bin.bin /usr/local/canna/share/canna/dic/canna/skk*.cld
# chmod 664 /usr/local/canna/share/canna/dic/canna/skk*.cld
# cp /usr/local/canna/share/canna/dic/canna/dics.dir /usr/local/canna/share/canna/dic/canna/dics.dir.bak
# cat dics.dir >>/usr/local/canna/share/canna/dic/canna/dics.dir

Create(Edit) ~/.canna

;; Copyright 1992 NEC Corporation, Tokyo, Japan.
;;
;; Permission to use, copy, modify, distribute and sell this software
;; and its documentation for any purpose is hereby granted without
;; fee, provided that the above copyright notice appear in all copies
;; and that both that copyright notice and this permission notice
;; appear in supporting documentation, and that the name of NEC
;; Corporation not be used in advertising or publicity pertaining to
;; distribution of the software without specific, written prior
;; permission.  NEC Corporation makes no representations about the
;; suitability of this software for any purpose.  It is provided "as
;; is" without express or implied warranty.
;;
;; NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
;; INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
;; NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
;; USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
;; OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
;; PERFORMANCE OF THIS SOFTWARE.

;;  $Id: default.ca,v 1.3 1992/07/28 13:14:10 kon Exp $

(setq romkana-table "default.cbp")
;(setq romkana-table "kana.cbp")

(use-dictionary
 "iroha"
 "fuzokugo"
 "hojomwd"
 "hojoswd"
 "keishiki"
 "skkedict"
 "skkgeo"
 "skkname"
 "skkjis2"
 "skkl"
 "skklaw"
 "skkoki"
 "skkozip"
 "skkzip"
 :bushu "bushu"
 :user "user"
 )

;; 拡張モード表示
(global-set-key "\C-v" 'extend-mode)

;; BackSpaceで削除できるようにする。
(let ((mode 'yomi-mode))
 (set-key mode "\C-h" 'delete-previous)
 (set-key mode "\Delete" 'delete-previous)
 )

;; 変換開始終了キー設定
(unbind-key-function 'alpha-mode 'japanese-mode)
(set-key 'alpha-mode "\C-o" 'japanese-mode)
(set-key 'alpha-mode "\Xfer" 'japanese-mode)
(unbind-key-function 'empty-mode 'alpha-mode)
(set-key 'empty-mode "\C-o" 'alpha-mode)
(set-key 'empty-mode "\Xfer" 'alpha-mode)

_ pefnac-0.5.1.tar.gz

$ tar xvf pefnac-0.5.1.tar.gz
$ cd pefnac-0.5.1
$ make
$ sudo make install

_ kinput2-v3.1.tar.gz

$ tar xvf kinput2-v3.1.tar.gz
$ xmkmf
$ make Makefiles
$ make depend

Edit Kinput2.conf.

#define UseCanna        /* define if you are going to use Canna */
CANNAINSTDIR = /usr/local/canna
CANNASRC = $(CANNAINSTDIR)/include
CANNALIB = -L$(CANNAINSTDIR)/lib -lcanna16

Build after above.

$ make
$ sudo make install
$ sudo make install.man

Add "ja_JP.UTF-8" into "*IMProtocol.locales:" in /etc/X11/app-defaults/Kinput2 to use in UTF-8 envronment.

*IMProtocol.locales: ja_JP.UTF-8, ja_JP.SJIS, ja_JP.EUC, ja_JP, japanese, japan, ja

or add "Kinput2*IMProtocol.locales: ja_JP.UTF-8, ...snip... , ja" into ~/Xresources.

Add next line into ~/xinitrc to run kinput2.

kinput2 -kinput +ximp -xim -canna &

_ rxvt-unicode-9.22.tar.gz

$ tar xvf rxvt-unicode-9.22.tar.gz
$ cd rxvt-unicode-9.22
$ ./configure --enable-unicode3 --enable-iso14755 && make
$ sudo make install && sudo ldconfig

Add entry for urxvt into /etc/termcap.

# cat doc/etc/rxvt-unicode.termcap>>/etc/termcap

_ fvwm1_1.24r.orig.tar.gz

$ tar xvvf fvwm1_1.24r.orig.tar.gz
$ cd fvwm1-1.24r.orig/
$ zcat ../fvwm1_1.24r-56.diff.gz | patch -p1
$ patch -p1 <debian/i18n.patch
$ cat ../fvwm1_1.24r-56-1.diff | patch -p0
*** modules/FvwmAudio/Imakefile.ORG	2015-12-02 10:46:14.031822333 +0900
--- modules/FvwmAudio/Imakefile	2015-12-02 10:46:34.219569951 +0900
***************
*** 10,17 ****
   * are correct for your rplay installation.
   */

  #define HAVE_RPLAY
!

  #ifdef HAVE_RPLAY
  AUDIO_DEFINES = -DHAVE_RPLAY
--- 10,18 ----
   * are correct for your rplay installation.
   */

+ #if 0
  #define HAVE_RPLAY
! #endif

  #ifdef HAVE_RPLAY
  AUDIO_DEFINES = -DHAVE_RPLAY
$ cat ../fvwm1_1.24r-56-2.diff | patch -p0
*** configure.h.ORG	2015-12-02 10:59:17.825023569 +0900
--- configure.h	2015-12-02 10:59:31.210856224 +0900
***************
*** 64,69 ****
--- 64,70 ----
   *   If you want to use i18n feature, specify #define I18N
   ***************************************************************************/
  /* #define I18N */
+ #define I18N

  /***************************************************************************
   *#define M4
$ cat ../fvwm1_1.24r-56-3.diff | patch -p0
*** ./modules/FvwmIconBox/FvwmIconBox.c.ORG	2015-12-09 15:24:04.410373438 +0900
--- ./modules/FvwmIconBox/FvwmIconBox.c	2015-12-09 15:24:22.327149447 +0900
***************
*** 1056,1062 ****
    gcv.background = icon_back_pix;
    IconShadowGC = XCreateGC(dpy, Root, gcm, &gcv);

!   gcm = GCForeground|GCBackground|GCFont;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
--- 1056,1062 ----
    gcv.background = icon_back_pix;
    IconShadowGC = XCreateGC(dpy, Root, gcm, &gcv);

!   gcm = GCForeground|GCBackground/* |GCFont */;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
*** ./modules/FvwmIdent/FvwmIdent.c.ORG	2015-12-09 15:24:32.972016368 +0900
--- ./modules/FvwmIdent/FvwmIdent.c	2015-12-09 15:24:48.383823694 +0900
***************
*** 456,462 ****
    XSelectInput(dpy,main_win,MW_EVENTS);
    change_window_name(&MyName[1]);

!   gcm = GCForeground|GCBackground|GCFont;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
--- 456,462 ----
    XSelectInput(dpy,main_win,MW_EVENTS);
    change_window_name(&MyName[1]);

!   gcm = GCForeground|GCBackground/* |GCFont */;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
*** ./modules/FvwmPager/x_pager.c.ORG	2015-12-09 15:24:59.594683539 +0900
--- ./modules/FvwmPager/x_pager.c	2015-12-09 15:25:18.115451998 +0900
***************
*** 393,399 ****
      }
    XMapRaised(dpy,Scr.Pager_w);

!   gcm = GCForeground|GCBackground|GCFont;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;

--- 393,399 ----
      }
    XMapRaised(dpy,Scr.Pager_w);

!   gcm = GCForeground|GCBackground/* |GCFont */;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;

*** ./modules/FvwmWinList/FvwmWinList.c.ORG	2015-12-09 15:25:31.115289477 +0900
--- ./modules/FvwmWinList/FvwmWinList.c	2015-12-09 15:25:45.232112993 +0900
***************
*** 689,695 ****
    gcval.foreground=fore;
    gcval.background=back;
    gcval.font=ButtonFont->fid;
!   gcmask=GCForeground|GCBackground|GCFont;
    graph=XCreateGC(dpy,Root,gcmask,&gcval);

    if(d_depth < 2)
--- 689,695 ----
    gcval.foreground=fore;
    gcval.background=back;
    gcval.font=ButtonFont->fid;
!   gcmask=GCForeground|GCBackground/* |GCFont */;
    graph=XCreateGC(dpy,Root,gcmask,&gcval);

    if(d_depth < 2)
*** ./modules/GoodStuff/GoodStuff.c.ORG	2015-12-09 15:25:57.129964249 +0900
--- ./modules/GoodStuff/GoodStuff.c	2015-12-09 15:26:10.506797016 +0900
***************
*** 834,840 ****
    gcv.background = back_pix;
    ShadowGC = XCreateGC(dpy, Root, gcm, &gcv);

!   gcm = GCForeground|GCBackground|GCFont;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
--- 834,840 ----
    gcv.background = back_pix;
    ShadowGC = XCreateGC(dpy, Root, gcm, &gcv);

!   gcm = GCForeground|GCBackground/* |GCFont */;
    gcv.foreground = fore_pix;
    gcv.background = back_pix;
    gcv.font =  font->fid;
*** ./fvwm/configure.c.ORG	2015-12-09 15:21:08.980566612 +0900
--- ./fvwm/configure.c	2015-12-09 15:23:12.215025970 +0900
***************
*** 1833,1839 ****
    Scr.DrawGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground|GCFont;
    gcv.line_width = 0;
    gcv.function = GXcopy;
    gcv.plane_mask = AllPlanes;
--- 1833,1839 ----
    Scr.DrawGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground/* |GCFont */;
    gcv.line_width = 0;
    gcv.function = GXcopy;
    gcv.plane_mask = AllPlanes;
***************
*** 1854,1865 ****
    gcv.fill_style = FillStippled;
    gcv.stipple = Scr.gray_bitmap;
    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground|GCFont|GCStipple|GCFillStyle;

    Scr.StippleGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground|GCFont;
    gcv.foreground = Scr.HiRelief.fore;
    gcv.background = Scr.HiRelief.back;
    gcv.fill_style = FillSolid;
--- 1854,1865 ----
    gcv.fill_style = FillStippled;
    gcv.stipple = Scr.gray_bitmap;
    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground/* |GCFont */|GCStipple|GCFillStyle;

    Scr.StippleGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

    gcm = GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
!     GCBackground/* |GCFont */;
    gcv.foreground = Scr.HiRelief.fore;
    gcv.background = Scr.HiRelief.back;
    gcv.fill_style = FillSolid;
***************
*** 1877,1887 ****
        gcv.fill_style = FillStippled;
        gcv.stipple = Scr.gray_bitmap;
        gcm=GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
! 	GCBackground|GCFont|GCStipple|GCFillStyle;
        Scr.MenuStippleGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

        gcm=GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
! 	GCBackground|GCFont;
        gcv.fill_style = FillSolid;
      }
    else
--- 1877,1887 ----
        gcv.fill_style = FillStippled;
        gcv.stipple = Scr.gray_bitmap;
        gcm=GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
! 	GCBackground/* |GCFont */|GCStipple|GCFillStyle;
        Scr.MenuStippleGC = XCreateGC(dpy, Scr.Root, gcm, &gcv);

        gcm=GCFunction|GCPlaneMask|GCGraphicsExposures|GCLineWidth|GCForeground|
! 	GCBackground/* |GCFont */;
        gcv.fill_style = FillSolid;
      }
    else
*** ./fvwm/misc.h.ORG	2015-12-09 15:23:23.833880714 +0900
--- ./fvwm/misc.h	2015-12-09 15:23:50.353549172 +0900
***************
*** 96,102 ****
     Globalgcv.font = newfont;\
     Globalgcv.foreground = color;\
     Globalgcv.background = backcolor;\
!    Globalgcm = GCFont | GCForeground | GCBackground; \
     XChangeGC(dpy,Scr.FontGC,Globalgcm,&Globalgcv); \
  }
  #ifdef I18N
--- 96,102 ----
     Globalgcv.font = newfont;\
     Globalgcv.foreground = color;\
     Globalgcv.background = backcolor;\
!    Globalgcm = /* GCFont | */GCForeground | GCBackground; \
     XChangeGC(dpy,Scr.FontGC,Globalgcm,&Globalgcv); \
  }
  #ifdef I18N
$ cat ../fvwm1_1.24r-56-4.diff | patch -p0
*** ./fvwm/resize.c.ORG	2015-12-10 01:24:12.408041411 +0900
--- ./fvwm/resize.c	2015-12-10 01:25:18.327419423 +0900
***************
*** 457,465 ****

  #undef FONTSET
  #define FONTSET Scr.StdFont.fontset
    XDrawString (dpy, Scr.SizeWindow, Scr.NormalGC,
  	       offset, Scr.StdFont.font->ascent + SIZE_VINDENT, str, 13);
!
  }

  /***********************************************************************
--- 457,469 ----

  #undef FONTSET
  #define FONTSET Scr.StdFont.fontset
+ #if 0
    XDrawString (dpy, Scr.SizeWindow, Scr.NormalGC,
  	       offset, Scr.StdFont.font->ascent + SIZE_VINDENT, str, 13);
! #else
!   XDrawString (dpy, Scr.SizeWindow, Scr.NormalGC,
! 	       offset, Scr.StdFont.y + SIZE_VINDENT, str, 13);
! #endif
  }

  /***********************************************************************
*** ./fvwm/move.c.ORG	2015-12-10 01:20:49.885301811 +0900
--- ./fvwm/move.c	2015-12-10 01:21:05.863332536 +0900
***************
*** 337,346 ****
--- 337,353 ----
  	    - XTextWidth(Scr.StdFont.font,str,strlen(str)))/2;
  #undef FONTSET
  #define FONTSET Scr.StdFont.fontset
+ #if 0
    XDrawString (dpy, Scr.SizeWindow, Scr.NormalGC,
  	       offset,
  	       Scr.StdFont.font->ascent + SIZE_VINDENT,
  	       str, strlen(str));
+ #else
+   XDrawString (dpy, Scr.SizeWindow, Scr.NormalGC,
+ 	       offset,
+ 	       Scr.StdFont.y + SIZE_VINDENT,
+ 	       str, strlen(str));
+ #endif
  }
$ xmkmf
$ make Makefiles && make all
$ sudo make install
$ sudo make install.man
$ sudo cp fvwm_icons/*.xpm /usr/include/X11/pixmaps/
$ sudo cp fvwm_icons/*.xbm /usr/include/X11/bitmaps/
$ sudo cp fvwm_icons/*.bitmap /usr/include/X11/bitmaps/
$ sudo cp fvwm_icons/*.icon /usr/include/X11/bitmaps/

_ fonts

IPAfont00303.zip

  • ipag.ttf
  • ipagp.ttf
  • ipam.ttf
  • ipamp.ttf

KouzanMouhituFont.zip

$ unzip -x KouzanMouhituFont.zip
Archive:  KouzanMouhituFont.zip
  inflating: ?t?R??M?t?H???g.ttf
$ ls *.ttf
\215t\216R\226M\203t\203H\203\223\203g.ttf
$ mv *.ttf kouzanmouhitu.ttf
$ ls *ttf
kouzanmouhitu.ttf
$

kochifont (not provided any more)

  • kochi-gothic.ttf
  • kochi-mincho.ttf

DynaFonts (non free fonts)

  • dfjgyomd.ttf
  • dfjkaibd.ttf
  • dfjkailt.ttf
  • dfjkaimd.ttf
  • dfjktrxb.ttf
  • dfjleimd.ttf
  • dfjmrgbd.ttf
  • dfjmrglt.ttf
  • dfjmrgmd.ttf
  • dfjmrmmd.ttf
  • dfjmrmw7.ttf
  • dfjmrmw9.ttf
  • dfjpop1.ttf
  • dfjpopw5.ttf
  • dfjpopw9.ttf

How to install fonts

Put all fonts into /usr/share/fonts/TTF/

makefontscale.sh

#! /bin/sh
#
# mfs fontfile fndry fmly cp
#
function mfs_sjis() {
	fontfile="$1"
	fndry="$2"
	fmly="$3"
	cp="$4"

	for i in iso8859-1 jisx0201.1976-0 jisx0208.1983-0 jisx0208.1990-0
	do
		bw=""
		colon=""
		if [ $i = "iso8859-1" -o $i = "jisx0201.1976-0" ]
		then
			bw="bw=0.5"
			colon=":"
		fi
		echo ${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-r-normal--0-0-0-0-${cp}-0-$i
		echo ai=0.4:${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-i-normal--0-0-0-0-${cp}-0-$im
		echo ai=0.2:${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-o-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-r-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:ai=0.4:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-i-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:ai=0.2:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-o-normal--0-0-0-0-${cp}-0-$i
	done
}
#
function mfs_unicode() {
	fontfile="$1"
	fndry="$2"
	fmly="$3"
	cp="$4"

	for i in iso8859-1 jisx0201.1976-0 jisx0208.1983-0 jisx0208.1990-0 jisx0212.1990-0 iso10646-1
	do
		bw=""
		colon=""
		if [ $i = "iso8859-1" -o $i = "jisx0201.1976-0" ]
		then
			bw="bw=0.5"
			colon=":"
		fi
		echo ${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-r-normal--0-0-0-0-${cp}-0-$i
		echo ai=0.4:${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-i-normal--0-0-0-0-${cp}-0-$i
		echo ai=0.2:${bw}${colon}${fontfile} -${fndry}-${fmly}-medium-o-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-r-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:ai=0.4:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-i-normal--0-0-0-0-${cp}-0-$i
		echo ds=y:ai=0.2:${bw}${colon}${fontfile} -${fndry}-${fmly}-bold-o-normal--0-0-0-0-${cp}-0-$i
	done
}

mfs_sjis dfjgyomd.ttf dynalab "dfgyosho lt" c
mfs_sjis dfjkaibd.ttf dynalab "dfkaisho xb" c
mfs_sjis dfjkailt.ttf dynalab "dfkaisho lt" c
mfs_sjis dfjkaimd.ttf dynalab "dfkaisho md" c
mfs_sjis dfjktrxb.ttf dynalab "dfkanteiryu xb" c
mfs_sjis dfjleimd.ttf dynalab "dfleisho sb" c
mfs_sjis dfjmrgbd.ttf dynalab "dfmarugothic bd" c
mfs_sjis dfjmrglt.ttf dynalab "dfmarugothic lt" c
mfs_sjis dfjmrgmd.ttf dynalab "dfmarugothic md" c
mfs_sjis dfjmrmmd.ttf dynalab "dfmarumoji sl" c
mfs_sjis dfjmrmw7.ttf dynalab "dfmarumoji w7" c
mfs_sjis dfjmrmw9.ttf dynalab "dfmarumoji w9" c
mfs_sjis dfjpop1.ttf dynalab "dfpop1 sb" c
mfs_sjis dfjpopw5.ttf dynalab "dfpop1 w5" c
mfs_sjis dfjpopw9.ttf dynalab "dfpop1 w9" c
mfs_unicode ipag.ttf misc ipagothic c
mfs_unicode ipagp.ttf misc ipapgothic p
mfs_unicode ipam.ttf misc ipamincho c
mfs_unicode ipamp.ttf misc ipapmincho p
mfs_unicode kochi-gothic.ttf misc "kochi gothic" c
mfs_unicode kochi-mincho.ttf misc "kochi mincho" c
mfs_unicode kouzanmouhitu.ttf misc kouzanbrushfont c
mfs_unicode sazanami-gothic.ttf misc "sazanami gothic" c
mfs_unicode sazanami-mincho.ttf misc "sazanami mincho" c

Update font cache.

# cd /usr/share/fonts/TTF
# cp fonts.scale fonts.scale.backup
# cp fonts.dir fonts.dir.backup
# makefontscale.sh >fonts.add
# cat fonts.scale.backup fonts.add | sort | uniq >fonts.scale
# wc -l fonts.scale # remember LINE
# vim fonts.scale # edit number in first line to (LINE - 1)
# mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large
# cp fonts.dir fonts.scale
# fc-cache -f -v

_ mew-6.7.tar.gz

$ tar xvf mew-6.7.tar.gz
$ cd mew-6.7
$ ./configure && make
$ sudo make install

~/.emacs

(setq load-path (cons "/usr/local/share/emacs/site-lisp/mew/" load-path))
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq read-mail-command 'mew)
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
    (setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
    (define-mail-user-agent
      'mew-user-agent
      'mew-user-agent-compose
      'mew-draft-send-message
      'mew-draft-kill
      'mew-send-hook))
(setq mew-name "Masahiko Ito") ;; (user-full-name)
(setq mew-from-list '("Masahiko Ito <m-ito@myh.no-ip.org>"
                      "Masahiko Ito <m-ito@mbox.kyoto-inet.or.jp>"))
(setq mew-mail-domain-list '("myh.no-ip.org"
                             "mbox.kyoto-inet.or.jp"))
(setq mew-use-smtp-auth nil)
(setq mew-mailbox-type 'mbox)
(setq mew-mbox-command "incm")
(setq mew-mbox-command-arg "-d /var/spool/mail/m-ito")
mew-message-mode-hook
  '(lambda ()
   (define-key mew-message-mode-map [mouse-2] 'browse-url-at-mouse)
   (define-key mew-message-mode-map "\C-cb" 'browse-url-at-point)))

_ emacs-w3m.tar.gz

$ tar xvf emacs-w3m.tar.gz
$ cd emacs-w3m
$ autoconf
$ ./configure && make
$ sudo make install

~/.emacs

(setq mew-mime-multipart-alternative-list '("Text/Html" "Text/Plain" "*."))
(condition-case nil
    (require 'mew-w3m)
  (file-error nil))

_ LPRng-3.8.35.tgz

$ tar xvf LPRng-3.8.35.tgz

LPRng-3.8.35.diff

*** Makefile.in.ORG	2012-04-15 21:13:45.000000000 +0900
--- Makefile.in	2012-04-15 21:14:28.000000000 +0900
***************
*** 45,51 ****
  LPD_CONF_PATH=\"@LPD_CONF_PATH@\"
  PRINTCAP_PATH=\"@PRINTCAP_PATH@\"
  LPD_PATH=\"@LPD_DIR@/lpd\"
! SHELL="@SHELL@"
  LOCKFILE=\"@LOCKFILE@\"
  CONFIG_SUBDIR="@CONFIG_SUBDIR@"
  PSHOWALL="@PSHOWALL@"
--- 45,51 ----
  LPD_CONF_PATH=\"@LPD_CONF_PATH@\"
  PRINTCAP_PATH=\"@PRINTCAP_PATH@\"
  LPD_PATH=\"@LPD_DIR@/lpd\"
! SHELL=@SHELL@
  LOCKFILE=\"@LOCKFILE@\"
  CONFIG_SUBDIR="@CONFIG_SUBDIR@"
  PSHOWALL="@PSHOWALL@"
$ cd LPRng-3.8.35
$ cat ../LPRng-3.8.35.diff | patch -p0
$ ./configure --disable-ssl && make
$ sudo make install

/usr/local/etc/printcap

.common:
   :sd=/var/spool/lpd/%P
   :sh:mx=0:mc=0
lp:tc=.common:lp=lp@192.168.0.100
lpm:tc=.common:lp=lpm@192.168.0.100
lpfine|lpf:tc=.common:lp=lpfine@192.168.0.100
lpmfine|lpf:tc=.common:lp=lpmfine@192.168.0.100
lpphoto|lpp:tc=.common:lp=lpphoto@192.168.0.100
lpmphoto|lpp:tc=.common:lp=lpmphoto@192.168.0.100
lpd:tc=.common:lp=lpd@192.168.0.100
lpraw|lpr:tc=.common:lp=lpraw@192.168.0.100
$ sudo checkpc -f

/etc/rc.d/rc.lprng

#!/bin/sh
case "$1" in
start)
# Start daemons.
      /usr/bin/echo "Starting lpd"; /usr/local/sbin/lpd; /usr/bin/echo "";
      ;;
stop)
# Stop daemons.
      /usr/bin/printf "Shutting down lpd: "
      pkill lpd
      /usr/bin/echo "done"
      ;;
*)
      echo "Usage: lpd {start|stop}"
      ;;
esac

_ MPlayer-1.3.0.tar.xz

live.2016.07.19.tar.gz

$ tar xvf live.2016.07.19.tar.gz
$ cd live/
$ ./genMakefiles linux-64bit
$ make
$ sudo make install

amrnb-11.0.0.0.tar.bz2

$ tar xvf amrnb-11.0.0.0.tar.bz2
$ cd amrnb-11.0.0.0
$ ./configure && make
$ sudo make install && sudo ldconfig

amrwb-11.0.0.0.tar.bz2

$ tar xvf amrwb-11.0.0.0.tar.bz2
$ cd amrwb-11.0.0.0
$ ./configure && make
$ sudo make install && sudo ldconfig

opencore-amr-0.1.2.tar.gz

$ tar xvf opencore-amr-0.1.2.tar.gz
$ cd opencore-amr-0.1.2
$ ./configure && make
$ sudo make install && sudo ldconfig

libdvdcss-1.4.0.tar.bz2

$ tar xvf libdvdcss-1.4.0.tar.bz2
$ cd libdvdcss-1.4.0
$ ./configure && make
$ sudo make install && sudo ldconfig

MPlayer-1.3.0.tar.xz

$ tar xvf MPlayer-1.3.0.tar.xz
$ ./configure --enable-gui && make
$ sudo make install

essential-20071007.tar.bz2

$ sudo mkdir /usr/local/lib/codecs
$ tar xvf essential-20071007.tar.bz2
$ cd essential-20071007
$ sudo cp * /usr/local/lib/codecs/

all-20110131.tar.bz2

$ tar xvf all-20110131.tar.bz2
$ cd all-20110131
$ sudo cp * /usr/local/lib/codecs/

Blue-1.8.tar.bz2

# cd /usr/local/share/mplayer/
# mkdir skins
# cd skins
# tar xvf Blue-1.8.tar.bz2
# ln -s Blue default

font

# cd /usr/local/share/mplayer/
# ln -s /usr/share/fonts/TTF/sazanami-mincho.ttf subfont.ttf

_ prov-2.0.tar.gz

$ tar xvf prov-2.0.tar.gz
$ cd prov-2.0
$ make
$ sudo make install
$ PROV2DIR=~/prov2; export PROV2DIR
$ PATH=${PATH}:${PROV2DIR}/bin; export PATH

_ clamav-0.99.2.tar.gz

$ tar xvf clamav-0.99.2.tar.gz
$ cd clamav-0.99.2
$ ./configure && make
$ sudo make install && sudo ldconfig

Add user 'clamav` to /etc/passwd and group 'clamav` to /etc/group.

$ sudo mkdir /usr/local/share/clamav
$ sudo chown clamav.clamav /usr/local/share/clamav

/usr/local/etc/freshclam.conf

#Example
DatabaseDirectory /usr/local/share/clamav
DatabaseMirror db.jp.clamav.net
HTTPProxyServer 192.168.0.100
HTTPProxyPort 8080

/usr/local/etc/clamd.conf

#Example
DatabaseDirectory /usr/local/share/clamav

_ sf-0.6.tar.gz

kakasi-2.3.4.tar.gz

$ tar xvf kakasi-2.3.4.tar.gz
$ cd kakasi-2.3.4
$ ./configure && make
$ sudo make install && sudo ldconfig

sf-0.6.tar.gz

$ tar xvzf sf-0.6.tar.gz
$ cd sf-0.6
$ sudo cp sf-*.sh /usr/local/bin/
$ mkdir ~/.sf

_ cgictrl-0.2.tar.gz

$ tar xvf cgictrl-0.2.tar.gz
$ mkdir ~/cgictrl
$ mkdir ~/cgictrl/html
$ mkdir ~/cgictrl/lock
$ mkdir ~/cgictrl/log
$ mkdir ~/cgictrl/spa
$ mkdir ~/cgictrl/tmp
$ chmod 755 ~/cgictrl ~/cgictrl/html
$ chmod 2775 ~/cgictrl/lock ~/cgictrl/log ~/cgictrl/spa ~/cgictrl/tmp
$ cp cgictrl-0.2/cgi-bin/* ~/public_html/cgi-bin/
$ cp cgictrl-0.2/cgictrl/*.txt ~/cgictrl/
$ cp cgictrl-0.2/cgictrl/html/* ~/cgictrl/html/

~/public_html/cgi-bin/cgictrl_common.rb

 @cgictrl_data_dir = "/home/m-ito/cgictrl"

~/cgictrl/resource.txt

RES_ADDR=/home/m-ito/cgictrl/tmp/samp_addr.csv

/etc/group

m-ito:x:503:apache

_ sqlite3-ruby etc

# HTTP_PROXY=http://192.168.0.100:8080/ gem install sqlite3-ruby-1.2.5.gem
# HTTP_PROXY=http://192.168.0.100:8080/ gem install sqlite3-ruby
# HTTP_PROXY=http://192.168.0.100:8080/ gem install dbi
# HTTP_PROXY=http://192.168.0.100:8080/ gem install dbd-sqlite3

_ firefox-48.0.source.tar.xz

autoconf-2.13.tar.gz

$ tar xvf autoconf-2.13.tar.gz
$ cd autoconf-2.13
$ ./configure --prefix=/usr/local/autoconf-2.13
$ make
$ sudo make install
# cd /usr/local/autoconf-2.13/bin/ && ln -s autoconf autoconf-2.13

libpng-1.2.56.tar.gz

$ tar xvf libpng-1.2.56.tar.gz
$ cd libpng-1.2.56
$ ./configure && make
$ sudo make install && sudo ldconfig

firefox-48.0.source.tar.xz

$ cd /tmp
$ tar xvf firefox-48.0.source.tar.xz
$ cd firefox-48.0
$ LANG=C; export LANG
$ LC_ALL=C; export LC_ALL
$ PATH=${PATH}:/usr/local/autoconf-2.13/bin/; export PATH

.mozconfig

export LDFLAGS="-latomic"
. $topsrcdir/browser/config/mozconfig
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-debug
ac_add_options --disable-tests
$ nice make -f client.mk build && cd obj-x86_64-pc-linux-gnu/ && nice make package
# mkdir /usr/local/firefox-48.0
# cd /usr/local/firefox-48.0
# tar xvf /tmp/firefox-48.0/obj-x86_64-pc-linux-gnu/dist/firefox-48.0.en-US.linux-x86_64.tar.bz2
# mkdir /usr/local/gecko-sdk-48.0
# cd /usr/local/gecko-sdk-48.0
# cp -rL /tmp/firefox-48.0/obj-x86_64-pc-linux-gnu/dist/sdk .
# cd sdk
# cp -rL /tmp/firefox-48.0/obj-x86_64-pc-linux-gnu/dist/idl .
# cp -rL /tmp/firefox-48.0/obj-x86_64-pc-linux-gnu/dist/include .
  • URI -> about:config -> general.useragent.locale -> ja-JP
  • Japanese Language Pack -> firefox-48.0-ja.xpi

_ gecko-mediaplayer-1.0.9.tar.gz

gmtk-1.0.9.tar.gz

$ tar xvf gmtk-1.0.9.tar.gz
$ cd gmtk-1.0.9
$ ./configure && make
$ sudo make install && sudo ldconfig

gnome-mplayer-1.0.9.tar.gz

$ tar xvf gnome-mplayer-1.0.9.tar.gz
$ cd gnome-mplayer-1.0.9
$ ./configure && make
$ sudo make install && sudo ldconfig

gecko-mediaplayer-1.0.9.tar.gz

$ tar xvf gecko-mediaplayer-1.0.9.tar.gz
$ cd gecko-mediaplayer-1.0.9
$ export XULDEV="/usr/local/gecko-sdk-48.0/sdk"
$ export CPPFLAGS="-I/usr/local/gecko-sdk-48.0/sdk/include"

../gecko-mediaplayer-1.0.9.diff

*** ./src/npupp.h.ORG	2016-08-03 01:05:43.867808110 +0900
--- ./src/npupp.h	2016-08-03 01:06:49.968807507 +0900
***************
*** 63,68 ****
--- 63,71 ----

  #include "npruntime.h"

+ #ifndef NP_LOADDS
+ #define NP_LOADDS
+ #endif

  /******************************************************************************************
     plug-in function table macros
$ cat ../gecko-mediaplayer-1.0.9.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

_ install_flash_player_11_linux.x86_64.tar.gz

# mkdir /tmp/flashplayer
# cd /tmp/flashplayer
# tar xvf install_flash_player_11_linux.x86_64.tar.gz
# chown -R root.root .
# cp libflashplayer.so /usr/lib64/mozilla/plugins/
# cd /usr && (cd /tmp/flashplayer/usr && tar cf - .) | tar xvpif -

~/.profile

MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins
export MOZ_PLUGIN_PATH

_ ffmpeg-3.1.1.tar.xz

lame-3.99.5.tar.gz

$ tar xvf lame-3.99.5.tar.gz
$ cd lame-3.99.5
$ ./configure && make
$ sudo make install && sudo ldconfig

faac-1.28.tar.bz2

$ tar xvf faac-1.28.tar.bz2
$ cd faac-1.28

../faac-1.28.diff

*** ./common/mp4v2/mpeg4ip.h.ORG	2013-01-30 11:29:42.771848488 +0900
--- ./common/mp4v2/mpeg4ip.h	2013-01-30 11:36:56.935028393 +0900
***************
*** 123,129 ****
--- 123,131 ----
  #ifdef __cplusplus
  extern "C" {
  #endif
+ #if 0
  char *strcasestr(const char *haystack, const char *needle);
+ #endif
  #ifdef __cplusplus
  }
  #endif
$ cat ../faac-1.28.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

x264-snapshot-20160802-2245-stable.tar.bz2

$ tar xvf x264-snapshot-20160802-2245-stable.tar.bz2
$ cd x264-snapshot-20160802-2245-stable
$ ./configure --enable-shared && make
$ sudo make install-cli install-lib-dev install-lib-static install-lib-shared

x265_1.9.tar.gz

$ tar xvf x265_1.9.tar.gz
$ cd x265_1.9/build
$ cmake ../source && make
$ sudo make install && make ldconfig

openh264-1.5.0.tar.gz

$ tar xvf openh264-1.5.0.tar.gz
$ make
$ sudo make install && sudo ldconfig

libvpx-1.6.0.tar.gz

$ tar xvf libvpx-1.6.0.tar.gz
$ cd libvpx-1.6.0
$ ./configure --enable-shared && make
$ sudo make install && sudo ldconfig

ffmpeg-3.1.1.tar.xz

$ tar xvf ffmpeg-3.1.1.tar.xz
$ cd ffmpeg-3.1.1
$ ./configure --enable-shared \
       --enable-libopencore-amrnb \
       --enable-version3 \
       --enable-libopencore-amrwb \
       --enable-libmp3lame \
       --enable-libfaac \
       --enable-nonfree \
       --enable-libx264 \
       --enable-gpl \
       --enable-libvpx \
       --enable-libx265 \
       --enable-libopenh264 \
       --enable-libpulse
$ make
$ sudo make install && sudo ldconfig

_ dvdrtools-0.3.1.tar.gz

$ tar xvf dvdrtools-0.3.1.tar.gz
$ cd dvdrtools-0.3.1
$ ./configure && make
$ sudo make install && sudo ldconfig

_ dvdauthor-0.7.1.tar.gz

$ tar xvf dvdauthor-0.7.1.tar.gz
$ cd dvdauthor-0.7.1

../dvdauthor-0.7.1.diff

*** ./src/dvdvmy.c.ORG	2016-08-03 15:34:21.213333120 +0900
--- ./src/dvdvmy.c	2016-08-03 15:35:33.722332459 +0900
***************
*** 96,101 ****
--- 96,102 ----
   * USA
   */

+ #include "config.h"
  #include "compat.h" /* needed for bool */
  #include "dvdvm.h"

*** ./src/dvdvml.c.ORG	2016-08-03 15:33:59.056333322 +0900
--- ./src/dvdvml.c	2016-08-03 15:35:13.755332641 +0900
***************
*** 626,631 ****
--- 626,632 ----
   * USA
   */

+ #include "config.h"
  #include "compat.h" /* needed for bool */
  #include "dvdvm.h"
  #include "dvdvmy.h"
$ cat ../dvdauthor-0.7.1.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

_ vcdimager-0.7.24.tar.gz

$ tar xvf vcdimager-0.7.24.tar.gz
$ cd vcdimager-0.7.24
$ ./configure && make
$ sudo make install && sudo ldconfig

_ youtube-dl-2015.07.07.tar.gz

$ tar xvf youtube-dl-2015.07.07.tar.gz
$ cd youtube-dl-2015.07.07
$ make
$ sudo cp youtube-dl /ysr/local/bin/

_ DVDStyler-2.9.3.tar.bz2

mjpegtools-2.1.0.tar.gz

$ tar xvf mjpegtools-2.1.0.tar.gz
$ cd mjpegtools-2.1.0
$ ./configure && make
$ sudo make install && sudo ldconfig

wxWidgets-2.8.12.tar.gz

$ tar xvf wxWidgets-2.8.12.tar.gz
$ cd wxWidgets-2.8.12
$ ./configure --enable-unicode --enable-mediactrl && make
$ sudo make install && sudo ldconfig

wxsvg-1.5.4.tar.bz2

$ tar xvf wxsvg-1.5.4.tar.bz2
$ cd wxsvg-1.5.4

../wxsvg-1.5.4.diff

*** ./src/mediadec_ffmpeg.cpp.ORG	2016-08-04 12:32:54.507644904 +0900
--- ./src/mediadec_ffmpeg.cpp	2016-08-04 12:33:11.299644751 +0900
***************
*** 271,277 ****
  			avcodec_decode_video2(m_codecCtx, m_frame, &frameFinished, &packet);
  			if (frameFinished) {
  				SwsContext* imgConvertCtx = sws_getContext(m_codecCtx->width, m_codecCtx->height, m_codecCtx->pix_fmt,
! 						m_width, m_height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
  				if (imgConvertCtx == NULL) {
  					av_free_packet(&packet);
  					return wxImage();
--- 271,277 ----
  			avcodec_decode_video2(m_codecCtx, m_frame, &frameFinished, &packet);
  			if (frameFinished) {
  				SwsContext* imgConvertCtx = sws_getContext(m_codecCtx->width, m_codecCtx->height, m_codecCtx->pix_fmt,
! 						m_width, m_height, AV_PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
  				if (imgConvertCtx == NULL) {
  					av_free_packet(&packet);
  					return wxImage();
$ cat ../wxsvg-1.5.4.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

DVDStyler-2.9.3.tar.bz2

$ tar xvf DVDStyler-2.9.3.tar.bz2
$ cd DVDStyler-2.9.3

../DVDStyler-2.9.3.diff

*** ./src/mediaenc_ffmpeg.h.ORG	2015-10-04 17:24:36.803442180 +0900
--- ./src/mediaenc_ffmpeg.h	2015-10-04 17:26:43.034485497 +0900
***************
*** 3,9 ****
  // Purpose:     FFMPEG Media Encoder
  // Author:      Alex Thuering
  // Created:     04.08.2007
! // RCS-ID:      $Id: mediaenc_ffmpeg.h,v 1.13 2014/10/20 05:43:34 ntalex Exp $
  // Copyright:   (c) Alex Thuering
  // Licence:     GPL
  /////////////////////////////////////////////////////////////////////////////
--- 3,9 ----
  // Purpose:     FFMPEG Media Encoder
  // Author:      Alex Thuering
  // Created:     04.08.2007
! // RCS-ID:      $Id: mediaenc_ffmpeg.h,v 1.14 2015/09/22 15:14:16 ntalex Exp $
  // Copyright:   (c) Alex Thuering
  // Licence:     GPL
  /////////////////////////////////////////////////////////////////////////////
***************
*** 30,39 ****
--- 30,42 ----
      bool EncodeAudio(double duration, AbstractProgressDialog* progressDialog);
      void EndEncode();

+     void SetGopSize(int gopSize) { m_gopSize = gopSize; }
+
      static wxString GetBackendVersion();

  private:
  	int m_threadCount;
+ 	int m_gopSize;
      AVFormatContext* m_outputCtx;
      AVStream* m_videoStm;
      AVStream* m_audioStm;
*** ./src/mediaenc_ffmpeg.cpp.ORG	2015-10-04 17:24:27.275231193 +0900
--- ./src/mediaenc_ffmpeg.cpp	2015-10-04 17:26:22.936931201 +0900
***************
*** 3,9 ****
  // Purpose:     FFMPEG Media Encoder
  // Author:      Alex Thuering
  // Created:     04.08.2007
! // RCS-ID:      $Id: mediaenc_ffmpeg.cpp,v 1.49 2015/03/21 14:46:55 ntalex Exp $
  // Copyright:   (c) Alex Thuering
  // Licence:     GPL
  /////////////////////////////////////////////////////////////////////////////
--- 3,9 ----
  // Purpose:     FFMPEG Media Encoder
  // Author:      Alex Thuering
  // Created:     04.08.2007
! // RCS-ID:      $Id: mediaenc_ffmpeg.cpp,v 1.51 2015/09/26 12:49:08 ntalex Exp $
  // Copyright:   (c) Alex Thuering
  // Licence:     GPL
  /////////////////////////////////////////////////////////////////////////////
***************
*** 51,56 ****
--- 51,57 ----

  wxFfmpegMediaEncoder::wxFfmpegMediaEncoder(int threadCount) {
  	m_threadCount = threadCount;
+ 	m_gopSize = -1;
  	m_outputCtx = NULL;
  	m_videoStm = NULL;
  	m_audioStm = NULL;
***************
*** 177,183 ****
  	c->height = frameSize.GetHeight();
  	c->time_base.den = isNTSC(videoFormat) ? 30000 : 25;
  	c->time_base.num = isNTSC(videoFormat) ? 1001 : 1;
! 	c->gop_size = isNTSC(videoFormat) ? 15 : 12;
  	c->pix_fmt = PIX_FMT_YUV420P;
  	c->rc_buffer_size = VIDEO_BUF_SIZE;
  	c->rc_max_rate = 9000000;
--- 178,184 ----
  	c->height = frameSize.GetHeight();
  	c->time_base.den = isNTSC(videoFormat) ? 30000 : 25;
  	c->time_base.num = isNTSC(videoFormat) ? 1001 : 1;
! 	c->gop_size = m_gopSize > 0 ? m_gopSize : (isNTSC(videoFormat) ? 15 : 12);
  	c->pix_fmt = PIX_FMT_YUV420P;
  	c->rc_buffer_size = VIDEO_BUF_SIZE;
  	c->rc_max_rate = 9000000;
***************
*** 283,288 ****
--- 284,290 ----
  	AVFrame* frame = av_frame_alloc();
  	if (!frame)
  		return NULL;
+ #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(53, 0, 0)
  	frame->width = width;
  	frame->height = height;
  	frame->format = pix_fmt;
***************
*** 290,295 ****
--- 292,306 ----
  		av_free(frame);
  		return NULL;
  	}
+ #else
+ 	int size = avpicture_get_size(pix_fmt, width, height);
+ 	uint8_t* picture_buf = (uint8_t*) av_malloc(size);
+ 	if (!picture_buf) {
+ 		av_free(frame);
+ 		return NULL;
+ 	}
+ 	avpicture_fill((AVPicture *) frame, picture_buf, pix_fmt, width, height);
+ #endif
  	return frame;
  }

../DVDStyler-2.9.3-2.diff

*** ./src/mediaenc_ffmpeg.cpp.ORG	2016-08-04 12:38:31.471641833 +0900
--- ./src/mediaenc_ffmpeg.cpp	2016-08-04 12:40:04.602640984 +0900
***************
*** 179,185 ****
  	c->time_base.den = isNTSC(videoFormat) ? 30000 : 25;
  	c->time_base.num = isNTSC(videoFormat) ? 1001 : 1;
  	c->gop_size = m_gopSize > 0 ? m_gopSize : (isNTSC(videoFormat) ? 15 : 12);
! 	c->pix_fmt = PIX_FMT_YUV420P;
  	c->rc_buffer_size = VIDEO_BUF_SIZE;
  	c->rc_max_rate = 9000000;
  	c->rc_min_rate = 0;
--- 179,185 ----
  	c->time_base.den = isNTSC(videoFormat) ? 30000 : 25;
  	c->time_base.num = isNTSC(videoFormat) ? 1001 : 1;
  	c->gop_size = m_gopSize > 0 ? m_gopSize : (isNTSC(videoFormat) ? 15 : 12);
! 	c->pix_fmt = AV_PIX_FMT_YUV420P;
  	c->rc_buffer_size = VIDEO_BUF_SIZE;
  	c->rc_max_rate = 9000000;
  	c->rc_min_rate = 0;
***************
*** 280,286 ****
  	m_audioStm = NULL;
  }

! AVFrame* allocPicture(PixelFormat pix_fmt, int width, int height) {
  	AVFrame* frame = av_frame_alloc();
  	if (!frame)
  		return NULL;
--- 280,286 ----
  	m_audioStm = NULL;
  }

! AVFrame* allocPicture(AVPixelFormat pix_fmt, int width, int height) {
  	AVFrame* frame = av_frame_alloc();
  	if (!frame)
  		return NULL;
***************
*** 329,335 ****
  		return false;
  	}

! 	m_imgConvertCtx = sws_getContext(c->width, c->height, PIX_FMT_RGB24, c->width, c->height, c->pix_fmt, SWS_BICUBIC,
  			NULL, NULL, NULL);
  	if (!m_imgConvertCtx) {
  		wxLogError(wxT("Cannot initialize the conversion context"));
--- 329,335 ----
  		return false;
  	}

! 	m_imgConvertCtx = sws_getContext(c->width, c->height, AV_PIX_FMT_RGB24, c->width, c->height, c->pix_fmt, SWS_BICUBIC,
  			NULL, NULL, NULL);
  	if (!m_imgConvertCtx) {
  		wxLogError(wxT("Cannot initialize the conversion context"));
$ cat DVDStyler-2.9.3.diff | patch -p0
$ cat DVDStyler-2.9.3-2.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

_ FD-3.00j.tar.gz

$ tar xvf FD-3.00j.tar.gz
$ cd FD-3.00j
$ make
$ sudo make install

~/.fd2rc

LANGUAGE="utf8"
DEFKCODE="utf8"
INPUTKCODE="utf8"
PTYINKCODE="utf8"
PTYOUTKCODE="utf8"
FNAMEKCODE="utf8"
URLKCODE="utf8"

_ TiMidity++-2.14.0.tar.bz2

$ tar xvf TiMidity++-2.14.0.tar.bz2
$ cd TiMidity++-2.14.0
$ ./configure --enable-audio=default,oss,alsa,esd,jack,vorbis,flac,speex --enable-interface=ncurses,vt100,gtk,alsaseq && make
$ sudo make install && sudo ldconfig

shominst-0409.zip

# cd /usr/local/share/
# mkdir timidity
# cd timidity
# unzip /home/m-ito/tmp/shominst-0409.zip

timidity.cfg

dir /usr/local/share/timidity/inst
dir /usr/local/share/timidity/inst/GUS
dir /usr/local/share/timidity/inst/test

_ jack-1.9.10.tar.bz2

Python-3.3.2.tar.bz2

$ tar xvf Python-3.3.2.tar.bz2
$ cd Python-3.3.2
$ ./configure --with-threads --enable-ipv6 --enable-shared && make
$ sudo make install && sudo ldconfig

ladspa_sdk.tgz

$ tar xvf ladspa_sdk.tgz
$ cd ladspa_sdk
$ sudo cp src/ladspa.h /usr/local/include/

frei0r-plugins-1.4.tar.gz

$ tar xvf frei0r-plugins-1.4.tar.gz
$ cd frei0r-plugins-1.4
$ ./configure && make
$ sudo make install && sudo ldconfig

goocanvas-2.0.2.tar.xz

$ tar xvf goocanvas-2.0.2.tar.xz
$ cd goocanvas-2.0.2
$ ./configure --enable-python=yes && make
$ sudo make install && sudo ldconfig

goocanvas-1.0.0.tar.bz2

$ tar xvf goocanvas-1.0.0.tar.bz2
$ cd goocanvas-1.0.0
$ ./configure && make
$ sudo make install && sudo ldconfig

pygoocanvas-0.14.1.tar.bz2

$ tar xvf pygoocanvas-0.14.1.tar.bz2
$ cd pygoocanvas-0.14.1
$ ./configure && make
$ sudo make install && sudo ldconfig

pyxdg-0.25.tar.gz

$ tar xvf pyxdg-0.25.tar.gz
$ cd pyxdg-0.25
$ sudo python setup.py install

jack-1.9.10.tar.bz2

$ tar xvf jack-1.9.10.tar.bz2
$ cd jack-1.9.10

../jack-1.9.10.diff

*** ./common/memops.c.ORG	2016-08-08 14:39:58.277334148 +0900
--- ./common/memops.c	2016-08-08 14:40:11.160334031 +0900
***************
*** 198,204 ****
   */
  static unsigned int seed = 22222;

! inline unsigned int fast_rand() {
  	seed = (seed * 96314165) + 907633515;
  	return seed;
  }
--- 198,204 ----
   */
  static unsigned int seed = 22222;

! static inline unsigned int fast_rand() {
  	seed = (seed * 96314165) + 907633515;
  	return seed;
  }
$ cat ../jack-1.9.10.diff | patch -p0
$ ./waf configure
$ ./waf build
$ sudo ./waf install

_ openshot-1.4.3.tar.gz

mlt-6.2.0.tar.gz

$ tar xvf mlt-6.2.0.tar.gz
$ cd mlt-6.2.0
$ ./configure --enable-gpl  --enable-gpl3 --swig-languages="perl php python ruby tcl"
$ make
# make install
# cd src/swig/python
# PYTHONSITEPKG=$(python -c "import sys, os; print os.path.join('/usr/lib64${LIBDIRSUFFIX}', 'python%s' % sys.version[:3], 'site-packages')")
# install -m755 mlt.py $PYTHONSITEPKG/
# install -m755 _mlt.so $PYTHONSITEPKG/
# install -m755 mlt_wrap.o $PYTHONSITEPKG/

Add "/usr/local/lib/mlt" into /etc/ld.so.conf and then

# ldconfig

oiio-master-20160807.zip

$ unzip -x oiio-master-20160807.zip
$ cd oiio-master
$ make
# mkdir /usr/local/openimageio
# cd dist/linux64
# tar cf - . | (cd /usr/local/openimageio && tar xvpif -)
# chown -R root.root /usr/local/openimageio

Add "/usr/local/openimageio/lib" into /etc/ld.so.conf and then

# ldconfig

openshot-1.4.3.tar.gz

$ tar xvf openshot-1.4.3.tar.gz
$ cd openshot-1.4.3
$ sudo python setup.py install

_ LibreOffice_5.2.0_Linux_x86-64_rpm.tar.gz

# tar xvf LibreOffice_5.2.0_Linux_x86-64_rpm.tar.gz
# cd LibreOffice_5.2.0.4_Linux_x86-64_rpm/RPMS
# for i in *rpm
do
	rpm2tgz $i
done
# for i in *tgz
do
	installpkg $i
done

You should install both of LibreOffice_5.2.0_Linux_x86-64_rpm_langpack_ja.tar.gz and LibreOffice_5.2.0_Linux_x86-64_rpm_helppack_ja.tar.gz by same way.

Tools -> Options -> LibreOffice -> Fonts -> Replacement Table

  • Albany -> IPAGothic
  • Andale Sans UI -> IPAGothic
  • Arial -> IPAGothic
  • Century -> IPAMincho
  • Cumberland -> IPAGothic
  • HG Mincho Light J -> IPAMincho
  • HG丸ゴシックM-PRO -> IPAGothic
  • MS Pゴシック -> IPAPGothic
  • MS P明朝 -> IPAPMincho
  • MS ゴシック -> IPAGothic
  • MS 明朝 -> IPAMincho
  • Thorndale -> IPAMincho
  • Times New Roman -> IPAMincho
  • Verdana -> IPAGothic

_ tightvnc-1.3.10_unixsrc.tar.bz2

$ tar xvf tightvnc-1.3.10_unixsrc.tar.bz2
$ cd vnc_unixsrc/
$ xmkmf && make World
$ cd Xvnc
$ ./configure && make
$ cd ..
$ sudo ./vncinstall /usr/local/bin /usr/local/man
$ sudo mkdir -p /usr/local/vnc/classes
$ sudo cp classes/* /usr/local/vnc/classes

_ tgif-3.0.18.tar.gz

 $ tar xvf ~/INSTALLED/tgif-3.0.18.tar.gz
 $ chmod -R u+w tgif-3.0.18/
 $ cd tgif-3.0.18
 $ zcat ../tgif-3.0J0.12-p18-patch.gz | patch -p1

tgif-unoff.patch

*** drawing.c.ORG	Thu Sep 30 00:45:28 1999
--- drawing.c	Thu Sep 30 01:06:59 1999
***************
*** 1393,1398 ****
--- 1393,1399 ----
  {
     if ((state & ControlMask) && (!(state & Mod1Mask))) {
        switch (key_sym&0xff) {
+             case 'o': /*^o*/ /* for canna by m-ito@mbox.kyoto-inet.or.jp */
  	    case ' ': /*^ */
  	    case '\\': /*^ */
  	       if(imProtocol == IM_KINPUT)
***************
*** 1412,1418 ****
--- 1413,1421 ----
        case 'l': /*^l*/ AlignSelObjs(); break;
        case 'm': /*^m*/ return(INVALID);
        case 'n': /*^n*/ NewProc(); break;
+ #if 0 /* sorry, ^o for canna */
        case 'o': /*^o*/ OpenProc(); break;
+ #endif
        case 'p': /*^p*/ Dump(""); break;
        case 'q': /*^q*/ return QuitProc();
        case 'r': /*^r*/ ClearAndRedrawDrawWindow(); break;
*** file.c.ORG	Thu Sep 30 01:09:49 1999
--- file.c	Thu Sep 30 01:11:16 1999
***************
*** 5611,5617 ****
--- 5611,5621 ----

  char * fileMenuStr[] =
        { "New             ^n",
+ #if 0 /* sorry, ^o for canna */
          "Open            ^o",
+ #else
+         "Open              ",
+ #endif
          "Save            ^s",
          "SaveNew        ^#s",
          "Import          #p",
$ cat tgif-unoff.patch |patch
$ xmkmf -a
$ make
$ sudo make install install.man

~/.Xresources

Tgif*NihongoFonts: \
    -misc-sazanami mincho-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    Ryumin-Light-EUC-H, Ryumin, \
    H, false, all \n\
    -misc-sazanami gothic-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    GothicBBB-Medium-EUC-H, Gothic, \
    H, false, all \n\
    -dynalab-dfkaisho md-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Tyukaisyo-Medium-EUC-H, Tyukaisyo, \
    H, false, all \n\
    -dynalab-dfmarugothic md-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Tyumarugothic-Medium-EUC-H, Tyumarugothic, \
    H, false, all \n\
    -dynalab-dfgyosho lt-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Gyosyo-Medium-EUC-H, Gyosyo, \
    H, false, all \n\
    -dynalab-dfkanteiryu xb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Kanteiryu-Medium-EUC-H, Kanteiryu, \
    H, false, all \n\
    -dynalab-dfleisho sb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Reisyo-Medium-EUC-H, Reisyo, \
    H, false, all \n\
    -dynalab-dfpop1 sb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Pop1-Medium-EUC-H, Pop1, \
    H, false, all \n\
    -dynalab-dfmarumoji sl-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Marumoji-Medium-EUC-H, Marumoji, \
    H, false, all \n\
    -misc-kouzanbrushfont-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    Kouzan-Medium-EUC-H, Kouzan, \
    H, false, all \n\
    -misc-sazanami mincho-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    Ryumin-Light-EUC-V, Ryumin-V, \
    V, false, all \n\
    -misc-sazanami gothic-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    GothicBBB-Medium-EUC-V, Gothic-V, \
    V, false, all \n\
    -dynalab-dfkaisho md-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Tyukaisyo-Medium-EUC-V, Tyukaisyo-V, \
    V, false, all \n\
    -dynalab-dfmarugothic md-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Tyumarugothic-Medium-EUC-V, Tyumarugothic-V, \
    V, false, all \n\
    -dynalab-dfgyosho lt-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Gyosyo-Medium-EUC-V, Gyosyo-V, \
    V, false, all \n\
    -dynalab-dfkanteiryu xb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Kanteiryu-Medium-EUC-V, Kanteiryu-V, \
    V, false, all \n\
    -dynalab-dfleisho sb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Reisyo-Medium-EUC-V, Reisyo-V, \
    V, false, all \n\
    -dynalab-dfpop1 sb-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Pop1-Medium-EUC-V, Pop1-V, \
    V, false, all \n\
    -dynalab-dfmarumoji sl-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, \
    Marumoji-Medium-EUC-V, Marumoji-V, \
    V, false, all \n\
    -misc-kouzanbrushfont-medium-r-normal--%d-*-*-*-*-*-jisx0208.1990-0,, \
    Kouzan-Medium-EUC-V, Kouzan-V, \
    V, false, all

Tgif*PreeditType:      OverTheSpot
Tgif*ConvSelection:    _JAPANESE_CONVERSION
Tgif*InitialKanjiFont: Ryumin
Tgif*FontSizes:        8 10 11 12 14 17 18 20 24 25 34 42 50 60 72 86 103 123
Tgif*PrintCommand:     lpr
Tgif.MaxImportFilters: 2
Tgif.ImportFilter0: \n\
    JPEG-dithered jpg;jpeg \n\
    djpeg -gif %s | \n\
    giftopnm | ppmdither | ppmtoxpm
Tgif.ImportFilter1: \n\
    GIF-dithered gif \n\
    giftopnm %s | ppmdither | ppmtoxpm

_ tgif-QPL-4.2.5.tar.gz

$ tar xvvf tgif-QPL-4.2.5.tar.gz
$ cd tgif-QPL-4.2.5

../tgif-QPL-4.2.5.diff

*** ./drawing.c.ORG	2011-06-28 11:04:57.000000000 +0900
--- ./drawing.c	2012-12-12 13:38:40.450209776 +0900
***************
*** 2043,2049 ****
--- 2043,2053 ----
        case 'l': /*^l*/ AlignSelObjs(); break;
        case 'm': /*^m*/ return(INVALID);
        case 'n': /*^n*/ NewProc(); break;
+ #ifdef CTRL_O_FOR_KANJI_INPUT
+       case ' ': /*^ */
+ #else
        case 'o': /*^o*/
+ #endif
           OpenProc((args==NULL || *args=='\0') ? NULL : args);
           break;
        case 'p': /*^p*/ Dump(""); break;
***************
*** 2063,2069 ****
--- 2067,2077 ----
        case '1': /*^1*/ ScreenCapture(); break;
        case '2': /*^2*/ FullScreenCapture(); break;

+ #ifdef CTRL_O_FOR_KANJI_INPUT
+       case 'o':
+ #else
        case ' ':
+ #endif
        case '\\':
           if (curChoice == DRAWTEXT && textCursorShown &&
                 (canvasFontDoubleByte || gstCopyUTF8Info.double_byte_valid)) {
*** ./shortcut.c.ORG	2011-06-28 11:04:58.000000000 +0900
--- ./shortcut.c	2012-12-12 13:38:40.458210793 +0900
***************
*** 50,56 ****
--- 50,60 ----
     { 'k', CNTRL_ONLY, "Pop()", 0, CMDID_POP },
     { 'l', CNTRL_ONLY, "AlignObjs()", 0, CMDID_ALIGNOBJS },
     { 'n', CNTRL_ONLY, "New()", 0, CMDID_NEW },
+ #ifdef CTRL_O_FOR_KANJI_INPUT
+    { ' ', CNTRL_ONLY, "Open()", 1, CMDID_OPEN },
+ #else
     { 'o', CNTRL_ONLY, "Open()", 1, CMDID_OPEN },
+ #endif
     { 'p', CNTRL_ONLY, "Print()", 0, CMDID_PRINT },
     { 'q', CNTRL_ONLY, "Quit()", 0, CMDID_QUIT },
     { 'r', CNTRL_ONLY, "Redraw()", 0, CMDID_REDRAW },
*** ./Tgif.tmpl.ORG	2012-12-12 13:39:36.596345662 +0900
--- ./Tgif.tmpl	2012-12-12 13:40:24.933489062 +0900
***************
*** 53,59 ****
  		  -DDEFATTRGROUP=\"TANGRAM-II:Declaration:Events:Messages:Rewards:Initialization:Watches\" \@@\
  		  -D_NO_NKF -D_NO_CHINPUT -D_NO_XCIN \@@\
  		  -DUSE_XT_INITIALIZE -DPTHREAD
! MOREDEFINES	=

  XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  XCOMM Please see Imakefile for more defines to be added to MOREDEFINES above
--- 53,59 ----
  		  -DDEFATTRGROUP=\"TANGRAM-II:Declaration:Events:Messages:Rewards:Initialization:Watches\" \@@\
  		  -D_NO_NKF -D_NO_CHINPUT -D_NO_XCIN \@@\
  		  -DUSE_XT_INITIALIZE -DPTHREAD
! MOREDEFINES   = -DA4PAPER -DCTRL_O_FOR_KANJI_INPUT

  XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  XCOMM Please see Imakefile for more defines to be added to MOREDEFINES above
*** ./file.c.ORG	2011-06-28 11:04:57.000000000 +0900
--- ./file.c	2012-12-12 13:38:40.455210411 +0900
***************
*** 8767,8773 ****
--- 8767,8777 ----
  /* do not translate -- program constants */
  char * fileMenuStr[] =
        { "New             ^n",
+ #ifdef CTRL_O_FOR_KANJI_INPUT
+         "Open            ^ ",
+ #else
          "Open            ^o",
+ #endif
          "Save            ^s",
          "SaveNew        ^#s",
          "Import          #p",
$ cat ../tgif-QPL-4.2.5.diff | patch -p1

../tgif-QPL-4.2.5-2.diff | patch -p1

*** Tgif.tmpl.ORG	2013-12-23 02:25:41.835136487 +0900
--- Tgif.tmpl	2013-12-23 02:29:39.060286581 +0900
***************
*** 34,46 ****
  XCOMM         add -D_XPM3TOPPM to the last MOREDEFINES below.
  XCOMM -----------------------------------------------

! PROGRAMS	= tgif XCOMM prtgif frontend11.o testdrive
! TGIFDIR		= $(LIBDIR)/tgif
  XCOMM CDEBUGFLAGS= -g -Wall
  XCOMM INSTPGMFLAGS= -s
  XCOMM BINDIR	= ${HOME}/bin
  XCOMM MANPATH	= ${HOME}/man
  XCOMM TGIFDIR	= ${HOME}/lib/X11/tgif
  XCOMM MOREDEFINES	= -D_HAS_STREAMS_SUPPORT -DENABLE_NLS -D_TGIF_DBG
  LOCALEDIR	= /usr/share/locale
  DIRDEFINES	= -DTGIF_PATH=\"$(TGIFDIR)\" -DPSFILE_MOD=0664 \@@\
--- 34,49 ----
  XCOMM         add -D_XPM3TOPPM to the last MOREDEFINES below.
  XCOMM -----------------------------------------------

! PROGRAMS	= tgif4 XCOMM prtgif frontend11.o testdrive
! XCOMM TGIFDIR		= $(LIBDIR)/tgif4
  XCOMM CDEBUGFLAGS= -g -Wall
  XCOMM INSTPGMFLAGS= -s
  XCOMM BINDIR	= ${HOME}/bin
  XCOMM MANPATH	= ${HOME}/man
  XCOMM TGIFDIR	= ${HOME}/lib/X11/tgif
+ BINDIR	= /usr/local/bin
+ MANPATH	= /usr/local/man
+ TGIFDIR	= /usr/local/lib/X11/tgif4
  XCOMM MOREDEFINES	= -D_HAS_STREAMS_SUPPORT -DENABLE_NLS -D_TGIF_DBG
  LOCALEDIR	= /usr/share/locale
  DIRDEFINES	= -DTGIF_PATH=\"$(TGIFDIR)\" -DPSFILE_MOD=0664 \@@\
$ cat ../tgif-QPL-4.2.5-2.diff | patch -p1
$ xmkmf && make tgif
$ sudo make install
$ sudo make install.man
$ mv /usr/local/bin/tgif /usr/local/bin/tgif4

~/.Xresources

Tgif.InitialFont: Ryumin
Tgif.SquareDoubleByteFonts: \n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Ryumin-Light-EUC-H\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Ryumin-Light-EUC-H\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Ryumin-Light-EUC-H\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Ryumin-Light-EUC-H\n\
\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Ryumin-Light-EUC-V\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Ryumin-Light-EUC-V\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Ryumin-Light-EUC-V\n\
-misc-sazanami mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Ryumin-Light-EUC-V\n\
\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,GothicBBB-Medium-EUC-H\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,GothicBBB-Medium-EUC-H\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,GothicBBB-Medium-EUC-H\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,GothicBBB-Medium-EUC-H\n\
\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,GothicBBB-Medium-EUC-V\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,GothicBBB-Medium-EUC-V\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,GothicBBB-Medium-EUC-V\n\
-misc-sazanami gothic-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,GothicBBB-Medium-EUC-V\n\
\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyukaisyo-Medium-EUC-H\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyukaisyo-Medium-EUC-H\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyukaisyo-Medium-EUC-H\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyukaisyo-Medium-EUC-H\n\
\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyukaisyo-Medium-EUC-V\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyukaisyo-Medium-EUC-V\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyukaisyo-Medium-EUC-V\n\
-dynalab-dfkaisho md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyukaisyo-Medium-EUC-V\n\
\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyumarugothic-Medium-EUC-H\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyumarugothic-Medium-EUC-H\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyumarugothic-Medium-EUC-H\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Tyumarugothic-Medium-EUC-H\n\
\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyumarugothic-Medium-EUC-V\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyumarugothic-Medium-EUC-V\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyumarugothic-Medium-EUC-V\n\
-dynalab-dfmarugothic md-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Tyumarugothic-Medium-EUC-V\n\
\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Gyosyo-Medium-EUC-H\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Gyosyo-Medium-EUC-H\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Gyosyo-Medium-EUC-H\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Gyosyo-Medium-EUC-H\n\
\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Gyosyo-Medium-EUC-V\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Gyosyo-Medium-EUC-V\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Gyosyo-Medium-EUC-V\n\
-dynalab-dfgyosho lt-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Gyosyo-Medium-EUC-V\n\
\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Kanteiryu-Medium-EUC-H\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Kanteiryu-Medium-EUC-H\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Kanteiryu-Medium-EUC-H\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Kanteiryu-Medium-EUC-H\n\
\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Kanteiryu-Medium-EUC-V\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Kanteiryu-Medium-EUC-V\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Kanteiryu-Medium-EUC-V\n\
-dynalab-dfkanteiryu xb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Kanteiryu-Medium-EUC-V\n\
\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Reisyo-Medium-EUC-H\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Reisyo-Medium-EUC-H\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Reisyo-Medium-EUC-H\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Reisyo-Medium-EUC-H\n\
\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Reisyo-Medium-EUC-V\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Reisyo-Medium-EUC-V\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Reisyo-Medium-EUC-V\n\
-dynalab-dfleisho sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Reisyo-Medium-EUC-V\n\
\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Pop1-Medium-EUC-H\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Pop1-Medium-EUC-H\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Pop1-Medium-EUC-H\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Pop1-Medium-EUC-H\n\
\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Pop1-Medium-EUC-V\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Pop1-Medium-EUC-V\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Pop1-Medium-EUC-V\n\
-dynalab-dfpop1 sb-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Pop1-Medium-EUC-V\n\
\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Marumoji-Medium-EUC-H\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Marumoji-Medium-EUC-H\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Marumoji-Medium-EUC-H\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Marumoji-Medium-EUC-H\n\
\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Marumoji-Medium-EUC-V\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Marumoji-Medium-EUC-V\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Marumoji-Medium-EUC-V\n\
-dynalab-dfmarumoji sl-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,V,Marumoji-Medium-EUC-V\n\
\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Kouzan-Medium-EUC-H\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Kouzan-Medium-EUC-H\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Kouzan-Medium-EUC-H\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,H,Kouzan-Medium-EUC-H\n\
\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Kouzan-Medium-EUC-V\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Kouzan-Medium-EUC-V\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Kouzan-Medium-EUC-V\n\
-misc-kouzanbrushfont-medium-r-*--%d-*-*-*-*-*-jisx0208.1990-*,V,Kouzan-Medium-EUC-V\n

Tgif.DoubleByteInputMethod:	kinput2
!Tgif.DoubleByteInputMethod:	xim
Tgif.UseNKF:			true
Tgif.CopyAndPasteJIS:		true
Tgif.PreeditType:		overthespot
Tgif.Lang:			ja_JP.eucJP
Tgif.ConvSelection:		_JAPANESE_CONVERSION
Tgif.FontSizes:        8 10 11 12 14 17 18 20 24 25 34 42 50 60 72 86 103 123
Tgif.PrintCommand:     lpr
Tgif.MaxImportFilters: 3
Tgif.ImportFilter0: \n\
    JPEG jpg;jpeg \n\
    jpegtopnm %s | \n\
    ppmquant 255 | ppmtoxpm
Tgif.ImportFilter1: \n\
    JPEG-dithered jpg;jpeg \n\
    djpeg -gif %s | \n\
    giftopnm | ppmdither | ppmtoxpm
Tgif.ImportFilter2: \n\
    GIF-dithered gif \n\
    giftopnm %s | ppmdither | ppmtoxpm

_ VMware-Player-12.1.1-3770994.x86_64.bundle

# sh VMware-Player-12.1.1-3770994.x86_64.bundle --ignore-errors
# cd /etc/rc.d/rc4.d
# ln -s /etc/rc.d/init.d/vmware K08vmware
# ln -s /etc/rc.d/init.d/vmware-USBArbitrator K08vmware-USBArbitrator
# ln -s /etc/rc.d/init.d/vmware S19vmware
# ln -s /etc/rc.d/init.d/vmware-USBArbitrator S50vmware-USBArbitrator

You can use /usr/lib/vmware/bin/vmware-netcfg for network setting.

  • vmnet0 for Bridge network
  • vmnet1 for Hostonly network
  • vmnet8 for Nat network

_ firefox-49.0.1.source.tar.xz

$ cd ~m-ito/tmp
$ tar xvf firefox-49.0.1.source.tar.xz
$ cd firefox-49.0.1

.mozconfig

export LDFLAGS="-latomic"
. $topsrcdir/browser/config/mozconfig
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-debug
ac_add_options --disable-tests

Build

$ PATH=${PATH}:/usr/local/autoconf-2.13/bin/; export PATH
$ export LANG=C; export LC_ALL=C
$ nice make -f client.mk build && cd obj-x86_64-pc-linux-gnu/ && nice make package

Install firefox

# mkdir /usr/local/firefox-49.0.1
# cd /usr/local/firefox-49.0.1
# tar xvvf /home/m-ito/tmp/firefox-49.0.1/obj-x86_64-pc-linux-gnu/dist/firefox-49.0.1.en-US.linux-x86_64.tar.bz2

Install gecko-sdk

# mkdir /usr/local/gecko-sdk-49.0.1
# cd /usr/local/gecko-sdk-49.0.1
# cp -rL /home/m-ito/tmp/firefox-49.0.1/obj-x86_64-pc-linux-gnu/dist/sdk .
# cd sdk
# cp -rL /home/m-ito/tmp/firefox-49.0.1/obj-x86_64-pc-linux-gnu/dist/idl .
# cp -rL /home/m-ito/tmp/firefox-49.0.1/obj-x86_64-pc-linux-gnu/dist/include .

Setting locale

_ gtk+-2.24.30.tar.xz

Fix for blackout [あ] of kinput2 with Canna ;)

$ tar xvf gtk+-2.24.30.tar.xz
$ cd gtk+-2.24.30
$ cat ../gtk+-2.24.30.diff
*** ./modules/input/gtkimcontextxim.c.ORG	2016-08-07 22:10:22.233875293 +0900
--- ./modules/input/gtkimcontextxim.c	2016-08-07 22:13:37.858873510 +0900
***************
*** 1757,1772 ****

    cr = gdk_cairo_create (widget->window);

!   gdk_cairo_set_source_color (cr, &widget->style->base[GTK_STATE_NORMAL]);
    cairo_rectangle (cr,
                     0, 0,
                     widget->allocation.width, widget->allocation.height);
    cairo_fill (cr);

!   gdk_cairo_set_source_color (cr, &widget->style->text[GTK_STATE_NORMAL]);
    cairo_rectangle (cr,
!                    0, 0,
!                    widget->allocation.width - 1, widget->allocation.height - 1);
    cairo_fill (cr);

    return FALSE;
--- 1757,1772 ----

    cr = gdk_cairo_create (widget->window);

!   gdk_cairo_set_source_color (cr, &widget->style->text[GTK_STATE_NORMAL]);
    cairo_rectangle (cr,
                     0, 0,
                     widget->allocation.width, widget->allocation.height);
    cairo_fill (cr);

!   gdk_cairo_set_source_color (cr, &widget->style->base[GTK_STATE_NORMAL]);
    cairo_rectangle (cr,
!                    0 + 1, 0 + 1,
!                    widget->allocation.width - 1 - 1, widget->allocation.height - 1 - 1);
    cairo_fill (cr);

    return FALSE;
$ patch -p0 <../gtk+-2.24.30.diff
$ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/man --with-xinput=yes --enable-xkb --enable-introspection
$ make # Ignore error terminate :P
$ sudo cp /usr/lib64/gtk-2.0/2.10.0/immodules/im-xim.so /usr/lib64/gtk-2.0/2.10.0/immodules/im-xim.so.ORG
$ sudo install -s modules/input/.libs/im-xim.so /usr/lib64/gtk-2.0/2.10.0/immodules/im-xim.so
$ sudo ldconfig

_ qjackctl-0.4.2.tar.gz

raptor-1.4.21.tar.gz

$ tar xvf raptor-1.4.21.tar.gz
$ cd raptor-1.4.21

../raptor-1.4.21.diff

*** ./src/raptor_internal.h.ORG	2014-06-09 01:19:08.042495010 +0900
--- ./src/raptor_internal.h	2014-06-09 01:19:41.025687001 +0900
***************
*** 852,858 ****
--- 852,860 ----

  #ifdef RAPTOR_WWW_LIBCURL
  #include <curl/curl.h>
+ #if 0
  #include <curl/types.h>
+ #endif
  #include <curl/easy.h>
  #endif

$ cat ../raptor-1.4.21.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

liblrdf-0.4.0.tar.gz

$ tar xvf liblrdf-0.4.0.tar.gz
$ cd liblrdf-0.4.0
$ ./configure && make
$ sudo make install && sudo ldconfig

lv2-1.8.0.tar.bz2

$ tar xvf lv2-1.8.0.tar.bz2
$ cd lv2-1.8.0
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

libdaemon-0.14.tar.gz

$ tar xvf libdaemon-0.14.tar.gz
$ cd libdaemon-0.14
$ ./configure && make
$ sudo make install && sudo ldconfig

qjackctl-0.4.2.tar.gz

$ tar xvf qjackctl-0.4.2.tar.gz
$ cd qjackctl-0.4.2
$ ./configure && make
$ sudo make install && sudo ldconfig

_ guitarix2-0.35.1.tar.xz

mono-4.0.5.1.tar.bz2

$ tar xvf mono-4.0.5.1.tar.bz2
$ cd mono-4.0.5.1
$ ./configure && make
$ sudo make install && sudo ldconfig

gtk-sharp-2.12.10.tar.gz

$ tar xvf gtk-sharp-2.12.10.tar.gz
$ cd gtk-sharp-2.12.10

../gtk-sharp-2.12.10.diff

*** ./glib/glue/thread.c.ORG	2014-06-09 23:06:10.112536849 +0900
--- ./glib/glue/thread.c	2014-06-09 23:06:37.182977360 +0900
***************
*** 20,26 ****
--- 20,30 ----
   */


+ #if 0
  #include <glib/gthread.h>
+ #else
+ #include <glib.h>
+ #endif

  gboolean glibsharp_g_thread_supported (void);

*** ./glib/glue/slist.c.ORG	2014-06-09 23:04:47.140991591 +0900
--- ./glib/glue/slist.c	2014-06-09 23:05:29.909427237 +0900
***************
*** 20,26 ****
--- 20,30 ----
   */


+ #if 0
  #include <glib/gslist.h>
+ #else
+ #include <glib.h>
+ #endif

  /* Forward declarations */
  gpointer gtksharp_slist_get_data (GSList *l);
*** ./glib/glue/list.c.ORG	2014-06-09 22:57:03.357047036 +0900
--- ./glib/glue/list.c	2014-06-09 23:04:14.753875352 +0900
***************
*** 20,26 ****
--- 20,30 ----
   */


+ #if 0
  #include <glib/glist.h>
+ #else
+ #include <glib.h>
+ #endif

  /* Forward declarations */
  gpointer gtksharp_list_get_data (GList *l);
$ cat ../gtk-sharp-2.12.10.diff | patch -p0
$ ./configure && make
$ sudo make install && sudo ldconfig

avahi-0.6.32.tar.gz

$ tar xvf avahi-0.6.32.tar.gz
$ cd avahi-0.6.32
$ ./configure --disable-qt3 && make
$ sudo make install && sudo ldconfig

serd-0.22.0.tar.bz2

$ tar xvf serd-0.22.0.tar.bz2
$ cd serd-0.22.0
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

sord-0.14.0.tar.bz2

$ tar xvf sord-0.14.0.tar.bz2
$ cd sord-0.14.0
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

lv2-1.12.0.tar.bz2

$ tar xvf lv2-1.12.0.tar.bz2
$ cd lv2-1.12.0
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

sratom-0.4.6.tar.bz2

$ tar xvf sratom-0.4.6.tar.bz2
$ cd sratom-0.4.6
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

lilv-0.22.0.tar.bz2

$ tar xvf lilv-0.22.0.tar.bz2
$ cd lilv-0.22.0
$ ./waf configure
$ ./waf
$ sudo ./waf install && sudo ldconfig

guitarix2-0.35.1.tar.xz

$ tar xvf guitarix2-0.35.1.tar.xz
$ cd guitarix2-0.35.1
$ ./waf configure --install-roboto-font
$ ./waf build
$ sudo ./waf install && sudo ldconfig