diff options
Diffstat (limited to 'sys-libs/ncurses')
-rw-r--r-- | sys-libs/ncurses/Manifest | 6 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-6.2_p20210619.ebuild | 326 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-6.3.ebuild | 328 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-6.3_p20211106-r1.ebuild | 357 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-6.3_p20211106.ebuild | 354 |
5 files changed, 0 insertions, 1371 deletions
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index 25f9445e3987..4f41155c9b70 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -3,8 +3,6 @@ AUX ncurses-6.0-pkg-config.patch 386 BLAKE2B 27a61878d45aa781291e18a2e18b8e861dd AUX ncurses-6.0-rxvt-unicode-9.15.patch 3759 BLAKE2B 88e1b6145c5d1afa9d319fdf1bb70967705cc0460fb87cb3897d0e86678b065bc365573859d1cb96ac4209e61a4c43a84cd0cc3b86680e965e3bf404271354ef SHA512 5601446d34421453fb8ed0e7172b4a5230ab4f10a6ded27e6dc52f82f121cb0af510dfc8f60d9ba0d3b9a1d90a8a832c38e24256e394d8ffccbbf12a109e2da4 AUX ncurses-6.0-ticlib.patch 492 BLAKE2B df9e747a773b532aab42def40fa048a08ae4d02b83c78bfb5fd89b70b9b753534769c5c52a0d1adde7447cd25a286fc8b5d9f52f395c6287d7cd568f184242d7 SHA512 291ed033118673aed1bc5d3b54730d099dffccad7bbe9cb47275bb216125ef9016225eaccae620fa3b06533b7633061a8029e19c8cb9f73c3e30499f587353d6 AUX ncurses-6.2_p20210123-cppflags-cross.patch 1246 BLAKE2B f2e6d5b3f106639435f1901f0a43aaf9ab1cfcc2c295f13cd51120f13bb09ee4e6863aee3e6036b175479235ba8804622ad1ad4e4f181e9ca7ac67ae98ff13f1 SHA512 89a1471bc1dec666a593819b15d778d061fb370fc9786251b0546535cebf46b7ff61579937e64bf35cd15e4b8493e49c74625fb9686bb003935eef017cf449da -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.3-20211026.patch.gz 117363 BLAKE2B 74c6c80271edc3b69d17c891436e48ee0579b3d16dd1bbd42f953be5b6ef07596343abd34f4d508b0cb371c1c0febfec12d65e938739892a617c8b141f599753 SHA512 25a99bc9cb7a18eb8fd16a0f887bae90c2551e0228b077d28f7217e58190f4b19a526350c999922f7394a1b749e834643c1bf5f339248b842717c146a3ec1df4 DIST ncurses-6.3-20211026.patch.gz.asc 729 BLAKE2B 470aa4aad00d0dfa9924ca3247d720b720563bfe5a3b5c9571acb4c74a7b3fb55adbae6b0aa854eb0e29c56d7949fa1e3b6d959c25681f1b46c23c96a3c0e054 SHA512 276e8a09ee6fddf20be38b9d8a6f93cbafcec51ed17de375b9d2f4f6c34ff546fdbd81083f54aba1a5aaea5c2c691c25754dfca47568c5b70197437420dd2581 DIST ncurses-6.3-20211030.patch.gz 46304 BLAKE2B 6fa0f5223c97dc045117c208b92e75aad61638585506aeed0fa5cd6b215f67d212fc780e527f1281ae77063edb1ef9b3a3671b00d306fe322c3ca1b34c1d4d81 SHA512 90440af3959a17388999f07a3b40f770c5511bceda6a39d4c56f867dc5ae8494e49cfb700eb79e31422ebfd1b1990f6d7912083c688963139446f1e43e9d08c8 @@ -97,10 +95,6 @@ DIST ncurses-6.3-20220820.patch.gz 32018 BLAKE2B 14a29ee43c4d8df82a9f939ef4e028a DIST ncurses-6.3-20220820.patch.gz.asc 729 BLAKE2B 93179103d5465b5ddff8513a383099bbf07993a1286a164b69d213c176cc39144fc8afb407fbbb2596d975bd7017b677f75609fe8ddaa3415f46cc73c5bdcbe3 SHA512 5e589d29903a2c6c1e85dfb64d7267e3528d65e49a7c4851318139142524bed4824dd787f980b2fbe8327f0b804ecea1ca94bbb6c7615fee9d993ea6d1568773 DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105 DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6 -EBUILD ncurses-6.2_p20210619.ebuild 9938 BLAKE2B e051c20b6dc781586bbb7de7986983c33c1c74df8599148b23bf7e82754c696bd814b5e95e77e4cf346dcd08c507fa9d2e90898f4f77921379bfa155f9a2d9aa SHA512 dec3574e7afc360b2bb165c923b8ea27edd30269dbab96027ad4966b16f2a80aca8d677afbac01cbd0c215459d84d9c239fb03a684771485d3d9e0be0430cc45 -EBUILD ncurses-6.3.ebuild 10059 BLAKE2B 49d54b5c55b66745ad0cb6467a59cad1f3774378ee42cd655d0a94627c5500ea5f045db81f7e774b0afcb966cfaaf8ef106fd081af5a0f83b90ee029ebe2a998 SHA512 5c2388851eb130dcaae8db6f411bfe441a46dc7ca8a5849978edb8d8ea47fb2aa55354ed600c17c01b59acb36c3027bb1c8cb622c8b43e118848de855f3bade6 -EBUILD ncurses-6.3_p20211106-r1.ebuild 10864 BLAKE2B bf3eccc36c80765fbaa165ff7c954b4632a1ac48abb0abff29a20d3caa81a69659205930a3d97b1fa78157799918db2bb4fb2f404a613931ac12fc5b8c1d253d SHA512 2a99d0674be5e8b0f2316857ae0abeb1a98ce3d718ffb0e04a2b61eb5733d4d5b0c3b20e806df8cbe0eb7cc8fb6ec8a5817225b3896846dc3c2f801b1b8255e4 -EBUILD ncurses-6.3_p20211106.ebuild 10920 BLAKE2B 582eaa0726501b6b5f6e16e7e2281d773629171c21b137923b29dd4a22aa19044ab637857d1b136fc05264d0782107eee6913ba9b5c72c2ac52e2250fed9a8c3 SHA512 18e7458493d49ccbeb70f63118e673a876f77d64b4ac91dc88f7759861eb8821de658e2fed6a22ec3e21d82238efde2cf00710185ecf9356845256e020d3f158 EBUILD ncurses-6.3_p20220423-r1.ebuild 12301 BLAKE2B ec3174da7e91867039052294d5a846f7dfcadd0aa30f83c89e652fcbdcc0b8828d1c84dadede3ef9c943ecd72d77c0fafbfabfc0f6ff0ded2b72a3e4ad2e311a SHA512 2eff2ddcb16b22fc66e14507ed629868deb13f7ae3844863c3aa74ae5dbbba614a6bbf43ae650c08859b6bb5ab20976189fb2faa8ec66e79aa65c0319c33c323 EBUILD ncurses-6.3_p20220423.ebuild 12167 BLAKE2B d7ea349cae22e242b2dabb4376f61e22902003137387a5a0af844961c3f2d64b2618fc3f9c654285491f2f80bb1de70124a8cd86345de4239331f3e69537a8be SHA512 7f5bcaed9bceb9eea739d4396ac0a1293aa3194d9d3f4085ece5db541fe86b8dbee76317e5b12ffbb7243eb09aa123b2c8efb376b1b3ebf5c795aed5a4dc9eef EBUILD ncurses-6.3_p20220820-r1.ebuild 12510 BLAKE2B 7d29382342aae4808b84f323396296dda9d078bb4b0ae03e2f8d96dfd55a2431e09d954c3cc05a473aa7c355aae1ba2e41f49009f8fc4a0f6d350fce831057c6 SHA512 72196f6fbe03b060017820f0ee3a4bd43dee4c78c44d4a1a84eb896f0db4f245e626afbb9acef9edf17640a63b4ea6706d19e15506cb493c095fa4bccbb14793 diff --git a/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild b/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild deleted file mode 100644 index 464f7ca0bcc2..000000000000 --- a/sys-libs/ncurses/ncurses-6.2_p20210619.ebuild +++ /dev/null @@ -1,326 +0,0 @@ -# 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}" \ - 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() { - 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 -} diff --git a/sys-libs/ncurses/ncurses-6.3.ebuild b/sys-libs/ncurses/ncurses-6.3.ebuild deleted file mode 100644 index 0faa70d2aa52..000000000000 --- a/sys-libs/ncurses/ncurses-6.3.ebuild +++ /dev/null @@ -1,328 +0,0 @@ -# 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 - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - ftp://ftp.invisible-island.net/${PN}/${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}" \ - 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() { - 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 -} diff --git a/sys-libs/ncurses/ncurses-6.3_p20211106-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20211106-r1.ebuild deleted file mode 100644 index fbcbf40d9c66..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20211106-r1.ebuild +++ /dev/null @@ -1,357 +0,0 @@ -# Copyright 1999-2022 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 - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - ftp://ftp.invisible-island.net/${PN}/${MY_P}.tar.gz" - -if [[ "${PV}" == *_p* ]] ; then - # Sometimes, after releases, there's no megapatch available yet. - # - # From upstream README at e.g. https://invisible-mirror.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." - # - # 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 - # Latest patch is just _pN = $(ver_cut 4) - $(ver_cut 4) - ) - - if [[ -z ${PATCH_DATES[@]} ]] ; 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" - else - patch_date= - for patch_date in "${PATCH_DATES[@]}" ; do - SRC_URI+=" ftp://ftp.invisible-island.net/${PN}/${PV/_p*}/${MY_P}-${patch_date}.patch.gz" - SRC_URI+=" https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-${patch_date}.patch.gz" - done - unset patch_date - fi - - #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/dist/${P}.patch.xz" -fi - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="" -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}"/ - 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}" \ - 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() { - 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 - # 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 - - # 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. - # https://bugs.gentoo.org/836696 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die -} - -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 -} diff --git a/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild b/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild deleted file mode 100644 index 5794b0aceb63..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild +++ /dev/null @@ -1,354 +0,0 @@ -# Copyright 1999-2022 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 - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - ftp://ftp.invisible-island.net/${PN}/${MY_P}.tar.gz" - -if [[ "${PV}" == *_p* ]] ; then - # Sometimes, after releases, there's no megapatch available yet. - # - # From upstream README at e.g. https://invisible-mirror.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." - # - # 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 - # Latest patch is just _pN = $(ver_cut 4) - $(ver_cut 4) - ) - - if [[ -z ${PATCH_DATES[@]} ]] ; 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" - else - patch_date= - for patch_date in "${PATCH_DATES[@]}" ; do - SRC_URI+=" ftp://ftp.invisible-island.net/${PN}/${PV/_p*}/${MY_P}-${patch_date}.patch.gz" - SRC_URI+=" https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-${patch_date}.patch.gz" - done - unset patch_date - fi - - #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 ~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 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}"/ - 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}" \ - 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() { - 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 -} |