commit:     913f6431cc0389d09c75e50cacd751556fdd4133
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  8 04:44:04 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Oct  8 04:44:04 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=913f6431

sys-libs/readline: add 8.4_alpha_pre20251007

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/readline/Manifest                         |   1 +
 .../readline/readline-8.4_alpha_pre20251007.ebuild | 257 +++++++++++++++++++++
 2 files changed, 258 insertions(+)

diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest
index b3b3fa5a55e2..52cca924fb21 100644
--- a/sys-libs/readline/Manifest
+++ b/sys-libs/readline/Manifest
@@ -4,6 +4,7 @@ DIST readline-8.2.tar.gz.sig 95 BLAKE2B 
dc510459c0c47782ca87364a6677b4d8f0b68a98
 DIST readline-8.3.tar.gz 3419642 BLAKE2B 
45d6fe7e34c56d309102a94aa776a7f5284201e844450e14ff818df9fa84a72154bdca70f11828c94954b080cbbe4666fa0b00ffa8460118ec8f3ea551b73dad
 SHA512 
513002753dcf5db9213dbbb61d51217245f6a40d33b1dd45238e8062dfa8eef0c890b87a5548e11db959e842724fb572c4d3d7fb433773762a63c30efe808344
 DIST readline-8.3.tar.gz.sig 95 BLAKE2B 
088be0a0dbcafc6e9643daac987bf09e37b919b28c87ffbd7d47ee798f71d5e2eb48a07ae040e7290465c95c32385b10b3a0c1285861d4c663e6e1fd28b091b6
 SHA512 
8f9d4adeb068016e61f76052fb38552db447fc461c7d48811d8af5f0436abce20277e08c475a1c48c99fa37f2b20ca549a94eb5cee0fe6f0d4c854699cc0988c
 DIST 
readline-8.4_alpha_pre20250805-488d7edc22894d30b6de7f2d4190bf7403f63ffd.tar.gz 
3483136 BLAKE2B 
0aade82ce2cb240d9c5e3039ac6ff5b674413a71318ec5e60ef2ee34725bf1dee5b24e7300b80c4cfb99f92f4e71c76b02598051eb2b5c558427e877a0321373
 SHA512 
cbfc17d9350452fdf9ea0a32472d2fde66a0d6e2ed7b2bf0d9ec000082ca5c61ebef3375ab8f95e3354a0df5fe6a47708163405af007f1fd9d55875fa02032bf
+DIST 
readline-8.4_alpha_pre20251007-a0ceb95d8c5d730ac9461e4abaea402e862ac907.tar.gz 
3484547 BLAKE2B 
159cd4ab7e335121d1ffcb0ebc803ebe79df1432a1fba3ac3c24c96d3b3648d386f5eed0305ecc0a3a057c30b4cd2a1a0c13cb00beaae88c9ed93fac3da3a981
 SHA512 
729b85255791ba757a09c59c04cc7f6bfd0daa8adacc7243fbd7216045e1b0a225cb98487f23d540a3037146f11bc6e014f81c63968a9a1edcd6a2558c579eeb
 DIST readline82-001 1198 BLAKE2B 
2e8f3d2aa14c4c4c4f9621f80f4ffae9bbd6f46c3561e87aaf684c759ffd82e3c46843cf4c4224533b28a847d83f7b8b254813f8a306d438e9f7cb457516c4e0
 SHA512 
ea3800a62e992b3e594d78e77b6c4b662fb8c501b81010277e478656bb3b56db7747ba40c6c3d68c3ec5ab8e9e41be104788ec52268135d7e642ff40dea421a8
 DIST readline82-001.sig 94 BLAKE2B 
542ac331a7da3702b47f4828b3264bc7bf996f473807d675044beeb9688c4ca3645bcba0898d3ea9447c1cde540eb8a6b1934008b0a11baef33235e43f44c6c7
 SHA512 
01ad9769fee42dc601b511c87bd39e15c74226e1747c4ae8914e303213706005780135add180dbfe538fe847533dc56cfe8f51a3ad9ec55d1fde2cb2e096bfb5
 DIST readline82-002 1134 BLAKE2B 
799f089105be9931ba13d562d4579b4d1dbdd5440b625b8fe0f1cec6438a1623bf473944cb278b937ca5ab2b98eac2f5993d6e047b96368b5fcd5649fb536d96
 SHA512 
2d4058c5c886498486d8514c238c0a05c0a97409011a7da40745e842977f0a29754e8b678f7e6e7a47c00df7e2e4c522d34d473118a24524af3824eed912e74a

diff --git a/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild 
b/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild
new file mode 100644
index 000000000000..5723622b236f
--- /dev/null
+++ b/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild
@@ -0,0 +1,257 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# There's no standard way of versioning the point releases upstream
+# make anyway, so while this was added for RC versions, it's fine
+# in general.
+QA_PKGCONFIG_VERSION=$(ver_cut 1-2)
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
+inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs 
verify-sig
+
+# Official patches
+# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/
+PLEVEL="${PV##*_p}"
+MY_PV="${PV/_p*}"
+MY_PV="${MY_PV/_/-}"
+MY_P="${PN}-${MY_PV}"
+MY_PATCHES=()
+
+# Determine the patchlevel.
+case ${PV} in
+       9999|*_alpha*|*_beta*|*_rc*)
+               # Set a negative patchlevel to indicate that it's a pre-release.
+               PLEVEL=-1
+               ;;
+       *_p*)
+               PLEVEL=${PV##*_p}
+               ;;
+       *)
+               PLEVEL=0
+esac
+
+DESCRIPTION="Another cute console display library"
+HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html 
https://git.savannah.gnu.org/cgit/readline.git";
+
+if [[ ${PV} == 9999 ]] ; then
+       EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git";
+       EGIT_BRANCH=devel
+       inherit git-r3
+elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
+       # It can be useful to have snapshots in the pre-release period once
+       # the first alpha is out, as various bugs get reported and fixed from
+       # the alpha, and the next pre-release is usually quite far away.
+       #
+       # i.e. if it's worth packaging the alpha, it's worth packaging a 
followup.
+       READLINE_COMMIT="a0ceb95d8c5d730ac9461e4abaea402e862ac907"
+       
SRC_URI="https://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-${READLINE_COMMIT}.tar.gz
 -> ${P}-${READLINE_COMMIT}.tar.gz"
+       S=${WORKDIR}/${PN}-${READLINE_COMMIT}
+else
+       SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
+       SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )"
+       S="${WORKDIR}/${MY_P}"
+
+       if [[ ${PLEVEL} -gt 0 ]] ; then
+               # bash-5.1 -> bash51
+               my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2))
+
+               patch_url=
+               my_patch_index=
+
+               upstream_url_base="mirror://gnu/readline"
+
+               for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; 
my_patch_index++)) ; do
+                       printf -v mangled_patch_ver ${my_p}-%03d 
${my_patch_index}
+                       
patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}"
+
+                       SRC_URI+=" ${patch_url}"
+                       SRC_URI+=" verify-sig? ( ${patch_url}.sig )"
+
+                       MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} )
+               done
+
+               unset my_p patch_url my_patch_index upstream_url_base
+       fi
+fi
+
+LICENSE="GPL-3+"
+SLOT="0/8"  # subslot matches SONAME major
+if (( PLEVEL >= 0 )); then
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+fi
+IUSE="static-libs +unicode utils"
+
+RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       virtual/pkgconfig
+       verify-sig? ( sec-keys/openpgp-keys-chetramey )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.0-no_rpath.patch
+       "${FILESDIR}"/${PN}-7.0-headers.patch
+       "${FILESDIR}"/${PN}-8.0-headers.patch
+)
+
+src_unpack() {
+       local patch
+
+       if [[ ${PV} == 9999 ]]; then
+               git-r3_src_unpack
+       elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
+               default
+       else
+               if use verify-sig; then
+                       verify-sig_verify_detached 
"${DISTDIR}/${MY_P}.tar.gz"{,.sig}
+
+                       for patch in "${MY_PATCHES[@]}"; do
+                               verify-sig_verify_detached "${patch}"{,.sig}
+                       done
+               fi
+
+               unpack "${MY_P}.tar.gz"
+
+               if [[ ${GENTOO_PATCH_VER} ]]; then
+                       unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
+               fi
+       fi
+}
+
+src_prepare() {
+       (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
+
+       default
+
+       #(( PLEVEL < 0 )) && eautoreconf
+
+       if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then
+               # If we're bootstrapping, make a guess. We don't have pkg-config
+               # around yet. bug #818103.
+               # Incorrectly populating this leads to underlinked libreadline.
+               local ncurses_libs
+               local ncurses_libs_suffix=$(usex unicode w '')
+
+               ncurses_libs="-lncurses${ncurses_libs_suffix}"
+
+               if has_version "sys-libs/ncurses[tinfo(+)]" ; then
+                       ncurses_libs+=" -ltinfo${ncurses_libs_suffix}"
+               fi
+       else
+               # Force ncurses linking, bug #71420.
+               # Use pkg-config to get the right values, bug #457558.
+               local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode 
w '') --libs)
+       fi
+
+       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
+
+       # For local readline headers
+       ln -s ../.. examples/rlfe/readline || die
+}
+
+src_configure() {
+       # 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`, bug #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
+               export bash_cv_func_sigsetjmp="present"
+               export bash_cv_func_ctype_nonascii="yes"
+               # bug #503312
+               export bash_cv_wcwidth_broken="no"
+       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.
+
+       multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+       local myeconfargs=(
+               --cache-file="${BUILD_DIR}"/config.cache
+               --with-curses
+               $(use_enable static-libs static)
+       )
+
+       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() {
+       emake
+
+       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
+       fi
+}
+
+multilib_src_install() {
+       default
+
+       if multilib_is_native_abi ; then
+               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
+}
+pkg_preinst() {
+       # bug #29865
+       # Reappeared in bug #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)
+}

Reply via email to