summaryrefslogtreecommitdiff
path: root/sys-libs/glibc/glibc-2.33-r7.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/glibc/glibc-2.33-r7.ebuild')
-rw-r--r--sys-libs/glibc/glibc-2.33-r7.ebuild26
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!"