Mercurial uses different approaches when cloning local and remote repositories. When cloning local repository mercurial wants to create a lock in repository and sandbox does not allow doing that. The fix is to tell mercurial to do cloning using pull protocol to copy metadata: mercurial.eclass: : ${EHG_CLONE_CMD:=hg clone --pull} Reproducible: Always Steps to Reproduce: 1. Emerge something that uses mercurial.eclass and local mercurial repo Actual Results: marten@tux-laptop:% sudo emerge -v wicked Calculating dependencies... done! [ebuild R ] x11-wm/wicked-9999 0 kB [1] Total: 1 package (1 reinstall), Size of downloads: 0 kB Portage tree and overlays: [0] /usr/portage [1] /usr/portage/local/marten-overlay >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) x11-wm/wicked-9999 to / * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] >>> Unpacking source... * hg clone /home/marten/wicked ... ACCESS DENIED symlink: /home/marten/wicked/.hg/store/lock ACCESS DENIED open_wr: /home/marten/wicked/.hg/store/lock requesting all changes adding changesets adding manifests adding file changes added 37 changesets with 51 changes to 3 files updating working directory 3 files updated, 0 files merged, 0 files removed, 0 files unresolved [ ok ] * rsync to /tmp/portage/x11-wm/wicked-9999/work/wicked ... [ ok ] >>> Source unpacked. --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/var/log/sandbox/sandbox-11602.log" symlink: /home/marten/wicked/.hg/store/lock open_wr: /home/marten/wicked/.hg/store/lock --------------------------------------------------------------------------------
Fixed.