2010-03-07

Let's Wine(第12回)

追加フォント用 RPM パッケージ


Wine の C ドライブや設定は、デフォルトで $HOME/.wine 以下に生成されます。そのため設定を大きく変えるときなどには、$HOME/.wine の名前を変更するか削除してもう一度作り直す事ができます。オリジナルの Wine では供給されていない日本語 TTF フォントなどは、自前で用意して ~/.wine/drive_c/windows/Fonts に直接コピーして使っていましたが、毎回、$HOME/.wine を変更する度に日本語 TTF などのフォントをコピーするのはさすがに面倒になりました。

Wine が使用するオリジナルのフォントは、%{_datadir}/wine/fonts にインストールされていますので、足りないフォントをそこにインストール出来るように RPM パッケージを作りました。ただし、追加するフォントは、フリーのフォントではなく配布できないので、SPEC ファイル wine-fonts-plus.spec のみを示します。

Name: wine-fonts-plus
Version: 1
Release: 1%{?dist}
Summary: Additional Wine font files
Group: Applications/Emulators
License: proprietary
URL: http://www.winehq.org/
Source0: %{name}.tar.gz
NoSource: 0
BuildArch: noarch
BuildRequires: wine-fonts
BuildConflicts: wine-fonts-plus
Requires: wine-fonts

%description
Additional font set for wine.

%prep
%setup -q -n %{name}

%build
for i in $(ls %{_datadir}/wine/fonts)
do
rm -f $i;
done

%install
rm -rf %{buildroot}
install -m 0755 -d $RPM_BUILD_ROOT%{_datadir}/wine/fonts
install -m 0644 -p *.* $RPM_BUILD_ROOT%{_datadir}/wine/fonts

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%{_datadir}/wine/fonts

%changelog
* Sun Mar 07 2010 XXXX XXXX
- initial version

追加するフォントは、ディレクトリ wine-fonts-plus 内に保存し、以下の様に wine-fonts-plus.tar.gz に圧縮します。

$ tar zcvf wine-fonts-plus.tar.gz wine-fonts-plus
wine-fonts-plus/
wine-fonts-plus/ariblk.ttf
wine-fonts-plus/vgasysr.fon
wine-fonts-plus/consolab.ttf
wine-fonts-plus/vgafixr.fon
:
:
:

圧縮したファイルを、RPM が参照するソースディレクトリ(私の環境では $HOME/redhat/SOURCES)に移して、次の様にビルドすれば、rpm ファイルの出来上がりです。ちなみに、Wine 用のオリジナルのフォントが収録されている wine-fonts パッケージのフォントと同名のフォントは、ビルド中に調べてインストールされないようにしました。

$ rpmbuild -ba wine-fonts-plus.spec
実行中(%prep): /bin/sh -e /home/bitwalk/tmp/rpm-tmp.CQF0yG
+ umask 022
+ cd /home/bitwalk/redhat/BUILD
+ LANG=C
+ export LANG
:
:
:
Processing files: wine-fonts-plus-1-1.fc12.noarch
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <=
4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
伸張ファイルの検査中: /usr/lib/rpm/check-files /home/bitwalk/redhat/BUILDROOT/win
e-fonts-plus-1-1.fc12.x86_64
書き込み完了: /home/bitwalk/redhat/SRPMS/wine-fonts-plus-1-1.fc12.nosrc.rpm
書き込み完了: /home/bitwalk/redhat/RPMS/noarch/wine-fonts-plus-1-1.fc12.noarch.r
pm
実行中(%clean): /bin/sh -e /home/bitwalk/tmp/rpm-tmp.fWk6qn
+ umask 022
+ cd /home/bitwalk/redhat/BUILD
+ cd wine-fonts-plus
+ rm -rf /home/bitwalk/redhat/BUILDROOT/wine-fonts-plus-1-1.fc12.x86_64
+ exit 0
$ su
パスワード:
# rpm -ivh /home/bitwalk/redhat/RPMS/noarch/wine-fonts-plus-1-1.fc12.noarch.rpm
準備中... ########################################### [100%]
1:wine-fonts-plus ########################################### [100%]
# exit
$

追加フォント導入前

追加フォント導入後

注意!
ちなみに wine-doors を利用している場合は、この方法は有効ではありません。どうやらレジストリをいじっている様で、Wine オリジナルのフォントが期待するように反映されません。残念ながら wine-doors を積極的には利用していないので、レジストリのどこが変更されているのかよく判っていません。
 

0 件のコメント: