sys-libs/ncurses: add 6.3_p20221203

Closes: https://bugs.gentoo.org/884597
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2022-12-06 16:53:39 +00:00
parent 26750a49bf
commit 16faeb1fec
2 changed files with 507 additions and 0 deletions

View File

@@ -98,6 +98,27 @@ DIST ncurses-6.3-20220917.patch.gz 7833 BLAKE2B 338ddfc2b660cff6248bcb2fc39ef13b
DIST ncurses-6.3-20220917.patch.gz.asc 729 BLAKE2B c952f018cee490635809fa3a4ead27964a639289db16db42768c545e85b56033b01ea45b9251cd14f4d0cff97673566a4c8d04f93a1539392b676baeecc0307c SHA512 57de37e7c0fe70b0c1abdabe77b36a95b2845b423f167dd4d5acf5999a7152d69193f707c41f88d6e4210934c120d8c72a93830c6f2f9cb49832266e02314588
DIST ncurses-6.3-20220924.patch.gz 112587 BLAKE2B 77711d12d8b38d72c8f218eae8f1452fe5d6f65e00937b663ee99e399f0b2a53d450391b12900470b1670cd83dfaac3c10ecc2e4358617866edc317c6daeb3fd SHA512 99057a0e28fa03aae415761928a4fd158eca7de1fee34531a102901846a94893de9dce2f1ad08885201ec0f54d379c3b4886725e766c27239ac957108c89dcb4
DIST ncurses-6.3-20220924.patch.gz.asc 729 BLAKE2B 64103419d56b0e3b9ab7d7c0b2c650db18b472f2c656b6939b865f7a93e4f6ef5adbed9e438c21a488c204c0dffc818a9c787558ce04a50c7d1c6384f84889aa SHA512 f4bda8c09b6b701c99ffd3153dd8754496991b7f83c36ee7f49c4c701d081d32adfc9c04fa83e639df7f024479c7ee5b3921f45db9f72e896c48637073eca38b
DIST ncurses-6.3-20221001.patch.gz 7098 BLAKE2B f5ebeddeeba36ea981910fceee1da21ae69135613138b8cfb595194852719f5e7882b769fda255cf10207ea92667b4b66dd8fe538d770e63ee0fc28a2c29c2d5 SHA512 801145584d37439fa54ada12b55183ac45bab53b007a81573d0ebb572ce4625d3029ca360d013af9e8ea7f9355b2745e7eebdf70ffd27e721bb23ef960c1b4fe
DIST ncurses-6.3-20221001.patch.gz.asc 729 BLAKE2B 6ed82ee5fdfd8fcef8a2815fceec78a0d17004d0c1ff183794853af2ae49c27a71ed2328a8f476d09474ed26e33dfb3ce846e14814a704fa99d51480a8be96d6 SHA512 268ddb0b3b965cf8fc75d524e7c4adbd4701a599f4fcb249d3b2622f704e821143b11cbb680013552640b4155a36237425381a192b0db3182b817aff4c92239d
DIST ncurses-6.3-20221008.patch.gz 2634 BLAKE2B b3cfdcd113ae2bf57043d6d46164b5940ccb169e37bee8d248087455d19f0d568aa19b0d3e7502c9b5cf40367cbaf19791b8be9220a4243d2155f284de101102 SHA512 281ea85542e76f9208b33febd93301da0cbb2f6730b2aeacfb804a214b9a6a09f46eab197b4c44910934101f95b77dd8b4a1469f1ba769c5a5d3fbb1c20934f0
DIST ncurses-6.3-20221008.patch.gz.asc 729 BLAKE2B 0cd4646f0c1970626f2cacb267ea23aadfc0cdc314511921d5416177097f004d7ac9f30fd3ba2ad0360cca95aecbad192852a8492f68448f2030a7ddf37a6058 SHA512 2e1d4fca54c44e9de8f98dd7a438388115785338c413afd6d04dcb9ccddc463bff5dbb3ef248a986a958e0a151f2e3d292c1e773da666b365c2d6e6f3abe724d
DIST ncurses-6.3-20221015.patch.gz 11135 BLAKE2B 30caf1e12175d5ee968d324a61c53d5fdb173b37754e78b496375e04583a15145587a9683caf55c5eaefcfeb989ac96376f300171df5e83a5d5532507ffbb049 SHA512 6932550e9b0a7257dacaba0d58dce0974f0ec99b21b6646eb2798491d806daf2c51839923bd924e782c9ed59753a94a59c013bf3d44b5aa8875fd51f18c60ac2
DIST ncurses-6.3-20221015.patch.gz.asc 729 BLAKE2B d9c6b896620bebcfd482780b91289a85f4c17f417b3f1c1de02dccf3a4d49cfad3d3e3655d68a11bb707705c4b41c4301412042f0d261aa6bfb79799c850c615 SHA512 f5e4c69fde071fc0a86c8dc799a28264f9b89fb16b3bdcf7d097161d974622cacb497de70dbe0b4fb51fdc1e11ba9b950427129a5b82ec133674a2c302c5f3b6
DIST ncurses-6.3-20221023.patch.gz 49192 BLAKE2B 788df519977b62d68fb3da19e8962e94bdd20ce31aca7854beccc5786fd28b87ac3046257a119578eb7f7c115cbe50943db2d606888aee6a7fa28a16600cae2b SHA512 6f511d13e6e61e97400aa4848d3b1660667ee4e6c5d97768f706af75abc200095a07a764e1d6f0f456fbc7a3c3abea79756ead7a8d9c12e654a2ee37dc6a75d2
DIST ncurses-6.3-20221023.patch.gz.asc 729 BLAKE2B 67627c4d38327483811d3d4399bcbc883a80a9ef2f47760197e862ad55d55f2c90a5b3e9815df177087b135ef3dd8debb5eb4143dbfb5cca648be75cd9914a6d SHA512 a0dc66f49f1db36f066200e4b1b6f91aefc751f9a254305251ccad1eb654aa359e4bfd2de71ff9d75a078fbf3e21fca8adaaddb15165de133bbd37b8deea9613
DIST ncurses-6.3-20221029.patch.gz 5499 BLAKE2B e76820349aa6f8c19bf40587e220bc04cd3228fe3f726d4db9a6577182bf358276803133abe583e63c65632eb9cddb785b92bc40a88e7affb51dfe972bb1f365 SHA512 9f2bcbbb30992b9a022c35165f63d7fd8a2f7a547886191d28dcb96f502cd87a00348dfa8b94843631a4df4de652be4af854a19fd139530630f2b1f1110f9ce9
DIST ncurses-6.3-20221029.patch.gz.asc 729 BLAKE2B 08f961d369a41af1b9aba016ac28cb8f69afaa72338b2668fa030a6c2e18b82e3eb144562346b9127f3e73fd108625af0b3566200468101c70a8c77d79452db7 SHA512 7f77cdd7d6f5c43ec10b5877946165d24606d432280107b589dc1862c4352716501c75f05a8be5a638ae9a80aada532ee105305f12d9ce57e972f1cbf1f9bf2a
DIST ncurses-6.3-20221105.patch.gz 101044 BLAKE2B 80d148a9e24828b474c9dc74fb69442b68552fcbecb314328334e9356281c4e425785b127af07b1c7037dd0e6e3d5988f029637c5850848df98ee938664ff760 SHA512 e1b979b476cce2b6c70bdef5646781f6a930224c575db7abbff692227ae6a057919c6c386c011e6861a906560759e64e2cab72534af3d1ff9cbb97ab2de7d81f
DIST ncurses-6.3-20221105.patch.gz.asc 729 BLAKE2B 54a9611e3f986e652dc3b0f1e2fd5f552cfd005bc91f80b8ff6492a5f4d07c690202bac59d3165fca2fcee565b1fbf98f81a924afcae60e2d432c043e4e387a8 SHA512 a01bc0170d7e8e340aa958f2de46eff1e1266eedb4a8129b9e7d5aabcc0e542b8c98ee06ba15b861488e588940b2e4fee7ac0bc32c905798067b0eb2dc785e46
DIST ncurses-6.3-20221112.patch.gz 2879 BLAKE2B f29e9394531de7479f8800f052ba70dce48b70ccb81df2f5e67a95d95d1f763e3442a63a3a2db613e1c25155c01aae2fb0bfb18cd587fe5e1799f2ae5386eef6 SHA512 11480f3607827f07d303295d0ad9de247ef958052729f6a033342183daaa4e310fc4b922d80cbb6e9e29e7c24bb33956a15b3b1ba58c1308f1ef6c33fdb59a37
DIST ncurses-6.3-20221112.patch.gz.asc 729 BLAKE2B 3a329dfccc227cdfe83ccf3f402d0101b1b652811ac37d57c48b5618944d983c54a5be289004ab4dc0024cba43748054053bce489dff5eec6787dc756be5a60e SHA512 4e2bf7522249ebefaa910b33bb61ae3e520f0c947a5d2e289328476487afef8b11b5d77ea72f21b4178bee2413b5b3982a906dcfab652d0bec0780742ffba350
DIST ncurses-6.3-20221119.patch.gz 4114 BLAKE2B 3ed898cd2e175e6dc22a25f5c2dc165a04e6ddcea6cca0ab38efa91c0ffd9e0e96d3e3eaa6292a991baabb1fe86183d2187fd6400c2514f000def5f934f1eb0e SHA512 624c63c3fea00646e909402dc88ca5eeab5fa7d0414e35cb055a62655817aee86cb1080e6b95ba47d5566b2f8edaee5610a3577896cffdb0cb838db9d6e6fc73
DIST ncurses-6.3-20221119.patch.gz.asc 729 BLAKE2B 0e2ae4e2583d5b6bfc6e509511db5d788245c4cc8a0a8884d21707663a466486a9c645c976f88f3d4485162c4de572e0dbb95bcbe34ac8d230af1a9f34f6472c SHA512 84b23b3192fe46dde1d876fca1d2bf2ade847a168440dc7e1e0cc66df137a40d8659299d7797ffdd51dfcbb3a87a5236957d8d40ea5df310d2ed8b55046cdf1d
DIST ncurses-6.3-20221126.patch.gz 46654 BLAKE2B a216b163a7b7ebf4193e9b18264ddfb4cf90e65210b5b54fe0e7a1bd28b68a37122b0b5c5f9bce61452ed900c4d2b5dbe4498d9dfa70c4dc63522f0a373bc8f9 SHA512 c23d2abbb25d023c1bf9e809d1456920ad9f29f084efe39432d3b1e6b017cdf707c92579a5959b7439a246c075a6a9dc35d2889fe032af70cbbbe33ddb6c04d4
DIST ncurses-6.3-20221126.patch.gz.asc 729 BLAKE2B 2fe9972b35d9ab865a7cc3f1b1273777ce039ffac8377cbcbe745c8172bb9ae92b62dd355ce2e8194dc10fc1c87a97b72831248bd1193191f4ccb0458f91449b SHA512 e3f7169915d761bbd9a400dc3dd41b7dc7519cecb3962a43a75888aead57c52d27a9de88a8b68d704a4baaf2e362db56a5d52e19b249b7f782cd35ce1806fc9e
DIST ncurses-6.3-20221203.patch.gz 42388 BLAKE2B 183adbb378793faef9b7e1aafe0a1ac3ce14f81e7bfb393f22ad8a748cbdec6dea586847c9dadd84e709bcdf882728f9c6ff6adc6b0519698d7ed8c7c311b908 SHA512 c5c066abaeb153eaabcc09228e715dc97a7041c72cbad097c37fa5ee5c1a8856ae6b9ee7973deb66aeeccd6e8ed1e7d9ece781dd79e2e75985a59c32861b1629
DIST ncurses-6.3-20221203.patch.gz.asc 729 BLAKE2B a663141e389946fb6967c61c0b6b8fbafdb98f6ff2513bf382a5210e8d403b4bb5c277d1b102c893c1f33d98805cf5f0da0012c68dbabbb516364ba793975930 SHA512 70b8ef161d2d98a752fa37d3854954aea13b909830b8da9d54ed79aa3148570651b4b30d2baef1e5c4e2f47e9287e758187443508cf359f0f8392f3edcfd9d09
DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105
DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6
DIST ncurses-6.3_p20220924-patches.tar.xz 63272 BLAKE2B 94b617ba8e949bd7b78047bb1a99acb9f5e0e456d4aebfe3d81b405c491071be7aaeb90df68d144c80a7da6a02a916ba3b2c553ecaf7a8a74214860743b7b783 SHA512 7e55e96b94184a84a752a2b482d13c3aaccb41ade79d14569aad00534c03a80f2dbafc5460838b8d51271089c02c5f0da1a73e5a70bc0619217124ae1c647e20
DIST ncurses-6.3_p20221203-patches.tar.xz 66988 BLAKE2B ea01eee64b0468fbd5b1a540103f88deff1669533d7b5187440a07ef969249fa664cf770ea8b0cce14b8d93fef9c4fc783c26df13699e205abebacb278d61766 SHA512 2cdadfbd9aed0f33a58150ba71a1a79a23f1590f82dc57a79fe7892bf9a1d86d4604d4c5224f11fdc7c133bcc8d8b60b075e1a493e8cb63743259f0b8d2b66f4

View File

@@ -0,0 +1,486 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript verify-sig
MY_PV="${PV:0:3}"
MY_P="${PN}-${MY_PV}"
DESCRIPTION="Console display library"
HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
SRC_URI="
mirror://gnu/ncurses/${MY_P}.tar.gz
https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
"
GENTOO_PATCH_DEV=sam
GENTOO_PATCH_PV=6.3_p20221203
GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
# Populated below in a loop. Do not add patches manually here.
UPSTREAM_PATCHES=()
if [[ ${PV} == *_p* ]] ; then
# Sometimes, after releases, there's no megapatch available yet.
#
# From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
#
# "At times (generally to mark a relatively stable point), I create a rollup
# patch, which consists of all changes from the release through the current date."
#
# Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
# the patches are considered to be acceptable to use after some testing. They
# are both for development but also bug fixes.
#
# This array should contain a list of all the snapshots since the last
# release if there's no megapatch available yet.
PATCH_DATES=(
20211026
20211030
20211106
20211113
20211115
20211120
20211127
20211204
20211211
20211219
20211225
20220101
20220115
20220122
20220129
20220205
20220212
20220219
20220226
20220305
20220312
20220319
20220326
20220402
20220409
20220416
20220423
20220430
20220501
20220507
20220514
20220521
20220529
20220604
20220612
20220618
20220625
20220703
20220709
20220716
20220724
20220729
20220806
20220813
20220820
20220827
20220903
20220910
20220917
20220924
20221001
20221008
20221015
20221023
20221029
20221105
20221112
20221119
20221126
# Latest patch is just _pN = $(ver_cut 4)
$(ver_cut 4)
)
if [[ -z ${PATCH_DATES[@]} ]] ; then
SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
# If we have a rollup patch, use that instead of the individual ones.
UPSTREAM_PATCHES+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
else
patch_url=
my_patch_index=
# We keep a bunch of mirrors here as we've had reports of invisible*.net
# being 403 forbidden for some users.
urls=(
"https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
"https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
"https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${MY_P}-%s"
)
for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
for url in "${urls[@]}" ; do
patch_url="$(printf ${urls} ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
SRC_URI+=" ${patch_url}"
SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
done
UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch )
done
unset patch_url
unset my_patch_index
unset urls
fi
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
fi
LICENSE="MIT"
# The subslot reflects the SONAME.
SLOT="0/6"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace"
RESTRICT="!test? ( test )"
DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
# Block the older ncurses that installed all files w/SLOT=5, bug #557472
RDEPEND="${DEPEND}
!<=sys-libs/ncurses-5.9-r4:5
!<sys-libs/slang-2.3.2_pre23
!<x11-terms/rxvt-unicode-9.06-r3
!<x11-terms/st-0.6-r1"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${UPSTREAM_PATCHES[@]}"
# When rebasing Gentoo's patchset, please use git from a clean
# src_prepare with upstream patches already applied. git am --reject
# the existing patchset and rebase as required. This makes it easier
# to manage future rebasing & adding new patches.
#
# For the same reasons, please include the original configure.in changes,
# NOT just the generated results!
"${WORKDIR}"/${GENTOO_PATCH_NAME}
)
src_unpack() {
# Avoid trying to verify our own patchset tarball, there's no point
if use verify-sig ; then
local file
for file in ${A} ; do
if [[ ${file} == ${MY_P}.tar.gz ]] ; then
verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
else
[[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
fi
done
fi
default
}
src_configure() {
# bug #115036
unset TERMINFO
tc-export_build_env BUILD_{CC,CPP}
# bug #214642
BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
# Build the various variants of ncurses -- narrow, wide, and threaded. #510440
# Order matters here -- we want unicode/thread versions to come last so that the
# binaries in /usr/bin support both wide and narrow.
# The naming is also important as we use these directly with filenames and when
# checking configure flags.
NCURSES_TARGETS=(
ncurses
ncursesw
ncursest
ncursestw
)
# When installing ncurses, we have to use a compatible version of tic.
# This comes up when cross-compiling, doing multilib builds, upgrading,
# or installing for the first time. Build a local copy of tic whenever
# the host version isn't available. bug #249363, bug #557598
if ! has_version -b "~sys-libs/${P}:0" ; then
local lbuildflags="-static"
# some toolchains don't quite support static linking
local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
case ${CHOST} in
*-darwin*) dbuildflags= ;;
*-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
esac
echo "int main() {}" | \
$(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
|| lbuildflags="${dbuildflags}"
# We can't re-use the multilib BUILD_DIR because we run outside of it.
BUILD_DIR="${WORKDIR}" \
CC=${BUILD_CC} \
CHOST=${CBUILD} \
CFLAGS=${BUILD_CFLAGS} \
CXXFLAGS=${BUILD_CXXFLAGS} \
CPPFLAGS=${BUILD_CPPFLAGS} \
LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
do_configure cross --without-shared --with-normal --with-progs
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
if [[ ${ABI} == x86 ]] ; then
# For compatibility with older binaries at slight performance cost.
# bug #616402
use stack-realign && append-flags -mstackrealign
fi
local t
for t in "${NCURSES_TARGETS[@]}" ; do
do_configure "${t}"
done
}
do_configure() {
local target=$1
shift
mkdir "${BUILD_DIR}/${target}" || die
cd "${BUILD_DIR}/${target}" || die
# https://lists.gnu.org/archive/html/bug-ncurses/2022-09/msg00024.html
export EGREP="grep -E"
export FGREP="grep -F"
local conf=(
# We need the basic terminfo files in /etc, bug #37026. We will
# add '--with-terminfo-dirs' and then populate /etc/terminfo in
# src_install() ...
--with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
# Enable installation of .pc files.
--enable-pc-files
# This path is used to control where the .pc files are installed.
--with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
# Now the rest of the various standard flags.
--with-shared
# (Originally disabled until bug #245417 is sorted out, but now
# just keeping it off for good, given nobody needed it until now
# (2022) and we're trying to phase out bdb.)
--without-hashed-db
$(use_with ada)
$(use_with cxx)
$(use_with cxx cxx-binding)
--with-cxx-shared
$(use_with debug)
$(use_with profile)
# The configure script uses ldd to parse the linked output which
# is flaky for cross-compiling/multilib/ldd versions/etc...
$(use_with gpm gpm libgpm.so.1)
# Required for building on mingw-w64, and possibly other windows
# platforms, bug #639670
$(use_enable kernel_Winnt term-driver)
--disable-termcap
--enable-symlinks
--with-rcs-ids
--with-manpage-format=normal
--enable-const
--enable-colorfgbg
--enable-hard-tabs
--enable-echo
$(use_enable !ada warnings)
$(use_with debug assertions)
$(use_enable !debug leaks)
$(use_with debug expanded)
$(use_with !debug macros)
$(multilib_native_with progs)
$(use_with test tests)
$(use_with trace)
$(use_with tinfo termlib)
--disable-stripping
--disable-pkg-ldflags
)
if [[ ${target} == ncurses*w ]] ; then
conf+=( --enable-widec )
else
conf+=( --disable-widec )
fi
if [[ ${target} == ncursest* ]] ; then
conf+=( --with-{pthread,reentrant} )
else
conf+=( --without-{pthread,reentrant} )
fi
# Make sure each variant goes in a unique location.
if [[ ${target} == "ncurses" ]] ; then
# "ncurses" variant goes into "${EPREFIX}"/usr/include
# It is needed on Prefix because the configure script appends
# "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
conf+=( --enable-overwrite )
else
conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
fi
# See comments in src_configure.
if [[ ${target} != "cross" ]] ; then
local cross_path="${WORKDIR}/cross"
[[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
fi
ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
}
src_compile() {
# See comments in src_configure.
if ! has_version -b "~sys-libs/${P}:0" ; then
# We could possibly merge these two branches but opting to be
# conservative when merging some of the Prefix changes.
if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
# We make 'tic$(x)' here, for Cygwin having x=".exe".
BUILD_DIR="${WORKDIR}" \
do_compile cross -C progs all PROGS='tic$(x)'
else
BUILD_DIR="${WORKDIR}" \
do_compile cross -C progs tic
fi
fi
multilib-minimal_src_compile
}
multilib_src_compile() {
local t
for t in "${NCURSES_TARGETS[@]}" ; do
do_compile "${t}"
done
}
do_compile() {
local target=$1
shift
cd "${BUILD_DIR}/${target}" || die
# A little hack to fix parallel builds ... they break when
# generating sources so if we generate the sources first (in
# non-parallel), we can then build the rest of the package
# in parallel. This is not really a perf hit since the source
# generation is quite small.
emake -j1 sources
# For some reason, sources depends on pc-files which depends on
# compiled libraries which depends on sources which ...
# Manually delete the pc-files file so the install step will
# create the .pc files we want.
rm -f misc/pc-files || die
emake "$@"
}
multilib_src_install() {
local target
for target in "${NCURSES_TARGETS[@]}" ; do
emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
done
# Move main libraries into /.
if multilib_is_native_abi ; then
gen_usr_ldscript -a \
"${NCURSES_TARGETS[@]}" \
$(usex tinfo 'tinfow tinfo' '')
fi
# Don't delete '*.dll.a', needed for linking, bug #631468
if ! use static-libs; then
find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
fi
# Build fails to create this ...
# -FIXME-
# Ugly hackaround for riscv having two parts libdir (bug #689240)
# Replace this hack with an official solution once we have one...
# -FIXME-
dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
/usr/$(get_libdir)/terminfo
# Remove obsolete libcurses symlink that is created by the build
# system. Technically, this could be also achieved
# via --disable-overwrite but it also moves headers implicitly,
# and we do not want to do this yet.
# bug #836696
rm "${ED}"/usr/$(get_libdir)/libcurses* || die
}
multilib_src_install_all() {
local terms=(
# Dumb/simple values that show up when using the in-kernel VT.
ansi console dumb linux
vt{52,100,102,200,220}
# [u]rxvt users used to be pretty common. Probably should drop this
# since upstream is dead and people are moving away from it.
rxvt{,-unicode}{,-256color}
# xterm users are common, as is terminals re-using/spoofing it.
xterm xterm-{,256}color
# screen is common (and reused by tmux).
screen{,-256color}
screen.xterm-256color
)
if use split-usr ; then
local x
# We need the basic terminfo files in /etc for embedded/recovery, bug #37026
einfo "Installing basic terminfo files in /etc..."
for x in "${terms[@]}"; do
local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
local basedir=$(basename "$(dirname "${termfile}")")
if [[ -n ${termfile} ]] ; then
dodir "/etc/terminfo/${basedir}"
mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
dosym "../../../../etc/terminfo/${basedir}/${x}" \
"/usr/share/terminfo/${basedir}/${x}"
fi
done
echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
use minimal && rm -r "${ED}"/usr/share/terminfo*
# Because ncurses5-config --terminfo returns the directory we keep it
# bug #245374
keepdir /usr/share/terminfo
elif use minimal ; then
# Keep only the basic terminfo files
find "${ED}"/usr/share/terminfo/ \
-type f ${terms[*]/#/! -name } -delete , \
-type d -empty -delete || die
fi
cd "${S}" || die
dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
if use doc ; then
docinto html
dodoc -r doc/html/
fi
}
pkg_preinst() {
preserve_old_lib /$(get_libdir)/libncurses.so.5
preserve_old_lib /$(get_libdir)/libncursesw.so.5
}
pkg_postinst() {
preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
}