SGWAY -- 式神ipkgプロジェクト

式神」のiPAQ 版バイナリ・キット上で動作するアプリケーションやツールのパッケージを作成するプロジェクトです。 パッケージングシステムは、the Familiar Project の開発した ipkg を使用しています。

[目次]
  1. 近況
  2. Download
  3. パッケージのインストール方法
  4. パッケージの作成方法
  5. パッケージの紹介
  6. 一覧表

近況

これまで、式神リリース 2.0 iPAQ 版バイナリ・キットの可能な部分からパッケージ化したものに置き換えるという作業を行っていました。

現在、方針を少し変更して、 Familiar v0.6.1 にパッケージを追加する形で、式神の環境が構築できるように作業を行っています。

Download

パッケージのインストール方法

パッケージをインストールする方法は、2種類あります。

ネットワークからインストールする方法

以下の作業は root ユーザにて iPAQ 上で行います。

  1. /etc/ipkg.conf に以下の行を追加します。
    src sgway ftp://ftp.sikigami.com/pub/fuku/sgway
    firewall等があり proxy サーバ経由で、パッケージのダウンロードを行わせたい場合は、以下のような行を /etc/ipkg.conf に追加してください。
    option ftp_proxy http://<PROXYサーバのアドレス>:<ポート番号>
  2. パッケージのリストの更新
    パッケージのリストをサーバからダウンロードし、iPAQ 本体内に持っているリストを更新します。
    # ipkg udpate
  3. パッケージのインストール
    以下の手順で指定したパッケージをインストールします。
    # ipkg install パッケージ名
    パッケージ名のリストは 以下のコマンドを実行することで得ることができます。
    # ipkg list

パッケージ・ファイルからインストールする方法

  1. インストールしたいパッケージ・ファイルを以下のサイトからダウンロードします。
    ftp://ftp.sikigami.com/pub/fuku/sgway/
  2. ダウンロードしたパッケージ・ファイルをインストールする。
    # ipkg install パッケージ・ファイル名

パッケージの作成方法

パッケージの作成に必要なもの

パッケージの作成するための環境を構築

  1. 式神プロジェクトのページに従って式神2.0 SDK セルフ開発環境を構築する。
  2. 各スクリプトを実行可能なファイルとして PATH の通ったディレクトリに置く。
    必要なスクリプトは以下の通り
  3. セルフ開発環境から http および ftp でインターネットに接続できるように設定を行う。
    proxy サーバ経由でインターネットに接続する必要がある場合は、 環境変数 http_proxy, ftp_proxy に proxy サーバを設定するとよいです。
    (proxyサーバの設定例)
      ##  bash かつ proxy サーバのIPアドレス=192.168.1.1 ポート番号:8080 の場合
      # export http_proxy=http://192.168.1.1:8080
      # export ftp_proxy=http://192.168.1.1:8080
    
    セルフ開発環境からインターネットに接続できなくてもパッケージを作成することは可能です。 方法については後で説明します。
  4. 式神SDKセルフ開発環境にインストールされている式神関連のへッダ・ファイルおよびライブラリを削除する
      # rm -rf /usr/sg
    
    式神に関連するへッダ・ファイルおよびライブラリは、パッケージを作成する過程で新たにインストールされます。

すべてのパッケージを通して作成する方法(インターネットに接続可能な場合)

root ユーザで適当な作業用のディレクトリを作成する。
  bash-2.03$ su
  Password:
  # mkdir /home/sgway-work
作業ディレクトリに移動し sgway-build スクリプトを実行する。
  # cd /home/sgway-work
  # sgway-build
sgway-build は各パッケージのソースをコンパイルし ipkg のパッケージを作成し、 作業ディレクトリ下にディレクトリ ipkg を作りパッケージを作成したパッケージを格納します。そして、必要であればセルフ開発環境に各パッケージのヘッダ・ファイルおよびライブラリをインストールします。

すべての作業が終わるのに iPAQ H3850 で約8時間30分かかります。

すべてのパッケージを通して作成する方法(インターネットに接続できない場合)

root ユーザで適当な作業用のディレクトリ、ソースを格納するディレクトリを作成する。
  bash-2.03$ su
  Password:
  # mkdir /home/sgway-work
  # mkdir /home/src-pool
ftp://ftp.sikigami.com/pub/fuku/sgway-src/ から以下のファイルをダウンロードし作業ディレクトリ(/home/sgway-work)に置きます。 パッケージのコンパイルするために必要なソースをすべて集めて、 ソースを格納するディレクトリ(/home/src-pool) に置きます。 必要なソースは ftp://ftp.sikigami.com/pub/fuku/src-pool/ にまとめて置いてあるのでここにあるすべてのファイルをダウンロードしてもよいでしょう。

作業ディレクトリに移動した後に、環境変数 SOURCE_POOLDIR にソースを格納するディレクトリを設定し、sgway-build スクリプトを実行します。
  # cd /home/sgway-work
  # env SOURCE_POOLDIR=/home/src-pool sgway-build -l

各パッケージを個別に作成する方法

前提として、一度はすべてのパッケージを通して作成していなければなりません。 これは、これから作成するパッケージが必要とするへッダ・ファイルやライブラリがインストールされている必要があるためです。

作業用ディレクトリで作成したいパッケージ名を引数にして、 sgway-build を実行します。 例えば、 nunomennmtools のパッケージを作成したい場合は以下のようにコマンドをします。
  # cd /home/sgway-work
  # sgway-build nunome nnmtools

セルフ開発環境からインターネットに接続できない場合は、sgway-build-l オプションを付加して下さい。


ipkg の作成方法に関しては、 Zaurus-jaipkg を作るには のページがたいへん参考になりました。

パッケージの紹介

布目+jserver

かな漢字変換機能付きの「布目」です。 リリース2.0 として配布されているバイナリ・キットはかな漢字変換機能を含まないようにコンパイルされています。 認識しない手書き文字があったときに便利です。 かな漢字変換機能なしの「布目」に対して、より多くのメモリを必要とします。 DRAM を 64MB 搭載した機種でないと、実用的に使えません。

jserver をインストールします。
# ipkg install freewnn-common
# ipkg install freewnn-jserver

既にインストールされている式神2.0 の「布目」に関連するファイルを以下のスクリプトを実行して取り除きます。 取り除いたファイルはまとめてカレント・ディレクトリの sg2.0-nunome_backup.tar.gz および sg2.0-nnmtools_backup.tar.gz に保存されます。
# ./remove-sg2.0-nunome.sh
# ./remove-sg2.0-nnmtools.sh

続けて、「布目」のパッケージをインストールします。
# ipkg install nnmtools
# ipkg install nunome

iPAQ を再起動すると、インストールした「布目」が使用できます。

NUNOME
screenshot

wwwoffle

# ipkg install wwwoffle

PPPの接続/切断で /etc/ppp/ip-up.d/, /etc/ppp/ip-down.d/ に存在するスクリプトが実行されるように pppd で使用されるスクリプトを 置き換えます。 wwwoffle パッケージで用意されたPPPの接続/切断時のスクリプトが呼び出されるようになります。
# ./setup-runscripts-sg2.0-ppp-fk1.sh

以上で、wwwoffle のインストール終了です。

/etc/wwwoffle.options を編集することで、PPP 接続/切断時に行う処理の変更を行うことができます。 /etc/wwwoffle.options は行単位で処理され、# で始まる行はコメントとして扱われます。また、行の最初および行末にスペースがある場合は、無視されるので注意してください。

PPP 接続後 online にしても、うまく wwwoffle 経由で HTTP 接続できない場合があります。 原因は、PPP 接続時に書き換えられた /etc/resolv.conf の内容が、 wwwoffle に反映されずに DNS の名前解決に失敗しているためだと思います。 この場合は、 /etc/wwwoffle.options に ppp-restart と記述した行を追加してください。 PPP 接続時に無理やり wwwoffle を再起動させるようになります。(他に、回避方法が分かりませんでした)

wwwoffle の cache されたデータは /mnt/ramfs 上に格納されます。 油断しているとすぐに一杯になりますので注意してください。

nnmnd-client

布目用の辞書データをインタネット経由でダウンロードするためのユーティリティです。 布目で入力した手書き文字をサーバにアップロードすることもできます。
# ipkg install nnmnd-client

パッケージ一覧表

式神に関連するパッケージの表です。
名前 バージョン コンパイル順 ipkg 依存関係 ソース
glib 1.2.8 1 libglib1.2sg_1.2.8-sw0_arm.ipk ftp.gtk.org
gtk+ 1.2.8 2 libgtk1.2sg_1.2.8-sw2_arm.ipk
gtk-locale-ja-sg_1.2.8-sw2_all.ipk
glib 式神
imlib 1.9.8.1 3 imlib1sg_1.9.8.1-sw1_arm.ipk
imlib-base-sg_1.9.8.1-sw1_arm.ipk
glib, gtk+ ftp.gnome.org
ORBit 0.5.5 4 liborbit0sg_0.5.5-sw0_arm.ipk
orbit0sg_0.5.5-sw0_arm.ipk
glib ftp.gnome.org
audiofile 0.1.9 5 libaudiofile0sg_0.1.9-sw0_arm.ipk ftp.gnome.org
esound 0.2.22 6 esoundsg-common_0.2.22-sw2_arm.ipk
libesd0sg_0.2.22-sw2_arm.ipk
audiofile ftp.gnome.org
gnome-libs 1.2.8 7 gnome-bin-sg_1.2.8-sw2_arm.ipk
gnome-libs-data-sg_1.2.8-sw2_all.ipk
libgnome32sg_1.2.8-sw2_arm.ipk
libgnomeui32sg_1.2.8-sw2_arm.ipk
libgnomesupport0sg_1.2.8-sw2_arm.ipk
libgnorbagtk0sg_1.2.8-sw2_arm.ipk
libart2sg_1.2.8-sw2_arm.ipk
libgnorba27sg_1.2.8-sw2_arm.ipk
gnome-locale-ja-sg_1.2.8-sw2_all.ipk
libgtkxmhtml1sg_1.2.8-sw2_arm.ipk
libzvt2sg_1.2.8-sw2_arm.ipk
glib, gtk+, orbit, audiofile, esound, imlib 式神
libxml 1.8.10 8? (libxml1sg_1.8.10-sw0_arm.ipk) ftp.gnome.org
gdk-pixbuf 0.8.0 9 libgdk-pixbuf2sg_0.8.0-sw1_arm.ipk
(libgdk-pixbuf-gnome2sg_0.8.0-sw1_arm.ipk)
libglib1.2sg, libgtk1.2sg, libjpeg62, libpng2, libtiff3g, xlibs ftp.gnome.org
control-center 1.2.2 10? (libcapplet) ftp.gnome.org
gnome-core 1.2.4 11 gnome-core-locale-ja-sg_1.2.4-sw3_all.ipk
gnome-panel-data-sg_1.2.4-sw3_all.ipk
gnome-panel-sg_1.2.4-sw3_arm.ipk
libpanel-applet0sg_1.2.4-sw3_arm.ipk
liborbit0sg, libglib1.2sg, libgtk1.2sg, libgnorba27.sg, libgnomeui32sg, libgnome32sg, libgnomesupport0sg, libart2sg, imlib1sg, libesd0sg, libaudiofile0sg, libgdk-pixbuf2sg, libtiff3g, libjpeg62, libpng2, xlibs, zlib1g (libcapplet, libgnomecanvaspixbuf) 式神
gnome-utils 1.2.0 12 (not yet build) ftp.gnome.org gcalc のみインストール
gtk-engines 0.10 13 gtk-enginessg_0.10-sw1_arm.ipk ftp.gnome.org
mc 4.5.51 13 (not yet build) 式神
nunome 1.2 nnmnd20030130 13 nunome_1.2-nnmnd20030130-sw4_arm.ipk
nunome-dic-nnm_1.2-nnmnd20030130-sw4_arm.ipk
nunome-dic-nnmnd_1.2-nnmnd20030130-sw4_arm.ipk
(FreeWnn) NNMND
nnmtools 1.0.1 nnmnd20030110 14 nnmtools_1.0.1-nnmnd20030110-sw1_arm.ipk (nunome) NNMND
sgaddr 0.2.2 13 (not yet build) 式神
sgapm 0.1 13 sgapm_0.1-sw0_arm.ipk libc6, zlib1g, xlibs, libglib1.2sg, libgtk1.2sg, imlib1sg, libart2sg, libaudiofile0sg, libesd0sg, libgnome32sg, libgnomesupport0sg, libgnomeui32sg, libgnorba27sg, liborbit0sg, libpanel-applet0sg 式神
sglauncher 0.5.5 13 sglauncher_0.5.5-sw3_arm.ipk libc6, zlib1g, xlibs, libglib1.2sg, libgtk1.2sg, imlib1sg, libart2sg, libaudiofile0sg, libesd0sg, libgnome32sg, libgnomesupport0sg, libgnomeui32sg 式神
sgdate 0.1.0 13 (not yet build) 式神
sgdial 0.0.2 13 sgdial-locale-ja_0.0.2-sw10_arm.ipk
sgdial_0.0.2-sw10_arm.ipk
libc6, xlibs, zlib1g, libglib1.2, libgtk1.2sg, imlib1sg, libart2sg, libaudiofile0sg, libesd0sg, libgnome32sg, libgnomesupport0sg, libgnomeui32sg, libgnorba27sg, liborbit0sg, libpanel-applet0sg, ppp-sgway 式神+sgway
sgipkg 0.0.7 13 (not yet build) 式神
sgmemo 0.1.1 13 (not yet build) 式神
sgreboot 0.1 13 (not yet build) 式神
sgsched 0.1.1 13 (not yet build) 式神
sgse 0.1 13 (not yet build) 式神
sgswtheme 0.1 13 (not yet build) 式神
sgwm 0.2.1 13 sgwm_0.2.1-sw0_arm.ipk 式神
sylpheed 0.6.4 13 sylpheed-locale-ja-sg_0.6.4-sw0_arm.ipk
sylpheed-sg_0.6.4-sw0_arm.ipk
libc6, xlibs, libgdk-pixbuf2sg, libglib1.2sg, libgtk1.2sg 式神
sg20-theme ?? 13 sg20-theme_0.0.1-sw0_arm.ipk 式神2.0のバイナリ・キットから抜き出してパッケージを作成
sgcl-theme ?? 13 sgcl-theme_0.0.1-sw0_arm.ipk 式神2.0のバイナリ・キットから抜き出してパッケージを作成した
sg-scripts 20030217 13 sg-scripts_20030217-sw1_arm.ipk bash sgway
ppp-sgway 2.4.1 12 ppp-sgway_2.4.1-sw5_arm.ipk ftp://ftp.samba.org/pub/ppp/
libdb2-glibc 2.7.7 ? libdb2-glibc_2.7.7-sw0_arm.ipk Sleepycat Software Inc.
kterm 6.2.0 ? kterm_6.2.0-sw8_arm.ipk X Consortium
kterm-sgl 0.1 ? kterm-sgl_0.1-sw0_all.ipk sgway
XFree86 4.2.20030205 ? xserver-tiny-h3600-sgway_4.2.20030205-sw3_arm.ipk
xlibs-sgway_4.2.20030205-sw3_arm.ipk
xlibs-locale-ja-sgway_4.2.20030205-sw3_arm.ipk
libxt-sgway_4.2.20030205-sw3_arm.ipk
libxaw6-sgway_4.2.20030205-sw3_arm.ipk
libxaw7-sgway_4.2.20030205-sw3_arm.ipk
XFree86 CVS
xfonts+k14+naga10 0.1.0 ? xfonts-k14-naga10-jiskan24_0.1.0-sw0_arm.ipk
xfonts-k14-naga10_0.1.0-sw0_arm.ipk
xfonts-k14_0.1.0-sw0_arm.ipk
X Consortium, ナガ10

式神に直接関係しないパッケージの表です。
名前 バージョン ipkg 依存関係 ソース
FreeWnn 1.1.1 a019 freewnn-common_1.1.1-a019-sw0_all.ipk
freewnn-jserver_1.1.1-a019-sw0_arm.ipk
libwnn_1.1.1-a019-sw0_arm.ipk
FreeWnn Project
curl 7.10.1 libcurl_7.10.1-sw0_arm.ipk
curl_7.10.1-sw0_arm.ipk
cURL and libcurl
nnmnd-client 0.9.3 nnmnd-client_0.9.4-sw0_arm.ipk (FreeWnn,nunome) NNMND
nnmndfe 0.2 nnmndfe_0.2-sw0_arm.ipk nnmnd-client NNMND
wwwoffle 2.7g wwwoffle_2.7g-sw1_arm.ipk The WWWOFFLE Homepage
w3m 0.3.2.1 w3m-img_0.3.2.2-sw1_arm.ipk
w3m_0.3.2.2-sw1_arm.ipk
w3m HomePage


Hirokazu FUKUI <hfukui@sannet.ne.jp>