スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 何とかなりそうではある | トップページ | Ubuntu版も順延 »

Ubuntu版も完成

今日は、Ubuntu版Mirror-DTC Ver1.3.0の変更作業を行っていたのだが、Ubuntu16.04LTS対応版も含めて完成した。なので、明日にはリリースするつもりなのだが、バージョン番号はOS X版と同じVer1.3.0.1にする。つまり、純粋な不具合修正版、という事になる。

OS X版Mirror-DTCとUbuntu版Mirror-DTCは、ほぼ同じ作りになっている。つまり、使えるAPIは異なるので、その部分については、両者で実装は異なるのだが、より上位層から見れば、その部分にはラッパー関数を使用しているので、そのラッパー関数がAPIであると見做せば、両者のコードは殆ど同じになっている訳だ。

そして、OS X版のVer1.3.0には、接続開始/モード変更時に画像転送がストールする可能性がある不具合と、クリップボード転送で異常が出る可能性がある不具合が存在したのだが、上記の通りなので、これらの不具合はUbuntu版にも存在していた。

なので、Ubuntu版についても、Ver1.3.0.1では、上記の不具合は修正したのだが、Ubuntu版Ver1.3.0には、Ubuntu版固有のもう一つの不具合を見つけたので、今日は、その修正も行った。

具体的には、サーバー側で画面の解像度を変更すると、クライアントがストールするケースがあったのだが、このストール現象は、上記のストールとは異なり、ソフト全体が無応答になる。

この不具合の原因は、サーバー側で画面の解像度が変更されると、クライアント側では、それに合わせて表示モード等を変更するのだが、Mirror-DTCの処理ルーチンは、基本的には、メインスレッドを使っていないのだが、Ubuntuの描画系APIは、メインスレッド以外からアクセスすると異常動作する、という事だ。

つまり、表示モード変更時に非メインスレッドから描画関連のAPIを使用していたために、ストールする事があったのだが、上記の様な問題がある事は、予め判っていたので、殆どの処理については、GLib::Dispatcherを使ってメインスレッドで実行される様にしてあった。

なので、上記のストールは対応忘れがあったために、発生していたのだが、より詳細に書くと、set_cursor()関数を非メインスレッドから呼び出すケースがあった訳だ。

と、言う事で、Ubuntu版Mirror-DTC Ver1.3.0.1では、Ubuntu16.04LTSに対応したバイナリも同梱される様になるのだが、Ubuntu14.04LTSでも、Ver1.3.0よりは、Ver1.3.0.1の方が安定動作する筈なので、Ver1.3.0.1が公開されたら、Ubuntu14.04LTSユーザーも、更新される事をお勧めする。

ちなみに、16.04LTS用のバイナリと14.04LTS用のバイナリは異なる。

何故、そうなるのか、というと、リンクするライブラリが変わるから、なのだが、ソースコード的にも、少しだけ異なる部分がある。

具体的には、GTK::Entryの一部で、サイズ指定方法を変えているのだが、これは、数日前に書いた、16.04LTSでは、ダイアログのサイズが何故か大きくなってしまう問題、を解決する為に必要になったからだ。

Mirror-DTCでは、GTK::Entryの一部で、set_width_chars(5)みたいなサイズ設定を行っているのだが、これを追加するGTK::Fixedのサイズが、14.04LTSでは、前述のGTK::Entryのサイズ指定に合わせて変更される感じなのだが、16.04LTSでは、サイズ指定を無視してデフォルトサイズに合わせて変更される感じになっていた訳だ。

なので、16.04LTS用バイナリでは、set_max_width_chars(5)みたいなサイズ指定も追加したのだが、このAPIはgtkmmのVer3.12からしか使用できない事にっなっていて、14.04LTS上で、このAPIを使ったソースをビルドすると、エラーが出た。

と、言う事なので、作者的には珍しく、Ubuntu版Mirror-DTCでは、#ifdefを使った条件コンパイルを導入した訳なのだが、Ubuntu16.04LTSでの前述の挙動は、普通に鑑みれば納得がいかないモノなので、実際には単なるバグで、その内、修正されるかもしれない。

そうなれば、Ubuntu16.04LTSでも、14.04LTSと同じソースからバイナリをビルドできる様になる筈なのだが、今日の時点では、前述の対策は必要で、かつ、将来的にも、追加した関数を削除する必要はない筈なので、この対策を本採用する事にした訳だ。

= この記事に関連する公開中ソフト =

Mirror-DTC

Mirror-DTC

(2016/10/25追記)

« 何とかなりそうではある | トップページ | Ubuntu版も順延 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63885923

この記事へのトラックバック一覧です: Ubuntu版も完成:

« 何とかなりそうではある | トップページ | Ubuntu版も順延 »

2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google