2009年11月22日日曜日

EtoysのPET化

EtoysをPETパッケージにする。
まずはEtoysのdebバイナリをダウンロードしてきます。最新版はdebパッケージが準備されてないので面倒な為、少し古いのですが使い勝手は変わらないと思います。debパッケージなのでそのままインストール出来ますがJWMのメニューに表示されないみたいなので一部修正します。

使用したパッケージ
Etoys-3.0.2177-Final-Linux.deb

ダウンロード元
http://www.squeakland.org/

まずundebで展開する。
# undeb Etoys-3.0.2177-Final-Linux.deb

展開するとusrフォルダが出来るので、作業フォルダを作成しその中に移動させておきます。作業フォルダ名はEtoys-3.0.2117にしました。

作業フォルダの/usr/share/applications/etoys.desktopを開いて中を一部変更し、JWMのメニューに表示される様にします。

[Desktop Entry]
Comment=Etoys
Encoding=UTF-8
Exec='/usr/bin/etoys'
Icon=etoys.png
MimeType=
Name=Etoys
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=none
Categories=Development;

Categoriesの部分を"Development"に変更します。"Education"はPuppyの初期状態では登録されていないので使えません。PuppyのJWM設定を変更すれば"Education"も使えますが他のPuppyと互換性が無くなるので、素直にCategoriesを変更します。あとは好みで修正して下さい。

dir2petでPETパッケージにする。4.30からパッケージの作り方が少し変更になっているみたいなので、過程を全て表示させてみます。

#cd /root/my-documents 作業フォルダのディレクトリへ移動する。
#dir2pet Etoys-3.0.2117

'dir2petjp' スクリプトにようこそ。
これはディレクトリをPETパッケージに換します。例えば、'abiword-0.5.6'と
いう名前のディレクトリがあり、その中にパッケージに必要とされるものを

何でも置きます。例えば、usr/local/bin/abiword (実行ファイル)、そして /usr/share/applications/abiword.desktop (XDGメニューファイル)。
.desktopファイルがなくても気にしないで下さい。このスクリプトがいくつかの
簡単な質問をしてパッケージに必要な物を何でも勝手に作ってくれます。
メニューエントリを作成するならパッケージは .desktopファイルと
メニュー用に16x16ピクセルアイコンだけが必要です。
アイコンはxpmイメージで置く場所は /usr/local/lib/X11/mini-icons/
である事が望まれます。でもどこでもいいです。

ディレクトリ Etoys-3.0.2117 はパッケージ名にダッシュを続けて
アラビア数字でバージョン番号を付けます。例: abiword-0.5.6

パッケージは任意でインストール後と削除後のスクリプトを持ちます。
これは 'pinstall.sh' と 'puninstall.sh' でトップディレクトリに置かれます。
(Unleashed用に公式PETを作るには、そのREADMEファイルを読んで下さい
スクリプトを正しく作成する方法が詳しく書かれています)

上記のどれにもさらに進む必要がなければ、ここでCTRL-Cを押して
このスクリプトを終了できます。そうでなければENTERを押して下さい。
続けるにはENTERキーを押して下さい: enterします。

ステップ 1
次の「.desktop」ファイルが見つかりました:
Etoys-3.0.2117/usr/share/applications/etoys.desktop
このアプリケーションにはメニューエントリができます。
多少なりとも「.desktop」ファイルを変更したいならば、このスクリプトを
進める前に、今すぐエディタでファイルを開き、必要な変更をして下さい。

特に、アイコンがあるかどうか、そして「Category」エントリがパピーの
メニュー階層と適合するかチェックして下さい (/etc/xdg/menus/hierarchy ファイル)。 「.desktop」ファイルの内容に満足したら「ENTER」キーを押してこの スクリプトを続けます。 あるいは「ignore」とタイプすれば「.desktop」の内容を用いずにパッケージの作成を進めます。
あるいは一連の質問をして「.desktop」ファイルを

最初から再構築したいならば「new」とタイプして下さい: すでに在るのでenterします。

依存性
現在作成中のPETパッケージ用の依存リストを入力して下さい。
すでにパピーに組み込んだパッケージは依存ファイルとして
はっきりと名前を付ける必要はありません(パピーの縮小ベアボーン
バージョン以外は、これら全てを組み込んでないかも知れません。
最悪の場合の状況について考えなければならないかも知れません)。
この依存リストを入力する方法を一例で示します: パッケージ
'pupdvdtool-0.5b' は以下の依存リストがあります: +vamps,+vobcopy,+ffmpeg,+dvdauthor,+gtkdialog3
各パッケージ名は先頭が「+」で始まり「,」で区切られます。
注意1: この「gtkdialog3」はGTKライブラリを要求しますが
    下位依存ファイルを指定する必要はありません。「gtkdialog3」を
    インストールする必要があれば、それ自身の依存リストがあります。
注意2: /root/.packages/Packages-* データベースファイルで
    各パッケージの依存リストを調べる事ができます。
注意3: パッケージバージョン番号を指定する必要はありません。
    == パッケージマネージャはバージョン番号をまだサポートしていません ==
注意4: 何を指定して良いかわからなければ、ENTERキーを押して下さい
    (パッケージマネージャはまだいくつかの基本的な依存性チェックをします)

依存リストを入力して下さい: enterします。

GUIウィンドウ
ENTER キーを押すとパッケージのデータベースエントリの作成を手助けする

GUIウィンドウが現れます。これはどこかに保存するためにテキストエディタに
表示されます。そしてパッケージ内の「pet.specs」ファイルにも書き込まれます。
ENTER を押して下さい: enterします。

ここでGUIが現れるのでカテゴリとレポジトリを修正しました。


さらにエディタが開きデータベスエントリの中身を表示します。確認したら終了させます。


しばらく何もしないで待っていると以下の様にdir2petが終了しPETパッケージが作成されます。

Etoys-3.0.2117|Etoys|3.0.2117||Develop|51984K|pet_packages-4|Etoys-3.0.2117.pet||Etoys|puppy|4|unofficial|

Creating package...


ファイル ./Etoys-3.0.2117.tar.gz を作成しました。 .petに変換中です...
Etoys-3.0.2117.pet が作成されました。完了。

Etoys-3.0.2117 に新しい「.specs」ファイルがあります。
これでディレクトリ Etoys-3.0.2117 はPETパッケージとして正しく構成されました
今後は二度とこのスクリプトを走らせる必要はありません。
必要ならばファイルを手で編集する事ができます。そして
次のようにしてもう一つの.petパッケージを作れます:
# tar -c -f Etoys-3.0.2117.tar Etoys-3.0.2117/
# gzip Etoys-3.0.2117.tar
# tgz2pet Etoys-3.0.2117.tar.gz

dir2pet 終了。
#

作業フォルダと同じ場所にPETパッケージが作成されています。作業フォルダの中に出来たpet.specsを開くと、先ほど作成されたデータベースエントリが記載されています。PETパッケージをインストールするとユーティリティの部分にメニュー表示されます。

Etoysを起動させるとフォントをどうするか聞いてきますがyes/noのどちらを選択しても起動出来ます。yes/noを選択後yesではPreambleと表示されますが何もせずにしばらく待ちます。するとEtoysのディスクトップが表示されます。使い方は自分で調べて下さい。起動して一応動くなぐらいしか確認していません。詳細に検証した訳ではないので問題があるかもしれません。メニュー等も90%ぐらい日本語化されています。



果たしてこれをPETとSFSのどちらにするかは使い勝手なので何とも言えないが、debを展開した時点で51MBあったのでSFSの方が良いかもしれない。PETにすると24MB。