12月 162014
 

以前のエントリで「KDE4 で VirtualBox を動かしたしたときに ISO がマウントできない件。」と、いうエントリを書きました。FreeBSD 上で動作する VirtualBox でゲスト OS はISO イメージを mount できない。 dbus が悪さしているようだ。って感じなんですけども。

で、そのエントリに対してコメントを頂きました。なるほど。 issetugid を undef すれば良いのですね。コメントくださった方、ありがとうございました。

で、 make configure 走らせて config.h 編集してから make && make deinstall && make reinstall するのは大変なので、 ports で選択できるようにしました。

dbus_VirtualBox_1

make config に ISSETUGID オプションを [x] にすると Support VirtualBox ISO image mount が有効になります。

gnome@freebsd.org に連絡する必要があるような気がするんだけど、きっとノラ ports のままにしておくと思いますf(^^;;。
コミットしてくださる方がいると非常に嬉しいですが VirtualBox を利用していて ISO イメージをマウントできないのは KDE4 を利用している人だけなのかな?

FreeBSD で VirtualBox 使ってて ISO イメージがマウントできない。と、お嘆きの方は以下の ports を利用してみてください。
あ。変更したのは dbus/Makefile のみです。

http://icmpv6.org/Prog/FreeBSD_ports/ports-dbus-VirtualBox_ISO_image_mount-20141215.tgz

ISSETUGID オプションを有効にすると configure ファイルの ac_func から issetugid を削除します。すると config.h では #undef HAVE_ISSETUGID になります。それで make すると VirtualBox のゲスト OS で ISO ファイルがマウントできるようになります。

10月 202014
 

FreeBSD の ports-current を追いかけていると、いつの間にか mail/majordomo が削除されてしまいました。以前の ports ツリーから消える前の ports を眺めてみると Makefile に NO_STAGE= yes という記述があり、この記述があると BROKEN になってしまうんですね。

なので、 ports のメンテナの方も stage 対応にしないでそのまま ports ツリーから削除してしまったのでしょうなぁ。

僕自身は今でも majordomo を利用していて perl-5.16 対応にするのが大変だったりしているわけですが、まぁ、まだ使っているしねぇ。消えるのは悲しいねぇ。などと思った次第です。

 
メーリングリストの配信システムは、最近では mail/mailman があったりしますが apache までインストールしてしまうので仕掛けが随分と大げさになってしまいます。 もう一個、メーリングリスト配信システムとしては fml もあったりしますが、こちらも随分と古い(枯れている)し、 ports にはなってないし・・。
#上記のように書きつつ fml のサイトを見たらっ!! あいやっ!! 今てもメンテされているのですねぇ。失礼しました。 fml8 ですかっ!!
#あとは FreeBSD の ports になるのを待つばかり。でしょうか;-)。

さくらのレンタルサーバでは今でも fml が利用されているかな?

 
と、いうことで、いっちょ majordomo を stage 環境に対応させてみるかねぇ。などと思い ports を作ってみました。 ports ツリーから削除される前の majordomo の ports を参考にして、 stage 環境に対応してみました。

この majordomo の ports というのは内部でスクリプトをガシガシ動かしていて『ふむ。こりゃー stage 環境に移行するのは大変だわー。』などと思ったんですけどもねぇ・・。

以下の URL に stage 環境に対応した majorodomo の ports を置いたので、ノラ ports でも構わない。と、いう人がいましたら利用してみてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-majordomo-20141020.tgz

ちょっと ports の説明をすると、今まであったものからの変更点は以下になります。

1. Doc の下や man はバッサリと削除したのでインストールされません。
2. 古い ports では test-l というサンプル ML が用意されるのですが、それもインストールされません。
3. 今回 contrib/ というディレクトリ内に僕が改造して利用している sequencer を入れておきました。試してみたい方はインストールしてみてください。 make install ではインストールされません。

だいたいこんな感じでしょうか。 Makefile に ${INSTALL} をたくさん書くのが面倒だったのであまり必要でないものはインストールしないようにしました。それが Doc であり man であったりします;-)。

sequencer は Subject: ヘッダに ML 名を付けたり、番号を付加したりするものですが、日本語対応と Re: たくさん付く問題などの対応のために多少改修して使いやすくしています。

majordomo の ports がなくなって愕然としている人いましたらご利用頂ければと思います。

 
ちなみに、 portmaster -D -a 実行時に「majordomo なんて ports 知らないよ。」などと怒られる場合には以下の手順で回避することができます。

# mkdir -p /var/db/pkg/majordomo-1.94.5_8
# cp /dev/null /var/db/pkg/majordomo-1.94.5_8/+IGNOREME

 

こーすると、 portmaster 実行時には majordomo を無視してくれるようになります。

とまぁ、どちらにしても majordomo は前時代的だし、メーリングリスト自体もそもそも前時代的なモノになりつつあるのかもしれませんなぁ・・。

8月 122014
 

以前のエントリで SkyDrive に FreeBSD からネーテブアプリでアクセスしようぜぃ。ってのを二つ書きました。以下のエントリになるんですけども。

SkyDrive を FreeBSD に mount して使う。
SkyDrive を FreeBSD に mount して使う。そのに。

当時はまだ OneDrive ではなく SkyDrive と言っていたんですね。

そもそも、 FreeBSD から直接 OneDrive に(ネーテブなアプリで)アクセスすることは不可能で、中間的サービスを利用することになります。そのサービスは Storage Made Easy (以下 SME と記述)と、いうものです。

ここでアカウントを作成して、無料のサービスを利用すると SME のストレージサービスが利用できる他に、色々なクラウドストレージサービスプロバイダも合わせて利用できる。ってシロモノです。
簡単にいうと SME のサービスはプロキシみたいな感じで OneDrive とか Box 、 更には DropBox などにもアクセスできるようになります。

これは是非ともアカウントを一個くらいは作っておきたいですねぇ;-)。

SME のサービスはマルチプラットホーム対応で色々な OS 用のアプリがあり、スマートフォン・PC・Mac や Linux からもアクセスできます。 Linux 用はソースコードまで公開していて、そのソースコードを FreeBSD 上でコンパイルすると、 FreeBSD のネーテブアプリから OneDrive や DropBox にアクセスできる。と、いうすごいことになるんですねぇ。

以下の Lunix 用アプリについて書かれている URL です。

http://storagemadeeasy.com/LinuxDrive/

ここから CentOS の rpm をダウンロードして make してしまう ports を作ってみました。上にあるエントリでは随分と古い話でしたが、最近のソースコードは随分と美しくなり、起動するアプリケーションも直感的になりました。

 
話はガラっと変わるのですが、 Windows8.1 の場合、 OneDrive にアクセスするときには Windows Live アカウントでないとアクセスできない(ローカルアカウントでログインしている場合には一旦切り替えなければならない)ので非常に厄介です。

その場合、SME の Windows 版アプリをダウンロードして来て Windows8.1 の場合にはそれを利用するとローカルユーザーでも OneDrive にアクセスできるようになります。うひひ;-)。

Windows8.1 な人も是非利用してみてください。

 
さてさて。話を戻して、上記 URL より SentOS の storagemadeeasy-4.1-0.noarch.rpm をダウンロードしてサクっとインストールする ports を書いてみたのでもしよければ利用してみてください。

以下に ports の仕様を書いてみたいと思います。ダサいところが多々残っているんですが、僕には ports の書き方が判りませんでした・・。orz

あ。 ports は当然ながらノラ ports です。これがちゃんと ports のルールに従えられれば、前回のノラ ports である QtWeb とこれは commit してメンテナになってもも良いかなぁ。などと思っているんですけどもねぇ・・。

以下の URL にノラ ports はあります。ダウンロードしたら /usr/ports/net/ に展開して頂ければと思います。

http://icmpv6.org/Prog/FreeBSD_ports/ports-storagemadeeasy-20140812.tgz

ports の仕様は以下のような感じ。まぁ、Makefile を見て頂ければ解ると思いますf(^^;;。

1).ダウンロードはちょっと違うファイル名
https://storagemadeeasy.com/files/ から 380f74d2fcd051b21a64858ecb3f0923.rpm と言うファイルをダウンロードしてきます。

2). post-patch はダサいねぇ・・
${WRKDIR}/usr/share/sme_install/*/* のディレクトリのパスを変更します。 それにしてもダサいのが、僕は SED マクロが書けませんでした。 find して xargs から perl -e で置き換えています。ここはもっちっと改修する必要が絶対にあります。

3). コンパイル
SME のアプリは Qt4 を利用しているので qmake-qt4 実行後に make します。 LIB_DEPENDS や USE_ は多分全てを読み込んでいて、モレはないと思います。

4). インストール
SME のアプリの make は make install が無いので ports の中で吸収する必要があります。PLIST_FILES に書かれたものがインストールされます。
が、しかし、これだけでは足りないんですよねぇ・・。 pkg-plist の書き方が解らなかったので pkg-message にイントール後にもう一個インストールするようにコマンドイメージを書いておきました。
ports の中に smeclient.tgz を同梱しているのですが、これは ${WRKDIR}/usr/share/smeclient/ ディレクトリのアーカイブになります。
なので tar でなくとも、以下のコマンドでも十分に OK なんですね。

# cp -pr work/usr/share/smeclient /usr/local/share/

 
以上が ports の仕様です。随分とダサいところ満載ですねぇ・・。書き方が解らない部分が多いんですよねぇ・・。この間作った QtWeb の ports のほうがまだ楽ちんでしたf(^^;;。

 
と、いうことで、インストールされたあとは /usr/local/bin/smeexplorer を起動してアクセスすれば色々なクラウド上のファイルの閲覧が可能になります。

SME のサービス自体が中々良い感じなのでそれが FreeBSD 上からウェブブラウザ経由ではなく、ネーテブアプリからアクセスできる。と、いうのが良いのであります。

あ。今回はキャプチャはありません;-)。

ただ、 SME のアカウントを作成しなければならない。と、いうのが煩わしいとは思うのですが、iOS や Android 、 Windows などと同じレベルで FreeBSD からもするーっとクラウドストレージへのアクセスが可能になるので、これはこれで利用すると非常に嬉しいですねぇ;-)。

 
皆さんも是非利用してください。とは言いませんが、あ。そーそー。最後にですが、当該 ports を ports のルールに乗っ取ったものに改修してくださる方絶賛募集中です。どうか宜しくお願いします。

 
2014/09/05 加筆
ちゃんと一発で make install と make deinstall できるように ports を更新しました。
改修点は以下になります。

・post-patch: の部分で perl で一括置き換えしていたものを REINPLACE_CMD を使うようにした
・最後に tar でインストールしようとしていたたくさんのファイルを do-install: で行うようにした

が主な改修点です。これで多分完璧;-)。

以下の URL にあるのでよかったら利用してください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-storagemadeeasy-20140905.tgz

7月 102014
 

X11 で利用するためのターミナルソフトというのは /usr/ports/ の下を探すと色々あるんですけども、僕なんかは KDE4 を利用していて『konsole あるじゃん。』となるんですが、どーも konsole は使いにくい。その中で色々と試して自分に良い感じのモノを利用したいモノです。

過去にもこのブログでは gtkterm2 のエントリを書いたりもしましたが、今回はそれに続く第二弾。と、いう感じでしょうかねぇ。

今回取り上げるのは xfce4-terminal です。 ports 的には x11/xfce4-terminal/ になります。もともとはウィンドマネージャである xfce4 (ports 的には x11-wm/xfce4)のターミナルソフトとしての役割があるのですが KDE4 を利用している場合においても x11/xfce4-terminal を make install することはできます。

xfce4 本体は利用せずともターミナルだけをインストールすると以下と、それに関連するプログラムがインストールされます。

libxfce4menu-4.10.0
libxfce4util-4.10.1
xfce4-conf-4.10.0
xfce4-terminal-0.6.3

まぁ、これくらいなら許せるかねぇ。って気がしないでもないので僕は使い続けているんですけどもね;-)。

で、xfce4-terminal のインストールが無事に完了し KDE4 で起動するとこんな感じになります。あ。上部のメニューの部分だけのキャプチャです。

xfce4-terminal_1

xfce4 をウィンドマネージャとして利用していると、ツールバーは 文字・アイコン・両方が選択できるのですが、 KDE4 上で利用するとその選択ができずに”両方”しか選択の余地が無いんですね。ちなみに xfce4 でウィンド装飾を設定するには xfce4-appearance-settings というプログラムを利用します。 ports 的には sysutils/xfce4-settings に含まれているのでいつを追加でインストールし xfce4-appearance-settings を起動してツールバーを”アイコンのみ”にしても KDE4 上で起動した場合には”両方”でしか表示できないんですね。

で、しばらくはツールバー無しで利用していたのですが、せっかくある機能、使わずしてどうする?などと、ザラ議長のような発想になってしまい、あちこち調べて格闘してみた。と、いうネタが今回のエントリーです;-)。

 
ウィンドマネージャである xfce4 の各種設定情報は $HOME/.config/xfce4/ に色々保存されます。ウィンド装飾の設定は $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml というファイルに保存されますが xfce4-terminal を単体で起動した場合にはこの設定ファイルを読み込まずにそのまま起動してしまうようです。 xfce4 のセッションを管理している何かしらの管理デーモンが画面全体を制御しているのでしょうなぁ。

では、 xfce4-terminal のソースを書きなおして default が BOTH なのを ICON に変えれば良いじゃないか。とか思い、ソースコードを見たのですが、うーむ。この辺りは GTK2 が管理しているようで GTK2 について詳しくない僕にとっては中々手強いのでありましたf(^^;;。

と、いうことで色々調べた結果、 KDE4 利用時に xfce4-terminal を起動しても無事にアイコンのみを表示できるようになりました。

xfce4-terminal_2

xfce4-terminal と xfce4-appearance-settings を同時に起動しました。

 
xfce4 は設定情報を全て管理していて、 xfce4 のアプリが起動したときに保存してある設定情報をアプリに渡すためのデーモンが存在しているようです。 KDE4 から xfce4-terminal を起動した場合、そのデーモンが起動していないために設定情報を xfce4-terminal に渡すことができなくて xfce4-terminal は default の設定で起動するんですね。

なるほど。では xfce4 の設定情報を渡すためデーモンを KDE4 利用時に起動して上げれば良いんだ。と、いうことになります。ちなみにそのデーモンは xfsettingsd というプログラムで sysutils/xfce4-settings に含まれています。

KDE4 でログイン後に xfsettingsd を起動してあげると xfce4 の各種設定が利用できるようになります。

まぁ、余計だとか CPU の無駄遣いとかイロイロあるとは思うのですが、最近はマシンパワーも余っていることですし、見てくれやツールバーの機能も重要なので今回はこれでヨシとしましょう。

あ。ツールバーが表示されたんだけど、「新規タブ」と「新規窓」のアイコンが表示されません。追加で x11-themes/icons-tango などをインストールしてあげてください。

これであなた好みのツールバーアイコンが利用できるようになるとか思われます。

ちなみに僕は非力なマシンとか仮想環境で X が必要なマシンでは KDE4 ではなく xfce4 を利用しています。機能的にも十分だし軽量なので重宝しております;-)。

 
さてさて。これだけではなんなんで、一個パッチを公開します。

xfce4-terminal ってのはショートカットとかキーバインドなどはソースにハードコーディングしているので変更できないんですね。
一番困ったのがタブの移動で default では Ctrl+Page_Up とか Ctrl+Page_Down なので不便でしょーがない。僕はタブの移動は Shift+Left もしくは Shift+Right にしているので、その部分を変更するパッチになります。

http://icmpv6.org/Prog/FreeBSD_ports/patch-terminal-terminal-window.c

自分のキーバインドにしたい場合には terminal/terminal-window.c の 210 行辺りを変更すれば良いと思います。
上記パッチは files/ の中にほーりこんで make すれば大丈夫なようにしています。

 
と、いうことで今回は xfce4-terminal について書いてみました。皆さんも機会があったら試してみてくださいー;-)。

6月 192014
 

GNOME 方面の人にはまるで興味が無いとは思うのですが、 KDE というか Qt を利用している人にとっては、ご存知な方もいるのではないかなぁ?

世の中には超軽量ブラウザというのが存在しています。 rekonq も konqueror に比べると軽量かなぁ。arora も軽量ですね。 rekonq よりも軽量なのが QtWeb というブラウザです。 arora と同じくらい軽量かなぁ。

以下が QtWeb のサイトですね。

http://qtweb.net/

ここを見ると Windows・OS X・Linux と世界の三大ウィンドを制覇しているんですけどもね;-)。で、それぞれバイナリがあるのですが、ソースコードもあるので、それを FreeBSD に持ってきてコンパイルすると FreeBSD 上でも動作するんですけども。

キャプチャはこんな感じです。

Qtweb_1

で、せっかくなので今回は QtWeb の ports を作ってみました。 arora が ports になっているのに QtWeb が ports になってないのは悲しいことですし;-)。
以下の URL にあるのでもしも「僕も私もちょっと FreeBSD 上で QtWeb を使ってみようかなぁ。」などと思った人は試してみてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-qtweb-20140619.tgz

あ。コミットするつもりはありません。あくまでノラ ports ということで;-)。

QtWeb の ports の仕様やインストール方法などをちょっと書いてみます。

o. QtWeb をコンパイルするには Qt 4.8.6 のソースコードが必要
FreeBSD の ports 的には qt4-* で色々インストールされているのですが、 QtWeb は Qt ライブラリを static link するので FreeBSD の ports 的な Qt ライブラリは必要としません。
GNOME や xfce4 な人も Qt や KDE のコンポーネントをインストールすることなく Qt コテコテなブラウザを楽しむことがてできます。

しかし、裏を返すと Qt ライブラリ部分もコンパイルするのでコンパイル時間が随分と長いです。orz

僕が作成した ports では /usr/ports/distfiles/KDE/ に Qt 4.8.6 のソースがあればそれを利用し、なければとある日本のサイトからダウンロードしてきます。詳細は files/patch-qt-src.sh を見てください。

o. ports がインストールするもの
QtWeb のサイトからバイナリをダウンロードすると、本当に QtWeb 本体のみしかパッケージングされてないのですが、僕の作った ports では QtWeb バイナリの他に icon として QtWeb.png と QtWeb.desktop をインストールするようにしています。インストール直後から KDE のインターネットメニューに表示されるようにしました。

o. QtWeb の起動
ports からインストールすると /usr/local/bin/QtWeb ができるのでそれを実行するのですが、実行後にできるディレクトリが美しくないです。以下の三つのディレクトリができます。

・$HOME/.QtWeb Internet Browser/
・QtWebCache/
・QtWebSettings/

一番上の .QtWeb Internet Browser/ は $HOME にできるので良いのですが、 QtWebCache/ と QtWebSettings/ はどこにできるかわかりません。実行したときにいるカレントディレクトリにできたりとか、ヘタするとあちこちに QtWebCache/ と QtWebSettings/ ができてしまうような感じです。orz
なお、メニューから QtWeb の設定を変更するとその内容は QtWebSettings/ に保存されます。

が、しかし、それにしてもこの二つのファイルはどこにできるのか解らない・・。orz
ソースコードを書き換えてやろうかと思ったほどですが・・。
なのでしょうがない。起動用にスクリプトを一個書きました。

#!/bin/sh

cd $HOME/.QtWeb\ Internet\ Browser
QtWeb > /dev/null 2>&1
#/usr/local/bin/QtWeb > /dev/null 2>&1
#cd  $HOME

 
$HOME/.QtWeb Internet Browser/ 配下に QtWebCache/ と QtWebSettings/ が作成されるようにするためのスクリプトです。
不便やのぉ・・。って感じなのですが、ソースコード的には browserapplication.cpp の数カ所を直せばちゃんとコントロールできるんじゃね? って感じはします。

 
こんな感じの QtWeb というブラウザなのですが、もしよければ皆さんもコンパイルして使ってみてください;-)。

 
あ。最後にですが、 Qt-Webkit は x-sjis と x-euc-jp には対応してないので文字化けします。 rekonq も konqueror も Qt-WebKit を利用しているのでやはり x-* な文字コードは表示できません。最近は少なくなってきましたが、今では僕が知っている有名ドコロは VECTOR が x-sjis を利用しているので表示できません。

この件については以前 KDE 方面で(その昔は) Nokia の Qt のコードを書いている人に聞いたことがあるのですが、非対応だそうです。するっていと同じ KHTML から派生の Apple-WebKit は独自に x-* な文字コードに対応した。と、いうことなのでしょうなぁ。

 
PC に色々ブラウザが入っていると楽しいですよ;-)。 是非、試してみてください。;-)

4月 042014
 

最近は IME に関するエントリが多いですが、もう一回書いてしまおう。でもって、最近の連続する一連のネタは多分これが最後でしょうかねぇ;-)。

いきなり手前味噌で大変申し訳ありませんが、そもそも mozc.el な(ノラ) ports は僕が一番最初に作成して NakataMaho さん がコミットしてくださり、その後 mozc-server のメンテナの方が取り込んでくださった。と、いう経緯があります(japanese/mozc-el/Makefile の一番上見てね;-)。

mozc 自体には当初から emacs 対応の mozc.el がバンドルされていたけど mozc-server の作者が「僕、emacs 使ってないしぃ。」と、いうとこで mozc.el が ports にならなかったし、インストールされなかったんですけども。

で、現在は mozc の最新版は mozc-1.13.1651.102 ですが、 FreeBSD の ports 的には 1.11.1502.102 のままです。まぁ、 mozc を FreeBSD に対応させるためには随分たくさんの改修を行いパッチを作成しなければ make が通らないという、その苦労はよぉーく知っているので現行バージョンである 1.11.1502.102 でも一応、問題はありません。

が、しかし、 mozc-1.11.1502.102 な mozc.el には以下のようなバグがあって困っていたんですね。

 
X11 の emacs 上 (emacs -nw ではない状態) で mozc.el 経由で日本語を入力しているときに mozc のサジェストがウィンドから飛び出ると入力した文字が消えてしまう。
確定前の文字が消えるだけなら良いのですが、それ以前に入力した文字まで消えてしまう。

 
結構悲惨な状態で、それがいやでしばらくの間は ibus.el (ports 的には textproc/ibus-el です)経由で mozc を利用していました。

ところが、ibus-1.5.5 になって ibus.el が ibus-daemon と通信できなくなったので、いよいよ mozc.el を利用しなければならなくなった。

mozc.el を利用しいるとき emacs のウィンドの上のほうで文字入力をしている分には問題ないのですが、下のほうに来るとサジェストがウィンドの下を突き破るようになるので入力した文字が消えてしまうんですけどね。

 
何か回避策はないものかいのぉ。とかと思い、mozc の最新版のソースコードを持ってきて mozc.el を /usr/local/share/emacs/24.3/site-lisp/mozc/ にほーりこんでみましたよ。そしたらあーたっ!!

いやー。最新版の mozc に付属の mozc.el もしっかり更新されていて日本語入力中のサジェストは、ウィンドの下辺りで入力している場合にはカーソルのある入力行の上に表示されるようになり文字が消えてしまうというバグが改修されているんですね。これを利用しない手はないっ!!

 
ってんで、やっとここからが本題です。

mozc-server 自体は現行バージョンで良いし mozc.el インストール時に mozc_emacs_helper (バイナリ)が一緒にインストールされるのですが、これも現行バージョンのモノで良い。ただ単に mozc.el のみ最新になってくれると随分と幸せになれます。

と、いうことでパッチを作成しました。以下の URL に置いておきます。

http://icmpv6.org/Prog/FreeBSD_ports/patch-unix_emacs_mozc.el-20140402

このパッチを以下の要領で japanese/mozc-server/files/ の中に入れてください。

# cd /usr/ports/japanese/mozc-server/
# cp ~/patch-unix_emacs_mozc.el-20140402 files/patch-unix_emacs_mozc.el
# cd ../mozc-el/
# make && make deinstall && make reinstall
#

 

既存の mozc.el のパッチのみを置き換えるとこによって 1.13.1651.102 の mozc.el が利用できるようになります。ダウンロードしたパッチは 1.11.1502.102 と 1.13.1651.102 の mozc.el を diff しただけです。

非常にお気楽に、そして簡単に emacs の mozc 入力が最新になります;-)。

FreeBSD の ports の現行バージョンの mozc.el で困っている方いましたら是非ともトライしてみてください。

コミッタの方、どなたかこのパッチを吸収してくれないかなぁ。まぁ、パッチは差分だけなので簡単に作成できると思うのですけどね;-)。

4月 022014
 

以前のエントリで FreeBSD で利用する ibus-1.5.5。 というのを書きました。
要は ibus が 1.4.2 から 1.5.5 になったら随分と使い勝手が悪くなったねぇ。と、いうことで、どうしたらちゃんと利用できるようになるか? ってネタなんですけどもね。

そのエントリには僕自身がコメントしたのですが、この際 fcitx-mozc でも試してみるかねぇ。って書いていて、早速試してみました。が、実際には以下の通りの動作で、実質的にしゅーりょー。な状態だったのであります。

 
fcitx をインストールして japanese/fcitx-mozc のコンパイルを通しても正常に動作しないのですが、考えられる原因としては mozc-1.11.1502.102 に対応する japansese/fcitx-mozc のパッチは多分 fcitx-4.2.8 用で、 FreeBSD の ports は fcitx-4.2.6 となっており chinese/fcitx 本体と japanese/fcitx-mozc のバージョンに差異が発生しているため、上手に通信が行なえように思われます。

 
試してみるとまさしくその通りで、そのエントリのコメントを読んでくださった Hiroto Kagotani さん が chinese/fcitx を最新のハージョンである fcitx-4.2.8.3 にしてくださいました。

それならば fcitx-mozc は動くべー。とか思い、試してみました。

結論から書くと fcitx-mozc は fcitx を最新版にすることにより、サクっと動作しました;-)。以下その顛末を書いてみたいと思います。

 
1. fcitx-4.2.8.3 のインストール
ports の chinese/fcitx は古いバージョンなので Hiroto Kagotani さん が作成してくださった最新版の ports を以下から拾ってきます。

https://github.com/HirotoKagotani/freebsd-fcitx/tree/master/chinese/fcitx

git clone で取ってくるのが良いでしょうかねぇ。 git についてはここには書きませんが、僕は mew のソースツリーを持ってきているので git はそこそこ使っています;-)。それとほぼ同じやり方で一式を持ってきました。

あとは ports の chinese/fcitx を置き換えて make install しておしまいです。

ちなみに Hiroto Kagotani さん は、作成した ports はメンテナの方に連絡するそうなのでもうしばらくすると fcitx-4.2.8.3 が ports-current に降ってくるのではないでしょうか。

 
2. japanese/fcitx-mozc/Makefile の改修
これは簡単。 IGNORE= の行をコメントアウトします。

 
3. japanese/mozc-server を更新
japanese/fcitx-mozc を make すると japanese/mozc-server の Makefile の中が走るのでその部分を一部改修します。
既に改修した ports を以下の URL に置いたのでご利用ください;-)。

http://icmpv6.org/Prog/FreeBSD_ports/ports-mozc-server_add_fcitx-4.2.8.3_fcitx-mozc-20140402.tgz

既存の ports からの変更点は fcitx_mozc で BUILD するときに持ってくるパッチ先とパッチを変更しています。
ダウンロードするパッチは fcitx-4.2.8.3 に対応するパッチです。パッチ本体は以下の URL からダウンロード可能です。

http://icmpv6.org/Prog/FreeBSD_ports/fcitx-mozc-1.11.1502.102.1_fcitx-4.2.8.3.patch

fcitx-mozc は mozc のバージョンが 1.11.1502.102 でも fcitx のほうは最新版である 4.2.8.3 を利用する必要があります。 mozc-1.11.1502.102 に対応する 4.2.6 用のパッチがない (mozc-1.11.1502.102 に対応する 4.2.8.3 のパッチはある) ので japanese/fcitx-mozc は IGNORE= 状態になるんですね。

なので今回の場合は japanese/fcitx-mozc が悪いワケではなく、中々バージョンが上がらなかった chinese/fcitx のおかげで IGNORE= になった。と、考えるべきでしょう。

さてさて。ダウンロードした ports で japanese/fcitx-mozc を make するとサクっとインストールしてくれると思います;-)。

あとは、表示される pkg-message の内容に設定して、一旦ログアウトしてからログインし直します;-)。

 
4. KDE4 利用時の GUI について
インストールが無事に完了して、ログインしたら動作確認です。僕の場合は KDE4 を利用しているのですが、fcitx を起動するとパネルに何やら表示されます。 mozc をオンにするにはデフォルトでは 全角/半角 キーを押します。すると日本語入力が可能になります。
GNOME は利用してないのでわかりません。ごめんなさい。

右クリックでメニューが表示されますが [設定] をクリックするとエディタが立ち上がります。あたたた。
KDE4 で GUI な設定ウィンドを表示するには kcm-fcitx というのが必要なようです。 FreeBSD の ports にはなってないようなので、僕が ports を作り、以下の URL に置きました。必要な方はダウンロードしてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-kcm-fcitx-20140402.tgz

どこに展開して良いかわかりませんが、 textproc/ 辺りに展開して make && make install してください。 LIB_DEPENDS= などかぁなりいい加減であやすぃーです。本当は KDE とか Qt 辺りも書かなければダメなのだろうと思うのですが、僕の環境では既にインストールされているので・・f(^^;;。

正しく書きなおして、コミットしてくれる方、絶賛募集中です;-)。

で、インストールした kcm-fcitx は起動するとこんな感じで GUI で fcitx を設定できるようになります。

kcm-fcitx

色々設定変更してみてください。

あ。ちなみにエディタで設定ファイルを編集する場合には $HOME/.config/fcitx/config というファイルになります。

 
5. 利用してみた感想
では、実際に fcitx-mozc を利用してみた感想ですが、まず一番驚くのがカーソルに日本語を随時表示してくれない。と、いう点でしょうか。以前ちょっとだけ Windows 上で利用したことがある「Baidu IME」みたいな雰囲気で、日本語入力専用窓が出てそこでベコベコ打って、確定したらカーソルに反映される。と、いう感じです。
これが好きか嫌いかについては意見の別れるところではありますね。

あと、mozc のサジェストの「意味の機能」(だっけか?)が利用できないです。”語” 対する説明文が表示されません。

スクリーンセーバにパスワードロックがかかっている場合に日本語入力状態になってしまいます。

状態パネルを表示すると怪しいところに出たりとか;-)。

文字入力時の UI 部分に違和感が多少あるのみで、文字の入力自体は特に問題なく一応は行える。と、いう感じでしょうかね。

 
と、いうことで(僕が初めて利用する)新しい日本語入力である fcitx と、そこからエンジンとして利用する fcitx-mozc について、今回は書いてみました。

ports の chinese/fcitx が最新版にアップデートされると、多分追随して japanese/fcitx-mozc と japanese/mozc-server も対応していくと思われます。そー考えるとこの記事の内容というのは先が短い記事である。と、いうことですねぇ・・f(^^;;。

まぁ、それはちょっと置いといたとして、人よりもちょっと早く新しいかな漢字入力の動作確認ができるぜい。って感じですね;-)。

このエントリを読んで今すぐに試してみたい。と、いう人はいるんかなぁ? f(^^;;。

3月 182014
 

ports current を追いかけている人なら解ると思いますが、ibus という日本語入力なアプリケーションが 1.4.2 から 1.5.5 になりました。このバージョンアップにより日本語の入力がかぁなり複雑になったようですね。

ibus 1.4.2 と 1.5.5 の簡単な違いについて書いてみると、

o. 日本語入力状態は絶えずオン状態
o. キーボードを変更することにより全角と半角を切り分ける

と、なったようです。ある意味「日本語入力用キーボード」と「英字専用キーボード」の二つを使い分ける。と、いう状態になったようですね。おかげで ibus-setup の設定画面からは IME のオン/オフ のメニューが消えております。

さてさて。僕は今回 ibus-1.5.5 のインストールからつまずいたのでそこから書いて行きたいと思います。色々試行錯誤を繰り返し、今は日本語入力ができるようになっております。ふぅ。

あ、ちなみに僕の環境は FreeBSD/amd64 9.2-RELEASE-p3 で X での日本語入力の環境は ibus+ibus-mozc で KDE4 を利用しております。当然、オンプレミスな環境です;-)。

emacs では mozc+mozc.el を利用していますが、この場合の mozc は ibus 経由ではありません。しかし、それとは別に ibus+ibus.el+mozc というパターンもあり、その場合には ibus-el-0.3.2 が ibus-1.5 系に対応していないので動作しません。と、いうことで ibus-1.5 系にした人はサクっと ibus-el-0.3.2 を pkg delete しても問題はまるでありません。

と、いうことで、まずは ibus-1.5.5 のインストールから見ていくことにしましょう。

 
1). ibus-1.5.5 のインストール
FreeBSD だと ports では textproc/ibus/ になるので make && make install と打てばインストールが完了すると思いますが make config のオプションで悩みます。 ibus-1.5.5 をインストールすると GTK2 と GTK3 の両方が必要になる(インストールされる)のは非常に納得行かないですね。しかし、悔しいですが、以下のキャプチャの通り DOC と GCONF もしくは DCONF 以外は全てチェックを付けたほうが良いと思われます。

ibus_20140318_1

GINTRO (銀トロ? なに? それ?) をオフにすると IBus.py がインストールされずに ibus-setup が起動しない状態になる(動かないなら最初から ibus-setup インストールするのやめろよーX-(し GTK3 要らんもんねー。などと思っていると、やはり ibus-setup が起動しなかったりと、そこはかとなくとんでもない ibus がインストールされるので、ちゃんとフルオプションを付けてあげましょう。

と、いうことで ibus のインストールは完了しました。

ibus がインストールされたのですが、一応、ibus-mozc も再度コンパイルしてあげましょう。念のために ibus-1.5.5 インストール後に japanese/ibus-mozc/ で make && make deinstall && make reinstall して、一応は準備完了。と、いうことで。

 
2). ibus の起動と設定
ibus の起動は ibus をインストールしたときに pkg-message が表示されるのでその内容で設定しましょう。
まぁ、素早く試したい場合には ibus-daemon_restart とか ibus-daemon_start コマンドを実行します。無事に起動したら ibus-setup コマンドを叩いて GUI で設定します。

「キーボードショートカット」の [次のインプットメソッド] メニューでインプットメソッドの切り替えを設定します。一番上に書いたように簡単に「キーボード切り替えのためのショートカットキー。」と、いう認識でいるのが良いかと思われます。

ibus_20140318_2

ちなみに default では “Super+Space” になっていると思いますが “Super” キーというのは Win キー であったり Mac の command キー に相当するらしいです。なので、 default では「Win+Space キーでキーボード切り替え。」ってことですね。

 
さてさて。他のタブを見て行きましょう。
[インプットメソッド] のタブでは「インプットメソッドの選択」で「日本語」のキーボードアイコンと mozc を選択します。二つの項目が登録されている状態ですね。

ibus_20140318_5

[詳細] タブでは「キーボードレイアウト」で [システムキーボードレイアウトを利用する] にチェックしておいたほうが良いかもしれないです。僕の場合は ibus-setup を起動した途端に 101 キーボード列になってしまいました。普段は 106 キーボード列を利用しているのに・・。

と、いうことで ibus の設定は完了。あとは日本語をベコベコ打てば良いですね。

 
3). mozc 側で設定
が・・。上記の「キーボードショートカット」で設定したもの(僕の場合は “Shift+Space” にしました)をベコベコ押しても一向に日本語が打てる気配はありません。画面中央に切り替え画面が表示されるのですが、日本語が打てません。あいや・・。orz

しょーがねぇなぁ。となるのですが、今度は mozc の設定を行います。 mozc_tool_config コマンドを叩いて mozc の設定画面を表示させます。 [一般] タブの下のほうに「キー設定」というのがありますが、そこにある [編集] ボタンを押します。表示されたウィンドの真ん中の列が「入力キー」で、そこが “shift space” というところに、コマンドを「IME の有効化」を選択し保存します。

あとは mozc_server_restart と ibus-daemon_restart を実行して、そのあとにキーボードが変わってくれるかを確認します。

 
だいたいこんな感じで ibus+mozc の場合には日本語が打てるようになるでしょうかねぇ。mozc ではない、他の IME を利用している方、申し訳ありませんが設定方法は解らないので自力で頑張ってください;-)。

しばらく使ってみた感想ですが、

o. 新しいウインドを開いた時に日本語キーボードが選択されている
o. スクリーンセーバのパスワード入力も日本語になる
o. 文字を打ち始めると最初の文字が化ける(日本語にならない場合がある)
o. 画面に ibus の設定とかがチロッと出る場合がある(これは何?)

などでしょうかねぇ。けっこう痛いですかね・・。

 
けどもまぁ、なんとか ibus-1.5.5 に移行できたのでヨシとしておきましょう。もう少し使い込んで色々な設定を出していきたいとは思っていますが。

もしくは fcitx に移行していくかもー。

11月 122013
 

いやー。前回のエントリでは Windows と FreeBSD がなんとかマルチブートできる環境が構築できた。というエントリでしたが、ここでは実際に freeBSD を利用してみた感想を書いてみたいと思います。

 
1. OS のチョイス
今回は UEFI+GPT に対応していない FreeBSD/amd64 9.2-RELEASE をチョイスしました。インストール方法は前回のエントリに書いているのでそっちを参照してください。

本当は FreeBSD/amd64 10.0-BETA3 でも良かったのですが、僕の環境で利用している FreeBSD はほぼ全てが /amd64 9.2-RELEASE なんですね。何が良いかと言われれば pkgng の恩恵をごっそりと受け継げることができる。と、いうことですね;-)。

まず先に pkgng のことをちょっと書いておきましょうかね;-)。

デスクトップ PC で稼働している FreeBSD を pkgng 化して packages をドドドと作成します。2,3 の設定は以下の通り。

・/usr/ports/ports-mgmt/pkg をインストール
インストール後は pkg2ng を実行しろ。というので実行します。まぁ、新規インストールな状態なのでサクっと終わりますが;-)。

・/etc/make.conf に以下の行を追加
ここいらの設定はあちこちに書いてありますね。

WITH_PKGNG=yes

 
・packages の作成
そもそも KDE4 などの統合デスクトップ環境をインストールすると 800 個近い packages がインストールされています。インストールされたこれらを package 化します。以下はそのスクリプトです。

#!/bin/sh
pkg info | grep $1 | awk '{print "pkg create -f tbz -n -g -o /usr/ports/packages/All " $1}' | sh -x

 
一行野郎ですが、これを例えば pkg-create.sh という名で保存し、実行時には ./pkg-create.sh kde などとオプションを指定すると kde と付いた pkg info で表示される全てが packages 化されて /usr/ports/packages/All/ に格納されます。
ただ、関連性のあるプログラムまでは packages 化してくれないのであとからチマチマこのコマンドを実行する必要があるかもです;-)。

 
・packages のインストール
新しくインストールした ThinkPad e145 上の FreeBSD は同じく pkgng 化したあとに NFS でマウントした /usr/ports/packages/All/ に cd して、そこで pkg add kde* などと打つとドドドとインストールしてくれます;-)。

ただ、この pkg add するためには設定ファイルを一個用意して置く必要があります。
/usr/local/etc/pkg.conf というファイルを一個用意してあげます。

# cd /usr/local/etc
# echo "packagesite: http://pkg.freebsd.org/${ABI}/latest" > pkg.config

 
/usr/local/etc/pkg.conf.sample と、いうファイルがありますが、とりあえず一行だけ書いたファイルを置いてあげると pkg add が動き出します。このファイルが無いと pkg add はスルっと終わってしまい packages をインストールしてくれません。
packages 自体はこのファイルに書いたホスト名など、リモートから取って来なくてカレントデイレクトリの packages を利用したいので、これで十分です;-)。

以上で新規にインストールした FreeBSD の環境が整いました。早いです;-)。

 
2. 動くデバイスと動かないデバイス
packages がドドド入ったので X を起動したり色々やる準備が整いました。で、まず、動かないもの(デバイス)を書きましょうか。

・Wi-Fi: Broadcom (多分 BCM943142HM)
・Bluetooth: Broadcom 製 USB 経由 で 4.0 対応
・SD Card Reader: Realtek 製

これらはダメですね。 FreeBSD 側にドライバが無いようです。あと、渋いところでいうと AMD の SUBus が認識しない。この辺りについては pciconf -lv を置いておきますのでそちらを参照して頂ければと思います。

続いて X ですが、 e145 の CPU というか APU は A4-5000 で Radeon HD 8330 な GPU ですが、以下の URL で確認すると・・。

https://wiki.freebsd.org/AMD_GPU
https://wiki.freebsd.org/Graphics

と、いうことで Radeon HD 8000 番台は “Not supported” だそうです。残念ながら VESA 決定ですね。最後に要らないとは思うけど、xorg.conf を付けておきます。
タッチパット・トラックポイント共に動作する設定が入っています。

 
動くもので気がついたのを書いてみます。

・suspend/resume する (あれ?しなくなった。ちょっち調査中)
・テンキーで画面の明るさ変更が可能
・音は出る
・USB カメラは webcamd+cuse4bsd+pwcview で動きます

くらいかな?

 
試してないものは以下の通りですが、これは多分 Xorg とか KDE4 の機能に引っ張られると思うなぁ。あとで確認してみよう。

・D-SUB 15pin/HDMI/LCD があるけど、三画面出力とか可能なのかな?
・バッテリーの持ち状況とかまだ確認してないです

あと、以前の「PRIMERGY MX130 S2 を FreeBSD で利用する。」というエントリで「hwpstate0: set freq failed, err 6」というメッセージが延々と出力される。と書いたことが有りましたが、この NotePC でもやはり表示されます。回避策は上記エントリに書いてあるのでそのパッチを適用しました。

 
実際に ThinkPad Edge e145 を FreeBSD で利用してみた体感的な感想をちょっと書きます。比較は ThinkPad X100e とですが、実測値とかなくてすみません。

・CPU は 2Core から 4Core になったので余裕を感じます。あと、 CPU の温度が低いですね。ファンが唸りを上げて回るというのはまだ体験していません。その点からするとたとえ遅くとも「良いんじゃね;-)。」と思えます。
・Xorg が VESA でしか利用できないのが痛いかなぁ。とか思ったのですが、最近の VESA は以前よりも進んでいますね。以前は 1024×768 を 1366×768 横方向に拡張して表示してくれていたのですが、今の VESA はちゃんと画面のサイズでで表示してくれます。 2D のみなら VESA でも我慢できるかなぁ。と、いう感じかな。

しかし、KDE4 の「デスクトップ効果」では xrandr を利用してウィンドの透明化とか全仮想デスクトップの表示とかが動きます。あれあれ? VESA でも今は十分に動いているよ。状態です。 ThinkPad X100e の頃の VESA とは随分と違い驚いています;-)。

 
とまぁ、こんな感じですが、これは続くかどうかわかりません;-)。

ThinkPad X100e の場合は枯れた技術を利用した新製品の NotePC でしたが、今回購入した e145 は最新鋭の NotePC になるので X100e の頃よりは色々と楽しめそうです;-)。

と、いうことで ThinkPad Edge e145 で FreeBSD/amd64 9.2-RELEASE をインストールして動作している状態の情報を提示します。

起動時の dmesg
pciconf -lv の結果
sysctl -a の結果
vesa だけど xorg.conf

皆さんも是非 FreeBSD を PC ネーテブで動かしてみてください;-)。

7月 092013
 

さてさて。全体的に KDE ライクで Qt ベースな Twitter クライアントである Choqok を FreeBSD で何人くらい利用しているのかわからないのですが、タイトルの通り Twitter API 1.1 に対応した Choqok の ports を作成してみました。

以下の URL に置きましたので使ってみたい方は利用してみてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-choqok-20130709.tgz

ちょっと説明させて頂くと、現在 FreeBSD ports の www/choqok はバージョンが 1.3 です。でもって、本家のダウンロード先である http://choqok.gnufolks.org/download/ でも 1.3 をリリースしています。しかし、このバージョンは Twitter API 1.0 にしか対応していなくて最近では Twitter にログインできなくなってしまっていたんですね。

そしたら debian とか ubuntu 方面では 1.4-2 というバージョンをリリースしていて、 Twitter API 1.1 に対応している。と、いうのでそれらを利用して ports を作ってしまいました。と、いうことです。

上記 URL からダウンロードしたファイルは以下の手順で展開、インストールしてください。

# cd /usr/ports/www
# mv choqok choqok.ORG
# tar xvzfp ~/ports-choqok-20130709.tgz
# cd choqok
# mv choqok-1.4.tar.bz2 /usr/ports/distfiles/
# make && make install
#

 
基本的に ports のほうは Makefile のバージョンと distinfo を変えただけです。同梱のソースのほうに手を加えています。

もとになるソースコードは以下の URL からダウンロードしています。

http://tech.chandrahasa.com/2013/06/19/choqok-patch-for-twitter-api-1-1/
https://launchpad.net/~pfoo/+archive/choqok/+packages

choqok_1.4-2.orig.tar.gz というソースコードに choqok_1.4-2-1git0.diff.gz のパッチを適用したあと、このソースコードには po ファイルがなかったので 1.3 から po/ ディレクトリを持ってきて choqok-1.4.tar.bz2 を生成しています。

ports の distinfo は以下のようになっています。

SHA256 (choqok-1.4.tar.bz2) = 101bd27bf75ffa8c2454efab2d86dcbae737e410cad01f6fe3496d22fb15f448
SIZE (choqok-1.4.tar.bz2) = 9782427

 
ports の Makefile でいろいろやるのが面倒だったのでソースの tar 玉のほうで吸収してしまうという、ちょっとインチキなことをしていますが、一応動くので作りました。まぁ、当然ノラ ports ですけど。

どうしても Choqok が使いたいーっ!! っていう方のみ、本家が Twitter API 1.1 に対応してくれるまでの間、ご利用ください;-)。

うーむ。せっかく po ファイルを用意したのに今回利用したソースは参照しないようだ。と、いうことで po ファイルをソースコードに混ぜたのは無駄な作業でした。メニューは英語のままとなります・・。しくしく。