初めての Wine 2.22 ビルド。エラー続きで四苦八苦です

CrossOver Mac v15.3.1 は Wine 1.8.4 が使われています。開発版の Wine 2.22(2017.12.28 時点での最新版) で Jw_cad v8.03a を実行したときに、どのようなエラーになるのか確認してみたくなったので、Wine 2.22 をビルドしてみようと思います。

とはいえ、Wine をビルドしたことがなかったので、正解がわからず四苦八苦しています。

Linux はどのディストリビューションにするか

ぼくの Mac 環境に影響がでないように、Mac に VirtualBox をインストールして、仮想環境で Linux を試すことにします。とはいえ、ぼくの Mac はかなり古いので、軽量版のディストリビューションで試すことになります。

ubuntu の派生ディストリビューションに lubuntu というのがあるので、それを使いました。
今回は lubuntu 17.10 (Desktop 32-bit) を使います。リリースされてすぐに問題が起きたものですが、VirtualBox で使う分には問題は出ていませんのでそのまま使っています。




Wine 2.22 ダウンロード

Wine 2.22 は以下からダウンロードします。

 https://dl.winehq.org/wine/source/2.x/wine-2.22.tar.xz

lubuntu 上でダウンロードしたファイルを展開して、wine-2.22 のディレクトリに移動します。

 $ xz -d wine-2.22.tar.xz
 $ tar xvf wine-2.22.tar
 $ cd wine-2.22

wine-2.22 ディレクトリは以下が作業ディレクトリになります。

configure を実行するとエラーとなる

デフォルトのまま lubuntu をインストールした状態で、configure を実行すると、依存ソフトがインストールされていないためエラーとなります。


wine-2.22 ディレクトリ配下の README ファイルを見ると、必要なソフトとして、X11、make、flex version 2.5.33 以降、bison とあるので、インストールします。

Synaptic パッケージマネージャで検索すると、make、flex、bison はなんとなく何を入れるかわかりますが、X11 は何をインストールすればよいかがわかりません。

とりあえず、make、flex、bison をインストールして再度 configure を実行。

でっ、またもや configure がエラー終了。


「configure: error: X development files not found. ... You will need to install development packages of Xlib at the very least. ...」 といわれています。Xlib が必要とのこと。

ということで、それっぽい libx11-dev をインストールして、再度 configure 実行します。

configure のエラーは続く

X11、make、flex、bison をインストールしてもエラーが出る場合があります。ぼくの場合、以下のように FreeType 関連のエラーがでました。




 「configure: error: FreeType development files not found. ... 」

libfreetype6-dev を追加でインストールしました。FreeType は README には書いてありませんでしたが、大事な依存ソフトなのでしょう。

下記 URL

 https://wiki.winehq.org/Building_Wine

の「Building Wine」ページ。「Satisfying Build Dependencies」の記載をみると、エラーが出るたびごとに必要なライブラリやプログラムのインストールを繰り返すと、configure が成功終了するとかかれています。



エラー以外にも気になるメッセージ出力がある

とりあえず、上記までで、「configure: error」がなくなりました。「configure: Finished: Do 'make' to compile Wine. 」と表示されるので、一応 configure は終了して、次の make に移れるような雰囲気です。


しかし、
「configure: WARNING: …file not found… won't be supported」とか「checking for ...h … no」などと何気によくなさそうな表示がされます。




正直、コンソール上では明示的に error と表示されていないので、どこまで、対応すれば良いのかわかりません。config.log を見ると、「checking for ...h … no」に該当する部分は「error」としてログに出力されています。この点をどう判断してよいものなのかがわかりません。

とりあえず、可能な限り「configure: WARNING: …file not found… won't be supported」や「checking for ...h … no」はなくしたいです。



configure: WARNING: …file not found… won't be supportedをなくす

ぼくの場合、以下の開発用ライブラリ等を追加でインストールしたことで「configure: WARNING: …file not found… won't be supported」の出力がでないようにはなりました。
(ちゃんとメモってないものもあるので抜けがあるかもしれませんが…)

libxcursor-dev、libxi-dev、libxxf86vm-dev、libxrandr-dev、libxinerama-dev、
libxcomposite-dev、libglu1-mesa-dev、libosmesa6-dev、ocl-icd-opencl-dev、libpcap-dev、
libdbus-1-dev、libncurses5-dev、libsane-dev、libv4l-dev、libgphoto2-dev、
liblcms2-dev、libpulse-dev、libgstreamer-plugins-base1.0-dev、oss4-dev、libudev-dev、
libcapi20-dev、libcups2-dev、libfontconfig1-dev、libgsm1-dev、libkrb5-dev、libmpg123-dev、libopenal-dev、libldap2-dev、libxrender-dev、libxml2-dev、libxslt1-dev、libgnutls28-dev、libjpeg-dev、libhal-dev

libhal-dev は synaptic のリストにないです。以下からダウンロードしてインストールしました。

 https://launchpad.net/ubuntu/precise/+package/libhal-dev
  libhal-dev_0.5.14-8_i386.deb
 https://launchpad.net/ubuntu/precise/+package/libhal1
  libhal1_0.5.14-8_i386.deb

インストール例。

 $ sudo dpkg -i libhal1_0.5.14-8_i386.deb

checking for ...h … noはなかなか潰せない

このライブラリがありませんよと表示されるなら検討がつきますが、特定のヘッダファイルのチェックで「 no 」と言われても、そのヘッダファイルがどのパッケージに含まれているものかわかりません。

例えば、「AudioToolbox/AudioConverter.h」に関して以下のように「checking for ...h ... no」といわれています。

 checking AudioToolbox/AudioConverter.h usability... no
 checking AudioToolbox/AudioConverter.h presence... no
 for AudioToolbox/AudioConverter.h... no


これ以外の一部のヘッダファイルでは、下記 URL でヘッダファイルがどのパッケージに含まれているか調べることはできます。

 https://packages.ubuntu.com/ja/

もしくは、「apt-file」パッケージをインストールして検索することもできます。

しかし、「AudioToolbox/AudioConverter.h」では検索結果が表示されないので、何をどうしてよいかわかりません。

今のところ、

「checking for -lnetapi ... not found」には「samba-dev」
「checking for EGL/egl.h ... no」には「libegl1-mesa-dev」
「checking for gettext-po.h ... no」には「libgettextpo-dev」
「checking for valgrind/memcheck.h ... no」には「valgrind」
「checking for  valgrind/valgrind.h ... no」には「valgrind」
「checking for lwp.h ... no」には「libopenafs-dev」
「checking for alsa/asoundlib.h ... no」には「libasound2-dev」
「checking for IceConnectionNumber in -lICE ... no」には「libice-dev」
「checking for io.h ... no には「libowfat-dev」
「checking for  -lodbc ... not found」には unixodbc-dev」
「checking for i686-w64-mingw32-gcc ... no」には「gcc-mingw-w64-i686」


が対応してるところまでは確認しました。でも、まだたくさん「checking for ...h ... no」が残っています。

「AudioToolbox」なんかは、Mac OS X の持ち物っぽいので、Linux 上で Linux で使う Wine をビルドするのには必要ない気もします。これ以外に、どの OS 用の開発用ファイルか不明のものがあって、対処が必要かどうかの判断ができません。

とりあえず、現状までで、Jw_cad v8.03a の動作確認をしてみようかと思うので、先に進みます。

make / make install の実行

make はコマンドが完了するまで時間がかかりました。特に問題も発生していません。
make install は、エラーになります。権限エラーっぽいので、sudo make install を実行します。これで、エラーはでませんでした。make install もコマンドが完了するまでに時間がかかります。



wine --version の実行


wine: created the configuration directory '/home/papa/.wine'
err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002

err:mscoree:LoadLibraryShim error reading registry key for installroot

err:process: wine kernel init boot event wait timed out

err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated.  Make sure that ntlm_auth >= 3.0.25 is in your path. Usually,  you can find it in the winbind package of your distribution.


最後の2つのエラーは CrossOver Mac では出ていないものです。

Wine で Windows アプリを実行

Jw_cad v8.03a をインストールするために「wine jww803a.exe 」を実行した時のエラー


err:richedit:ReadStyleSheet skipping optional destination


Jw_cad v8.03a を起動するために「wine Jw_wine.exe」を実行した時のエラー


err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111
err:ole:CoGetClassObject no class object {317d06e8-5f24-433d-bdf7-79ce68d8abc2} could be created for context 0x1



Jw_cad v8.03a を Wine 2.22 でインストール&実行したときにも、幾つかエラーが発生しています。エラーの原因と影響は不明ですが、Wine 2 系の最新でもエラーは出るということです。

ですが、Linux 上でも Jw_cad v8.03a は起動して、それなり動くようです。



Mac で Linux や Windows を動かしたいなら、
Parallels Desktop 13 for Mac
パラレルス