On 17.12.22 06:42, Sam James wrote:
On 15 Dec 2022, at 19:22, Florian Schmaus <f...@gentoo.org> wrote:
I personally would prefer portage simply adjusting its behavior based on the 
owner of the repository. That is, if it's the 'portage' user then assume full 
control, and if it is a different user, then fall back to a preserving, 
conservative mode of operation. Unfortunately, for me, this idea was received 
skeptically at best in a recent discussion in #gentoo-portage.

This wouldn't work for Prefix and also FEATURES="-usersync".

Simply do not apply the approach on Prefix. That should be fine. I am not sure how usersync being disabled (or enabled) plays a role here, though.

I believe something like this would make everyone happy:

if volatile_explicitly_configured:
  volatile = explicitly_configured_volatile_value
else if prefix
  volatile = false
else if Path(repo_dir).user != (root|portage) # Or, if uid >= 1000
  volatile = true
else
  volatile = false

Assuming that the "if target repo is not shallow, then no shallow clone (unless explicitly requested)" check is only applied if volatile=true, then you even have the desired effect that users get their repo automatically converted to shallow ones. Which makes you happy. And the above logic would make me happy, since the "if Path(repo_dir).uid >= 1000" branch would be taken for me.

That sounds like a win/win to me.

- Flow

Reply via email to