世の中が新型コロナウイルスのニュース一色になっているうちに、
例年だと、
さて、
8月YX日:WINE用32ビット版パッケージの作成開始
CLFSレベルのパッケージだけではWINEの動作に全く足りないことに気づきしばし呆然としたものの、
そう考えると多少気が楽になり、
X回りのライブラリは依存関係があるため、
当初は64ビット版用のPlamoBuildスクリプトをコピーして、
BLFSの手順に従ってビルドを進めてゆくと、
WINEには必要なライブラリが揃っているかをチェックするconfigureスクリプトが用意されている。このスクリプトがどこまで進むかを試してみたところ、
$ ~/WINE/wine-4.21 ./configure checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking whether make sets $(MAKE)... yes ... checking for XkbQueryExtension in -lX11... yes checking for -lXcursor... libXcursor.so.1 checking for -lXi... libXi.so.6 ... checking ft2build.h presence... yes checking for ft2build.h... yes checking for -lfreetype... not found configure: error: FreeType 32-bit development files not found. Fonts will not be built. Use the --without-freetype option if you really want this.
やはりフォント回りのライブラリも32ビット版が必要なようだ。もっとも、
FreeTypeの次は何が必要になるのだろう、
$ ~/WINE/wine-4.21$ .configure --without-freetype checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking whether make sets $(MAKE)... yes ... config.status: executing tools/makedep commands config.status: executing Makefile commands configure: MinGW compiler not found, cross-compiling PE files won't be supported. configure: libGLU 32-bit development files not found, GLU won't be supported. configure: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported. configure: OpenCL 32-bit development files not found, OpenCL won't be supported. configure: pcap 32-bit development files not found, wpcap won't be supported. configure: libdbus 32-bit development files not found, no dynamic device support. configure: libgnutls 32-bit development files too old, bcrypt encryption won't be supported. configure: lib(n)curses 32-bit development files not found, curses won't be supported. configure: libsane 32-bit development files not found, scanners won't be supported. configure: libv4l2 32-bit development files not found. configure: libgphoto2 32-bit development files not found, digital cameras won't be supported. configure: libgphoto2_port 32-bit development files not found, digital cameras won't be auto-detected. configure: liblcms2 32-bit development files not found, Color Management won't be supported. configure: libz 32-bit development files not found, data compression won't be supported. configure: libpulse 32-bit development files not found or too old, Pulse won't be supported. configure: gstreamer-1.0 base plugins 32-bit development files not found, GStreamer won't be supported. configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported. configure: libudev 32-bit development files not found, plug and play won't be supported. configure: libSDL2 32-bit development files not found, SDL2 won't be supported. configure: libFAudio 32-bit development files not found, XAudio2 won't be supported. configure: libcapi20 32-bit development files not found, ISDN won't be supported. configure: libcups 32-bit development files not found, CUPS won't be supported. configure: fontconfig 32-bit development files not found, fontconfig won't be supported. configure: libgsm 32-bit development files not found, gsm 06.10 codec won't be supported. configure: libkrb5 32-bit development files not found (or too old), Kerberos won't be supported. configure: libgssapi_krb5 32-bit development files not found (or too old), no Kerberos SSP support. configure: libtiff 32-bit development files not found, TIFF won't be supported. configure: libmpg123 32-bit development files not found (or too old), mp3 codec won't be supported. configure: libopenal 32-bit development files not found (or too old), OpenAL won't be supported. configure: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported. configure: vkd3d 32-bit development files not found (or too old), Direct3D 12 won't be supported. configure: libldap (OpenLDAP) 32-bit development files not found, LDAP won't be supported. configure: Finished. Do 'make' to compile Wine.
見つからないとエラー終了するFreeTypeとは異なり、
8月YY日:いよいよWINEのビルドにかかる
TrueTypeフォントを扱うFreeTypeライブラリを入れるためにはテキストの表示方向を制御するHarfbuzzが必要となり、
パッケージ作りの合間にWINE HQのドキュメント類を読んでゆくと、
mesaをビルドするためにはLLVMという大物が必要になり、
export CC='gcc -m32'
export CXX='g++ -m32'
libdir='lib32'
という設定に加えて、
-DLLVM_LIBDIR_SUFFIX=32
という指定を追加する程度で32ビット版のライブラリが/usr/
どれだけのパッケージを用意すればいいのかは五里霧中なものの、
作業が止まったのが64ビット版を作ったことがないVulkanと呼ばれるソフトウェアだ。
2週間ほどかけて150ほどの32ビット版パッケージを追加したところ、
configure: MinGW compiler not found, cross-compiling PE files won't be supported. configure: OpenCL 32-bit development files not found, OpenCL won't be supported. configure: pcap 32-bit development files not found, wpcap won't be supported. configure: libhal 32-bit development files not found, no legacy dynamic device support. configure: libsane 32-bit development files not found, scanners won't be supported. configure: libv4l2 32-bit development files not found. configure: libgphoto2 32-bit development files not found, digital cameras won't be supported. configure: libgphoto2_port 32-bit development files not found, digital cameras won't be auto-detected. configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported. configure: libcapi20 32-bit development files not found, ISDN won't be supported. configure: libcups 32-bit development files not found, CUPS won't be supported. configure: libkrb5 32-bit development files not found (or too old), Kerberos won't be supported. configure: libgssapi_krb5 32-bit development files not found (or too old), no Kerberos SSP support. configure: libldap (OpenLDAP) 32-bit development files not found, LDAP won't be supported. configure: Finished. Do 'make' to compile Wine.
これらの指摘を眺めると、
WINEのビルド方法はWINE HQで解説されていて、
指示に従って、
$ mkdir build_64 && cd build_64 $ ../wine-4.21/configure --prefix=/usr --enable-win64 .... $ make .... make[1]: ディレクトリ '/tmp/build_64/server' に入ります gcc -m64 -o wineserver async.o atom.o change.o class.o clipboard.o completion.o console.o debugger.o device.o \ directory.o event.o fd.o file.o handle.o hook.o mach.o mailslot.o main.o mapping.o mutex.o \ named_pipe.o object.o process.o procfs.o ptrace.o queue.o region.o registry.o request.o \ semaphore.o serial.o signal.o snapshot.o sock.o symlink.o thread.o timer.o token.o trace.o \ unicode.o user.o window.o winstation.o -Wl,--rpath,\$ORIGIN/../libs/wine \ ../libs/port/libwine_port.a -lwine -L../libs/wine -Wl,--as-needed make[1]: ディレクトリ '/tmp/build_64/server' から出ます Wine build complete. $ mkdir ../build_32 && cd ../build_32 $ ../wine-4.21/configure --prefix=/usr --with-wine64=../build_64 .... $ make .... wscript.exe_test.res xcopy.exe_test.res -lole32 ../../dlls/uuid/libuuid.a -lcomctl32 -lversion \ -luser32 -lgdi32 -ladvapi32 -lwsock32 -Wl,-delayload,ole32.dll -Wl,--as-needed make[1]: ディレクトリ '/tmp/build_32/programs/xcopy' から出ます make[1]: ディレクトリ '/tmp/build_32/programs/winetest' から出ます Wine build complete.
configureは先に示したようにいくつかの機能不足を指摘するものの、
作成したWINEパッケージをインストールして試してみると、

「やれやれ、