diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-04-30 00:00:01 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-04-30 00:00:01 +0100 |
commit | 4c2b70adc6484c35ff05e412de08a7b7f50cfb34 (patch) | |
tree | c7557ae36b9b2bfa7134849511e79da938581c5f /sys-libs/ncurses-compat | |
parent | 5f0030fd1370c4d03dbb2e0d3086f5e618a33749 (diff) |
gentoo auto-resync : 30:04:2024 - 00:00:01
Diffstat (limited to 'sys-libs/ncurses-compat')
-rw-r--r-- | sys-libs/ncurses-compat/Manifest | 6 | ||||
-rw-r--r-- | sys-libs/ncurses-compat/ncurses-compat-6.4_p20240414.ebuild | 384 |
2 files changed, 390 insertions, 0 deletions
diff --git a/sys-libs/ncurses-compat/Manifest b/sys-libs/ncurses-compat/Manifest index 446733aca758..e43fd23eccdf 100644 --- a/sys-libs/ncurses-compat/Manifest +++ b/sys-libs/ncurses-compat/Manifest @@ -132,10 +132,16 @@ DIST ncurses-6.4-20240323.patch.gz 143301 BLAKE2B f51c229985025950ebe0b35e1e9cb1 DIST ncurses-6.4-20240323.patch.gz.asc 729 BLAKE2B 380eaa8b0f3faa3e2ff21a3847c6f2ba59019adec68391134bb68bdecfd13cb56589ad4ec062dd391ae3d7bd96a306d85e78ef0827300de594723d188272e7c4 SHA512 380675d04ad1db69a039001b109bea6e7ef3f9fa0059ebe8b17ad12d0b59b20dd18b90abedb63f95db2ed6ad770de77aacc85c24d70bb883b1851c72c5dada88 DIST ncurses-6.4-20240330.patch.gz 63526 BLAKE2B 593823a358017e5f98e897ebd6e1a2f945b0329c51a76b0ea65458751d2486dc51a71c1d0fdfbc1741167c47ed0b8aedc52b1a923c4788f23293d7e7729885c7 SHA512 666c8f7a37bc2b93b9b0ff76f2a5fe412f1d5c0c9260b64a26665e7c3ba74a9f05ae3883a512425d901ab943948509792759297ea85b9642cd02b7b64455326e DIST ncurses-6.4-20240330.patch.gz.asc 729 BLAKE2B 159c110254d81b1c83d7cdb3250fce7ac12d1b4773e6c1a4a347bc7a5d96893504b1a7066d6a8997c3db467ba7d3705e043714000142fd2ebac6e9a008a62ae8 SHA512 1a0dcc56e79da6e0d615bd0a6571869e42aa6e31233e6cb01fe85c8816c82858c23e93a47650e1a4fd8cee2461e4900f7b78a4f9aa3149a0aec6cda704f9c163 +DIST ncurses-6.4-20240413.patch.gz 113122 BLAKE2B d8e5d011a8ab61dd30624c51d7917ecc66f388c8b0edcba25f35179031a16b5a41379d8c5f2c40a2b6af5e485b25ca8a3cb1c97301450b00c14e2640187f0054 SHA512 45c14df0fc4229667ae173cd4eb37fad2a3dbcb8906763a4d472fad7b563dbe72dbc0bc12e6070e6e7f2e64fc2f3a254bffe5d1e904dce9f5636fccdd2761750 +DIST ncurses-6.4-20240413.patch.gz.asc 729 BLAKE2B 3786f815cddf3f6ebbf89da47e3151c01d50f26c2fa713cb982c61b7190ca25a807b6f7264688a296d5d252c78f4737372f2c6f26d7713bc448c5228676e922f SHA512 c172fe7f308a01474d04b06919b43710abcdb9fe3961396cbc7731f619093ed18bc7deb9bb62075e3bd0bb88d345059c9bf485a4f9ef614dc1109d4549c95a34 +DIST ncurses-6.4-20240414.patch.gz 3007 BLAKE2B a4db0635df3b2669ae1ba0057c21f717db2512aa51545ea5157dbaf33c3db334cf8315ecd60a4c8a6406e6e7ba417e23f00f575af72c56b18046e3c4a34dab87 SHA512 348ffdbeb2b7350493957562a0af1a217590dd35cd9f8f27ff46adfb969018224e170b63581f5b3ad268293441db59878898bd23d1d1a4add77fc681344df526 +DIST ncurses-6.4-20240414.patch.gz.asc 729 BLAKE2B 8d579b2724245756947200a3e704c1ae534ba64e6986ad009a5ca9d33145fff82ddae9003a7c6ffe5b64b68f813661440afcac0a1321e5b80113d3ec94e1ea5a SHA512 0976a253d11fb10d52fee1cd2ad38e80b0b531f89efe94a62b9a0e2d69206bd1574140785776c7f6bd19775f6ca446c582da31cd9f51a8b0f12039d1e9695600 DIST ncurses-6.4.tar.gz 3612591 BLAKE2B 47fd9c2d27f44fa9942552881a471e5067465dbace40bf68b28998dded0556127a1d8662b96de4de4fd76c1c8b98bdae796036553ab4b05ca9f160839d841ba3 SHA512 1c2efff87a82a57e57b0c60023c87bae93f6718114c8f9dc010d4c21119a2f7576d0225dab5f0a227c2cfc6fb6bdbd62728e407f35fce5bf351bb50cf9e0fd34 DIST ncurses-6.4.tar.gz.sig 438 BLAKE2B e6a78b8d0cbce1577205b49b0260394094632cefd95294813c7e4e51a2908e8599a9f24b3b648e42ba16c015fb9424b2a82236f58aac3bf96f5400a50482e44e SHA512 f2a7859725b4d5d62f68006338d56598ac6b38a1448983108906e192f0ec922be287cc89bcc79c1ae49ebc80c967af3dd077427f35ae579b00d445c882414fed DIST ncurses-6.4_p20230408-patches.tar.xz 80472 BLAKE2B 0ba8156ebd4f1691fec7bc1b800ef39ce6a4210573c027dd437919cdcd7c995830116da06c69f31c65923845a4d5c88e974673fac38acce5813f7d6cdc646e3e SHA512 32960e2cc4cd9dc60c38b49f46c5ce2c02179479abb66ca29f63cd06475ae8e26299a78b5f06762d114aefbbca3ba6fbebe7093a58106eeaa40cf500d21633a4 DIST ncurses-6.4_p20240330-patches.tar.xz 63796 BLAKE2B 3e6618ba0b37268d10a16cf26c2810e55c17ded97079af3753e34f2d12575f979a2e55cfd308abf783e35e39d4a848b89f435b4886d3633007ccb522b8dc2e51 SHA512 1bbf1978f9287f68bf6a8596f06d4d0523564bf3d2f6b3bd9746081a2fa0c76e36862beca62a4157d51cac0df61e456ddb6cacfae10b92344fe80cd752f72c38 +DIST ncurses-6.4_p20240413-patches.tar.xz 63760 BLAKE2B 6a91d453cca3705ca54b3a6f2ef00250d655168c1697726db4b581a1597cbc143479b8794e176d5e4154c794f99ea33c3fe1eb26605789930fc82649a2da3c93 SHA512 59239503a9400e054641428528799aa9c13b12669b31f32b2ff18cb60882698801e04dcdf75ece8357c7a4c3b899a729aa973090ec12a20de72cb80a916878b8 EBUILD ncurses-compat-6.4_p20230401.ebuild 9855 BLAKE2B 415fe12deea6175f395c202646cdeed1596a4de842ee9bccfaf1757fc34a3658adf53113d9cf73b854405132241d9ba8afbdcb68dce7a288341502d39d834cab SHA512 78232fa71408fd20a7fc57c470df4249a0b066c2cb0f69f0cb4b879c08d39c2b30a4811bf4213752159b1e43a8f6c3e51f2f12738888f322def513faf50db43f EBUILD ncurses-compat-6.4_p20240330.ebuild 10492 BLAKE2B 184d547206db9f60a5145c770c4e90c8419e5c720863a7fda4cd589281a889ca67f7ecb26038bf50d0772aa844dfed844cb007c9b5827372d1a255a69e2da9b0 SHA512 dd4cf16b3c4882ff5901139c123d63f5678c2e224ac8bece8ade26fd081b7e72ac6330c1851d4b3e6bb686801677e5397737c05cd4607f236eb3a3b74fdc1d66 +EBUILD ncurses-compat-6.4_p20240414.ebuild 10521 BLAKE2B 88aed2f5531e70fa22472c9a374b15a86fa79ae8447f672a876db5fab079e0f2156135d946a38dd31ee764bca7069fc5be4cf595d8be3804cf6cf6e08c04f68d SHA512 7e0246f8b42f4a95836d43410f8b896279727806658ea36c8c6cc657e520a1b1f1b1a8ebc45dd3d55e220215c616b183cab0a63b1556d3ce6d3c1e06f1e2d184 MISC metadata.xml 949 BLAKE2B 02d84363ace3523a818cf986afab5b7ddc3034d8fd1e365c054f802e944601ea4b4d579a27d06ddef9045730f05d5b901eb688bd7a53e341363feb7065318420 SHA512 3489cb9d8f931f74e898bed2d7bf6ca29934b9a5ebf3f58b8d3f1b68c87fc3cb7804cfefce2b1369ec0b6bf2e7ec22dc43e07920d99d4fc9edec0a970bf7be87 diff --git a/sys-libs/ncurses-compat/ncurses-compat-6.4_p20240414.ebuild b/sys-libs/ncurses-compat/ncurses-compat-6.4_p20240414.ebuild new file mode 100644 index 000000000000..60f46e766305 --- /dev/null +++ b/sys-libs/ncurses-compat/ncurses-compat-6.4_p20240414.ebuild @@ -0,0 +1,384 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# This version is just for the ABI .5 library. +# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream +# provide a configure option (which we use here) for the ABI version. + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc +inherit flag-o-matic toolchain-funcs multilib multilib-minimal verify-sig + +MY_PV="${PV:0:3}" +MY_P="${PN/-compat}-${MY_PV}" +MY_PN="${PN/-compat}" + +DESCRIPTION="Console display library (ABI version 5)" +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.4_p20240413 +GENTOO_PATCH_NAME=${MY_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=( + 20230107 + 20230114 + 20230121 + 20230128 + 20230211 + 20230218 + 20230225 + 20230311 + 20230401 + 20230408 + 20230415 + 20230418 + 20230423 + 20230424 + 20230429 + 20230506 + 20230514 + 20230520 + 20230527 + 20230603 + 20230610 + 20230615 + 20230617 + 20230624 + 20230625 + 20230701 + 20230708 + 20230715 + 20230722 + 20230729 + 20230805 + 20230812 + 20230819 + 20230826 + 20230902 + 20230909 + 20230917 + 20230918 + 20230923 + 20231001 + 20231007 + 20231014 + 20231016 + 20231021 + 20231028 + 20231104 + 20231111 + 20231118 + 20231121 + 20231125 + 20231202 + 20231209 + 20231217 + 20231223 + 20231230 + 20240106 + 20240113 + 20240120 + 20240127 + 20240203 + 20240210 + 20240217 + 20240224 + 20240302 + 20240309 + 20240323 + 20240330 + 20240413 + + # 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*}/${MY_P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" + + # If we have a rollup patch, use that instead of the individual ones. + UPSTREAM_PATCHES+=( patch.sh ) + else + # We use a mirror as well because we've had reports of 403 forbidden for some users. + upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" + upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" + + # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) + mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) + # Suffix each with .patch.gz + mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) + mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) + # Repeat for .patch.gz.asc for verify-sig + SRC_URI+=" ${mangled_patches[@]}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" + + # For all of the URLs, chuck in invisible-island.net too: + SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" + + UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) + + unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig + fi +fi + +SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="5/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="gpm +stack-realign tinfo unicode" + +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the ncurses-5 that installs the same lib, bug #557472 +RDEPEND=" + ${DEPEND} + !<sys-libs/ncurses-6:0 + !sys-libs/ncurses:5 +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )" + +PATCHES=( + "${UPSTREAM_PATCHES[@]/#/${WORKDIR}/${MY_P}-}" + + # When rebasing Gentoo's patchset, please use git from a clean + # src_prepare with upstream patches already applied. git am --reject + # the existing patchset and rebase as required. This makes it easier + # to manage future rebasing & adding new patches. + # + # For the same reasons, please include the original configure.in changes, + # NOT just the generated results! + "${WORKDIR}"/${GENTOO_PATCH_NAME} +) + +src_unpack() { + # Avoid trying to verify our own patchset tarball, there's no point + if use verify-sig ; then + local file + for file in ${A} ; do + if [[ ${file} == ${MY_P}.tar.gz ]] ; then + verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig + else + [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue + + verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc + fi + done + fi + + default +} + +src_configure() { + # bug #115036 + unset TERMINFO + + tc-export_build_env BUILD_{CC,CXX,CPP} + + # bug #214642 + BUILD_CPPFLAGS+=" -D_GNU_SOURCE" + + # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 + # Order matters here -- we want unicode/thread versions to come last so that the + # binaries in /usr/bin support both wide and narrow. + # The naming is also important as we use these directly with filenames and when + # checking configure flags. + NCURSES_TARGETS=( + ncurses + $(usev unicode 'ncursesw') + ) + + # When installing ncurses, we have to use a compatible version of tic. + # This comes up when cross-compiling, doing multilib builds, upgrading, + # or installing for the first time. Build a local copy of tic whenever + # the host version isn't available. bug #249363, bug #557598 + if ! has_version -b "~sys-libs/${P}:0" ; then + local lbuildflags="-static" + + # some toolchains don't quite support static linking + local dbuildflags="-Wl,-rpath,${WORKDIR}/lib" + case ${CHOST} in + *-darwin*) dbuildflags= ;; + 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} \ + CXX=${BUILD_CXX} \ + CPP=${BUILD_CPP} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal + fi + multilib-minimal_src_configure +} + +multilib_src_configure() { + 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-rel-version=5.9 ?? + --with-abi-version=5 + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" + + # Now the rest of the various standard flags. + --without-hashed-db + --disable-pc-files + --with-shared + --without-hashed-db + --without-ada + --without-cxx + --without-cxx-binding + --without-debug + --without-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) + --disable-termcap + --enable-symlinks + --with-manpage-format=normal + --enable-const + --enable-colorfgbg + --enable-echo + --disable-warnings + --without-assertions + --enable-leaks + --without-expanded + --with-macros + --without-progs + --without-tests + --without-trace + $(use_with tinfo termlib) + + # The chtype/mmask-t settings below are to retain ABI compat + # with ncurses-5.4 so dont change em ! + --with-chtype=long + --with-mmask-t=long + --disable-ext-colors + --disable-ext-mouse + --without-{pthread,reentrant} + ) + + if [[ ${target} == ncurses*w ]] ; then + conf+=( --enable-widec ) + else + conf+=( --disable-widec ) + fi + + # Make sure each variant goes in a unique location. + if [[ ${target} != "ncurses" ]] ; then + 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" + else + conf+=( --with-progs ) + fi + + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" +} + +src_compile() { + # See comments in src_configure. + if ! has_version -b "~sys-libs/${P}:0" ; then + BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) + 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 lib + for target in "${NCURSES_TARGETS[@]}" ; do + cd "${BUILD_DIR}/${target}/lib" || die + for lib in *5.9 ; do + newlib.so "${lib}" "${lib%%.9}" + done + done +} |