When I try to emerge gettext, I get an access violation error. Reproducible: Always Steps to Reproduce: 1. emerge gettext 2. 3. Actual Results: Seems that the system cannot delete two conftest files. I can manually delete them myself. I am able to emerge other stuff (e.g., Mozilla, etc.) Initially, I thought I have the same problem as in bug <a href="http://bugs.gentoo.org/show_bug.cgi?id=53595">53595</a>, but turns out that that's not the case. (Note: /usr is sof-linked to /depot/usr, and /depot/bin is soft linked to /bin so that relative directories like ../../bin in /depot/usr work correctly) Here's the last few lines of emerge. I am attaching the whole output. gcc -O3 -march=pentium4 -pipe -fomit-frame-pointer -o .libs/fc4 format-c-4-prg.o setlocale.o ../lib/.libs/libgettextlib.so ../intl/.libs/libgnuintl.so creating fc4 make[3]: Leaving directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1/gettext-tools/tests' make[3]: Entering directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1/gettext-tools' make[3]: Leaving directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1/gettext-tools' make[2]: Leaving directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1/gettext-tools' make[1]: Leaving directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1/gettext-tools' make[1]: Entering directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1' make[1]: Nothing to be done for `all-am'. make[1]: Leaving directory `/var/tmp/portage/gettext-0.12.1-r2/work/gettext-0.12.1' --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/tmp/sandbox-sys-devel_-_gettext-0.12.1-r2-29121.log" unlink: /depot/usr/lib/cf9955/conftest9012345 unlink: /depot/usr/lib/cf9955/conftest9012346 -------------------------------------------------------------------------------- Expected Results: should have cleaned up and updated gettext Portage 2.0.51-r15 (default-linux/x86/2004.0, gcc-3.3.5, glibc-2.3.3.20040420-r0, 2.6.3-gentoo-r1 i686) ================================================================= System uname: 2.6.3-gentoo-r1 i686 Intel(R) Pentium(R) M processor 1700MHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.3-r1 [2.3.3 (#1, Jun 14 2004, 13:17:18)] dev-lang/python: 2.3.3-r1 sys-devel/autoconf: 2.58-r1 sys-devel/automake: 1.7.7 sys-devel/binutils: 2.14.90.0.8-r1 sys-devel/libtool: 1.4.3-r4 virtual/os-headers: 2.4.19-r1, 2.4.21-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X alsa apm arts avi berkdb bitmap-fonts cdr crypt cups dvd encode f77 fam flac font-server foomaticdb fortran gdbm gif gpm gtk2 imagemagick imlib ipv6 jpeg kde libg++ libwww mad mikmod mmx motif mozilla mpeg ncurses nls oggvorbis opengl oss pdflib perl png python qt quicktime readline sdl slang spell sse ssl svga tcpd tiff truetype truetype-fonts type1-fonts xml2 xmms xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Created attachment 49950 [details] gettext emerge output (created by "root # emerge gettext > gettextEmergeLog.txt")
Created attachment 49952 [details] warnings not directed to the file
if you `mount --bind` instead of using symlinks, does it work ?
nope. still the same error.
same problem occurs while updating "tar" and "ncurses"
Its because the /usr/lib/cf* stuff will not resolve to /depot/usr/lib/cf as at sandbox startup they do not exist. Its fixable, but will require a lot more overhead, as we will need to resolve each writable/predicted/etc patch at each access. Not nice.
are there any problems with current gettext? If not please close this bug
i think we can resolve this fairly easily by introducing a new set of variables. if the var has a _RESOLVE suffix, we resolve every path in there and add the result to the appropriate variable. so with like: SANDBOX_WRITE_RESOLVE="/usr/lib/conftest:...." we'd do the equivalent of: SANDBOX_WRITE="`readlink -f /usr/lib/conftest`:...." the assumption being that the symlink wont change during the course of the run. i think that's an acceptable assumption to make ...
*** Bug 279205 has been marked as a duplicate of this bug. ***
*** Bug 365089 has been marked as a duplicate of this bug. ***
*** Bug 378403 has been marked as a duplicate of this bug. ***
Given that this bug is ancient, that no modern build system should do such a horrible thing and that sandbox does realpath on SANDBOX* nowadays, I think we can presume this is gone.