バイナリ互換性ガイド

第 3 章 ウィンドウシステム互換性

Solaris 2.x リリースにおいて、デフォルトのウィンドウシステムは、OpenWindows バージョン 3.3 です。SunOS 4.x のアプリケーションの多くは、OpenWindows の旧バージョンを基礎としています。この章では、ウィンドウシステムに関連して使用できるバイナリ互換性について説明します。ウィンドウベースのアプリケーションにも、第 2 章「バイナリ互換性」で述べたバイナリ互換性に関する制約が適用されます。

OpenWindows のバイナリ互換性

OpenWindows 環境でのバイナリ互換性は、使用するプロトコルとツールキットによって異なります。以下の項では、バイナリ互換性のある OpenWindows アプリケーションに関する標準ガイドラインを示し、X11 プロトコルおよび各種のツールキットに関して使用できるバイナリ互換性について説明します。

SunOS 4.x リリースでは、OpenWindows バージョン 2.0 (V2) および OpenWindows バージョン 3.0 (V3) が使用できました。Solaris 2.x には、OpenWindows バージョン 3.3 (V3.3) がデフォルトのウィンドウシステムとして組み込まれています。一般に、OpenWindows V3 で実行されていた OpenWindows V2 アプリケーションは、OpenWindows V3.3 でも実行できます。以下の項に示す制約および問題点は、OpenWindows V3.3 で実行される OpenWindows V2 アプリケーションすべてに適用されます。

OpenWindows アプリケーションのリンク

アプリケーションがライブラリをリンクする場合は、すべてのライブラリを動的にリンクする必要があります。

たとえば、OpenWindows V2 ライブラリに対して、libxview が動的にリンクされ、libolgx が静的にリンクされている場合、このアプリケーションは V3 上で実行できません。ユーザには、次のような ld.so エラーメッセージが表示されます。

ld.so: call to undefined procedure _olgx_xxx from 0xf77906ec

libc を除くすべてのライブラリが OpenWindows V2 に対して動的にリンクされているとすれば、次のようなエラーメッセージ (libc が動的にリンクされてないため) が出ます。

ld.so: call to undefined procedure _strdup from 0xf778ea30

あるアプリケーションの作成時に、OpenWindows V2 XView ソースを使用して修正し、そしてライブラリを動的にリンクしたとすれば、そのアプリケーションは V3 XView を用いて実行することはできません。修正した XView ソースを削除する必要があります。

X11

OpenWindows V3 では、X11 プロトコルと XLib (クライアントライブラリ) は、OpenWindows V2 との 100% の下位互換性を備えていました。どちらのリリースも、MIT の X11R4 プロトコルをサポートしています。しかし、OpenWindows V3.3 リリースには大量のバグ修正が含まれているため、OpenWindows V2 の場合よりプロトコルへの依存性が高くなっています。アプリケーションが、プロトコルとの互換性のない機能や属性に依存している場合は、そのアプリケーションは働かなくなります。

サポートされていないプロトコル・方式

NeWS

NeWS プロトコルは OpenWindows V3.3 ではサポートされていません。

SunView

SunView プロトコルは OpenWindows V3.3 ではサポートされていません。

Pixrects

Pixrects は OpenWindows V3.3 ではサポートされていません。

ツールキット

XView

XView バイナリ互換性はサポートされています。XView バイナリ互換性とは、OpenWindows V2 XView に対して動的にリンクされた任意の OpenWindows V2 アプリケーションを、 V3 XView ライブラリに接続し実行可能とすることです。ただし、XView バイナリ互換性には次の 2 つの例外があります。

XView 2.0 には、ドラッグ&ドロッププロトコルの変更からクライアントを保護するための一時 API が含まれていました。このインタフェースを使って「ドロップを受け取る」アプリケーションは、OpenWindows V3 のライブラリに対しても適正に実行されます。しかし、アプリケーションがプロトコルの変更を直接対処している場合は、ソースレベルでの変更が必要になります。

XVPS を使用する XView アプリケーションは、Solaris 2.x ではサポートされていません。

OLIT

OpenWindows V2 ライブラリによって書かれた OLIT アプリケーションは、OpenWindows V3.3 を使用した場合でも問題なく実行できますが、ドラッグ&ドロップサポートだけは例外です。OpenWindows V2 アプリケーションが、OpenWindows V3.3 に含まれるドラッグ&ドロップの機能を使用しようとしても正しく動作しません。つまりドロップが失敗します。カット&ペーストは、まったく問題なく働きます。ドラッグ&ドロッププロトコルに変更があったため、アプリケーションが引き続きドラッグ&ドロップをサポートするには、ソースレベルの変更が必要です。

TNT と Lite

TNT または Lite ツールキットのいずれかのバージョンを使って書かれたアプリケーションは、Solaris 2.x ではサポートされません。

DeskSet

OpenWindows V2 および OpenWindows V3 で使用できる DeskSet アプリケーションは、OpenWindows V3.3 でも使用できます。OpenWindows V2 または V3 の Deskset アプリケーションを Solaris 2.x で実行することは不要であり、サポートもされていません。