From fc32d443f6a2e4d05c712c050bb74e8f79f4af1f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 19 Sep 2022 05:21:10 +0100 Subject: gentoo auto-resync : 19:09:2022 - 05:21:10 --- sys-libs/ncurses/Manifest | 9 +- sys-libs/ncurses/ncurses-6.3_p20220903-r1.ebuild | 446 ---------------------- sys-libs/ncurses/ncurses-6.3_p20220903.ebuild | 444 ---------------------- sys-libs/ncurses/ncurses-6.3_p20220910-r1.ebuild | 459 ---------------------- sys-libs/ncurses/ncurses-6.3_p20220910.ebuild | 459 ---------------------- sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild | 464 +++++++++++++++++++++++ sys-libs/ncurses/ncurses-6.3_p20220917.ebuild | 462 ++++++++++++++++++++++ 7 files changed, 930 insertions(+), 1813 deletions(-) delete mode 100644 sys-libs/ncurses/ncurses-6.3_p20220903-r1.ebuild delete mode 100644 sys-libs/ncurses/ncurses-6.3_p20220903.ebuild delete mode 100644 sys-libs/ncurses/ncurses-6.3_p20220910-r1.ebuild delete mode 100644 sys-libs/ncurses/ncurses-6.3_p20220910.ebuild create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220917.ebuild (limited to 'sys-libs/ncurses') diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index 87bba01ef034..38cf7cd3f85e 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -99,15 +99,14 @@ DIST ncurses-6.3-20220903.patch.gz 4814 BLAKE2B 668041aef48d9ce37474edc6d70e0725 DIST ncurses-6.3-20220903.patch.gz.asc 729 BLAKE2B 2f076ce9d390ee02edc0b58ecf3a6881897062e34a5f4c09b503c4b306ee70fb0f08e38518029eae4933508a48bda92716dd4b76159a0aa3d7bbd3835d2695ff SHA512 18cb1a77f67b6fddc9f83366487cb547fe1439e7edcd4fc27632702cd3ffc79622dd1421d32454489d08acec7403a04239b34794e81750b703385189a4534b04 DIST ncurses-6.3-20220910.patch.gz 120984 BLAKE2B 69ad11c6d31d4bb97737e6ede506bac81cd65cf262c1bf6528d4844e8beb4cb353fa7e390d3817c181fead42b268688f8898e9fabf5f98bbef007355ec4b0b7b SHA512 269c376d494e3a82915436d6fbe1bb69dfe70c0330c6f2a8f6a9e49180a332b7fd8ccda0448db723a50c6f5a250391f05c974bc60a9355d3a94380c7afd4192b DIST ncurses-6.3-20220910.patch.gz.asc 729 BLAKE2B 55c87ac9edd67abf2c39823acc37a9c8dce6852344d38b442bc2e4693a44412383c2ea710d3030b079607824877f6a1f5efc50970ccd51086c62ebed23e7ee05 SHA512 887031e5248665c79abbc35f4c1e63cffa3b271359188e266372c624b1ac2ce6bb269823c16ea0f6662e4e4acf592179db8f0030fdd9b03ed531d37d5fb7b44e +DIST ncurses-6.3-20220917.patch.gz 7833 BLAKE2B 338ddfc2b660cff6248bcb2fc39ef13baf3d622c9f68b47c2da4d94e21a12dec7f6d98f7125a154f1e4dbe612cde9172de9d78851bba1fe4e9106dc1cd9e0a26 SHA512 5b2de00087211b9e599aecbe94870504c4bd312d9f0ab4959e706f784700e6e3095beeb8283ed8df9911f5e841f1004a2ef5184ee2c04762a63d84c47c2f4cfe +DIST ncurses-6.3-20220917.patch.gz.asc 729 BLAKE2B c952f018cee490635809fa3a4ead27964a639289db16db42768c545e85b56033b01ea45b9251cd14f4d0cff97673566a4c8d04f93a1539392b676baeecc0307c SHA512 57de37e7c0fe70b0c1abdabe77b36a95b2845b423f167dd4d5acf5999a7152d69193f707c41f88d6e4210934c120d8c72a93830c6f2f9cb49832266e02314588 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_p20220903-patches.tar.xz 76908 BLAKE2B a5afb3a5c016ad6b602e6af77cc4fc067692f1e1245cf006feb2b74e69be13b2ffb2b14c7b5de48780965d6b596621cc399c316657ae63afbe5ea9ff2d9715fa SHA512 11ae7458f925a68bf6d482f204e9e57ef23cf456ea9827c713787f635bd11621c3612651a90f3f3a3c7c2742f95fde4bc87d6500115ef74300b9a4d240ff74ad DIST ncurses-6.3_p20220910-patches.tar.xz 62776 BLAKE2B a65260559ca4f69d724fdaec5ebade7f213144ff77485f6a8b6a55632736caae350ab478550d7ad3a3b723c4804397e8c5dfbed172f77f4f91a444a545b85f16 SHA512 21a51325ab649213e09ea67bc22045e91e67766211766f2d19477e740d36cb235b292576230d087532ba0b44947938d29fd2d28199084fb91e3f8cd3cd6cf00a EBUILD ncurses-6.3_p20220423.ebuild 12167 BLAKE2B d7ea349cae22e242b2dabb4376f61e22902003137387a5a0af844961c3f2d64b2618fc3f9c654285491f2f80bb1de70124a8cd86345de4239331f3e69537a8be SHA512 7f5bcaed9bceb9eea739d4396ac0a1293aa3194d9d3f4085ece5db541fe86b8dbee76317e5b12ffbb7243eb09aa123b2c8efb376b1b3ebf5c795aed5a4dc9eef EBUILD ncurses-6.3_p20220827-r1.ebuild 12236 BLAKE2B 53261bd55ba8d2efa739b9309624bbf17e20984dab9e0b040cffc4058f3bfd394853a0a72e0223d227882b2676b2f56d8c2703256955bab7e347a0b9f3aa2a1c SHA512 5d67dc3716535da4bf5167f674f17e1bffb4359806cfd222a48a011d7f500cd58a2d11d0c86819e21dcf4d5852f125353402d16ac7ee588f53a75fb392e79cce EBUILD ncurses-6.3_p20220827.ebuild 12110 BLAKE2B aa1226cb5e8ea8b23f66e9e7376e795594a8da27eb668fe9252418a40333162901e51194b1270e8b0a47adf18d795305dd87885aa3604c4f7a753c697082a393 SHA512 d47f2c1be92863dbd377b47dfa91d7114b05cc9443e90aaae6ca2b59a7d2d46e75f198acd518ed3224547d1378cb0c93e20c6b569efeb7d0ef4472d7f8b0e192 -EBUILD ncurses-6.3_p20220903-r1.ebuild 13115 BLAKE2B 481f8c3cc5234c94445aa1a42abfe4311466cfcc42b5cf4a246324423e86f0ab6598747b78bada30819d45ee42a3ec02cbef6f30516cb3eb3bcac8f0b2ca7756 SHA512 6f13d98105d885248d9c877a539a6898353795c10029a0c265fbb409cc304bcc92dc353c201062f69e970430906b41951a3e6d7c7df69f57fd4027ee16581fbb -EBUILD ncurses-6.3_p20220903.ebuild 12989 BLAKE2B 27c780a49821c260d623a98791426ce4c02a655329e2e7129d5d9666ef47056cae0355e3363a42ed1fb6e582af8c1f3bc885673098f7edac7a651f3bf7cb00be SHA512 4678c641f07b064709c0e53677a33b5918ebaa9b1114722736cf767473403a0145e49e72887bde2a0e880874606a12fc6e0364a1f2095486fa760a7fc3847a18 -EBUILD ncurses-6.3_p20220910-r1.ebuild 13670 BLAKE2B 666447b4944b96a4d38623686363a8787cc4ba596e7318e1422e7ee31a7d6acd5de0e927967470d7dde3c2b7e9ca388bc535d7e6c9922bb12a14b4781d4e3a73 SHA512 d390591b170c7a639f30f282ff0a3869e881cd8bee11cd67f4901d99c42a684eea8695a5acb4034a7cabe10abc3c7e62c05018af9cad52acd57116ce43d145d8 -EBUILD ncurses-6.3_p20220910.ebuild 13670 BLAKE2B 666447b4944b96a4d38623686363a8787cc4ba596e7318e1422e7ee31a7d6acd5de0e927967470d7dde3c2b7e9ca388bc535d7e6c9922bb12a14b4781d4e3a73 SHA512 d390591b170c7a639f30f282ff0a3869e881cd8bee11cd67f4901d99c42a684eea8695a5acb4034a7cabe10abc3c7e62c05018af9cad52acd57116ce43d145d8 +EBUILD ncurses-6.3_p20220917-r1.ebuild 13651 BLAKE2B ea86e9fa7612733045230fe19acbaa0b6c6088b39d63d386d362b9c42f3e5ecf8d27310f1761b1e9e4c4a9a2f051e1bb35377ed718d8edac35a9e7a1354bb89b SHA512 d571f2cddd6e32043fd9a6ac54bead7502082eb6b2302aa929e8f79ac8d00371237c81eda7004da5e19ed40b13fc7f8af8acc6e6cb14d21210cf603a42d1d15d +EBUILD ncurses-6.3_p20220917.ebuild 13525 BLAKE2B d7c7d30af0e28d4d4af319772fcec6b550eeed446c6bb2393b8fb9fdb2c03c7015a61ebb8447761ceaa7e415f4434f4e6a02488246cff4ebbe0de4559ec2049a SHA512 590bd5c3b11aad73b985115461a8a4eff412a6057f9ff253a4835c3f7d98d828b80b4f090576ca09568befd5e5a483f05320b7f1918233be92f16eb35775ff4c MISC metadata.xml 1094 BLAKE2B a65bbb9584f77fb07fff735e6471ef48a5d63e7fa79112bf75df67f2f94e816706165fdd42a482708a7fd2ab3b3e308f9766eac0b39c3a4e31dcff5b3db25d57 SHA512 adf0f939a1e14c964bfb44ab80b1b8c1ee897a036a994848ba3e40280ab3a73ddb3beef540c905efd623e71b890c4c91e0b7c24651561d0e2bb2a4c86f039dba diff --git a/sys-libs/ncurses/ncurses-6.3_p20220903-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220903-r1.ebuild deleted file mode 100644 index 9985db97618b..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20220903-r1.ebuild +++ /dev/null @@ -1,446 +0,0 @@ -# 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 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/" -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz - https://invisible-island.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_p20220903 -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 - - # 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= - - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch ) - done - - unset patch_url - unset my_patch_index - 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 +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 - !& /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 - - 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() { - # We need the basic terminfo files in /etc for embedded/recovery, bug #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 - - 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 - - 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_p20220903.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220903.ebuild deleted file mode 100644 index 1b8eb4516559..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20220903.ebuild +++ /dev/null @@ -1,444 +0,0 @@ -# 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 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/" -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz - https://invisible-island.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_p20220903 -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 - - # 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= - - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch ) - done - - unset patch_url - unset my_patch_index - 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 +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 - !& /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 - - 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 - - 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, 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 -} - -multilib_src_install_all() { - # We need the basic terminfo files in /etc for embedded/recovery, bug #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 - - 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 - - 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_p20220910-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220910-r1.ebuild deleted file mode 100644 index 3a999786f58d..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20220910-r1.ebuild +++ /dev/null @@ -1,459 +0,0 @@ -# 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 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_p20220910 -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 - - # 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= - - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - patch_url="$(printf "https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - patch_url="$(printf "https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch ) - done - - unset patch_url - unset my_patch_index - 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 +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 - !& /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 - - 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 - - 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, 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 -} - -multilib_src_install_all() { - # We need the basic terminfo files in /etc for embedded/recovery, bug #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 - - 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 - - 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_p20220910.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220910.ebuild deleted file mode 100644 index 3a999786f58d..000000000000 --- a/sys-libs/ncurses/ncurses-6.3_p20220910.ebuild +++ /dev/null @@ -1,459 +0,0 @@ -# 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 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_p20220910 -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 - - # 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= - - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - patch_url="$(printf "https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - patch_url="$(printf "https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" - # TODO: replace with loop - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.asc )" - - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch ) - done - - unset patch_url - unset my_patch_index - 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 +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 - !& /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 - - 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 - - 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, 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 -} - -multilib_src_install_all() { - # We need the basic terminfo files in /etc for embedded/recovery, bug #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 - - 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 - - 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_p20220917-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild new file mode 100644 index 000000000000..f412a82933aa --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild @@ -0,0 +1,464 @@ +# 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 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_p20220910 +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 + + # 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 +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 + !& /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 + + 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() { + # We need the basic terminfo files in /etc for embedded/recovery, bug #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 + + 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 + + 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_p20220917.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220917.ebuild new file mode 100644 index 000000000000..ac56ad1e72d6 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.3_p20220917.ebuild @@ -0,0 +1,462 @@ +# 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 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_p20220910 +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 + + # 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 +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 + !& /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 + + 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 + + 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, 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 +} + +multilib_src_install_all() { + # We need the basic terminfo files in /etc for embedded/recovery, bug #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 + + 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 + + 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 +} -- cgit v1.2.3