Emerging any current ebuild of gaim-0.76 on my system causes a sandbox violation Reproducible: Always Steps to Reproduce: 1. ACCEPT_KEYWORDS="~x86" emerge net-im/gaim 2. Read error and weap. Actual Results: Emerge fails due to sandbox violation. Expected Results: Updated version of gaim installed. Gentoo Base System version 1.4.3.13p1 Portage 2.0.50-r5 (default-x86-2004.0, gcc-3.3.2, glibc-2.3.2-r9, 2.6.3) ================================================================= System uname: 2.6.3 i686 Intel(R) Celeron(R) CPU 2.40GHz Autoconf: sys-devel/autoconf-2.59 Automake: sys-devel/automake-1.8.2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -funroll-loops -pipe -msse -msse2 -mmmx" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -funroll-loops -pipe -msse -msse2 -mmmx" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.mirrors.pair.com/ http://lug.mtu.edu/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3ds S3TC X X509 aalib acl acpi acpi4linux alsa apache2 apm arts avi berkdb bonobo cdr crypt cups curl dga dv dvb dvd dvdr encode esd ethereal evms2 fax fbcon ffmpeg fftw flac flash foomaticdb freetype gd gdbm gif gimpprint ginac gnome gphoto2 gpm gtk gtk2 gtkhtml guile imap imlib jabber java javascript jikes joystick jpeg kde ladcca ldap libg++ libwww lirc mad maildir mdb mikmod mmx mng motif mozilla mozsvg mozxmlterm mpeg mpeg4 mpi msn music mysql nagios-dns nagios-ntp nagios-ping nagios-ssh ncurses nls nvidia offensive oggvorbis openal opengl oscar oss pam pda pdflib perl php png ppds python qt quicktime readline roundrobin samba scanner sdk sdl skey slang slp snmp spell sse sse2 ssl svg svga tcltk tcpd tetex tiff timidity transcode transparent-proxy truetype usb v4l videos vim-with-x wmf wxwindows x86 xinerama xml2 xmms xosd xv xvid zlib zvbi"
Contents of /tmp/sandbox-net-im_-_gaim-0.76-r2-24446.log: mkdir: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim Creating the directory before emerging doesn't help.
If you don't need perl try to workaround this by: USE="-perl" emerge gaim Otherwise I'm not sure why it wouldn't work. Perhaps try upgrading to perl 5.8.3.
I had a friend and user try this in a similar setting and he was able to install it successfully. So perl 5.8.2 should work fine for you. Is it still failing for you? Please post the entire sandbox violation text if so.
I can't reproduce this on my box. I'm a couple of -r numbers behind on my Portage version, though, so perhaps that has something to do with it. I *did* emerge it with "perl" in my USE flags, too. Info: Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.6.2) ================================================================= System uname: 2.6.2 i686 AMD Duron(tm) Processor Gentoo Base System version 1.4.3.13 distcc 2.11.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disable d] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1 /share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/confi g /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://mirror.iawnet.sandia.gov/pub/gentoo/ http://www.ibiblio.or g/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/local/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib alsa apm arts avi berkdb bonobo cdr crypt cups dga directfb dvd dvd r encode esd foomaticdb gd gdbm ggi gif gnome gpm graphviz gtk gtk2 gtkhtml guil e imlib innodb java jpeg kde ldap libg++ libwww mad mbox mikmod motif mozilla mp eg mysql ncurses nls odbc offensive oggvorbis opengl oss pam pdflib perl pgsql p ng postgres python qt quicktime readline scanner sdl slang spell ssl svga tcltk tcpd tiff truetype x86 xml xml2 xmms xv zlib"
Upgraded to -r5, still can't reproduce.
i had this issue too (with -r0), now works with -r2 cvs header 1.2
Created attachment 29285 [details] The *entire* build log for gaim-0.76-r2 USE="-perl" allows gaim to compile and install without any problems. However, this workaround won't work for everybody. Some people use Gaim's perl plugins. I've got perl-5.8.2-r1, but this seems somewhat irrevelent. Anyway, since this seems to be a probem with libtool/automake/autoconf, here are my versions: libtool-1.4.3-r4 autoconf-2.5.9 automake-1.8.2
Yeah definitely upgrade to automake 1.8.3, it is in stable x86. There was a GLSA about all lower versions anyway. You definitely want to be on 1.8.3. Try that and then try again.
FYI: http://www.gentoo.org/security/en/glsa/glsa-200404-08.xml I'm trying to duplicate this by downgrading to current stable x86 versions and the lower automake. I'll report back.
I was NOT able to duplicate this at all. Have you been able to upgrade automake and re-try?
Upgrading automake did NOT help. Nor did upgrading to gnome-2.6. The problem exists, just as it did before. I suppose I'll try updating `world', and see if that solves the problem. (Unfortunately, that might take a while... KDE takes forever to compile.)
No need to do all of world blindly. Especially KDE since that has no impact on gaim behavior. Upgrading system tools like automake/autoconf is always a good idea though in general. I'll see if a portage guru can take a look.
Apparently there was a known bug in portage-2.0.50-r3 throught 2.0.50-r5. Can you please upgrade to portage 2.0.50-r6 and try again? 09:58 <@jstubbs> rizzo: seeing as it's failing on a mkdir, i think it might be due to the previous sandbox bug. if so, it should fail on anything previous to .50-r6. 09:58 <@jstubbs> err.. .50-r3 -r4 and -r5 that is. 09:58 <@jstubbs> -r2 and -r1 had the old sandbox
Portage -r6 failled just like all previous attempts. I'm going to try the newly released 0.77 and see if the problem has been fixed. Since it appears to be some hidden problem on my end, I really doubt it.
Geoffrey just curious if it happens for you with gaim-0.77 as well.
Did the same for 0.77. I've been away for a while, but left emerge updating world when I was gone. It updated m4, and downgraded autoconf to portage-stable 2.58 rather than 2.59. In addition, it upgraded python to 2.3.3, so I am starting the emerge again, as of... now.
The updates didn't help one bit. I'm not sure what is causing this weird bug now.
I'm having a similar problem trying to emerge to 0.77, except that perl directory already exists for me. So it has an access violation when trying to chmod & unlink: ..... usr/lib/gaim/docklet.so usr/lib/gaim/autorecon.so usr/lib/libgaim-remote.so.0.0.0 making executable: /usr/lib/libgaim-remote.so.0.0.0 >>> Completed installing into /var/tmp/portage/gaim-0.77/image/ --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/tmp/sandbox-net-im_-_gaim-0.77-2739.log" chmod: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so unlink: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so --------------------------------------------------------------------------------
# emerge info Portage 2.0.50-r6 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.23-ck1) ================================================================= System uname: 2.4.23-ck1 i686 Pentium III (Katmai) Gentoo Base System version 1.4.9 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -ffast-math -fprefetch-loop-arrays -fmerge-all-constants" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -ffast-math -fprefetch-loop-arrays -fmerge-all-constants" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" USE="X afs apm arts avi berkdb crypt cups encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 guile imlib java jpeg kde libg++ libwww mad mikmod motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell sse ssl svga tcltk tcpd tetex truetype x86 xml2 xmms xv zlib"
The Gaim.so file causing the access violation is part of the gaim-0.75-r10 package, but not part of gaim-0.77. So it looks like the sandbox is choking when trying to uninstall 0.75, and accessing that directory is not allowed because it doesn't exist in the new version (0.77). I don't know much about how the sandbox works, but I wonder if it's a bug in portage, since uninstalling an older version shouldn't be a sandbox violation.
Josh, I have experienced the same problem as you (see Bug 46621). However, uninstalling gaim-0.75-r10 and then trying to install 0.77 gives me the mkdir error of comment 1. There is no problem reinstalling 0.75-r10. Subsequent upgrading gives the chmod and unlink error. Here's the relevant parts of the build log. Making install in perl make[2]: Entering directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl' make[3]: Entering directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' make[3]: Leaving directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' make[3]: Entering directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl' make[4]: Entering directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' ACCESS DENIED chmod: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so ACCESS DENIED unlink: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so Cannot forceunlink /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so: Permission denied at /usr/lib/perl5/5.8.2/File/Find.pm line 856 make[4]: *** [pure_vendor_install] Error 255 make[4]: Leaving directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' /bin/sh ../../mkinstalldirs /var/tmp/portage/gaim-0.77/image//usr/lib/gaim /bin/sh ../../libtool --silent --mode=install /bin/install -c perl.la /var/tmp/portage/gaim-0.77/image//usr/lib/gaim/perl.la libtool: install: warning: remember to run `libtool --finish /usr/lib/gaim' make[3]: Leaving directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl' make[2]: Leaving directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl' A side note. What is the purpose of /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/perllocal.pod? According to qpkg -f it is owned by quite a few packages, all but gaim in dev-perl.
I'm CC'ing the portage team. I am bewildered.
Lo and behold, but I just upgraded to perl-5.8.3, and now gaim-0.77 emerged just fine. Still, it seems strange that it should be necessary.
It should work fine with perl 5.8.2, although I've only tested with perl 5.8.3 as I live in ~x86. I believe C.J. is on perl 5.8.2 and it worked fine for him as well though. Can you perhaps re-install 5.8.2 and try?
Yeah, I've got perl 5.8.2 installed and gaim 0.77 installed just fine... I'm wondering if maybe there's some other package that owns /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so or something, and that's causing the sandbox violation; maybe check to see which package owns that with qpkg or something...
qpkg -f /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so net-im/gaim *
As I said in comment 21, no gaim installed => mkdir violation, gaim-0.75-r10 installed => chmod + unlink violation. I think it is more likely that the perl installtion or some module was borked. I'm currently downgrading to 5.8.2 so I'll post back shortly.
Yep, it worked with a fresh installation of perl-5.8.2-r1 and libperl-5.8.2.
Perhaps something changed in the perl ebuild for 5.8.2 after you initially installed it. I'm CC'ing the perl team now just to see if they might have any insight.
I take back my assertion earlier that this is a portage bug.. From my build log I see that during the make install step is when the violation occurred (same as Anders output). So it looks like there's something wrong with the Makefile in /var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common, which tries to access outside of the sandbox. make[4]: Entering directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' ACCESS DENIED chmod: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so ACCESS DENIED unlink: /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so Cannot forceunlink /usr/lib/perl5/vendor_perl/5.8.2/i686-linux/auto/Gaim/Gaim.so: Permission denied at /usr/lib/perl5/5.8.2/File/Find.pm line 856 make[4]: *** [pure_vendor_install] Error 255 make[4]: Leaving directory `/var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common' /bin/sh ../../mkinstalldirs /var/tmp/portage/gaim-0.77/image//usr/lib/gaim
Created attachment 30736 [details] /var/tmp/portage/gaim-0.77/work/gaim-0.77/plugins/perl/common/Makefile
Could it be ExtUtils-MakeMaker that is the problem? I actually unmerged it this morning in a minor cleaning spree, after my last failed attempt at upgrading gaim. That package hadn't been updated since June and was not in its latest version. I figured it wasn't necessary any more. This afternoon I upgraded perl and then everything worked.
Hm I have dev-perl/ExtUtils-MakeMaker-6.21 installed. Looks like between all arches either 6.20 or 6.21 is the latest stable. Can someone for whom the install is not working report their version?
I have ExtUtils-MakeMaker-6.05-r6.
Created attachment 30737 [details] Makefile created by MakeMaker 6.21 Yeah look at my Makefile. It uses $(DESTDIR) and vars instead of hard-coding. Upgrade your MakeMaker to latest stable and let me know.
OK, that must be the problem. I'll install the latest version of MakeMaker & try again. For some reason, when I do an "emerge -u" it doesn't say I need a new version of MakeMaker.
I'm going to change the DEPEND for gaim-0.77 to this: perl? ( >=dev-lang/perl-5.8.2-r1 >=dev-perl/ExtUtils-MakeMaker-6.20 ) FYI. Since at least 6.20 is stable for all arches it shouldn't affect things.
Josh try "emerge -uD" for the deepness of things. Anyway I just committed the new DEPEND. If you confirm that the new MakeMaker fixes this for you I'll close.
ExtUtils-MakeMaker 6.20 worked for me! Who would have guessed... Thanks for the help.
Well, my reason for unmerging ExtUtils-MakeMaker was that -Du didn't pick it up, and it seems there is some kind of MakeMaker functionality anyway. From the configure phase: checking for perl... /usr/bin/perl checking for Perl compile flags... ok checking for libperl... checking for perl_run... yes checking for perl... perl checking for perl module ExtUtils::MakeMaker... ok checking for Perl_eval_pv... no checking for old perl... no However, I don't get the plugins/perl/common/Makefile. I don't think it is really needed, but adding the dependency may be the best way around the problem.
Talking with rac in IRC and he says that perl-5.8.2-r1 should contain a sufficient version of MakeMaker and that I shouldn't need to depend on the external package. Technically speaking you shouldn't have even been allowed to upgrade to perl-5.8.2 with the old version of ExtUtils-MakeMaker installed. Did you guys cheat to upgrade perl originally?
Created attachment 30742 [details] Makefile from core-supplied MakeMaker 6.17 here is the Makefile made by the perl core Makemaker (6.17). It looks good as well.
I didn't cheat.. here's an excerpt from perl-5.8.2-r1.ebuild: !<dev-perl/ExtUtils-MakeMaker-6.05-r6
I've had ExtUtils-6.05 from when I had perl-5.8.0, and emerge never complained when I upgraded to 5.8.2. (emerge -u world) Nothing fancy... However, it was a while ago (emerge.log says Dec. 25 - Christmas for 5.8.0 and April 1 for 5.8.2 -- No joke) Then perhaps the problem is that when upgrading from perl-5.8.0 to perl-5.8.2, there is some residue somewhere from ExtUtils-MakeMaker-6.05 in the system. This causes (some) ebuilds (such as gaim) to use the residue from the old 5.8.0 install rather than the base perl install. (Sounds like a perl install problem.)
Per rac's recommendation I'm going to remove the ExtUtils-MakeMaker DEPEND and depend solely on >=dev-lang/perl-5.8.2-r1, which (when properly installed) should provide MakeMaker 6.17 which works for our purposes. I'm going to set the DEPEND to !<6.17. You should try "emerge -uDp world" and see if it prompts you to upgrade your MakeMaker, or just uninstall ExtUtils-MakeMaker.
Looking through /var/log/emerge.log I initially got ExtUtils-MakeMaker as part of emerge system. And then there was a blockage in late July when 5.8.0-r12 got stable. I don't know why I re-emerged MakeMaker after the upgrade to 5.8.0-r12, though.
Hmm... When I installed perl-5.8.2-r1, (which has !<dev-perl/ExtUtils-MakeMaker-6.05-r6) I had dev-perl/ExtUtils-MakeMaker-6.05-r6 installed. Thus, I had the perl 5.8.0 version, and was not receiving the effects of the new core version. Perhaps it should be '!~dev-perl/ExtUtils-MakeMaker-6.05' or '!dev-perl/ExtUtils-MakeMaker-6.0*' instead to prevent people from upgrading into this problem. (For those who do infrequent updates of large packages, for example.)
Yes I suggested something similar to rac but for reasons I can't recall he convinced me that it was best to set the !<6.17 in my package rather than force a revision bump and rebuild of perl which will take a long time. I'm comfortable with the solution I have in place now.
Just to confirm, after I upgraded MakeMaker, gaim installed fine.. Thanks!