Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 43601 - repoman multi-arch check uses current profile, breaking dep checks
Summary: repoman multi-arch check uses current profile, breaking dep checks
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Repoman (show other bugs)
Hardware: All All
: High blocker (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2004-03-03 06:18 UTC by Jason Wever (RETIRED)
Modified: 2004-08-13 14:53 UTC (History)
3 users (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 Jason Wever (RETIRED) gentoo-dev 2004-03-03 06:18:45 UTC
Repoman seems to have problems detecting ebuilds that should satisfy ia64 (and possibly other) dependencies. 

An example is running repoman in app-admin/conserver.  When I run repoman there on either x86 stable, sparc testing or sparc64 testing it complains that ia64 does not have a valid stable sys-libs/pam ebuild.  However, after talking to agriffis and having him run repoman on an ia64, that does not show up.

pam-0.75-r9 has a stable keyword, and app-admin/conserver's dependency on sys-libs/pam is not version dependent.  ia64's profile also has a declaration for pam that should allow this version (packages:*>=sys-libs/pam-0.75-r9).
Comment 1 Masatomo Nakano (RETIRED) gentoo-dev 2004-03-03 06:25:35 UTC
It works for me in my x86 box.

Did you update profile dir in your cvs direcotry?
If you did and the error happens now, can you show us the repoman error message?
Comment 2 Jason Wever (RETIRED) gentoo-dev 2004-03-03 06:34:58 UTC
Yeah, profiles dir is up to date.

On the sparc64 box, I'm using a cvs co'd portage tree, whereas on the sparc and x86 boxes, I'm using a regularly emerge sync'd tree that is current as of 0700 GMT.

The error repoman gives is like a normal broken dependency;
excelsior conserver # repoman

RepoMan scours the neighborhood...

  DEPEND.bad           1
   app-admin/conserver/conserver-8.0.9.ebuild: ia64 ['sys-libs/pam']
  RDEPEND.bad          1
   app-admin/conserver/conserver-8.0.9.ebuild: ia64 ['sys-libs/pam']


Comment 3 Jason Wever (RETIRED) gentoo-dev 2004-03-03 06:36:09 UTC
Actually, it's not happening on x86, but it definitely happens on sparc.  I jumped the gun there on x86 :-P
Comment 4 Masatomo Nakano (RETIRED) gentoo-dev 2004-03-03 14:46:25 UTC
OK. I understand the problem.
I'm fixing it.
Comment 5 Jason Wever (RETIRED) gentoo-dev 2004-03-03 14:48:59 UTC
Cool, what was it?
Comment 6 Masatomo Nakano (RETIRED) gentoo-dev 2004-03-06 00:15:30 UTC
Fixed in CVS.

Jason, repoman ignored some profile files on other arch.
Comment 7 Mr. Bones. (RETIRED) gentoo-dev 2004-03-08 19:48:50 UTC
Would be nice to see this fix go out asap.  can you rev-bump portage to just
push this repoman fix to stable portage please?
Comment 8 Travis Tilley (RETIRED) gentoo-dev 2004-07-12 01:15:44 UTC
i'm using portage 2.0.51_pre13 and this bug still hits me... only in my case, i get dep errors for almost every arch other than my own.

  DEPEND.bad           1
   sys-libs/libstdc++-v3/libstdc++-v3-3.3.3-r1.ebuild: ~mips ['>=sys-devel/binutils-2.14.90.0.6-r1']

sys-devel/binutils/binutils-2.14.90.0.6-r7.ebuild:KEYWORDS="amd64 ~x86 ~ppc ~alpha ~sparc ~mips ~hppa ~ia64"

so the keyword is definately there... when i make /etc/make.profile point to a mips profile i get:

RepoMan sez: "If everyone were like you, I'd be out of business!"

the problem seems to be that it's looking at -my- current profile... gcc34-amd64-2004.1 masks versions of binutils under sys-devel/binutils-2.15.90.0.1.1-r1.
Comment 9 Travis Tilley (RETIRED) gentoo-dev 2004-07-18 20:05:06 UTC
i cant use repoman without --ignore-other-arches, and as mr_bones will tell you this is a bad thing (tm).
Comment 10 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-19 21:16:54 UTC
I'm not sure if this is the cause.
But can you remove the comment out around line 744 in /usr/lib/portage/bin/repoman and try repoman again?

From:
#portage.portdb=portage.portdbapi(portdir, dep_settings)
To:
portage.portdb=portage.portdbapi(portdir, dep_settings)

genone:
may i ask why you commented it out?
If there is a bug about it, please tell me.
Comment 11 Marius Mauch (RETIRED) gentoo-dev 2004-07-20 07:49:20 UTC
nakano: because with that line it requires several GB of RAM for a full scan (bug 56170) and I didn't see where it was supposed to be used.
Comment 12 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-20 11:53:27 UTC
It's used in the next line.
Comment 13 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-20 12:17:28 UTC
The line is needed to create profiles for each arches.

I've also fixed bug 56170.
The cause is that the profile caches are cleared in each packages.
Comment 14 Marius Mauch (RETIRED) gentoo-dev 2004-07-20 13:46:40 UTC
yes and no. You assign it to arch_caches and get it back in the if statement, but it's not used anywhere as far as I can see. The only other reference to portage.portdb is way outside of that loop.
Comment 15 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-20 15:03:59 UTC
portage.portdb is used in many places in portage.py as global variable.
Comment 16 Travis Tilley (RETIRED) gentoo-dev 2004-07-20 16:03:32 UTC
without editing repoman, i get:

  DEPEND.bad           1
   sys-libs/libstdc++-v3/libstdc++-v3-3.3.3-r1.ebuild: ~mips ['>=sys-devel/binutils-2.14.90.0.6-r1']

with that line uncommented:

  DEPEND.bad           1
   sys-libs/libstdc++-v3/libstdc++-v3-3.3.3-r1.ebuild: amd64 ['>=sys-devel/gcc-3.4*']

which makes more sense, because gcc 3.4 is masked in the default amd64 profile. different bug entirely... i wouldnt even be able to --ignore-other-arches to commit this, as it seems to ignore that i'm on amd64 and using an amd64 profile that doesnt mask gcc 3.4....

ok, lets try with gcc. with the line commented out:

  DEPEND.bad           3
   sys-devel/gcc/gcc-3.4.1.ebuild: ~mips ['>=sys-devel/binutils-2.14.90.0.8-r1']   sys-devel/gcc/gcc-3.4.1.ebuild: ~hppa ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.4.0-r6.ebuild: ~mips ['>=sys-devel/binutils-2.14.90.0.8-r1']
  RDEPEND.bad          1
   sys-devel/gcc/gcc-3.4.1.ebuild: ~hppa ['sys-libs/glibc']

with the line uncommented:

  DEPEND.bad           2
   sys-devel/gcc/gcc-3.3.3-r4.ebuild: arm ['>=sys-libs/glibc-2.3.3_pre20040207']   sys-devel/gcc/gcc-3.3.3-r3.ebuild: arm ['>=sys-libs/glibc-2.3.3_pre20040207']  RDEPEND.bad          2
   sys-devel/gcc/gcc-3.3.3-r4.ebuild: arm ['>=sys-libs/glibc-2.3.3_pre20040207']   sys-devel/gcc/gcc-3.3.3-r3.ebuild: arm ['>=sys-libs/glibc-2.3.3_pre20040207']  DEPEND.badindev      8
   sys-devel/gcc/gcc-3.3.3_pre20040130.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3_pre20040408-r1.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.2-r5.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3_pre20040215.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.2-r7.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3-r3.ebuild: ~ppc64 ['sys-libs/glibc', '>=sys-libs/glibc-2.3.3_pre20040207']
   sys-devel/gcc/gcc-3.3.3-r3.ebuild: s390 ['>=sys-libs/glibc-2.3.3_pre20040207']
  RDEPEND.badindev     8
   sys-devel/gcc/gcc-3.3.3_pre20040130.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3_pre20040408-r1.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.2-r5.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3_pre20040215.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.2-r7.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/gcc/gcc-3.3.3-r3.ebuild: ~ppc64 ['sys-libs/glibc', '>=sys-libs/glibc-2.3.3_pre20040207']
   sys-devel/gcc/gcc-3.3.3-r3.ebuild: s390 ['>=sys-libs/glibc-2.3.3_pre20040207'

erm.... ok, something still doesnt seem quite right here.

lets try binutils. with the line commented:

  DEPEND.bad           4
   sys-devel/binutils/binutils-2.15.90.0.3-r3.ebuild: arm ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.15.90.0.3-r3.ebuild: ~ppc ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.15.90.0.1.1-r1.ebuild: ~hppa ['sys-libs/glibc']   sys-devel/binutils/binutils-2.15.90.0.1.1-r3.ebuild: ~ppc ['sys-libs/glibc']
  RDEPEND.bad          4
   sys-devel/binutils/binutils-2.15.90.0.3-r3.ebuild: arm ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.15.90.0.3-r3.ebuild: ~ppc ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.15.90.0.1.1-r1.ebuild: ~hppa ['sys-libs/glibc']   sys-devel/binutils/binutils-2.15.90.0.1.1-r3.ebuild: ~ppc ['sys-libs/glibc']
  ebuild.allmasked     1
   sys-devel/binutils

uncommented:

  DEPEND.badindev      3
   sys-devel/binutils/binutils-2.14.90.0.8-r1.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.14.90.0.7-r4.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.14.90.0.8.ebuild: ~ppc64 ['sys-libs/glibc']
  RDEPEND.badindev     3
   sys-devel/binutils/binutils-2.14.90.0.8-r1.ebuild: ~ppc64 ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.14.90.0.7-r4.ebuild: ppc64 ['sys-libs/glibc']
   sys-devel/binutils/binutils-2.14.90.0.8.ebuild: ~ppc64 ['sys-libs/glibc']

erm... ok, i seems to work as it 'should' with the line uncommented, but it also seems that this is wrong too...
Comment 17 Travis Tilley (RETIRED) gentoo-dev 2004-07-20 16:04:07 UTC
oh yeah, it also didnt require large amounts of memory to do.
Comment 18 Travis Tilley (RETIRED) gentoo-dev 2004-07-21 01:29:37 UTC
alright, with this line uncommented and profiles/profiles.desc updated, this bug can be closed. let me know when it's in a release so i can update to it. :)
Comment 19 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-21 02:32:29 UTC
OK.

The code has been in cvs.
It means it will be included in the next .51(pre).
Comment 20 Travis Tilley (RETIRED) gentoo-dev 2004-07-21 02:58:43 UTC
strike that... just tried to do a repoman scan on the full cvs tree:

ayanami portcvs # repoman scan > ../repo
QA Notice: USE Flag 'python' not in IUSE for sys-apps/file-4.09
Traceback (most recent call last):
  File "/usr/bin/repoman", line 657, in ?
    myaux=portage.db["/"]["porttree"].dbapi.aux_get(catdir+"/"+y,allvars,strict=1)
  File "/usr/lib/portage/pym/portage.py", line 5159, in aux_get
    myret=doebuild(myebuild,"depend","/",self.mysettings,dbkey=mydbkey)
  File "/usr/lib/portage/pym/portage.py", line 2537, in doebuild
    retval = spawn(EBUILD_SH_BINARY+" depend",mysettings)
  File "/usr/lib/portage/pym/portage.py", line 1884, in spawn
    mypid=os.fork()
OSError: [Errno 12] Cannot allocate memory
Comment 21 Masatomo Nakano (RETIRED) gentoo-dev 2004-07-21 03:08:35 UTC
did you apply this patch?

http://www.gentoo.org/cgi-bin/viewcvs.cgi/portage/bin/repoman?r1=1.69&r2=1.70&root=gentoo-src
Comment 22 Travis Tilley (RETIRED) gentoo-dev 2004-07-21 03:39:31 UTC
all i did was uncomment that one line, i didnt apply a patch or move "arch_caches={}" around. i guess i should wait until the next portage release to test further, since i'm not using the cvs version of portage and i modified my repoman to not run xmllint since it causes repoman to hang 9 times out of 10.

ignore me, i'll file another bug after the next release if this persists :)
thankyou very much for the fix
Comment 23 Brian Harring (RETIRED) gentoo-dev 2004-08-13 14:53:55 UTC
This was released in pre15 iirc.
Either way, it's in pre17.