Portage fails to unpack sources when sandbox is enabled. This is fresh install, just after bootstrap.sh, when I typed 'emerge -v --newuse system' it borked with this error: >>> get tmp_dir: No such file or directory >>> setup: Illegal seek Tested this with ebuild: root@localhost ~ # ebuild /usr/portage/sys-apps/hdparm/hdparm-6.1.ebuild unpack >>> md5 files ;-) hdparm-5.7-r1.ebuild >>> md5 files ;-) hdparm-5.9.ebuild >>> md5 files ;-) hdparm-6.1.ebuild >>> md5 files ;-) files/digest-hdparm-5.9 >>> md5 files ;-) files/digest-hdparm-6.1 >>> md5 files ;-) files/hdparm-init-7 >>> md5 files ;-) files/digest-hdparm-5.7-r1 >>> md5 files ;-) files/hdparm-conf.d.3 >>> md5 src_uri ;-) hdparm-6.1.tar.gz >>> get tmp_dir: No such file or directory >>> setup: Illegal seek root@localhost ~ # FEATURES="-sandbox" ebuild /usr/portage/sys-apps/hdparm/hdparm-6.1.ebuild unpack >>> md5 files ;-) hdparm-5.7-r1.ebuild >>> md5 files ;-) hdparm-5.9.ebuild >>> md5 files ;-) hdparm-6.1.ebuild >>> md5 files ;-) files/digest-hdparm-5.9 >>> md5 files ;-) files/digest-hdparm-6.1 >>> md5 files ;-) files/hdparm-init-7 >>> md5 files ;-) files/digest-hdparm-5.7-r1 >>> md5 files ;-) files/hdparm-conf.d.3 >>> md5 src_uri ;-) hdparm-6.1.tar.gz >>> Unpacking source... >>> Unpacking hdparm-6.1.tar.gz to /var/tmp/portage/hdparm-6.1/work >>> Source unpacked. emerge info: Portage 2.0.51.22-r1 (default-linux/x86/2005.0, gcc-3.4.3-20050110, glibc-2.3.5-r0, 2.6.3-7mdk i686) ================================================================= System uname: 2.6.3-7mdk i686 Celeron (Coppermine) Gentoo Base System version 1.6.12 dev-lang/python: 2.3.4-r1 sys-apps/sandbox: 1.2.8 sys-devel/autoconf: [Not Present] sys-devel/automake: [Not Present] sys-devel/binutils: 2.16-r1 sys-devel/libtool: [Not Present] virtual/os-headers: 2.6.11 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium3 -mmmx -msse -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium3 -mmmx -msse -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig candy distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://192.168.1.1/" LANG="pl_PL" LC_ALL="pl_PL" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://192.168.1.1/gentoo-portage" USE="x86 X alsa apm arts avi berkdb bitmap-fonts bzip2 crypt cups emboss encode foomaticdb fortran gif gtk gtk2 imlib jpeg libg++ libwww mad mikmod mmx motif mp3 mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python quicktime readline sdl spell sse ssl tcpd truetype truetype-fonts type1-fonts xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS, LINGUAS
ebuild with --debug doesn't say much more: localhost ~ # ebuild --debug /usr/portage/sys-apps/hdparm/hdparm-6.1.ebuild unpack >>> md5 files ;-) hdparm-5.7-r1.ebuild >>> md5 files ;-) hdparm-5.9.ebuild >>> md5 files ;-) hdparm-6.1.ebuild >>> md5 files ;-) files/digest-hdparm-5.9 >>> md5 files ;-) files/digest-hdparm-6.1 >>> md5 files ;-) files/hdparm-init-7 >>> md5 files ;-) files/digest-hdparm-5.7-r1 >>> md5 files ;-) files/hdparm-conf.d.3 >>> md5 src_uri ;-) hdparm-6.1.tar.gz + dyn_setup + pkg_setup + return + set +x >>> get tmp_dir: No such file or directory >>> setup: Illegal seek
Does it only happen with hdparm?
Also, can you also try with a clean environment please? env -i ebuild /usr/portage/sys-apps/hdparm/hdparm-6.1.ebuild unpack
Caused by env's ${TMPDIR} pointing to a target that doesn't exist. Perhaps sandbox should fallback to TMPDIR in this case?
From /var/tmp/portage/hdparm-6.1/temp/environment: EBUILD_PHASE=setup It happens to all ebuilds, but: localhost portage # env -i ebuild /usr/portage/sys-apps/hdparm/hdparm-6.1.ebuild unpack >>> md5 files ;-) hdparm-5.7-r1.ebuild >>> md5 files ;-) hdparm-5.9.ebuild >>> md5 files ;-) hdparm-6.1.ebuild >>> md5 files ;-) files/digest-hdparm-5.9 >>> md5 files ;-) files/digest-hdparm-6.1 >>> md5 files ;-) files/hdparm-init-7 >>> md5 files ;-) files/digest-hdparm-5.7-r1 >>> md5 files ;-) files/hdparm-conf.d.3 >>> md5 src_uri ;-) hdparm-6.1.tar.gz >>> Unpacking source... >>> Unpacking hdparm-6.1.tar.gz to /var/tmp/portage/hdparm-6.1/work >>> Source unpacked. It works... localhost portage # unset TMPDIR helped - TMPDIR env variable was set to directory that doesn't exists.
Fixed in svn repo - will be in next release.