sh-2.05b# repoman full We're not in PORTDIR... setting to: /Volumes/my-cvs/gentoo-x86 repoman: Couldn't recognize repository type. Supported repositories: ['gentoo-x86'] sh-2.05b# /Volumes/my-cvs/gentoo-x86 is bind mounted to /usr/portage. We're in the /usr/portage dir. So why /Volumes/my-cvs/gentoo-x86? By default Apple Mac OS X has a case insensitive, case preserving filesystem (HFS+). Our cvs repository fails to checkout on such a filesystem; In gentoo-x86/dev-util there's both a ``CVS'' and a ``cvs'' directory, obviously confusing cvs to the point it fails. The solution is to create an image with an UFS filesystem (case sensitive), mount it, checkout gentoo cvs on it and bind mount that cvs in the case insensitive filesystem. This works, but apparently confuses repoman. I do have an ugly patch, that makes repoman work, but it for some reason it makes him complain about no errors. I'll clean it up and attach here.
if isCvs: reporoot=None for x in REPOROOTS: print "x=",x print "myrepo=",myreporoot print "myrepo=",myreporoot[0:len(x)] if myreporoot[0:len(x)]==x: reporoot=myreporoot if not reporoot: err("Couldn't recognize repository type. Supported repositories:\n"+repr(REPOROOTS)) gives when executed: x= gentoo-x86 myrepo= /var/cvsroot/gentoo-x86/media-libs/libpng myrepo= /var/cvsro repoman: Couldn't recognize repository type. Supported repositories: ['gentoo-x86'] something not working as expected there
Actually, repoman is handled by dev-portage.
what do you have defined for PORTDIR; alternatively, just dump portage.portdb.porttrees Basically, emerge info :)
What's not working here is media-libs/libpng/CVS/Repository contains /var/cvsroot/gentoo-x86/media-libs/libpng rather than gentoo-x86/media-libs/libpng when you check out gentoo-x86 module from cvs.gentoo.org on Mac OS X. (I have no idea why it happens) I manually sedded Repository files and then the problem went away.
Pieter: That particular check is to ensure that you are not within the portdir already. It matches based on the length of portdir to check the path names against eachother. The Repository file being incorrect is odd... and there isn't a whole lot we can do about that other than adding in a large quantity of checks to fetch all the cases where the real repo is embeded in the repo files/path. If it's a recurring problem, reopen, and possibly look into why CVS behaves differently on OS X as opposed to linux regarding naming schemes. One guess: -d/ ... :/var/cvsroot/...
Needs to be reproduced as this is inconsistent behavior with any other instance of CVS I have witnessed/used.
iBookG4:~ pvdabeel$ emerge info Password: !!! Using `which gcc` to gcc locate version, this may break !!! DISTCC, installing gcc-config and setting your current gcc !!! profile will fix this Portage 2.0.51_pre13 (default-macos-10.3, gcc-3.3, unavailable, 7.4.0 Power Macintosh powerpc) ================================================================= System uname: 7.4.0 Power Macintosh powerpc cat: /etc/gentoo-release: No such file or directory distcc 2.0.1-zeroconf powerpc-apple-darwin7.0 (protocol 1) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.57 Automake: sys-devel/automake-1.6.3 Binutils: ACCEPT_KEYWORDS="macos" AUTOCLEAN="yes" CFLAGS="-O3 -pipe" CHOST="powerpc-apple-darwin" COMPILER="gcc3" 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/env.d" CXXFLAGS="-O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache cvs keepwork" GENTOO_MIRRORS="http://gentoo.osuosl.org/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="macos X berkdb ldap mysql perl python ruby" iBookG4:~ pvdabeel$ Mac OS X is installed on a case insensitive, case preserving filesystem. The gentoo-x86 cvs repository requires a case sensitive filesystem because in dev-util there is a CVS and a cvs dir. Now this is how we solve that on macos: 1. We create a case sensitive filesystem image, mount it at /Volumes/my-cvs/ 2. Mac OS X cannot bind mount, so I use a symlink to link /Volumes/my-cvs/ to /usr/portage/ I am thinking the second step somehow breaks the repoman check.
Fixed in cvs.