Since >=portage-2.1 has removed 'auto' from the default USE_ORDER, it's no longer necessary to set USE_ORDER to a "sane" value everywhere. This patch removes all the occurences.
Created attachment 102476 [details, diff] patch to remove all occurences of setting USE_ORDER
Were you spying on my conversations with dsd today? We were *just* talking about this and he was going to make up a patch. Thanks, though... I'll apply this to both catalyst SVN locations.
Actually, I made it in response to dsd's problem when he came into #-portage today. I mentioned that the USE_ORDER stuff was no longer needed. He left the channel before I could tell him I made a patch :)
I mean...yes, I was spying on you. I'm just cool like that. I made the patch for different reasons than him, but the effect is the same. I did it for cleanup purposes, and I assume he wanted it so he could override USE_ORDER from an envscript due to livecd/use overriding anything he had in /etc/portage/package.use.
Added to SVN
I agree with Andrew's change but there happens to be another bug which affects the same piece of code. Because catalyst is using the environment to export USE (and other things) rather than writing a make.conf, /etc/portage/package.use is not being treated with the same precedence as it would on a normal system. In some situations this makes package.use be completely unused. The solution is to change USE_ORDER to prioritise conf over env. conf actually encompasses make.conf and /etc/portage but as make.conf is not present there are no side effects of this. Of course, this kind of change will need to be reverted if catalyst ever starts using make.conf instead. Yes, this could be done in an envscript but I'm not happy about the amount of generic stuff that we are having to do outside of catalyst in order to produce CDs/stages which actually work. This is a bug fix which makes catalyst act like a real system would, there is no reason not to include it while catalyst is not writing make.conf. That said, the upcoming patch will not override USE_ORDER if it is set by an envscript so the user does now have some element of control here. I don't think this will have any negative effects on releng. Apparently there aren't really any stage4 users other than our work here, plus I don't think you would be using /etc/portage under normal circumstances. But, if you were ever using /etc/portage/package.use for releng stuff, I imagine you would want it to *work* :)
Created attachment 102548 [details, diff] patch
We don't use package.use by matter of policy. The solution here for you is to use your envscript. That is what it is there to do. In the near future, I'll be working to make catalyst spit out a make.conf, so I'm not accepting any patches which will go against this upcoming change at this time. You'll find that the rest of your patch is not necessary with the commit that I just made, which is almost identical to the rest of your patch.
OK. Could it at least be documented that USE vs package.use does not behave in the expected way at the moment?
Documented where? :P Catalyst has a serious lack of documentation in general, atm. That will be resolved in the relatively near future, but by then, it may not even be an issue anymore :)
Fixed in 2.0.1