Windows版を愛用させていただいているFoxit ReaderというPDFリーダーがあるのですが、Linux Desktop版もリリースされていたので、Gentooにも導入してみることにしました。

ふつーにダウンロードして展開して適当に置けばいいんですが、やはりportageで管理したいもの。誰かebuild作ってないかなーと検索したら、やはりありました。

Bug 272411 app-text/foxitreader[New ebuild] Gentoo Bugzilla

https://bugs.gentoo.org/show_bug.cgi?id=272411

ただ、ここに載っているのはバージョン1.0.1版。最新版は1.1.0です。 ということで、ちょっと修正して1.1.0に対応したebuildファイルを作ってみました。

変更ポイントは以下の3つ。

  1. ダウンロードファイルの変更
  2. ラッパーのパスの変更
  3. 言語ファイル対応

まず、ダウンロードファイルの変更です。SRC_URIを1.1.0のものに変更します。たいした変更じゃないですね。

> SRC_URI="https://mirrors.foxitsoftware.com/pub/foxit/reader/desktop/linux/1.x/1
.1/enu/FoxitReader-1.1.0.tar.bz2"
11d12
< SRC_URI="https://mirrors.foxitsoftware.com/pub/foxit/reader/desktop/linux/1.x/1
.0/enu/FoxitReader-1.0-1.i386.tar.bz2"

次はラッパーのパスの変更です。1.0.1はtar.bz2ファイルを展開するといきなりファイルが出てきましたが、今回は1.1-releaseというディレクトリに入っていましたので、ラッパーのパス定義の部分を変更します。

<       make_wrapper foxitreader ./FoxitReader "/opt/${PN}"
+++
>       make_wrapper foxitreader ./1.1-release/FoxitReader "/opt/${PN}"

最後は言語ファイルです。1.1.0からde,fr,ja,zh_CN,zh_TWの言語ファイルができたため、日本語メニューを表示させることができます。これをLINGUASフラグに沿って自由に選択できるようにします。

Foxit Readerの言語ファイル(*.mo)は、展開直後だとGentooの言語ファイルの配置に則っていないため、imageへのインストールの段階で正しいディレクトリ配置にしてインストールする必要があります。これを実現するには、ebuild-helperのdomoを使うべきだとよく知らないながらに思うのですが、domoがebuildのマニュアル通りにロケールを検出して言語ファイルを正しい場所にインストールしてくれずあきらめ。

ということで、もう言語5個しかないしロジック考える気が起きなかったので、とりあえずやっつけでLINGUASフラグに沿って無理矢理/usr/share/locale/XX/LC_MESSAGESにファイルを突っ込むようにしました。もっとすてきな方法を教えてください。ぜひ。

まずはLINGUASフラグ部分。実際に修正するのはIUSEの部分なので、LINGUASじゃなくてUSEフラグに直接linguas_xxと書いてもいいってことなのかな。

< IUSE="cups"
+++
> IUSE="cups linguas_ja linguas_de linguas_fr linguas_zh_CN linguas_zh_TW"

んで、言語ファイルの導入部分。ダサイif無双ですw

>       if use linguas_de ; then
>               mkdir -p "${D}"usr/share/locale/de/LC_MESSAGES
>               cp "${D}"/opt/${PN}/1.1-release/po/de/FoxitReader.mo "${D}"/usr/share/locale/de/LC_MESSAGES/
>       fi
>
>       if use linguas_fr ; then
>               mkdir -p "${D}"usr/share/locale/fr/LC_MESSAGES
>               cp "${D}"/opt/${PN}/1.1-release/po/fr/FoxitReader.mo "${D}"/usr/share/locale/fr/LC_MESSAGES/
>       fi
>
>       if use linguas_ja ; then
>               mkdir -p "${D}"usr/share/locale/ja/LC_MESSAGES
>               cp "${D}"/opt/${PN}/1.1-release/po/ja/FoxitReader.mo \
>               "${D}"/usr/share/locale/ja/LC_MESSAGES/
>       fi
>
>       if use linguas_zh_CN ; then
>               mkdir -p "${D}"usr/share/locale/zh_CN/LC_MESSAGES
>               cp "${D}"/opt/${PN}/1.1-release/po/zh_CN/FoxitReader.mo \
>               "${D}"/usr/share/locale/zh_CN/LC_MESSAGES/
>       fi
>
>       if use linguas_zh_TW ; then
>               mkdir -p "${D}"usr/share/locale/zh_TW/LC_MESSAGES
>               cp "${D}"/opt/${PN}/1.1-release/po/zh_TW/FoxitReader.mo \
>               "${D}"/usr/share/locale/zh_TW/LC_MESSAGES/
>       fi

あとはBugzillaに添付されているFoxitReaderのアイコンをfiles以下に置いて、全体を自分のlocal portageとして作成します。portageのオーバーレイについてはいろいろググってくださいね。自分は/usr/local/portage/kenya/app-text/foxitreaderディレクトリを作って置いています。

ファイルをすべて置いたら、ebuildコマンドでManifestを作っておきましょう

foxitreader # ls
files  foxitreader-1.0.1.ebuild  foxitreader-1.1.0.ebuild
foxitreader # ebuild foxitreader-1.1.0.ebuild manifest
>>> Creating Manifest for /usr/local/portage/kenya/app-text/foxitreader
foxitreader # ls
Manifest files foxitreader-1.0.1.ebuild  foxitreader-1.1.0.ebuild

foxitreader # ls -lR
.:
total 16
-rw-r--r-- 1 root  root  1012 Aug 22 11:50 Manifest
drwxr-xr-x 2 root  root  4096 Aug 22 08:43 files
-rw-r--r-- 1 kenya wheel 1087 Aug 21 21:39 foxitreader-1.0.1.ebuild
-rw-r--r-- 1 kenya wheel 2071 Aug 22 10:58 foxitreader-1.1.0.ebuild

./files:
total 4
-rw-r--r-- 1 kenya wheel 3391 Aug 21 21:56 foxitreader.png

/etc/make.confには、PORTDIR_OVERLAY=/usr/local/portage/kenyaを追加します。

あとはemerge --metadataすれば、emergeできるようになります。eix-updateすればeixで検索もできます。 適当に日本語を含むPDFを表示させてみました。動作はかなり軽快で、ネットブックであるideapad s10からも十分使えます。マジいいです。残念な点はタブ表示がまだできないことかな。でもホント軽いので気軽に開けます。

Foxit Reader日本語メニュー

元にしたebuild、修正したebuild、foxitreaderのアイコンファイル、manifestファイルを↓に置いておきますので、お使いになりたい方はどうぞ。

kenya_localportage.tar.bz2

これでLinuxでのPDFリーダーは確定です。

*2009/10/05追記 gentoo-chinaのoverlayにfoxitreaderのebuildがあります。

検索範囲は定かではありませんが、overlayを検索できるサイトがありました。

Gentoo portage overlays

https://gpo.zugaina.org/AdvSearch

https://gpo.zugaina.org/app-text/foxitreader