PDFJ0.90をインストールする

http://hp1.jonex.ne.jp/~nakajima.yasushi/
から、
・PDFJ-0.90.zip
・PDFJ-0.90_perl5.10.patch
をダウンロードする。


PDFJ-0.90.zipを展開する。

$ mkdir temp
$ mv PDFJ-0.90.zip temp
$ cd temp/
$ ls
PDFJ-0.90.zip
$ unzip PDFJ-0.90.zip 
...


パッチをあてる。


【 patch 】コマンド――テキストファイルに差分を適用する(応用編)
https://www.atmarkit.co.jp/ait/articles/1705/11/news013.html

patchコマンドの書式
patch [オプション] 元のファイル 差分ファイル

patch -p 数字 < 差分ファイル


昔から、-p のあとの数字がよくわからない。。

-p 個数  差分に記載されたファイル名から指定した個数分のパス指定を取り除く(本文参照)


パッチファイルの中身をみると、パスを1つ取り除きたいので1にすればいいのか?

$ more ../PDFJ-0.90_perl5.10.patch 
diff -ru PDFJ-0.90/PDFJ.pm PDFJ-0.90ch/PDFJ.pm
--- PDFJ-0.90/PDFJ.pm	2006-10-22 19:27:42.000000000 +0900
+++ PDFJ-0.90ch/PDFJ.pm	2009-01-13 23:35:21.000000000 +0900
@@ -3057,16 +3057,6 @@
 	$self->{hyphened} = 0;
 }
 
-my %TextLineIndex = (
-	Start => 1,
-	Count => 2,
...


patchコマンドを実行する。

$ patch -p 1 < ../PDFJ-0.90_perl5.10.patch 
patching file PDFJ.pm
Hunk #1 FAILED at 3057 (different line endings).
Hunk #2 FAILED at 3200 (different line endings).
Hunk #3 FAILED at 3216 (different line endings).
Hunk #4 FAILED at 4301 (different line endings).
4 out of 4 hunks FAILED -- saving rejects to file PDFJ.pm.rej
patching file XPDFJ.pm
Hunk #1 FAILED at 23 (different line endings).
1 out of 1 hunk FAILED -- saving rejects to file XPDFJ.pm.rej


失敗する。。
いろいろ調べてみるとキャリッジリターンが原因のようなので取り除く。

$ nkf -d PDFJ.pm > temp
$ mv temp PDFJ.pm
$ nkf -d XPDFJ.pm > temp
$ mv temp XPDFJ.pm


再度実行すると、パッチがあたった!

$ patch -p 1 < ../PDFJ-0.90_perl5.10.patch 
patching file PDFJ.pm
patching file XPDFJ.pm


PDFJをインストールする。

$ perl Makefile.PL
$ make
# make install