diff -u -r /usr/portage/sys-libs/glibc//files/eblits/common.eblit glibc//files/eblits/common.eblit --- /usr/portage/sys-libs/glibc//files/eblits/common.eblit 2014-10-19 08:31:18.000000000 +0900 +++ glibc//files/eblits/common.eblit 2015-02-20 21:43:58.299655516 +0900 @@ -341,3 +341,22 @@ [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" echo "${b}" } + +# Once all ebuilds have EAPI >=4, move this to pkg_preinst.eblit. See bug #539928. +check_devpts(){ + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + just_headers && return + + if in_iuse suid && ! use suid ; then + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + # Do not die on older kernels as devpts did not export these settings #489520. + if version_is_at_least 2.6.25 $(uname -r) ; then + die "mount & fix your /dev/pts settings" + fi + fi + fi +} diff -u -r /usr/portage/sys-libs/glibc//files/eblits/pkg_preinst.eblit glibc//files/eblits/pkg_preinst.eblit --- /usr/portage/sys-libs/glibc//files/eblits/pkg_preinst.eblit 2014-08-10 13:01:17.000000000 +0900 +++ glibc//files/eblits/pkg_preinst.eblit 2015-02-20 09:55:01.248617108 +0900 @@ -53,17 +53,5 @@ [[ -d ${D}/$(get_libdir) ]] || return 0 glibc_sanity_check - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - if in_iuse suid && ! use suid ; then - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - # Do not die on older kernels as devpts did not export these settings #489520. - if version_is_at_least 2.6.25 $(uname -r) ; then - die "mount & fix your /dev/pts settings" - fi - fi - fi + check_devpts } diff -u -r /usr/portage/sys-libs/glibc//files/eblits/pkg_setup.eblit glibc//files/eblits/pkg_setup.eblit --- /usr/portage/sys-libs/glibc//files/eblits/pkg_setup.eblit 2014-10-18 02:31:17.000000000 +0900 +++ glibc//files/eblits/pkg_setup.eblit 2015-02-24 07:43:49.701974827 +0900 @@ -122,4 +122,8 @@ die "old __guard detected" fi fi + + if [[ ( ${EAPI:-0} -ge 4 ) && ( ${MERGE_TYPE} != buildonly ) ]] ; then + check_devpts + fi }