diff --git a/PKGBUILD b/PKGBUILD index bd6b3b7..904e73d 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,74 +1,60 @@ -# Maintainer: judd +# Maintainer: Allan McRae +# Contributor: judd + pkgname=ncurses pkgver=5.6 -pkgrel=6 +pkgrel=7 pkgdesc="A System V Release 4.0 curses emulation library" -arch=(i686 x86_64) +arch=('i686' 'x86_64') url="http://www.gnu.org/software/ncurses/ncurses.html" license=('MIT') groups=('base') depends=('glibc') -source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('b6593abe1089d6aab1551c105c9300e3') +source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz + ftp://invisible-island.net/ncurses/${pkgver}/${pkgname}-${pkgver}-coverity.patch.gz) +md5sums=('b6593abe1089d6aab1551c105c9300e3' + '27607b10fef869740cbcc408d86695b1') options=(!makeflags) build() { - cd $startdir/src/$pkgname-$pkgver + cd ${srcdir}/${pkgname}-${pkgver} + patch -Np1 -i ${srcdir}/${pkgname}-${pkgver}-coverity.patch - # The chtype/mmask-t settings below are to retain ABI compat - # with ncurses-5.4 so dont change em ! - # we should test in next update if we can drop it. -if [ "$CARCH" == "x86_64" ]; then - ./configure --prefix=/usr \ - --with-shared --with-normal --without-debug --without-ada \ - --with-install-prefix=$startdir/pkg \ - --with-chtype='long' --with-mmask-t='long' - else - ./configure --prefix=/usr \ + ./configure --prefix=/usr --mandir=/usr/share/man \ --with-shared --with-normal --without-debug --without-ada \ - --with-install-prefix=$startdir/pkg -fi + --with-install-prefix=${pkgdir} --enable-widec make || return 1 make install - mkdir -p $startdir/pkg/lib - cd $startdir/pkg/usr/lib - mv libncurses.so.$pkgver ../../lib - ln -sf ../../lib/libncurses.so.$pkgver libncurses.so.$pkgver - cd $startdir/pkg/lib - ln -sf libncurses.so.$pkgver libncurses.so.5 - rm -f $startdir/pkg/lib/libcurses.so - # build unicode support libs - cd $startdir/src/$pkgname-$pkgver - make clean -if [ "$CARCH" == "x86_64" ]; then - ./configure --prefix=/usr \ - --with-shared --with-normal --without-debug --without-ada \ - --with-install-prefix=$startdir/pkg --enable-widec \ - --with-chtype='long' --with-mmask-t='long' - else - ./configure --prefix=/usr \ - --with-shared --with-normal --without-debug --without-ada \ - --with-install-prefix=$startdir/pkg --enable-widec -fi - make || return 1 - make install - - mkdir $startdir/pkg/usr/include/ncursesw - ln -sf /usr/include/ncurses.h $startdir/pkg/usr/include/ncursesw - # fix library for tput, we call it in initscripts! - cd $startdir/pkg/usr/lib - mv libncursesw.so.$pkgver ../../lib - ln -sf ../../lib/libncursesw.so.$pkgver libncursesw.so.$pkgver - cd $startdir/pkg/lib - ln -sf libncursesw.so.$pkgver libncursesw.so.5 + # fix library permissions + chmod 644 ${pkgdir}/usr/lib/libncurses++w.a + + # move libraries needed for boot to /lib (we call tput in initscripts) + mkdir -p ${pkgdir}/lib + mv ${pkgdir}/usr/lib/libncursesw.so.5* ${pkgdir}/lib + ln -sf ../../lib/libncursesw.so.5 ${pkgdir}/usr/lib/libncursesw.so + + # Fool packages looking to link to non-wide-character ncurses libraries + for lib in curses ncurses form panel menu ; do \ + rm -f ${pkgdir}/usr/lib/lib${lib}.so ; \ + echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib/lib${lib}.so ; \ + ln -sf lib${lib}w.a ${pkgdir}/usr/lib/lib${lib}.a ; \ + done + ln -sf libncurses++w.a ${pkgdir}/usr/lib/libncurses++.a # install tput to /bin - mkdir $startdir/pkg/bin/ - mv $startdir/pkg/usr/bin/tput $startdir/pkg/bin/tput + mkdir ${pkgdir}/bin/ + mv ${pkgdir}/usr/bin/tput ${pkgdir}/bin/tput + + # Some packages look for -lcurses during build + rm -f ${pkgdir}/usr/lib/libcursesw.so + echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib/libcursesw.so + ln -sf libncurses.so ${pkgdir}/usr/lib/libcurses.so + ln -sf libncursesw.a ${pkgdir}/usr/lib/libcursesw.a + ln -sf libncurses.a ${pkgdir}/usr/lib/libcurses.a # install license, rip it from the readme - cd $startdir/src/$pkgname-$pkgver - mkdir -p $startdir/pkg/usr/share/licenses/$pkgname - grep -B 100 '$Id' README > $startdir/pkg/usr/share/licenses/$pkgname/license.txt + cd ${srcdir}/${pkgname}-${pkgver} + mkdir -p ${pkgdir}/usr/share/licenses/$pkgname + grep -B 100 '$Id' README > ${pkgdir}/usr/share/licenses/${pkgname}/license.txt }