# $Id$ PNAME="ncurses" PVER="5.9" PBUILD="r7" PCAT="sys-libs" DESCRIPTION="Linux console display library." HOMEPAGE="http://www.gnu.org/software/ncurses/ncurses.html" DEPEND_x86_64=">= sys-apps/multiarch-wrapper-1" SPECIAL_VARS="DEPEND_x86_64" DEPEND="$(marchdepend) >= virtual/glibc" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" ALX_PKG_KEEP="usr/bin/tput usr/$(mlibdir)/*.so.* usr/$(mlibdir)/terminfo usr/share/tabset usr/share/terminfo/l/linux usr/share/terminfo/r/rxvt usr/share/terminfo/v/vt100 usr/share/terminfo/v/vt102 usr/share/terminfo/v/vt220 usr/share/terminfo/x/xterm usr/share/terminfo/x/xterm-color" sminclude mtools multilib alx-split msetfeature "!check" SRC_URI=( gnu://${PNAME}/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/${PNAME}-${PVER}-gcc51.patch ) UP2DATE="updatecmd_gnu ${PNAME} gz" src_prepare() { # non widec munpack ${SRCFILE} || die cd ${SRCDIR} mpatch ${PNAME}-${PVER}-gcc51.patch || die cd ${BUILDDIR} for abi in ${MULTILIB_ABIS} do mv ${SRCDIR}{,-non-widec}-${abi} || die done # widec munpack ${SRCFILE} || die cd ${SRCDIR} mpatch ${PNAME}-${PVER}-gcc51.patch || die } src_compile() { # fixes build issues on multilib; do not export any ABI_LDFLAGS EXPORT_ABI_LDFLAGS=false # widec # -hashed-db needs Berkeley DB mconfigure --with-shared --without-debug --without-ada --without-hashed-db --enable-widec || die # fix parallel make builds mmake -j1 sources || die mmake || die # non-widec # -hashed-db needs Berkeley DB SRCDIR="${SRCDIR}-non-widec" mconfigure --with-shared --without-debug --without-ada --without-hashed-db || die # fix parallel make builds SRCDIR="${SRCDIR}-non-widec" mmake -j1 sources || die SRCDIR="${SRCDIR}-non-widec" mmake || die } alx_generic_src_install() { mmake DESTDIR=${BINDIR} install || die mchmod 755 /usr/$(mlibdir)/\*.${PVER} || die mchmod 644 /usr/$(mlibdir)/libncurses++w.a || die # install multlib-lib compat curses/curses-widec config if [[ $(mlibdir) != lib ]] then all-abis minstallexec misc/ncurses-config /usr/bin/ncursesw5-config-$(mabi) || die all-abis mlink ncursesw5-config-$(mabi) /usr/bin/ncurses5-config-$(mabi) || die mlink multiarch-wrapper /usr/bin/ncursesw5-config || die mlink ncursesw5-config /usr/bin/ncurses5-config || die fi # non-widec compat for lib in curses ncurses form panel menu do echo "INPUT(-l${lib}w)" > ${BINDIR}/usr/$(mlibdir)/lib${lib}.so || die mlink lib${lib}w.a /usr/$(mlibdir)/lib${lib}.a || die done mlink libcurses.so /usr/$(mlibdir)/libcursesw.so || die mlink libncurses.so /usr/$(mlibdir)/libcurses.so || die mlink libncursesw.a /usr/$(mlibdir)/libcursesw.a || die mlink libncurses.a /usr/$(mlibdir)/libcurses.a || die mlink libncurses++w.a /usr/$(mlibdir)/libncurses++.a || die minstalldir /usr/include/ncursesw || die mlink ../curses.h /usr/include/ncursesw/curses.h || die mlink ../ncurses.h /usr/include/ncursesw/ncurses.h || die # move the -m32 libs also to the right place (multilib) if [[ $(mlibdir) != lib ]] then mchmod 755 /usr/lib/\*.${PVER} || die mchmod 644 /usr/lib/libncurses++w.a || die # non-widec compat for lib in curses ncurses form panel menu do echo "INPUT(-l${lib}w)" > ${BINDIR}/usr/lib/lib${lib}.so || die mlink lib${lib}w.a /usr/lib/lib${lib}.a || die done mlink libcurses.so /usr/lib/libcursesw.so || die mlink libncurses.so /usr/lib/libcurses.so || die mlink libncursesw.a /usr/lib/libcursesw.a || die mlink libncurses.a /usr/lib/libcurses.a || die mlink libncurses++w.a /usr/lib/libncurses++.a || die fi # install non-widec runtime compat library (do not use minstalllib, # we need libcnurses.so with loader hint for libncursesw and not a plain symlink! all-abis minstallexec ${SRCDIR}-non-widec-'$abi'/lib/libncurses.so.${PVER} /usr/'$(mlibdir)' || die all-abis mlink libncurses.so.${PVER} /usr/'$(mlibdir)'/libncurses.so.${PVER%%.*} || die # fixes a small man issue if [ -e ${BINDIR}/usr/share/man/tack.1 ] then mv ${BINDIR}/usr/share/man/tack.1 \ ${BINDIR}/usr/share/man/man1 || die fi # fix to enable colors in the default xterm mv ${BINDIR}/usr/share/terminfo/x/xterm \ ${BINDIR}/usr/share/terminfo/x/xterm.orig || die mlink xterm-color /usr/share/terminfo/x/xterm || die minstalldocs ANNOUNCE MANIFEST NEWS README* TO-DO || die # do not collide with busybox local app for app in /usr/bin/clear /usr/bin/reset do if [[ -e ${BINDIR}${app} ]] then rm -f ${BINDIR}${app} || die ${app} fi done } preinstall() { if [ -L ${MROOT}/usr/$(mlibdir)/libncurses.so ] then rm ${MROOT}/usr/$(mlibdir)/libncurses.so || die fi if [ -L ${MROOT}/usr/$(mlibdir)/libncurses.so.5 ] then rm ${MROOT}/usr/$(mlibdir)/libncurses.so.5 || die fi if [ -L ${MROOT}/usr/$(mlibdir)/libcurses.so.5 ] then rm ${MROOT}/usr/$(mlibdir)/libcurses.so.5 || die fi if [[ $(mlibdir) != lib ]] then if [ -L ${MROOT}/usr/lib/libncurses.so ] then rm ${MROOT}/usr/lib/libncurses.so || die fi if [ -L ${MROOT}/usr/lib/libncurses.so.5 ] then rm ${MROOT}/usr/lib/libncurses.so.5 || die fi if [ -L ${MROOT}/usr/lib/libcurses.so.5 ] then rm ${MROOT}/usr/lib/libcurses.so.5 || die fi fi } postinstall() { # force ldconfig here if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] then /sbin/ldconfig fi }