ただ最近、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 を編集し、 Copyright を License に変更します。
【参考】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 と同様に、 Copyright を License に変更して、ビルドしてインストールします。ビルドに必要なソースファイルは、ビルド中に 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 件のコメント:
コメントを投稿