diff options
author | Fabian Groffen <grobian@gentoo.org> | 2020-11-27 17:53:16 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2020-11-27 17:53:16 +0100 |
commit | 43373dc244268c58d9d4efccb1d7314ec3c81558 (patch) | |
tree | 36e4cc5cbd71dcaa50f81444b7e35edb9cb47857 | |
parent | sys-devel/binutils-config-5.1-r3: fix embarrasing syntax error (diff) | |
download | prefix-43373dc244268c58d9d4efccb1d7314ec3c81558.tar.gz prefix-43373dc244268c58d9d4efccb1d7314ec3c81558.tar.bz2 prefix-43373dc244268c58d9d4efccb1d7314ec3c81558.zip |
sys-libs/readline-8.1_rc3: add version for macOS Big Sur
Package-Manager: Portage-3.0.10-prefix, Repoman-3.0.2
RepoMan-Options: --force
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r-- | sys-libs/readline/Manifest | 1 | ||||
-rw-r--r-- | sys-libs/readline/readline-8.1_rc3.ebuild | 219 |
2 files changed, 220 insertions, 0 deletions
diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest index fcd874fecb..6b483d42e2 100644 --- a/sys-libs/readline/Manifest +++ b/sys-libs/readline/Manifest @@ -1,6 +1,7 @@ DIST host-libtool-0.1.0.tar.gz 388867 BLAKE2B e8bfd1212f39d6262721c4a12535799f4e3428b83f3174bac373c15813462950218dd689380ab8caaf84186b60c29a1fafadfa1c2d0e5cb7f76f6d1699bdcabc SHA512 d8764d7814abf06556fb6eb19c12c2de1d1dc9f2f325deae55606ddfcf88963d65713d6fbd1fae0ab1a0668d90f84204e1cdcbd557944660ab01ecfe3a824ca5 DIST readline-7.0.tar.gz 2910016 BLAKE2B 679b8aa7ce003017b729e6d8d4cb69d0f991578441a3e69005090079e61f6aa48b7ad4d0b1f34b6041528cf33254a1bf3ddb05b60db53a06e443d7922d49d0d4 SHA512 18243189d39bf0d4c8a76cddcce75243c1bae8824c686e9b6ba352667607e5b10c5feb79372a1093c1c388d821841670702e940df12eae94bcebdeed90047870 DIST readline-8.0.tar.gz 2975937 BLAKE2B 95e08b28cc46582f036379413810ca40c97d4d3bc59a9e03e04e57d531573abfbe955f6f1cb86e39c208bf6c3f4c618cff70a87bec596d0b9120909d6c5a2f69 SHA512 41759d27bc3a258fefd7f4ff3277fa6ab9c21abb7b160e1a75aa8eba547bd90b288514e76264bd94fb0172da8a4faa54aab2c07b68a0356918ecf7f1969e866f +DIST readline-8.1-rc3.tar.gz 2992934 BLAKE2B 9da55275f3e3534713c0c2f409022166e1fddc26278bdc92064ed9462687f0614bd99bc31f1f2d0027e21c36e4030af1a1eeffe9d9ac1ac431c1928c73dd18a9 SHA512 88301670c8da5ffb5aeb662c453f22a598c3d2cd3319f428c001986ad021ec1005c491a4e96d764f133d078842af87e74c6dfb09612f469396b814991164db7e DIST readline70-001 1777 BLAKE2B ab217bd9d27f30351397db2b745cb33ac7e0ce18bbc00112bb87570da0f62ee0e8d182395c97e4ecc21af51e7e1e580ba48076de1095c556f0744475e4019821 SHA512 4402186905af8cd42c609d640c2e13b9ad61c7778e5a3fd2c2d9da301f0deab05b04d7836f31527262f44f406517823dbb18cb07f2c73931186c806b494699ec DIST readline70-002 2953 BLAKE2B 47d729b1babe904855fe5d4f780a5b2153a743def527479c3cb82759cdee5bb4260be722e1050be680f5c0dd6dec8ca25c4c1ff557415abae6b3fac2bd481f0b SHA512 13d1489578508d4d2c3a1618024198a709dbce74a6bbf0f6d7ec67d2419c55bfec9f0ca9de0ed93f129d21d5c3a94307ccdc49408455bbb301c5e3a772b03185 DIST readline70-003 1294 BLAKE2B 9473e18b582fba69cea83e3f5b9fa278dd8b0544325439307d2b4053cbeca8d2f008104bee181ae5d9405d702e6d3bcf26379c4d46e269906474c8544367b780 SHA512 eaf962a1480eb3870519017b81ecc5cef171e4c41fcf8c17da61ccbfd0379ed6bca85c17b03e2207ae4d51509f33fd010294c75f4bd0433a52118015d4160385 diff --git a/sys-libs/readline/readline-8.1_rc3.ebuild b/sys-libs/readline/readline-8.1_rc3.ebuild new file mode 100644 index 0000000000..4a3b743d26 --- /dev/null +++ b/sys-libs/readline/readline-8.1_rc3.ebuild @@ -0,0 +1,219 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib-minimal preserve-libs toolchain-funcs usr-ldscript libtool + +# Official patches +# See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/ +PLEVEL="${PV##*_p}" +MY_PV="${PV/_p*}" +MY_PV="${MY_PV/_/-}" +MY_P="${PN}-${MY_PV}" +[[ ${PV} != *_p* ]] && PLEVEL=0 +patches() { + [[ ${PLEVEL} -eq 0 ]] && return 1 + local opt=$1 + eval set -- {1..${PLEVEL}} + set -- $(printf "${PN}${MY_PV/\.}-%03d " "$@") + if [[ ${opt} == -s ]] ; then + echo "${@/#/${DISTDIR}/}" + else + local u + for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${PN} ; do + printf "${u}/${PN}-${MY_PV}-patches/%s " "$@" + done + fi +} + +DESCRIPTION="Another cute console display library" +HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html" + +case ${PV} in + *_alpha*|*_beta*|*_rc*) + SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz" + ;; + *) + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz $(patches)" + ;; +esac + +HOSTLTV="0.1.0" +HOSTLT="host-libtool-${HOSTLTV}" +HOSTLT_URI="https://github.com/haubi/host-libtool/releases/download/v${HOSTLTV}/${HOSTLT}.tar.gz" +SRC_URI+=" ${HOSTLT_URI}" +HOSTLT_S=${WORKDIR}/${HOSTLT} + +LICENSE="GPL-3" +SLOT="0/8" # subslot matches SONAME major +[[ "${PV}" == *_rc* ]] || \ +KEYWORDS="~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="static-libs +unicode utils" + +RDEPEND=">=sys-libs/ncurses-5.9-r3:0=[static-libs?,unicode?,${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig +" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0-no_rpath.patch + "${FILESDIR}"/${PN}-6.2-rlfe-tgoto.patch #385091 + "${FILESDIR}"/${PN}-7.0-headers.patch + "${FILESDIR}"/${PN}-8.0-headers.patch + + "${FILESDIR}"/${PN}-5.2-rlfe-aix-eff_uid.patch + "${FILESDIR}"/${PN}-5.2-rlfe-hpux.patch + "${FILESDIR}"/${PN}-5.2-ia64hpux.patch + "${FILESDIR}"/${PN}-6.0-mint.patch + "${FILESDIR}"/${PN}-6.0-rlfe-solaris.patch + "${FILESDIR}"/${PN}-6.1-aix-soname.patch + "${FILESDIR}"/${PN}-6.1-aix-expfull.patch + "${FILESDIR}"/${PN}-6.3-interix.patch + "${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch + + "${FILESDIR}"/${PN}-7.0-libtool.patch # this enables building via libtool +) + +# Needed because we don't want the patches being unpacked +# (which emits annoying and useless error messages) +src_unpack() { + unpack ${HOSTLT}.tar.gz + S="${HOSTLT_S}" elibtoolize + unpack ${MY_P}.tar.gz +} + +src_prepare() { + [[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s) + default + + # Force ncurses linking. #71420 + # Use pkg-config to get the right values. #457558 + local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs) + sed -i \ + -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \ + support/shobj-conf || die + sed -i \ + -e "/^[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \ + examples/rlfe/configure || die + + # fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated + # objformat for years, so we don't want to rely on that. + sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die + + ln -s ../.. examples/rlfe/readline || die # for local readline headers +} + +src_configure() { + mkdir -p "${WORKDIR}/${HOSTLT}-${ABI}" || die + cd "${WORKDIR}/${HOSTLT}-${ABI}" || die + ECONF_SOURCE="${HOSTLT_S}" econf $(use_enable static-libs static) + cd "${BUILD_DIR}" + + export PATH="${WORKDIR}/${HOSTLT}-${ABI}:${PATH}" + export ncurses_libs=$($(tc-getPKG_CONFIG) ncurses --libs) + + # fix implicit decls with widechar funcs + append-cppflags -D_GNU_SOURCE + # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html + append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free + + # Make sure configure picks a better ar than `ar`. #484866 + export ac_cv_prog_AR=$(tc-getAR) + + # Force the test since we used sed above to force it. + export bash_cv_termcap_lib=ncurses + + # Control cross-compiling cases when we know the right answer. + # In cases where the C library doesn't support wide characters, readline + # itself won't work correctly, so forcing the answer below should be OK. + if tc-is-cross-compiler ; then + use kernel_Winnt || export bash_cv_func_sigsetjmp='present' + export bash_cv_func_ctype_nonascii='yes' + export bash_cv_wcwidth_broken='no' #503312 + fi + + # This is for rlfe, but we need to make sure LDFLAGS doesn't change + # so we can re-use the config cache file between the two. + append-ldflags -L. + export LDFLAGS="-L${BUILD_DIR}/shlib ${LDFLAGS}" # search local dirs first + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + --cache-file="${BUILD_DIR}"/config.cache + --with-curses + --disable-shared # use libtool instead + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # code is full of AC_TRY_RUN() + mkdir -p examples/rlfe || die + cd examples/rlfe || die + ECONF_SOURCE="${S}"/examples/rlfe \ + econf --cache-file="${BUILD_DIR}"/config.cache + fi +} + +multilib_src_compile() { + export PATH="${WORKDIR}/${HOSTLT}-${ABI}:${PATH}" + export ncurses_libs=$($(tc-getPKG_CONFIG) ncurses --libs) + emake shared + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # code is full of AC_TRY_RUN() + cd examples/rlfe || die + local l + for l in readline history ; do + ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die + ln -s ../../lib${l}.a lib${l}.a || die + done + emake LTLINK='libtool --mode=link --tag=CC' + fi +} + +multilib_src_install() { + export PATH="${WORKDIR}/${HOSTLT}-${ABI}:${PATH}" + export ncurses_libs=$($(tc-getPKG_CONFIG) ncurses --libs) + emake DESTDIR="${D}" install-shared + + if multilib_is_native_abi ; then + gen_usr_ldscript -a readline history #4411 + + if use utils && ! tc-is-cross-compiler; then + dobin examples/rlfe/rlfe + fi + fi +} + +multilib_src_install_all() { + HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs + dodoc USAGE + docinto ps + dodoc doc/*.ps + + find "${D}" -name '*.la' -type f -delete || die +} +pkg_preinst() { + # bug #29865 + # Reappeared in #595324 with paludis so keeping this for now... + preserve_old_lib \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} + +pkg_postinst() { + preserve_old_lib_notify \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} |