# Template file for 'ncurses' pkgname=ncurses version=6.5 revision=1 bootstrap=yes configure_args="--enable-big-core" short_desc="System V Release 4.0 curses emulation library" maintainer="Enno Boland " license="MIT" homepage="https://invisible-island.net/ncurses/" changelog="https://invisible-island.net/ncurses/announce.html" distfiles="https://invisible-island.net/archives/ncurses/ncurses-${version}.tar.gz" checksum=136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6 depends="ncurses-base-${version}_${revision}" do_configure() { export CFLAGS="$CFLAGS -fPIC" export BUILD_CFLAGS="$BUILD_CFLAGS -fPIC" mkdir -p ncurses-build ncursesw-build cd ${wrksrc}/ncursesw-build # widec build ../configure ${configure_args} \ --with-shared --without-debug \ --with-manpage-symlinks --with-manpage-format=normal \ --without-ada --enable-ext-colors --with-xterm-kbs=del \ --without-tests --enable-pc-files \ --with-pkg-config-libdir=/usr/lib/pkgconfig \ ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config \ PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig \ BUILD_CFLAGS="$BUILD_CFLAGS" cd ${wrksrc}/ncurses-build # non-widec build ../configure ${configure_args} --with-shared \ --disable-widec --without-debug --without-ada --without-tests --with-xterm-kbs=del \ --enable-pc-files --with-pkg-config-libdir=/usr/lib/pkgconfig \ ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config \ PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig \ BUILD_CFLAGS="$BUILD_CFLAGS" } do_build() { cd ${wrksrc}/ncursesw-build make ${makejobs} cd ${wrksrc}/ncurses-build make ${makejobs} } do_install() { vlicense COPYING cd ${wrksrc}/ncursesw-build make DESTDIR=${DESTDIR} install # Fool packages looking to link to non-wide-character ncurses libraries for lib in curses ncurses form panel menu; do rm -f ${DESTDIR}/usr/lib/lib${lib}.so echo "INPUT(-l${lib}w)" >${DESTDIR}/usr/lib/lib${lib}.so chmod 755 ${DESTDIR}/usr/lib/lib${lib}.so ln -sf lib${lib}w.a ${DESTDIR}/usr/lib/lib${lib}.a done ln -sf libncurses++w.a ${DESTDIR}/usr/lib/libncurses++.a # Some packages look for -lcurses during build rm -f ${DESTDIR}/usr/lib/libcursesw.so echo "INPUT(-lncursesw)" >${DESTDIR}/usr/lib/libcursesw.so chmod 755 ${DESTDIR}/usr/lib/libcursesw.so ln -sf libncurses.so ${DESTDIR}/usr/lib/libcurses.so ln -sf libncursesw.a ${DESTDIR}/usr/lib/libcursesw.a ln -sf libncurses.a ${DESTDIR}/usr/lib/libcurses.a # non-widec compatibility library cd ${wrksrc}/ncurses-build install -Dm755 lib/libncurses.so.${version} \ ${DESTDIR}/usr/lib/libncurses.so.${version} ln -sf libncurses.so.${version} \ ${DESTDIR}/usr/lib/libncurses.so.${version:0:1} # Create libtinfo symlinks. ln -sfr ${DESTDIR}/usr/lib/libncursesw.so \ ${DESTDIR}/usr/lib/libtinfo.so ln -sfr ${DESTDIR}/usr/lib/libncursesw.so.${version} \ ${DESTDIR}/usr/lib/libtinfo.so.${version} ln -sfr ${DESTDIR}/usr/lib/libtinfo.so.${version} \ ${DESTDIR}/usr/lib/libtinfo.so.${version:0:1} ln -sfr ${DESTDIR}/usr/lib/pkgconfig/ncursesw.pc \ ${DESTDIR}/usr/lib/pkgconfig/tinfo.pc # Remove broken symlink. rm -f ${DESTDIR}/usr/lib/terminfo if [ "$CROSS_BUILD" ]; then sed -i -e "s,-L$XBPS_CROSS_BASE,-L,g" ${DESTDIR}/usr/bin/ncursesw6-config fi } post_install() { # resolve conflict with *-terminfo packages rm ${DESTDIR}/usr/share/terminfo/a/alacritty{,-direct} rm ${DESTDIR}/usr/share/terminfo/c/contour{,-direct,-latest} rm ${DESTDIR}/usr/share/terminfo/d/dvtm{,-256color} rm ${DESTDIR}/usr/share/terminfo/s/st{,-256color} rm ${DESTDIR}/usr/share/terminfo/f/foot{,-direct,+base} rm ${DESTDIR}/usr/share/terminfo/r/rio{,-direct} rm ${DESTDIR}/usr/share/terminfo/w/wezterm } ncurses-libs_package() { short_desc+=" -- shared libraries" pkg_install() { vmove "usr/lib/libform*.so.*" vmove "usr/lib/libmenu*.so.*" vmove "usr/lib/libncurses*.so.*" vmove "usr/lib/libpanel*.so.*" } } ncurses-devel_package() { depends="ncurses-libs-${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove "usr/bin/ncurses*-config" vmove usr/include vmove usr/lib/pkgconfig/ncursesw.pc vmove usr/lib/pkgconfig/formw.pc vmove usr/lib/pkgconfig/menuw.pc vmove usr/lib/pkgconfig/ncurses++w.pc vmove usr/lib/pkgconfig/panelw.pc vmove "usr/lib/*.a" vmove "usr/lib/libcurses*.so" vmove "usr/lib/libform*.so" vmove "usr/lib/libmenu*.so" vmove "usr/lib/libncurses*.so" vmove "usr/lib/libpanel*.so" vmove usr/share/man/man3 vmove usr/share/man/man1/ncursesw6-config.1 } } ncurses-base_package() { short_desc+=" - base terminfo files" pkg_install() { cat ${FILESDIR}/base-files | while read line; do vmove ${line} done } } ncurses-term_package() { depends="ncurses-base-${version}_${revision}" short_desc+=" - full terminal descriptions" pkg_install() { vmove usr/share/tabset vmove usr/share/terminfo } } ncurses-libtinfo-libs_package() { depends="ncurses-libs-${version}_${revision}" short_desc+=" - libtinfo.so symlink" pkg_install() { vmove "usr/lib/libtinfo*.so.*" } } ncurses-libtinfo-devel_package() { lib32mode=full depends="ncurses-devel-${version}_${revision}" depends+=" ncurses-libtinfo-libs-${version}_${revision}" short_desc+=" - libtinfo.so symlink - development files" pkg_install() { vmove usr/lib/libtinfo.so vmove "usr/lib/pkgconfig/tinfo.pc" } }