Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 110670 - stable portage used invalid pkgdir
Summary: stable portage used invalid pkgdir
Status: RESOLVED WORKSFORME
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Configuration (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-28 00:41 UTC by solar (RETIRED)
Modified: 2005-10-28 20:16 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description solar (RETIRED) gentoo-dev 2005-10-28 00:41:27 UTC
Portage making up it's own PKGDIR?

; # world only has man-pages to be update in it.

+tinderbox All # emerge world
.
..
...
....
...
..
.
>>> extracting info
Traceback (most recent call last):
  File "/usr/bin/emerge", line 3200, in ?
    mydepgraph.merge(mydepgraph.altlist())
  File "/usr/bin/emerge", line 1898, in merge
    retval=portage.pkgmerge(mytbz2,myroot,self.pkgsettings)
  File "/usr/lib/portage/pym/portage.py", line 6973, in pkgmerge
    xptbz2.unpackinfo(infloc)
  File "/usr/lib/portage/pym/xpak.py", line 370, in unpackinfo
    os.chdir(origdir)
OSError: [Errno 2] No such file or directory:
'/usr/portage/home/ftp/default-linux/x86/2005.1-X/All'

tinderbox All # emerge info
Portage 2.0.51.22-r3 (default-linux/x86/2005.1, gcc-4.0.2,
glibc-2.3.5.20050722-r0, 2.6.11-hardened-r15 i686)
=================================================================
System uname: 2.6.11-hardened-r15 i686 Intel(R) Pentium(R) 4 CPU 2.60GHz
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5-r2, 2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=i686"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig buildpkg distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/local/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X alsa apm arts avi berkdb bitmap-fonts crypt cups eds emboss encode
esd fam foomaticdb fortran gd gdbm gif gnome gpm gstreamer gtk gtk2 imlib ipv6
jpeg kde libg++ libwww mad mikmod motif mozilla mp3 mpeg ncurses nls nptl
nptlonly ogg oggvorbis opengl oss pam pdflib perl png python qt quicktime
readline sdl snmp spell ssl tcltk tcpd tetex tiff truetype truetype-fonts
type1-fonts udev vorbis xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS

+tinderbox All # pwd
/usr/portage/local/packages/All


+tinderbox All # cat /etc/make.conf

# Try to not edit this file. We want to run the host as close to base/default as
can be
CFLAGS="-O2 -march=i686"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"

FEATURES=buildpkg
PORTDIR=/usr/portage
PKGDIR=${PORTDIR}/local/packages
PORTDIR_OVERLAY=/usr/local/portage
MAKEOPTS=-j4

USE="nptl nptlonly"
Comment 1 Marius Mauch (RETIRED) gentoo-dev 2005-10-28 11:49:37 UTC
Looks odd ... os.getcwd() agrees with `pwd`?
Comment 2 solar (RETIRED) gentoo-dev 2005-10-28 16:31:04 UTC
Yes a python -c 'import os;print os.getcwd();' matched a bash pwd

Here is the odd part. This box acts as a semi tinderbox and has several
chroots going on. At the time if the trackback I was in a chroot. The
host system itself uses PKGDIR="/home/ftp/default-linux/x86/2005.1/"
Thats not quite the same as the 2005.1-X dir that was in the traceback.
Another note is that all the chroots all share the same $PORTDIR bind 
mounted. At some point in the day yesterday I did mv
/usr/portage/local/packages/ to /home/ftp/default-linux/x86/2005.1-X/ 
directory but that was outside of the chroot.

What I'm thinking is perhaps I was in the $PKGDIR of the chroot when I 
moved vs copied the packages to the public ftp dir that was outside of
the chroot causing the kernel to see and or mix up the inode move and
python got back incorrect results and concatenated two mixed up
variables that were returned to it creating or expecting the
'/usr/portage/home/ftp/default-linux/x86/2005.1-X/All' dir.

Anyway on a second merge everything was fine.

So maybe this is a WORKFORSOME?
Comment 3 Marius Mauch (RETIRED) gentoo-dev 2005-10-28 20:16:06 UTC
Yeah, also pretty sure portage can't do anything about it.