Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 109961 - repoman does not handle overlay paths containing symlinks correctly
Summary: repoman does not handle overlay paths containing symlinks correctly
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Repoman (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 115839
  Show dependency tree
 
Reported: 2005-10-20 14:26 UTC by Petteri Räty (RETIRED)
Modified: 2006-05-23 20:10 UTC (History)
1 user (show)

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 Petteri Räty (RETIRED) gentoo-dev 2005-10-20 14:26:52 UTC
Same bug as bug 108082 but with repoman:
betelgeuse@pena ~/overlays/java/dev-java/hessian $ repoman full

Not in a CVS repository; enabling pretend mode.

Setting paths:
PORTDIR = "/mnt/checkouts/gentooexperimental/gentoo-java-experimental"
PORTDIR_OVERLAY = ""
--- 'profiles/arch.list' is empty or not available. Empty portage tree?

RepoMan does a once-over of the neighborhood...
repoman: dev-java is not an official category.  Skipping QA checks in this
directory.
Please ensure that you add dev-java to
/mnt/checkouts/gentooexperimental/gentoo-java-experimental/profiles/categories
if it is a new category.

It works without problems if I do not have symlinks in the name:
betelgeuse@pena
/mnt/checkouts/gentooexperimental/gentoo-java-experimental/dev-java/hessian $
repoman full

Not in a CVS repository; enabling pretend mode.

Setting paths:
PORTDIR = "/usr/portage"
PORTDIR_OVERLAY = "/mnt/checkouts/gentooexperimental/gentoo-java-experimental"

RepoMan does a once-over of the neighborhood...

  changelog.missing              1
   dev-java/hessian/ChangeLog
  ebuild.allmasked               1
   dev-java/hessian
  ebuild.minorsyn                1
   dev-java/hessian/hessian-3.0.13.ebuild: Trailing whitespace Syntax Error. Line 39
  metadata.missing               1
   dev-java/hessian/metadata.xml

RepoMan sez: "You're only giving me a partial QA payment?
I'll take it this time, but I'm not happy."


Reproducible: Always
Steps to Reproduce:
1. run repoman full in a directory contructed using symlinks


Expected Results:  
If not already done you should think about using common code in both ebuild and
repoman so that these kinds of issues do not happen in the future.

betelgeuse@pena
/mnt/checkouts/gentooexperimental/gentoo-java-experimental/dev-java/hessian $
emerge info
!!! Relying on the shell to locate gcc, this may break
!!! DISTCC, installing gcc-config and setting your current gcc
!!! profile will fix this
Portage 2.0.53_rc6 (default-linux/x86/2005.1, gcc-4.0.2, glibc-2.3.5-r2,
2.6.13-gentoo-r4 i686)
=================================================================
System uname: 2.6.13-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz
Gentoo Base System version 1.12.0_pre9
ccache version 2.4 [enabled]
dev-lang/python:     2.4.2
sys-apps/sandbox:    1.2.13
sys-devel/autoconf:  2.13, 2.59-r7
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 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -pipe -mfpmath=sse -ffast-math -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env
/usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/init.d /etc/splash /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -pipe -mfpmath=sse -ffast-math -fomit-frame-pointer"
DISTDIR="/usr/src/distfiles"
FEATURES="autoaddcvs autoconfig ccache collision-protect cvs distlocks
fixpackages sandbox sfperms sign strict"
GENTOO_MIRRORS=" http://trumpetti.atm.tut.fi/gentoo 
http://lame.lut.fi/linux/gentoo "
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LINGUAS="fi"
MAKEOPTS="-j2 -s"
PKGDIR="/home/pkg/"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/mnt/checkouts/overlays/betelgeuse
/mnt/checkouts/gentooexperimental/gentoo-java-experimental"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X aac acl acpi alsa apm arts audiofile avi bash-completion berkdb
bitmap-fonts bluetooth browserplugin bzip2 bzlib cdb cddb cdparanoia cdr crypt
cups dbus divx4linux dts dvd dvdr dvdread emboss esd firefox foomaticdb freetype
gif gstreamer gtk2 hal java jpeg kde kdeenablefinal libg++ libwww logitech-mouse
lzo mad makecheck mikmod mjpeg mmx mmx2 mp3 mpeg ncurses network nptl nptlonly
nsplugin nvidia offensive ogg oggvorbis opengl pam pdflib png qt quicktime
readline real rtc ruby samba spell sse sse2 ssl subversion svg symlink tcpd
theora tiff truetype truetype-fonts type1-fonts unicode usb userlocales vorbis
win32codecs xine xml xml2 xv xvid zlib video_cards_nvidia linguas_fi
userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LDFLAGS
Comment 1 Jason Stubbs (RETIRED) gentoo-dev 2005-10-20 16:35:04 UTC
2.0.51.22-r2 is affected by this too, right? 
Comment 2 Petteri Räty (RETIRED) gentoo-dev 2005-10-21 01:19:21 UTC
Yeah it seems so:

betelgeuse@aria /usr/local/portage/app-cdr/k3b $ repoman full

Not in a CVS repository; enabling pretend mode.
Unable to determine PORTDIR.
betelgeuse@aria /usr/local/portage/app-cdr/k3b $ cd ..
betelgeuse@aria /usr/local/portage/app-cdr $ cd ..
betelgeuse@aria /usr/local/portage $ cd ..
betelgeuse@aria /usr/local $ cd foobar/app-cdr/k3b/
betelgeuse@aria /usr/local/foobar/app-cdr/k3b $ repoman full

Not in a CVS repository; enabling pretend mode.
Unable to determine PORTDIR.
betelgeuse@aria /usr/local/foobar/app-cdr/k3b $


Portage 2.0.51.22-r3 (hardened/x86/2.6, gcc-3.3.6, glibc-2.3.5-r2,
2.6.11-hardened-r15 i686)
=================================================================
System uname: 2.6.11-hardened-r15 i686 AMD Athlon(tm) XP 2600+
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [disabled]
dev-lang/python:     2.3.5-r2
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.15.92.0.2-r10
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.8.1-r1, 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-xp -pipe -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/init.d /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer"
DISTDIR="/home/distfiles"
FEATURES="autoconfig collision-protect distlocks sandbox sfperms strict"
GENTOO_MIRRORS=" http://trumpetti.atm.tut.fi/gentoo
http://lame.lut.fi/linux/gentoo "
LC_ALL="en_US.UTF-8"
PKGDIR="/usr/portage//packages/x86/"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage/"
PORTDIR_OVERLAY="/usr/local/foobar"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow 3dnowex acl acpi apache2 bash-completion berkdb bzlib cdr crypt cups
curl dlloader foomaticdb gd gdbm gpm hardened libwww makecheck mmx ncurses nls
nptl pam pic png ppds readline ruby samba sse ssl tcpd tiff udev unicode usb
userlocales vhosts x86 xml2 zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LDFLAGS, LINGUAS, MAKEOPTS
Comment 3 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-01-27 16:00:30 UTC
Wondering if this is a bug in portage, or in fact with repoman.

Can you reproduce with repoman and portage 2.0.54?
Comment 4 Zac Medico gentoo-dev 2006-01-27 18:43:43 UTC
(In reply to comment #2)
> Not in a CVS repository; enabling pretend mode.
> Unable to determine PORTDIR.

I am able to reproduce this problem locally with portage-2.1_pre.  Unfortunately, it seems that os.getcwd() returns a cannonical path (all symlinks resolved).  A possible alternative is to use os.system("pwd") which apparently returns the non-cannonical path.
Comment 5 K. Posern 2006-05-05 02:47:09 UTC
I wanted to report the same buggy behaviour with
portage 2.0.54-r1
Comment 6 Zac Medico gentoo-dev 2006-05-23 15:24:01 UTC
(In reply to comment #2)
> Unable to determine PORTDIR.

This is fixed in svn r3405.
Comment 7 Zac Medico gentoo-dev 2006-05-23 20:10:42 UTC
This has been released in 2.1_rc2-r2.