diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-07-24 02:11:45 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-07-24 02:11:45 +0100 |
commit | b49088575eb777ced2551f484da86317332d6087 (patch) | |
tree | bf9a151cf2d61956340d555659ffc098ee1da466 /sys-libs/ncurses | |
parent | 514d1bbe260df2521fe60f1a3ec87cfcfde1a829 (diff) |
gentoo resync : 24.07.2021
Diffstat (limited to 'sys-libs/ncurses')
-rw-r--r-- | sys-libs/ncurses/Manifest | 2 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-6.2_p20210619.ebuild | 325 |
2 files changed, 327 insertions, 0 deletions
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index e2163e032660..16fecd7242d7 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -7,8 +7,10 @@ AUX ncurses-6.0-ticlib.patch 492 BLAKE2B df9e747a773b532aab42def40fa048a08ae4d02 AUX ncurses-6.2-no_user_ldflags_in_libs.patch 1254 BLAKE2B ccc2cd660bf102b61118f0ca170d079454b47a2eee41f9fb1e2b82dc241233adeb1481221fc25ce15b8c101cab200e5eefffde4ff0fbf102d8acf16fe222c40c SHA512 17e365302c683b7fc59b4ed870738b8ab487b9cc1e074d9629e1963120b6ea69b4c3b47b42c80524630d56e1b27519c6f8451397ae892ad759d1d0f019057418 AUX ncurses-6.2_p20210123-cppflags-cross.patch 1246 BLAKE2B f2e6d5b3f106639435f1901f0a43aaf9ab1cfcc2c295f13cd51120f13bb09ee4e6863aee3e6036b175479235ba8804622ad1ad4e4f181e9ca7ac67ae98ff13f1 SHA512 89a1471bc1dec666a593819b15d778d061fb370fc9786251b0546535cebf46b7ff61579937e64bf35cd15e4b8493e49c74625fb9686bb003935eef017cf449da AUX ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch 1262 BLAKE2B 06de969e051fc167729318162500b529a0da243501e33c9cd915f5a853c78445147a6cee22b06e9577fd5821ec0820c05a908933fc9de64b672fdcaf60a74e08 SHA512 09f340e8359ea361e639af7d62f747e59e55b8a186724f6c833dd4a3067046d5b82400069900b7a3b8ca51bdee976e4eb550ad246cd843f85331d331db18e2f0 +DIST ncurses-6.2-20210619-patch.sh.bz2 836967 BLAKE2B f210bf25c33f11d67e54a6f416aae75f0a976880ea543408780fd3a8dc992ee8d9999bf15c925c79504be0f30ade4bbfaed763abedd2b2d6b35de65b353a6314 SHA512 b8392bf6c0b7570766ae31a043df311660201265dfe3e2e49425b1e2aa08c72030b5f5b6c7871532897596262c88a7192e3ff2adfdc618f1b9c13c22c373eeb3 DIST ncurses-6.2.tar.gz 3425862 BLAKE2B 6680cd7a369a4cb8234442a70869c283f0db6db9d7da1da2a7a5c519eb862a2c9b9411957d99f9ebb5089cad00b42e1ca6bc0784327461113df2eeaec695913c SHA512 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d DIST ncurses-6.2_p20210123.patch.xz 519076 BLAKE2B 790ca80f0b7cdba2e75e3ace91e7f40a740594bdcb19930f64a5aaad8ba041f9ee6057e0a856050e5ef54f79ffe21f23897477dd186790fce9f8192d6149e8fc SHA512 f0d4ef317157472400f183e9ba65102e342e996c4f1d99924ece72305064c3d8616668bb2c81c6113b4bd145b1589844f8c948e6424d4372939752364bed6141 EBUILD ncurses-6.2-r1.ebuild 10019 BLAKE2B 1dab9c2dfb96a3ee7af19c3e72c5cfaac44abbabf2193dcc9e5db801d76185b770938fe3ba01033e9b14ccecc139fc20a51c6528eafc13983f1bbe09f73f51ec SHA512 50c87e06dccda4d4837373e726839526f9500c6a406e3d985699c5c90500c47dbdbf60358affd6e491116d235ebf214c71f741046ae938c884e42144ca224b83 EBUILD ncurses-6.2_p20210123.ebuild 10132 BLAKE2B 51a9717dcd8e5436fad19c7f1d0101a256a8a456829ab6b7fc50b8716fa23295d0d575677db0b1a389a46546bd878a6b13794a21f00477a40773574411189e8a SHA512 8f602f257a36ef8926397b31d6f73b89a7c9c599cce55f3b598f05cbfcd8457a320cc63d6d9648d1d6d26d2fa3c24d9e0df59a9494a0c232fed521d6d492b047 +EBUILD ncurses-6.2_p20210619.ebuild 9914 BLAKE2B 62941b88a59b253d98ae26d432f8ad6b0c25cb76f0f55eff77e973deab3ac8fa9af4253edd8061b34882cca59c56895dc84d9a86177143d15e666adf94bdc8c5 SHA512 f2c1d42242bc348c1eb461a37cfdb98253c64657aaf732b1af3b59e40c2290d59c1b1695557620696019cfa79b4621cb0ba253a7c831b5d9f965d27c382ef2a0 MISC metadata.xml 784 BLAKE2B d195c69ac7dd1ac9b3e9d547e677f0c54ebb7f17ae2d480349bee487753f407091b94228d11ef44b901fc6a5f18cd27e4bf0cf55d16d405db9307d3199ce54a1 SHA512 83e7b30880f244e3756b357628b726832a5e02bce6225255ebe5710014e52914b2b9c87542ff5f3a6f93b547c1d029053ebda8cee5322a2e2ef6fbaa34eb11e1 diff --git a/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild b/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild new file mode 100644 index 000000000000..d49df4d8ee35 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild @@ -0,0 +1,325 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript + +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/" +SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" + +if [[ "${PV}" == *_p* ]] ; then + SRC_URI+=" ftp://ftp.invisible-island.net/${PN}/${PV/_p*}/${P/_p/-}-patch.sh.bz2 + https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${P/_p/-}-patch.sh.bz2" + #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/dist/${P}.patch.xz" +fi + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 static-libs test tinfo trace" +RESTRICT="!test? ( test )" + +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# berkdb? ( sys-libs/db )" +# Block the older ncurses that installed all files w/SLOT=5. #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" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}/${PN}-5.7-nongnu.patch" + "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" #192083 #383871 + "${FILESDIR}/${PN}-6.0-pkg-config.patch" + "${FILESDIR}/${PN}-6.0-ticlib.patch" #557360 + "${FILESDIR}/${PN}-6.2_p20210123-cppflags-cross.patch" #601426 +) + +src_prepare() { + if [[ "${PV}" == *_p* ]] ; then + eapply "${WORKDIR}"/${P/_p/-}-patch.sh + #eapply "${WORKDIR}/${P}.patch" + fi + default +} + +src_configure() { + unset TERMINFO #115036 + tc-export_build_env BUILD_{CC,CPP} + BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642 + + # 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. #249363 #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}" \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal + fi + multilib-minimal_src_configure +} + +multilib_src_configure() { + 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 + + 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" + + # Disabled until #245417 is sorted out. + #$(use_with berkdb hashed-db) + + # 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 + --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 + + # Force bash until upstream rebuilds the configure script with a newer + # version of autotools. #545532 + #CONFIG_SHELL=${EPREFIX}/bin/bash \ + 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 + if ! tc-is-static-only ; then + # Provide a link for -lcurses. + ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die + fi + # don't delete '*.dll.a', needed for linking #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 (#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 +} + +multilib_src_install_all() { +# if ! use berkdb ; then + # We need the basic terminfo files in /etc for embedded/recovery. #37026 + einfo "Installing basic terminfo files in /etc..." + 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 + ) + local x + 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 +# fi + + 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 + keepdir /usr/share/terminfo #245374 + + 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 +} |