void-packages/srcpkgs/ncurses/template
q66 854828d619 ncurses: drop old .so.5 symlinks and add libncurses.so.6
These symlinḱs weren't used in any Void package and likely would
cause issues for foreign binaries depending on them. The
libncurses.so.6 symlink was for some reason missing, so add it.

Closes https://github.com/void-linux/void-packages/pull/23660
2020-07-21 17:54:38 +02:00

169 lines
4.7 KiB
Bash

# Template file for 'ncurses'
pkgname=ncurses
version=6.2
revision=3
bootstrap=yes
configure_args="--enable-big-core"
short_desc="System V Release 4.0 curses emulation library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="MIT"
homepage="http://www.gnu.org/software/ncurses/"
distfiles="${GNU_SITE}/ncurses/$pkgname-$version.tar.gz"
checksum=30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d
if [ "$CROSS_BUILD" ]; then
# needs host tic(1)
hostmakedepends="ncurses"
fi
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} \
--enable-widec --with-shared --without-debug \
--with-manpage-symlinks --with-manpage-format=normal \
--without-ada --enable-ext-colors \
--without-tests --enable-pc-files \
--with-pkg-config-libdir=/usr/lib/pkgconfig \
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config \
BUILD_CFLAGS="$BUILD_CFLAGS"
cd ${wrksrc}/ncurses-build
# non-widec build
../configure ${configure_args} --with-shared \
--without-debug --without-ada --without-tests \
--enable-pc-files --with-pkg-config-libdir=/usr/lib/pkgconfig \
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config \
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
}
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"
archs=noarch
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"
archs=noarch
pkg_install() {
vmove usr/share/tabset
vmove usr/share/terminfo
}
}
ncurses-libtinfo-libs_package() {
lib32disabled=yes
depends="ncurses-libs-${version}_${revision}"
short_desc+=" - libtinfo.so symlink"
pkg_install() {
vmove "usr/lib/libtinfo*.so.*"
}
}
ncurses-libtinfo-devel_package() {
lib32disabled=yes
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"
}
}