1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-03-24

こちらで公開されているパッチを適用したlibiconvをmsys2内で利用したかったためPKGBUILDを書いた。
とは言え、公式のPKGBUILDに日本語パッチを適用する部分とpkgrelぐらいしか変更点はない。

2016/03/25 update

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

2016/03/28 update

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

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
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?