2008-01-13

Smart package of Microsoft's core fonts

Linux を使い始めて、かれこれ10年以上経ちますが、X Window で表示されるフォントの貧弱さはいつも不満の種でした。それでも、最近の Linux のディストリビューションでは質の良いフリーのフォントを使っているため、かなり良くなってきたと感じています。

ただ最近、Linux 上の OpenOffice.org で Windows で作成した文書を扱うことが多くなり、Windows のフォントが利用できれば、もっと使いやすくなるのにと思っていました。
もちろん、 Windows のフォントをコピーして、 X Window で利用することは可能ですが、合法的なやり方ではありません。もっとも商用利用でなければ、問題がないのかもしれませんが…。

先日、Microsoft がインターネット上で公開している True Type Font(英文用のみ)を利用して Linux の RPM パッケージを作成するための spec ファイルを公開しているプロジェクトサイトを SourceForge.net で見つけました。

Smart package of Microsoft's core fonts

Microsoft がインターネット上で公開しているフォントは、Microsoft End-User License Agreement ("EULA") によれば、Microsoft の許可なしに何か他のパッケージに加えて配布することはできないけれど、公開されているフォントをそのままの状態で再配布 することは可能です。上記プロジェクトサイトでは、Microsoft で公開されたフォントの exe ファイル群を SourceForge のプロジェクトサイトで再配布し、RPM を作成するための spec ファイルと、Windows の cabinet ファイルを展開するための Linux 用ユーティリティが公開されています。

Fedora 8 へのインストール方法を簡単に紹介します。ここでは spec ファイルから RPM をビルドする作業が必要になりますが、詳しくは説明をしません。RPM パッケージの作り方については、以下のサイトなどを参考にしてください。

【連載 】カスタムRPMの作成
SPECファイルからのRPMパッケージの作成
自分で作るRPMパッケージ

まず、Fedora 8 で ttmkfdir が利用できるかどうか確認します。

$ rpm -q ttmkfdir
ttmkfdir-3.0.9-24.fc7

もしインストールされていなければ、Fedora 8 のインストールメディアか、インターネットから入手してインストールをしておきます。なお、このパッケージは .fc7 のままになっています。
あと wget もあらかじめインストールされている必要があります。

つぎに、cabextract-0.6-1.src.rpm をダウンロードして、以下のように展開して、spec ファイルの一箇所を修正します。


$ rpm -ivh cabextract-0.6-1.src.rpm
1:cabextract warning: user noa does not exist - using root
warning: group noa does not exist - using root
warning: user noa does not exist - using root 99%)
warning: group noa does not exist - using root
########################################### [100%]


SPEC ディレクトリ内に出力された cabextract.spec を編集し、 CopyrightLicense に変更します。

【参考】RPMパッケージのリビルドで.specにエラーが発生するときは


Summary: a program to extract Microsoft Cabinet files
Name: cabextract
Version: 0.6
Release: 1
Group: Applications/Archiving
Copyright: GPL
Source: http://www.kyz.uklinux.net/downloads/%{name}-%{version}.tar.gz
URL: http://www.kyz.uklinux.net/cabextract.php3
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Prefix: /usr
:
:

編集後、cabextract をビルドしてインストールします。

$ rpmbuild -ba cabextract.spec
Executing(%prep): /bin/sh -e /home/bitwalk/tmp/rpm-tmp.79402
+ umask 022
+ cd /home/bitwalk/redhat/BUILD
+ LANG=C
+ export LANG
:
:
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/bitwalk/tmp/cabextract-0.6-root
Wrote: /home/bitwalk/redhat/SRPMS/cabextract-0.6-1.src.rpm
Wrote: /home/bitwalk/redhat/RPMS/i386/cabextract-0.6-1.i386.rpm
Wrote: /home/bitwalk/redhat/RPMS/i386/cabextract-debuginfo-0.6-1.i386.rpm
Executing(%clean): /bin/sh -e /home/bitwalk/tmp/rpm-tmp.85923
+ umask 022
+ cd /home/bitwalk/redhat/BUILD
+ cd cabextract-0.6
+ rm -rf /home/bitwalk/tmp/cabextract-0.6-root
+ exit 0
$ su
Password:
# rpm -ivh /home/bitwalk/redhat/RPMS/i386/cabextract-0.6-1.i386.rpm

次に、msttcorefonts-1.3-4.spec をダウンロードし、cabextract.spec と同様に、 CopyrightLicense に変更して、ビルドしてインストールします。ビルドに必要なソースファイルは、ビルド中に wget でインターネットからダウンロードします。

$ rpmbuild -ba msttcorefonts-1.3-4.spec
Executing(%prep): /bin/sh -e /home/bitwalk/tmp/rpm-tmp.85774
+ umask 022
+ cd /home/bitwalk/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf msttcorefonts
+ mkdir msttcorefonts
+ cd msttcorefonts
+ for i in andale32.exe webdin32.exe trebuc32.exe georgi32.exe verdan32.exe comic32.exe arialb32.exe impact32.exe arial32.exe times32.exe courie32.exe
+ wget http://easynews.dl.sourceforge.net/sourceforge/corefonts/andale32.exe
--12:33:56-- http://easynews.dl.sourceforge.net/sourceforge/corefonts/andale32.exe
=> `andale32.exe'
Resolving easynews.dl.sourceforge.net... 69.16.168.245
Connecting to easynews.dl.sourceforge.net|69.16.168.245|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 198,384 (194K) [application/octet-stream]

100%[====================================>] 198,384 164.66K/s

12:33:57 (164.34 KB/s) - `andale32.exe' saved [198384/198384]
:
:

これで、Linux 上でも Windows と同じ名前の英文フォントを扱えるようになります。この方法でも、Windows 用のフォントを Linux で利用していることに変わりありませんので、フォントを含んだ RPM パッケージを、Microsoft の許可なしに配布することはできません。spec ファイルを使って、RPM を自分でビルドする手間はかかりますが、RPM パッケージでインストールした方が保守は簡単です。また、RPM を採用しているシステムで、/usr 以下の領域をマニュアル操作でいじりたくはありません。

さて、日本語フォントの場合ですが、Windows 2000 用にインターナショナルフォントのパッケージが公開されていて、そこに日本語フォントも含まれていたように記憶しています。それを利用すれば、同じようにできそうですが、残念ながらどこにあったか記憶にありません。

0 件のコメント: