diff options
Diffstat (limited to 'sys-libs/glibc/glibc-2.33-r7.ebuild')
-rw-r--r-- | sys-libs/glibc/glibc-2.33-r7.ebuild | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/sys-libs/glibc/glibc-2.33-r7.ebuild b/sys-libs/glibc/glibc-2.33-r7.ebuild index 146cce876a7f..20390ea8ba2a 100644 --- a/sys-libs/glibc/glibc-2.33-r7.ebuild +++ b/sys-libs/glibc/glibc-2.33-r7.ebuild @@ -3,7 +3,10 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7,8,9,10} ) +# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies +# on upgrades as people migrate to libxcrypt. +# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt +PYTHON_COMPAT=( python3_{7,8,9} ) TMPFILES_OPTIONAL=1 inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ @@ -23,7 +26,7 @@ PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then inherit git-r3 else - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" fi @@ -1503,15 +1506,9 @@ pkg_preinst() { # Keep around libcrypt so that Perl doesn't break when merging libxcrypt # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). # bug #802207 - if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]"; then + if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then PRESERVED_OLD_LIBCRYPT=1 - preserve_old_lib /$(get_libdir)/libcrypt$(get_libname 1) - - # Only copy if it exists; some people may have tiny embedded - # systems without headers: https://bugs.gentoo.org/802207#c16. - if [[ -f "${EROOT}"/usr/include/crypt.h ]] ; then - cp "${EROOT}"/usr/include/crypt.h "${T}"/crypt.h || die - fi + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die else PRESERVED_OLD_LIBCRYPT=0 fi @@ -1546,16 +1543,11 @@ pkg_postinst() { fi if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) - # Only copy if it exists; some people may have tiny embedded - # systems without headers: https://bugs.gentoo.org/802207#c16 - if [[ -f "${T}"/crypt.h ]] ; then - cp "${T}"/crypt.h "${EROOT}"/usr/include/crypt.h || eerror "Error restoring crypt.h, please file a bug" - fi - elog "Please ignore a possible later error message about a file collision involving" - elog "/usr/include/crypt.h. We need to preserve this file for the moment to keep" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" elog "the upgrade working, but it also needs to be overwritten when" elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." elog "If you have FEATURES=collision-protect, please use FEATURES=unmerge-orphans instead!" |