From 38b2d044a1eac3ddb57cb250264f5e9dfa50ba96 Mon Sep 17 00:00:00 2001 From: Allen Webb Date: Wed, 15 Jul 2020 08:44:19 -0500 Subject: dev-lang/tcl: Fix cross compilation by not setting include directory. Bug: https://bugs.gentoo.org/731120 Signed-off-by: Allen Webb Signed-off-by: Alfredo Tupone --- dev-lang/tcl/files/tcl-8.6.9-include-spec.patch | 12 +++ dev-lang/tcl/tcl-8.6.9-r1.ebuild | 130 ++++++++++++++++++++++++ dev-lang/tcl/tcl-8.6.9.ebuild | 129 ----------------------- 3 files changed, 142 insertions(+), 129 deletions(-) create mode 100644 dev-lang/tcl/files/tcl-8.6.9-include-spec.patch create mode 100644 dev-lang/tcl/tcl-8.6.9-r1.ebuild delete mode 100644 dev-lang/tcl/tcl-8.6.9.ebuild (limited to 'dev-lang/tcl') diff --git a/dev-lang/tcl/files/tcl-8.6.9-include-spec.patch b/dev-lang/tcl/files/tcl-8.6.9-include-spec.patch new file mode 100644 index 000000000000..4b3a1c66d431 --- /dev/null +++ b/dev-lang/tcl/files/tcl-8.6.9-include-spec.patch @@ -0,0 +1,12 @@ +This resolves https://bugs.gentoo.org/731120 +--- a/unix/configure.in ++++ b/unix/configure.in +@@ -895,7 +895,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" + TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}" + + # Install time header dir can be set via --includedir +-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\"" ++eval "TCL_INCLUDE_SPEC=\"\"" + + #------------------------------------------------------------------------ + # tclConfig.sh refers to this by a different name diff --git a/dev-lang/tcl/tcl-8.6.9-r1.ebuild b/dev-lang/tcl/tcl-8.6.9-r1.ebuild new file mode 100644 index 000000000000..824abc3e73df --- /dev/null +++ b/dev-lang/tcl/tcl-8.6.9-r1.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib-minimal toolchain-funcs + +MY_P="${PN}${PV}" + +DESCRIPTION="Tool Command Language" +HOMEPAGE="http://www.tcl.tk/" +SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz" + +LICENSE="tcltk" +SLOT="0/8.6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="debug +threads" + +RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" + +SPARENT="${WORKDIR}/${MY_P}" +S="${SPARENT}"/unix + +PATCHES=( + "${FILESDIR}"/${PN}-8.5.13-multilib.patch + "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971 + "${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120 +) + +src_prepare() { + find \ + "${SPARENT}"/compat/* \ + "${SPARENT}"/doc/try.n \ + -delete || die + + pushd "${SPARENT}" &>/dev/null || die + default + popd &>/dev/null || die + + # workaround stack check issues, bug #280934 + use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1" + + tc-export CC + + sed \ + -e '/chmod/s:555:755:g' \ + -i Makefile.in || die + + sed \ + -e 's:-O[2s]\?::g' \ + -i tcl.m4 || die + + mv configure.{in,ac} || die + + eautoconf + + multilib_copy_sources +} + +multilib_src_configure() { + # We went ahead and deleted the whole compat/ subdir which means + # the configure tests to detect broken versions need to pass (else + # we'll fail to build). This comes up when cross-compiling, but + # might as well get a minor configure speed up normally. + export ac_cv_func_memcmp_working="yes" + export tcl_cv_str{str,toul,tod}_unbroken="ok" + export tcl_cv_strtod_buggy="no" + + econf \ + $(use_enable threads) \ + $(use_enable debug symbols) +} + +multilib_src_install() { + #short version number + local v1=$(ver_cut 1-2) + local mylibdir=$(get_libdir) + + S= default + # fix the tclConfig.sh to eliminate refs to the build directory + # and drop unnecessary -L inclusion to default system libdir + + sed \ + -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \ + -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \ + -e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \ + -e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \ + -e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \ + -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die + if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then + sed \ + -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \ + -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \ + -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die + fi + + # install private headers + insinto /usr/${mylibdir}/tcl${v1}/include/unix + doins *.h + insinto /usr/${mylibdir}/tcl${v1}/include/generic + doins "${SPARENT}"/generic/*.h + rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die + + # install symlink for libraries + dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname) + dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a + + if multilib_is_native_abi; then + dosym tclsh${v1} /usr/bin/tclsh + dodoc "${SPARENT}"/{ChangeLog*,README,changes} + fi +} + +pkg_postinst() { + for version in ${REPLACING_VERSIONS}; do + if ver_test 8.6 -lt ${version}; then + echo + ewarn "You're upgrading from <${P}, you must recompile the other" + ewarn "packages on your system that link with tcl after the upgrade" + ewarn "completes. To perform this action, please run revdep-rebuild" + ewarn "in package app-portage/gentoolkit." + ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should" + ewarn "upgrade them before this recompilation, too," + echo + fi + done +} diff --git a/dev-lang/tcl/tcl-8.6.9.ebuild b/dev-lang/tcl/tcl-8.6.9.ebuild deleted file mode 100644 index 27b6a02f2715..000000000000 --- a/dev-lang/tcl/tcl-8.6.9.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib-minimal toolchain-funcs - -MY_P="${PN}${PV}" - -DESCRIPTION="Tool Command Language" -HOMEPAGE="http://www.tcl.tk/" -SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz" - -LICENSE="tcltk" -SLOT="0/8.6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="debug +threads" - -RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND}" - -SPARENT="${WORKDIR}/${MY_P}" -S="${SPARENT}"/unix - -PATCHES=( - "${FILESDIR}"/${PN}-8.5.13-multilib.patch - "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971 -) - -src_prepare() { - find \ - "${SPARENT}"/compat/* \ - "${SPARENT}"/doc/try.n \ - -delete || die - - pushd "${SPARENT}" &>/dev/null || die - default - popd &>/dev/null || die - - # workaround stack check issues, bug #280934 - use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1" - - tc-export CC - - sed \ - -e '/chmod/s:555:755:g' \ - -i Makefile.in || die - - sed \ - -e 's:-O[2s]\?::g' \ - -i tcl.m4 || die - - mv configure.{in,ac} || die - - eautoconf - - multilib_copy_sources -} - -multilib_src_configure() { - # We went ahead and deleted the whole compat/ subdir which means - # the configure tests to detect broken versions need to pass (else - # we'll fail to build). This comes up when cross-compiling, but - # might as well get a minor configure speed up normally. - export ac_cv_func_memcmp_working="yes" - export tcl_cv_str{str,toul,tod}_unbroken="ok" - export tcl_cv_strtod_buggy="no" - - econf \ - $(use_enable threads) \ - $(use_enable debug symbols) -} - -multilib_src_install() { - #short version number - local v1=$(ver_cut 1-2) - local mylibdir=$(get_libdir) - - S= default - # fix the tclConfig.sh to eliminate refs to the build directory - # and drop unnecessary -L inclusion to default system libdir - - sed \ - -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \ - -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ - -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \ - -e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \ - -e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ - -e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \ - -e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \ - -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die - if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then - sed \ - -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \ - -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \ - -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die - fi - - # install private headers - insinto /usr/${mylibdir}/tcl${v1}/include/unix - doins *.h - insinto /usr/${mylibdir}/tcl${v1}/include/generic - doins "${SPARENT}"/generic/*.h - rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die - - # install symlink for libraries - dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname) - dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a - - if multilib_is_native_abi; then - dosym tclsh${v1} /usr/bin/tclsh - dodoc "${SPARENT}"/{ChangeLog*,README,changes} - fi -} - -pkg_postinst() { - for version in ${REPLACING_VERSIONS}; do - if ver_test 8.6 -lt ${version}; then - echo - ewarn "You're upgrading from <${P}, you must recompile the other" - ewarn "packages on your system that link with tcl after the upgrade" - ewarn "completes. To perform this action, please run revdep-rebuild" - ewarn "in package app-portage/gentoolkit." - ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should" - ewarn "upgrade them before this recompilation, too," - echo - fi - done -} -- cgit v1.2.3-65-gdbad