Created attachment 396312 [details, diff] eblit.patch In pkg_preinst.eblit of sys-libs/glibc, devpts mount check is done, and if it fails, emerge aborts, **after compiling all**. It's better to do it earlier; it's not a bug, but for slow PCs, it's a pain. I attached a patch which moves that part of the code to the function eblit-glibc-pkg_setup(), defined in eblits/pkg_setup.eblit. I don't know what's "just_header", but at least this patch correctly works for me. I know the failure of devpts check is a rare case. (A failure happened to me in a chroot setup, mounting devpts /to/another/path.) But at least it's better, right? :) Thanks beforehand.
Comment on attachment 396312 [details, diff] eblit.patch this breaks `emerge -B glibc` where the binpkg is merely created. pkg_preinst is the first step where we know when the code is going to be deployed.
I see. Do you think it'll be acceptable by adding this, ------------------------------------------------------------------------ if [[ ${MERGE_TYPE} != buildonly ]]; then ------------------------------------------------------------------------ just like pkg_setup() of the ebuilds of sys-fs/udev?
(In reply to teika from comment #2) historically this wouldn't work because the EAPI wasn't new enough. once the versions in the tree get updated though, we can cut over.
Created attachment 397358 [details, diff] eblit.patch In this patch, I moved the checker code to common.eblit, and let pkg_{preinst,setup}.eblit call them. In pkg_setup, it reads: ------------------------------------------------------------------------ if [[ ( ${EAPI:-0} -ge 4 ) && ( ${MERGE_TYPE} != buildonly ) ]] ; then check_devpts fi ------------------------------------------------------------------------ EAPI version check is correct, but I'm not sure of "MERGE_TYPE" check part; "check_devpts" is called even if you do: $ export MERGE_TYPE=buildonly $ ebuild /home/te/gentoo/portage-overlay/sys-libs/glibc/glibc-2.20.ebuild unpack (you know, glibc-2.20 has EAPI=4). I thought ebuild (1) respected environment variables... In common.eblit, I annotated: ------------------------------------------------------------------------ # Once all ebuilds have EAPI >=4, move this to pkg_preinst.eblit. See bug #539928. ------------------------------------------------------------------------ but you may want to revise it. Thanks.
should be all set now in the tree; thanks for the report! Commit message: Run devpts check in pkg_pretend when using newer EAPIs http://sources.gentoo.org/sys-libs/glibc/files/eblits/pkg_preinst.eblit?r1=1.13&r2=1.14 http://sources.gentoo.org/sys-libs/glibc/files/eblits/pkg_pretend.eblit?rev=1.1 http://sources.gentoo.org/sys-libs/glibc/glibc-2.20-r1.ebuild?r1=1.2&r2=1.3 http://sources.gentoo.org/sys-libs/glibc/glibc-2.20-r2.ebuild?r1=1.10&r2=1.11 http://sources.gentoo.org/sys-libs/glibc/glibc-2.20.ebuild?r1=1.6&r2=1.7 http://sources.gentoo.org/sys-libs/glibc/glibc-2.21.ebuild?r1=1.3&r2=1.4 http://sources.gentoo.org/sys-libs/glibc/glibc-9999.ebuild?r1=1.28&r2=1.29