最新のXサーバーで正しく実行されていない古いXアプリケーションの問題を解決するには?

最新のXサーバーで正しく実行されていない古いXアプリケーションの問題を解決するには?

複雑な信号処理パッケージの一部として提供される古いXアプリケーションがあります。アプリケーションはディスプレイがないサーバーに常駐し、他のXサーバーを使用するクライアントがそのサーバーに接続します。

古いLinuxクライアントシステム(RHEL5など)ではアプリケーションがうまく描かれていますが、最新のLinuxクライアントシステム(RHEL6、Centos5、Ubuntu10など)では描画に欠陥があります。ウィンドウが空、更新されていない、または壊れています。以前に詰まったものの後ろにある空の正方形の部分。

BackingStoreオプションを使用するようにXサーバーを調整すると、問題は部分的に消えましたが、これはわずかな改善に過ぎませんでした。ウィンドウの内容を正しく描画するには、アプリケーションの問題をどのように解決する必要がありますか?有効にする必要がある特定の拡張および/または回避策はありますか?以前のXバグ/詳細は「サポート」する必要がありますか?

xdpyinfo編集:ここで動作しているクライアントのダンプをアップロードしました。http://pastebin.com/W0WHQ8hxそして働いていないクライアントは次のとおりです。http://pastebin.com/X49c6ckW。主な違いは、PseudoColor作業中のクライアントに表示され、作業していないクライアントには表示されない視覚的なように見えますが、それが重要かどうかはわかりません。

答え1

(これは実際には答えではなく、いくつかの提案に近いですが、コメントに入れるには長すぎます。)

注文するxdpyについて登録されているすべての拡張機能と比較を開始できる視覚効果のリストを含むXサーバー機能のリストを提供します。

ただし、BackingStoreを再度有効にすると問題が解決することが示唆されるため、これがクライアントの問題であると疑われます。クライアントがX11のしくみについて誤った仮定をしているか、何らかの方法でICCCMに違反しています(Javaはこれに対して悪名高い)。明らかです)したがって、いくつかのデフォルト設定を変更した最新バージョンのX11によって破損しています。

2つの一時的な解決策:

  • 走るx11vncアプリケーションがあるノードから最新のホストのVNCを介してそのノードに接続すると、x11vnc画面のサイズを適切に調整して帯域幅の消費を減らすことができます。

  • 走るXネスト最新のノードでは、問題のあるアプリケーションをXnestディスプレイに接続してください。アプリケーションと互換性があるほど十分に古いXnestバージョンをコンパイルできる必要があります。

答え2

(正確な答えではありませんが、可能です。)

指定された色数をサポートするモニターでのみ実行されるXアプリケーションを作成することが可能です。 8ビット以外のカラーモニタでは、実行されていないいくつかの古いプログラムが見つかりました。タスクディスプレイは、PseudoColorアプリケーションがデフォルトの24ビット深度に加えて8ビットまたは12ビット深度を使用できるようにするビジュアル効果を提供します。機能しないディスプレイは、24ビットおよび32ビットのビジュアルオブジェクトのみを提供します。

したがって、アプリケーションが好みの色数(通常256)を使用してサーバーと対話できない場合、これはアプリケーションのバグである可能性が高くなります。直すのがこんなに大変なことなのかわかりませんでした。

VNCでアプリケーションを実行してみてくださいXvnc -depth 8Xvnc -cc 3実際のVNC VNCサーバー) 助けることができます。

関連情報