commit:     30fe8b89aef9f0701f6dcd935421b8ed5da614cc
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 23 18:37:56 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec  1 14:52:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30fe8b89

sys-libs/glibc: replace systemd reexec with a warning

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/22960
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/glibc/glibc-2.34-r2.ebuild | 21 ++++++++++++++++-----
 sys-libs/glibc/glibc-9999.ebuild    | 21 ++++++++++++++++-----
 2 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/sys-libs/glibc/glibc-2.34-r2.ebuild 
b/sys-libs/glibc/glibc-2.34-r2.ebuild
index 04479ab604b7..dd50e8578a35 100644
--- a/sys-libs/glibc/glibc-2.34-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.34-r2.ebuild
@@ -730,6 +730,20 @@ sanity_prechecks() {
        fi
 }
 
+upgrade_warning() {
+       if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z 
${ROOT} ]]; then
+               local oldv newv=$(ver_cut 1-2 ${PV})
+               for oldv in ${REPLACING_VERSIONS}; do
+                       if ver_test ${oldv} -lt ${newv}; then
+                               ewarn "After upgrading glibc, please restart 
all running processes."
+                               ewarn "Be sure to include init (telinit u) or 
systemd (systemctl daemon-reexec)."
+                               ewarn "Alternatively, reboot your system."
+                               break
+                       fi
+               done
+       fi
+}
+
 #
 # the phases
 #
@@ -740,6 +754,7 @@ pkg_pretend() {
        # All the checks...
        einfo "Checking general environment sanity."
        sanity_prechecks
+       upgrade_warning
 }
 
 pkg_setup() {
@@ -1547,11 +1562,7 @@ pkg_postinst() {
                use compile-locales || run_locale_gen "${EROOT}/"
        fi
 
-       if systemd_is_booted && [[ -z ${ROOT} ]] ; then
-               # We need to restart systemd when upgrading from < 2.34
-               # bug #823756
-               systemctl daemon-reexec
-       fi
+       upgrade_warning
 
        # Check for sanity of /etc/nsswitch.conf, take 2
        if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version 
sys-auth/libnss-nis ; then

diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 72cca561f703..79318fb53543 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -723,6 +723,20 @@ sanity_prechecks() {
        fi
 }
 
+upgrade_warning() {
+       if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z 
${ROOT} ]]; then
+               local oldv newv=$(ver_cut 1-2 ${PV})
+               for oldv in ${REPLACING_VERSIONS}; do
+                       if ver_test ${oldv} -lt ${newv}; then
+                               ewarn "After upgrading glibc, please restart 
all running processes."
+                               ewarn "Be sure to include init (telinit u) or 
systemd (systemctl daemon-reexec)."
+                               ewarn "Alternatively, reboot your system."
+                               break
+                       fi
+               done
+       fi
+}
+
 #
 # the phases
 #
@@ -733,6 +747,7 @@ pkg_pretend() {
        # All the checks...
        einfo "Checking general environment sanity."
        sanity_prechecks
+       upgrade_warning
 }
 
 pkg_setup() {
@@ -1540,11 +1555,7 @@ pkg_postinst() {
                use compile-locales || run_locale_gen "${EROOT}/"
        fi
 
-       if systemd_is_booted && [[ -z ${ROOT} ]] ; then
-               # We need to restart systemd when upgrading from < 2.34
-               # bug #823756
-               systemctl daemon-reexec
-       fi
+       upgrade_warning
 
        # Check for sanity of /etc/nsswitch.conf, take 2
        if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version 
sys-auth/libnss-nis ; then

Reply via email to