Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 139016 - eselect-compiler creates viscious loop
Summary: eselect-compiler creates viscious loop
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High major
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
: 139830 139963 (view as bug list)
Depends on:
Blocks: 143697
  Show dependency tree
 
Reported: 2006-07-03 08:30 UTC by Michael Cummings (RETIRED)
Modified: 2007-03-13 16:00 UTC (History)
8 users (show)

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


Attachments
Don't die on bootstrap; don't die if first-time eselect-compiler install (eselect-compiler-2.0.0_rc2-r2.ebuild,5.13 KB, text/plain)
2006-07-11 07:10 UTC, Kevin F. Quinn (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Cummings (RETIRED) gentoo-dev 2006-07-03 08:30:06 UTC
I was trying to update my box, and eselect-compiler failed because there were no profiles. Not liking re-emerging gcc, but willing to go forward, I tried - but eselect-compiler being a dep makes it tough to get past this...

emerge -av --oneshot sys-devel/gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] app-admin/eselect-compiler-2.0.0_rc2-r1  USE="-hardened" 0 kB [2]
[ebuild  NS   ] sys-devel/gcc-3.4.6-r1  USE="fortran gcj gtk -bootstrap -boundschecking -build -doc -hardened -ip28 -ip32r10k -multislot -nls -nocxx -nopie -nossp -objc -vanilla" 27,694 kB [2]

Total size of downloads: 27,694 kB
Portage overlays:
 [1] /home/mcumming/projects/overlay/experimental
 [2] /home/mcumming/projects/overlay/gentoo-x86

Would you like to merge these packages? [Yes/No]

>>> Emerging (1 of 2) app-admin/eselect-compiler-2.0.0_rc2-r1 to /
>>> checking ebuild checksums ;-)
>>> checking auxfile checksums ;-)
>>> checking miscfile checksums ;-)
>>> checking eselect-compiler-2.0.0_rc2.tar.gz ;-)
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
 * We weren't able to find a valid eselect compiler profile for default.
 * Please do the following to re-emerge gcc, then retry emerging
 * eselect-compiler:
 * # emerge -v --oneshot sys-devel/gcc

!!! ERROR: app-admin/eselect-compiler-2.0.0_rc2-r1 failed.
Call stack:
  ebuild.sh, line 1561:   Called dyn_setup
  ebuild.sh, line 668:   Called pkg_setup
  eselect-compiler-2.0.0_rc2-r1.ebuild, line 32:   Called die
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-07-03 10:46:19 UTC
I'd love this thing to go back to p.mask, would save tens of pointless bugs.
Comment 2 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-03 15:23:59 UTC
Masking it again solves nothing, other than preventing bugs being found.  None of the bugs found since the unmasking would have been found if it had remained p.masked, since they obviously didn't trigger for few who were using it.  Calling such bugs pointless is ridiculous, since without them how are the bugs to be found and fixed?  After all it was p.masked for the best part of a year without any of them being raised.  This is what unstable marking is for; essentially functional but may have bugs in certain circumstances, especially those unforseen by the author.  This is undoubtedly more severe with the compiler wrapper than it is with a limited application, but how else is progress to be made?  Unstable means it might not work.  If you can't deal with the problems caused, raising a bug and falling back to stable is simple enough.
Comment 3 Martin Schlemmer (RETIRED) gentoo-dev 2006-07-04 02:07:57 UTC
(In reply to comment #2)
> Masking it again solves nothing, other than preventing bugs being found.

Sure, but you usually unmask something that you are relatively sure wont screw a lot of users - especially something so critical in a distro like Gentoo.

> None of the bugs found since the unmasking would have been found if it had remained
> p.masked, since they obviously didn't trigger for few who were using it. 

Right, but on the other hand I would have thought it a given that something so critical was asked to be tested first before unmasking - then most of the severe bugs would have been discovered.  I do not see any requests for testing after the initial announcement of development, or the actual unmasking of the beast.

> Calling such bugs pointless is ridiculous, since without them how are the bugs
> to be found and fixed?  After all it was p.masked for the best part of a year
> without any of them being raised.  This is what unstable marking is for;
> essentially functional but may have bugs in certain circumstances, especially
> those unforseen by the author.  This is undoubtedly more severe with the
> compiler wrapper than it is with a limited application, but how else is
> progress to be made?  Unstable means it might not work.  If you can't deal with
> the problems caused, raising a bug and falling back to stable is simple enough.
> 

Personally I think this whole thing is immature.  No, it is not bad grapes, as if you check the older gcc-config's ChangeLog, it was for the last while handled all by Mike (one of the reasons I rather shutup about this whole thing, as nobody else in toolchain ever say anything, so now it seems like me whining when I try to confront anything about it).  And I did admit from the start that it have some issues, and some thinko's on say x-compiling, etc, so really some much needed thinking, discussing, and redesign should have been done - I must say, I do not see much of that here.

The thing though is that the 'unstable tree' should not be seen as a playground for developers.  We have many users who run unstable, and will be put off if critical pieces starts breaking.  Sure, its for things that developers expect to need more testing, but it should at least have been given more wider testing while package masked.
Comment 4 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-04 12:40:15 UTC
Well, to be honest I had a couple of issues with gcc-config, but while they were dealt with in a way that suited Mike, those resolutions didn't help me (in particular, lack of specs configuration in the config files, and more broadly the reliance on the shell environment for configuration rather than config files).  The point is that gcc-config isn't going to satisfy everyone, and  select-compiler won't either.

Perhaps it would be a good idea to supply the compiler switcher via a virtual.  That way Mike can continue with gcc-config the way he wants it, Jeremy can take eselect-compiler in the direction he wants to, and if any of us don't like either it's easy to supply our own.  Obviously some agreement has to be reached for issues where ebuilds need to specify something about the compiler, but these aren't numerous (wine is the only package that isn't compatible with both that I can think of).

I had assumed the various stakeholders had discussed the issues surrounding the compiler switcher.  Certainly such a discussion would be useful if it hasn't occurred.  Incidentally I'd like to know why the upstream '-V' and '-b' options are't used; they seem to be intended to support multiple versions and multiple targets.
Comment 5 Michael Cummings (RETIRED) gentoo-dev 2006-07-06 08:01:00 UTC
recommendations? do i need to downgrade gcc-config? (shooting in the dark)
Comment 6 Michael Cummings (RETIRED) gentoo-dev 2006-07-08 11:31:10 UTC
For users that fall upon this bug (which has hit me again on another box) - install the oldest copy of the eselect-compiler, which will give the same error and then *continue*; then run eslect compiler migrate. at that point you will have a working compiler again.
Comment 7 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-10 22:26:35 UTC
*** Bug 139830 has been marked as a duplicate of this bug. ***
Comment 8 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-10 22:28:23 UTC
This also causes bootstrapping to fail; raising severity in line with bug #139830: "bootstrapping non-root path fails in ~x86 with error from eselect-compiler build"
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2006-07-11 02:18:47 UTC
*** Bug 139963 has been marked as a duplicate of this bug. ***
Comment 10 Toon Weltens 2006-07-11 03:26:32 UTC
(In reply to comment #6)
> For users that fall upon this bug (which has hit me again on another box) -
> install the oldest copy of the eselect-compiler, which will give the same error
> and then *continue*; then run eslect compiler migrate. at that point you will
> have a working compiler again.
> 
Sorry for this "unprofessional" question but...which is the oldest version and how do I specify that I want to install that one in the emerge command.
Comment 11 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-11 04:37:55 UTC
(In reply to comment #10)
> Sorry for this "unprofessional" question but...which is the oldest version and
> how do I specify that I want to install that one in the emerge command.

emerge =app-admin/eselect-compiler-2.0.0_rc1-r6
Comment 12 Toon Weltens 2006-07-11 06:32:57 UTC
The problem stays even if i emerge an earlier version of eselect-compiler. 
After issueing the "emerge =app-admin/eselect-compiler-2.0.0_rc1-r6" command the error message doesn't dissapear and he doesn't continue.

>>> checking compiler-config-2.0.0_rc1.tar.gz ;-)
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
grep: //etc/eselect/compiler/*.conf: No such file or directory
 * We weren't able to find a valid eselect compiler profile for sparc32.
 * Please do the following to re-emerge gcc, then retry emerging
 * eselect-compiler:
 * # emerge -v --oneshot sys-devel/gcc

!!! ERROR: app-admin/eselect-compiler-2.0.0_rc1-r6 failed.
Call stack:
  ebuild.sh, line 1561:   Called dyn_setup
  ebuild.sh, line 668:   Called pkg_setup
  eselect-compiler-2.0.0_rc1-r6.ebuild, line 36:   Called die

!!! Missing eselect-compiler profile for sparc32
Comment 13 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-11 07:10:29 UTC
Created attachment 91464 [details]
Don't die on bootstrap; don't die if first-time eselect-compiler install

You're right.  It needs to be older than the versions currently in portage.

Try this modified ebuild, which should deal with the first-time install problem and the bootstrap problem.
Comment 14 Brant Gurganus 2006-07-11 15:30:48 UTC
(In reply to comment #13)
> Created an attachment (id=91464) [edit]
> Don't die on bootstrap; don't die if first-time eselect-compiler install
> 
> You're right.  It needs to be older than the versions currently in portage.
> 
> Try this modified ebuild, which should deal with the first-time install problem
> and the bootstrap problem.
> 

I think you left part of the new ebuild/patch out. Here is what happened for me:
>>> Emerging (12 of 18) app-admin/eselect-compiler-2.0.0_rc2-r1 to /mnt/external/
>>> checking ebuild checksums ;-)
>>> checking auxfile checksums ;-)
>>> checking miscfile checksums ;-)
>>> checking eselect-compiler-2.0.0_rc2.tar.gz ;-)
>>> Unpacking source...
>>> Unpacking eselect-compiler-2.0.0_rc2.tar.gz to /var/tmp/portage/eselect-compiler-2.0.0_rc2-r1/work

 * Cannot find $EPATCH_SOURCE!  Value for $EPATCH_SOURCE is:
 *
 *   /usr/local/portage/app-admin/eselect-compiler/files/eselect-compiler-2.0.0_rc2-bug135688.patch
 *   ( eselect-compiler-2.0.0_rc2-bug135688.patch )


!!! ERROR: app-admin/eselect-compiler-2.0.0_rc2-r1 failed.
Call stack:
  ebuild.sh, line 1545:   Called dyn_unpack
  ebuild.sh, line 711:   Called src_unpack
  eselect-compiler-2.0.0_rc2-r1.ebuild, line 131:   Called epatch '/usr/local/portage/app-admin/eselect-compiler/files/eselect-compiler-2.0.0_rc2-bug135688.patch'
  eutils.eclass, line 192:   Called die

!!! Cannot find $EPATCH_SOURCE!
!!! If you need support, post the topmost build error, and the call stack if relevant.

!!! This ebuild is from an overlay: '/usr/local/portage'
Comment 15 Brant Gurganus 2006-07-11 15:34:17 UTC
Actually, it did appear to work. I just didn't realize I needed to copy the file from portage into my overlay. Anyhow, eselect-compiler did install. I'll report if the compiler installs fine.
Comment 16 Brant Gurganus 2006-07-11 17:34:01 UTC
Bootstrapping a blank partition appears to have worked.
Comment 17 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-11 23:44:04 UTC
ok; I've committed this fix to eselect-compiler-2.0.0_rc2-r1 - decided against a rev-bump since the problem is with installing -r1 (those of you who put -r2 in overlay you can remove it - portage will ask to downgrade to -r1 but you can let that happen, it won't actually change anything).

Leaving the bug open so Jeremy can decide whether the fix is actually what he wants or not.
Comment 18 Toon Weltens 2006-07-12 01:15:26 UTC
Haha finally got it emerging. First i did a "emerge-webrsync" and then "emerge =eselect-compiler-2.0.0_rc1-r6", and it installed just fine. It still warns me about my profiles not existing tough, should i worry?
Comment 19 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-12 04:12:42 UTC
(In reply to comment #18)
> should i worry?

No :)  If should have created profiles for your existing compilers when you emerge it (so that 'eselect compiler list' should show something).  If not, try:

# eselect compiler migrate
Comment 20 Toon Weltens 2006-07-12 06:06:00 UTC
(In reply to comment #19)

> No :)  If should have created profiles for your existing compilers when you
> emerge it (so that 'eselect compiler list' should show something).  If not,
> try:
> 
> # eselect compiler migrate
 
I was already ahead and issued the command "eselect compiler migrate" because at the end of the eselect-compiler merge he advised me to do this, which allowed me to SUCCESSFULLY upgrade the eselect-compiler from 2.0.0-rc1-r6 to 2.0.0-rc2-r1 and, more important, finally upgrade my gcc from 3.3 to 3.4.6. I'm now finishing  the gentoo GCC upgrade guide and so far no more errors. 
Comment 21 Diego Elio Pettenò (RETIRED) gentoo-dev 2006-07-21 14:28:17 UTC
This is getting a problem on Gentoo/FreeBSD stage building, any news on this?
Comment 22 Kevin F. Quinn (RETIRED) gentoo-dev 2006-07-22 02:19:54 UTC
(In reply to comment #21)
> This is getting a problem on Gentoo/FreeBSD stage building, any news on this?

I committed a fix to the tree (see c#17) - didn't do a rev-bump on the understanding it only affects people doing new installs.  Try re-emerging eselect-compiler and see if that's enough for you - if not, post back here of course.
Comment 23 Jeremy Huddleston (RETIRED) gentoo-dev 2006-08-22 03:50:31 UTC
That if condition there is not correct.  It will only have selection.conf if eselect-compiler has been installed on the system before.  Should we use IUSE=build instead?  I forget which is the correct flag bootstrap/build.
Comment 24 SpanKY gentoo-dev 2007-03-13 06:35:08 UTC
eselect-compiler is dead for the time being
Comment 25 Michael Cummings (RETIRED) gentoo-dev 2007-03-13 16:00:57 UTC
"and there was much rejoicing."