こちらで公開されているパッチを適用したlibiconvをmsys2内で利用したかったためPKGBUILD
を書いた。
とは言え、公式の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自体が特定パッケージを固定するような使い方を想定していないようなので、仕方がないことであるが...。
# 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
}