Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 190144

Summary: PORTDIR as symlink triggers sandbox violation with svn.eclass
Product: Portage Development Reporter: Taylor Braun-Jones <taylor>
Component: Core - Ebuild SupportAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal Keywords: InVCS
Priority: High    
Version: 2.1   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 181949    
Attachments: mythtv build error

Description Taylor Braun-Jones 2007-08-25 07:11:07 UTC
When building mythtv frontendonly I get an access violation error because portage is trying to unpack the subversion source to the wrong place. /usr/portage-mrserver is a NFS mount point. /usr/portage symlinks to it. See the attached error log. My emerge --info is:

Portage 2.1.2.11 (default-linux/amd64/2006.0, gcc-4.1.2, glibc-2.5-r4, 2.6.20-gentoo-r8 x86_64)
=================================================================
System uname: 2.6.20-gentoo-r8 x86_64 Dual Core AMD Opteron(tm) Processor 170
Gentoo Base System release 1.12.9
Timestamp of tree: Sat, 18 Aug 2007 11:00:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.23b
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp.romnet.org/gentoo/ ftp://mirror.iawnet.sandia.gov/pub/gentoo/ ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ "
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
MAKEOPTS=""
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/science /usr/portage/local/layman/sunrise"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="64bit 7zip X a52 aac acpi alsa amd64 apache2 apm asf audiofile bash-completion berkdb bitmap-fonts bzip2 cdr cli cracklib crypt ctype cups daap dba dbus divx dnd dri dvd dvdnav dvdr dvdread dvi eds emacs emboss encode esd ethereal exif expat fam fastbuild ffmpeg firefox flac foomaticdb force-cgi-redirect fortran ftp gd gdbm gif gimp glitz glut glx gmail gmailtimestamps gmp gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml hal hddtemp iconv idn imlib ipod isdnlog java java-internal javascript jpeg lcms leim libnotify live lm_sensors lzo lzw lzw-tiff mad memlimit midi mng mono mozilla mozsvg mp3 mpeg mudflap multiuser nas nautilus ncurses nls noplugin nosendmail nptl nptlonly nsplugin ntfs nvidia nvtv offensive ogg opengl openmp pam pcre pdf perl php pmount png posix ppds pppd python quicktime rar readline reflection reiserfs samba sdl sensord session simplexml slp soap sockets spell spl ssl startup-notification svg tcltk tcpd theora threads tiff tivo tokenizer truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 vnc vorbis vstream widescreen wma wmf xcomposite xine xml xml2 xorg xpm xscreensaver xsl xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="atiusb" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

This is what emerge -pv mythtv looks like:
trjones@bigbird ~ $ emerge -pv mythtv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] media-tv/mythtv-0.20.1_p14146  USE="alsa dvd frontendonly lirc opengl perl vorbis (-altivec) -autostart -backendonly -crciprec -dbox2 -debug -dts -dvb -freebox -hdhomerun -ieee1394 -ivtv -jack -joystick -lcd -mmx -xvmc" VIDEO_CARDS="nvidia -i810 -via" 0 kB 
[ebuild  N    ] x11-themes/mythtv-themes-0.20.1  0 kB 

Total: 2 packages (2 new), Size of downloads: 0 kB


Reproducible: Always

Steps to Reproduce:
1.Install mythtv
2.
3.

Actual Results:  
Build fails

Expected Results:  
Build runs to completion
Comment 1 Taylor Braun-Jones 2007-08-25 07:11:48 UTC
Created attachment 129110 [details]
mythtv build error
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2007-08-25 07:47:02 UTC
(In reply to comment #0)
> When building mythtv frontendonly I get an access violation error because
> portage is trying to unpack the subversion source to the wrong place.
> /usr/portage-mrserver is a NFS mount point. /usr/portage symlinks to it. 

No it doesn't try to unpack to a "wrong place", it unpacks to a place you've configured it to unpack. Set PORTDIR="/usr/portage-mrserver" instead of symlinking the thing, that's the whole point why the variable exists.
Comment 3 Zac Medico gentoo-dev 2007-08-25 08:36:15 UTC
The sandbox doesn't work with symlinks.  I suppose we can export the real path in the ebuild environment, but you can just set PORTDIR="/usr/portage-mrserver" like Jakub said.
Comment 4 Zac Medico gentoo-dev 2007-08-25 19:43:45 UTC
In svn r7700 it's fixed to use the realpath of DISTDIR.
Comment 5 Zac Medico gentoo-dev 2007-09-07 19:18:22 UTC
This has been released in 2.1.3.8.