sys-devel/automake:1.11 の emerge 失敗を修正

sys-devel/automake-1.11.6* の emerge が失敗する現象を修正しました。

## 3 行で

 - sys-deve/automake-1.11.6 の emerge に失敗する
 - info ファイルのソースの書き方が原因
 - [パッチ](#パッチ) と、それを使う [portageツリー](#portage-ツリー) 作った

## はじめに

sys-devel/automake には記事執筆時点で 1.4 ～ 1.15 (と 9999) のスロットがあります。
automake は、常に最新版が使われるわけではなく、パッケージによっては古いバージョンの automake が要求される場合があります。

先日、新規にインストールした Gentoo に各種パッケージをインストールしていたのですが、そこで automake:1.11 が要求され、その emerge に失敗してしまいました [^1]。後に確認したところ、この問題が発生するスロットは 1.11 のみでした (9999は未確認)。

エラー内容の抜粋:

```
...
Making install in doc
make[1]: Entering directory '/var/tmp/portage/sys-devel/automake-1.11.6-r1/work/automake-1.11.6/doc'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /var/tmp/portage/sys-devel/automake-1.11.6-r1/work/automake-1.11.6/lib/missing --run makeinfo --version) >/dev/null 2>&1; then \
  for f in automake.info automake.info-[0-9] automake.info-[0-9][0-9] automake.i[0-9] automake.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
  done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/sh /var/tmp/portage/sys-devel/automake-1.11.6-r1/work/automake-1.11.6/lib/missing --run makeinfo   -I . \
 -o automake.info automake.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd . && \
  $restore $backupdir/* `echo "./automake.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
automake.texi:13092: @itemx must follow @item
automake.texi:13109: @itemx must follow @item
automake.texi:13115: @itemx must follow @item
Makefile:320: recipe for target 'automake.info' failed
make[1]: *** [automake.info] Error 1
make[1]: Leaving directory '/var/tmp/portage/sys-devel/automake-1.11.6-r1/work/automake-1.11.6/doc'
Makefile:534: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
...
```

どうやらドキュメントのインストールのタイミングでコケているようです[^2]。

[^1]: 以前はきちんとインストールできていました。makeinfo の仕様が変わったのか automake のソースがこっそり変わったのか。
[^2]: プログラム本体のビルドはきっちり成功しているだけに余計悔しい。

## 原因

エラーメッセージ

> ```
> automake.texi:13092: @itemx must follow @item
> ```

が出ているあたりのソースを見てみると以下のようになっています (行番号を付与してあります)。

```text:automake.texi
        ...
 13085  Automake also has seen its guts rewritten.  Although this rewriting
 13086  took a lot of efforts, it is only apparent to the users in that some
 13087  constructions previously disallowed by the implementation now work
 13088  nicely.  Conditionals, Locations, Variable and Rule definitions,
 13089  Options: these items on which Automake works have been rewritten as
 13090  separate Perl modules, and documented.
 13091
 13092  @itemx 2004-01-11 Automake 1.8.1
 13093  @itemx 2004-01-12 Automake 1.8.2
 13094  @itemx 2004-03-07 Automake 1.8.3
 13095  @itemx 2004-04-25 Automake 1.8.4
 13096  @itemx 2004-05-16 Automake 1.8.5
 13097
 13098  @item 2004-07-28 Automake 1.9
 13099
 13100  This release tries to simplify the compilation rules it outputs to
 13101  reduce the size of the Makefile.  The complaint initially come from
 13102  the libgcj developers.  Their @file{Makefile.in} generated with
 13103  Automake 1.4 and custom build rules (1.4 did not support compiled
 13104  Java) is 250KB@.  The one generated by 1.8 was over 9MB@!  1.9 gets it
 13105  down to 1.2MB@.
        ...
```

ここに現れている `@itemx` は項目を列挙するためのコマンドです。同様のコマンドに `@item` というものもありますが、 `@itemx` は直前の項目との行間を空けないという特徴があります。
さて、 `@itemx` は `@item` の直後か他の `@itemx` の直後にしか置けないという制限があります。しかし、エラーの出ている 13092 行目の `@itemx` の直前には `@item` がありません。実は抜粋した範囲よりさらに前に `@item` があるのですが、パラグラフが変わっているため、 `@item` の直後と見做されずエラーとなっているのです。

他の行についても同様に、`@item` の直後ではない `@itemx` があるためにエラーとなっています。


## 修正

### パッチ

エラーの出ている `@itemx` コマンドを `@item` に書き換えます。

```diff:automake-1.11.6-texi-fixes.patch
diff -urN -x '*~' automake-1.11.6.orig/doc/automake.texi automake-1.11.6/doc/automake.texi
--- automake-1.11.6.orig/doc/automake.texi      2012-07-10 00:39:57.000000000 +0900
+++ automake-1.11.6/doc/automake.texi   2016-10-20 01:07:57.171078537 +0900
@@ -13089,7 +13089,7 @@
 Options: these items on which Automake works have been rewritten as
 separate Perl modules, and documented.

-@itemx 2004-01-11 Automake 1.8.1
+@item 2004-01-11 Automake 1.8.1
 @itemx 2004-01-12 Automake 1.8.2
 @itemx 2004-03-07 Automake 1.8.3
 @itemx 2004-04-25 Automake 1.8.4
@@ -13106,13 +13106,13 @@

 Aside from this it contains mainly minor changes and bug-fixes.

-@itemx 2004-08-11 Automake 1.9.1
+@item 2004-08-11 Automake 1.9.1
 @itemx 2004-09-19 Automake 1.9.2

 Automake has ten years.  This chapter of the manual was initially
 written for this occasion.

-@itemx 2007-10-29 Automake repository moves to @code{savannah.gnu.org} and uses
+@item 2007-10-29 Automake repository moves to @code{savannah.gnu.org} and uses
 git as primary repository.

 @end table
```

### portage ツリー

作りました: https://github.com/yoh2/portage-yoh2-priv

これを git clone して、 /etc/portage/make.conf の `PORTDIR_OVERLAY` に指定するとツリーが使えるようになります。
なお、このツリーには、今回の修正のみではなく、他の私的修正・変更なんかも入れていく予定ですのでご注意を。