日本語パッチ適用済みlibiconvパッケージのビルド


[こちらで公開されているパッチ](http://apolloron.org/software/libiconv-1.14-ja/)を適用したlibiconvをmsys2内で利用したかったため`PKGBUILD`を書いた。
とは言え、[公式のPKGBUILD](https://github.com/Alexpux/MSYS2-packages/blob/master/libiconv/PKGBUILD)に日本語パッチを適用する部分と`pkgrel`ぐらいしか変更点はない。

*2016/03/25 update*

パッチ関連を全てURL指定にして`PKGBUILD`のみ作ればビルド可能にした。
パッチをかき集めてくる必要はなく、下記の内容を`PKGBUILD`として保存して`makepkg`を実行すればパッチ適用済みの`libiconv`と`libiconv-devel`が出来上がる。

*2016/03/28 update*

おもむろに`pacman -Syu`をすると当然ではあるがリポジトリにある方を再インストールしてしまうため、パッケージ名を変えて`/usr/local`にインストールするようにしてみた。
後々他のパッケージをビルドするときに面倒なので`/usr`に入れておきたかったが、`libiconv`に依存しているパッケージが多いので仕方がないと諦めることにした。
`pacman`は`makepkg`のおかげでパッケージのビルドが非常にやりやすいのが利点ではあるが、`apt`や`yum`のようにバージョン固定の方法が提供されていないのがなんとももどかしい。
そもそも`pacman`はArch Linuxのコンポーネントであり、Arch Linux自体が特定パッケージを固定するような使い方を想定していないようなので、仕方がないことであるが...。

```bash:PKGBUILD
# Maintainer: Koutarou Tanaka <from.kyushu.island@gmail.com>

_realname=libiconv
pkgname=('libiconv-ja' 'libiconv-ja-devel')
pkgver=1.14
pkgrel=3
pkgdesc='Libiconv is a conversion library(Japanese patch applied)'
groups=('libraries')
arch=('i686' 'x86_64')
url='https://www.gnu.org/software/libiconv/'
license=('LGPL')
source=("https://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz"
        "https://raw.githubusercontent.com/Alexpux/MSYS2-packages/master/libiconv/1.14-cross-install.patch"
        "https://raw.githubusercontent.com/Alexpux/MSYS2-packages/master/libiconv/libiconv-1.14-reloc.patch"
        "https://raw.githubusercontent.com/Alexpux/MSYS2-packages/master/libiconv/libiconv-1.14-wchar.patch"
        "https://raw.githubusercontent.com/Alexpux/MSYS2-packages/master/libiconv/msys2-libiconv-1.14.patch"
        "http://apolloron.org/software/${_realname}-${pkgver}-ja/${_realname}-${pkgver}-ja-1.patch")
sha256sums=('72b24ded17d687193c3366d0ebe7cde1e6b18f0df8c55438ac95be39e8a30613'
            '0891f33528131003939c5e7fa610384834d580e80396f411de0b9f26ec1c520f'
            'ed5d4365512781b9b23473cc375a4a2c1491eae31b13b76cda2d55751bff5cdf'
            'd2a57c55683361e49e30ed0de10942e7fe4f4392dc47fe8a24c7b67b21ce9dd7'
            '2ec4b97974e60681d843fbd766e18df6df2a7c90a3ff8ccb709ad65edd649689'
            'f110d55d2c41c923d7f5fd3694b1c0ebc5b9acd22b725a30f3818b10afa68cda')
options=(!libtool)

prepare() {
  cd ${srcdir}/${_realname}-${pkgver}

  patch -p1 -i ${srcdir}/libiconv-1.14-ja-1.patch
  patch -p2 -i ${srcdir}/1.14-cross-install.patch
  patch -p2 -i ${srcdir}/libiconv-1.14-reloc.patch
  patch -p2 -i ${srcdir}/libiconv-1.14-wchar.patch
  patch -p1 -i ${srcdir}/msys2-libiconv-1.14.patch

  #./autogen.sh --skip-gnulib
}

build() {
  cd $srcdir/${_realname}-${pkgver}
  ./configure --prefix=/usr/local --enable-static --enable-shared --enable-extra-encodings
  make
  make DESTDIR=${srcdir}/dest install
}

check() {
  cd ${srcdir}/${_realname}-${pkgver}
  make check
}

package_libiconv-ja() {
  depends=('gcc-libs')

  mkdir -p ${pkgdir}/usr/local
  cp -rf $srcdir/dest/usr/local/bin ${pkgdir}/usr/local/
  cp -rf $srcdir/dest/usr/local/share ${pkgdir}/usr/local/
}

package_libiconv-ja-devel() {
  groups=('development')
  options=('staticlibs')
  depends=("libiconv-ja=${pkgver}")
  pkgdesc="libiconv headers and libraries(Japanese patch applied)"

  mkdir -p ${pkgdir}/usr/local
  cp -rf $srcdir/dest/usr/local/include ${pkgdir}/usr/local/
  cp -rf $srcdir/dest/usr/local/lib ${pkgdir}/usr/local/
  rm -f ${pkgdir}/usr/local/lib/charset.alias
}
```