gnuplotのソースコードからのビルドとreadlineのライセンスについて

以下の内容はライセンスについてちょっとかじっただけの知識で書いているので、内容に認識の誤りがあったらすみません。また内容もあくまでも個人的な考えによるものです。そのことを踏まえて読んでいただければと思います。


これまでのブログでgnuplotでのコマンドラインからの日本語入力についていくつか記事を書いていたのですが、ある程度状況がつかめてきたのでここでまとめておきます。
(あくまでもここでするのはコマンドラインからの入力の話です。スクリプトファイルから読み込んだ際にグラフ上で日本語が文字化けするのはまた別の話。後者の場合は出力形式のフォントの指定の仕方などについて考えてみて下さい)


gnuplotのコマンドラインからの文字入力については、ソースコードからのビルド時にreadlineに何を選ぶかに依存するようです。readline自体は文字の編集を受け持つライブラリのようで入力では特に関係無さそうに見えますが、実際にビルドオプションを変えて試してみると入力出来るようになったり出来なくなったりしました。

まずreadlineの機能は外部ライブラリで提供されるもので、その一つにGNU Readlineがあります。
そしてこれを有効にしてビルドすると日本語入力が出来たのですが、ここでソフトウェアのライセンスについての問題が頭によぎります。
(ビルドしたソフトを私的に使用する場合ではなく、ビルドしたものを公開する段階で生じる問題)

まずgnuplotは名前にgnuと入っていますがGNUとは関係なく、ソースコードのライセンスもGPLではありません。なので、gnuplotにGNU Readlineを有効にしたパッケージを公開してしまうとライセンス的に問題になり得るかなと。このへんはgnuplot、GPLのライセンスについてよく学んで判断する必要があります。自分で使うだけで公開なんてするつもりがなくても、どういった場合にライセンス問題となり得るかくらいは押さえておくべきでしょう。

さて、いま自分が使っているUbuntuで配布されているgnuplotのパッケージは、readlineとしてBSD editlineが使われているようです。(こちらについてはライセンスの制限はそれほど厳しくない模様)
で、こちらのものはマルチバイト文字を扱うことが出来ないようです(後述しますが現在ではそうではない模様)。コマンドラインに日本語入力出来ないというのもそのためかと(確証はないですが)。

とりあえず現状ではgnuplotのコマンドラインで直接日本語入力したい場合は、自分でソースコードをダウンロードしてきてreadlineについてあれやこれやしてビルドしてインストールします。ビルドしたパッケージの扱いに関してはライセンスをよく読んで判断して下さい。
また間接的な日本語入力でいいなら以前ブログで紹介した方法が使えます。

BSD editlineについて調べてみると、いまではUnicodeが使えるようになっているようです。なので将来的にはこの問題も解決するのではと思います。

あとgnulotのreadlineとしてbuildinのものと、readline自体使わないという設定もあるのですが、このへんはまた時間があるときにでも調べてみます。


gnuplot関連のまとめページ
gnuplot関連のブログ記事

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)