Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
about adding priority groups to the world set
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
jeffss
n00b
n00b


Joined: 13 Sep 2019
Posts: 55

PostPosted: Tue Aug 15, 2023 2:02 pm    Post subject: about adding priority groups to the world set Reply with quote

That is something I have been considering for some time, as it adds some more complexity for writing the dependency resolutions, however it may also significatively reduce complexity on the overall execution of merge operations, like world upgrades. The idea is that often anyway it is required to accept that some packages will break as a result of the resolutions, either it is too complicated to find a solution or there is not really some solution, so a way to add some organization could be to define that some packages are more acceptable to break then others, possibly also including a flag to turn on or off the consideration of that priority
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1252
Location: Richmond Hill, Canada

PostPosted: Tue Aug 15, 2023 2:44 pm    Post subject: Reply with quote

I don't know how feasible to implementation, but totally agree and support this concept.
Back to top
View user's profile Send private message
Kangie
n00b
n00b


Joined: 21 May 2023
Posts: 2
Location: Brisbane, Australia

PostPosted: Fri Aug 18, 2023 3:03 am    Post subject: Re: about adding priority groups to the world set Reply with quote

jeffss wrote:
it is required to accept that some packages will break as a result of the resolutions


Is it? None of my systems break like that.

jeffss wrote:
either it is too complicated to find a solution or there is not really some solution, so a way to add some organization could be to define that some packages are more acceptable to break then others, possibly also including a flag to turn on or off the consideration of that priority


I fail to see what this adds over `--exclude` and/or `--keep-going` aside from a _ton_ of additional complexity in portage to handle an edge case that probably comes from misunderstanding how dependencies in portage actually work (i.e. how likely this is to break something that isn't the package you're "intending" to break).

Could you elaborate on why you think this is a good idea?
Back to top
View user's profile Send private message
jeffss
n00b
n00b


Joined: 13 Sep 2019
Posts: 55

PostPosted: Thu Sep 21, 2023 2:34 pm    Post subject: Re: about adding priority groups to the world set Reply with quote

Kangie wrote:
jeffss wrote:
it is required to accept that some packages will break as a result of the resolutions


Is it? None of my systems break like that.

jeffss wrote:
either it is too complicated to find a solution or there is not really some solution, so a way to add some organization could be to define that some packages are more acceptable to break then others, possibly also including a flag to turn on or off the consideration of that priority


I fail to see what this adds over `--exclude` and/or `--keep-going` aside from a _ton_ of additional complexity in portage to handle an edge case that probably comes from misunderstanding how dependencies in portage actually work (i.e. how likely this is to break something that isn't the package you're "intending" to break).

Could you elaborate on why you think this is a good idea?


I don't know if that is because of something I am doing wrong, but for instance regularly after upgrades of the qt/kde ecossystem, with changes of soname dependencies, some interfaces break for a while, until some packages are rebuilt, and conflicts are also usually common. About the exclude, a reason I see for automation is that often it is possible to know what operations to do in order to single out a list of packages, but executing manually takes time. The main reason I considered for this feature is that often taking too much time for completing updates can be problematic then some temporary issue that could last at most a couple of hours or a day. But anyway I am not sure about the details of implementation, so you may very well be correct about the priority of implementing it
Back to top
View user's profile Send private message
jeffss
n00b
n00b


Joined: 13 Sep 2019
Posts: 55

PostPosted: Thu Sep 21, 2023 2:43 pm    Post subject: Reply with quote

maybe also some possibility for control could be using the symbol table, I mean that exposed from the "nm" command, for defining what could go wrong and if it can be allowed. For instance that emerge operation could be blocked if it would affect initialization for some packages but allowed if it relates to some auxiliary functions
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22694

PostPosted: Thu Sep 21, 2023 3:07 pm    Post subject: Reply with quote

Symbol table checks are not sufficient, and generally would help only if the affected packages are removing deprecated interfaces before their consumers have migrated to the new interface. This may happen, but the simple solution is to get the providing packages to keep the interfaces longer.

There is no need for a package to break its consumers. That only happens when the providing package's developers choose not to provide a clean migration path. If they choose not to do so, you cannot compensate for that lack with a more complicated dependency solver, because there is no valid path, no matter how clever the solver.

I think further discussion would require a more concrete example identifying what package(s) were a problem, why the manual fix worked (and the drawbacks it had), and from there we can discuss what a more clever solver could have done.
Back to top
View user's profile Send private message
jeffss
n00b
n00b


Joined: 13 Sep 2019
Posts: 55

PostPosted: Thu Sep 21, 2023 3:42 pm    Post subject: Reply with quote

Hu wrote:
Symbol table checks are not sufficient, and generally would help only if the affected packages are removing deprecated interfaces before their consumers have migrated to the new interface. This may happen, but the simple solution is to get the providing packages to keep the interfaces longer.

There is no need for a package to break its consumers. That only happens when the providing package's developers choose not to provide a clean migration path. If they choose not to do so, you cannot compensate for that lack with a more complicated dependency solver, because there is no valid path, no matter how clever the solver.

I think further discussion would require a more concrete example identifying what package(s) were a problem, why the manual fix worked (and the drawbacks it had), and from there we can discuss what a more clever solver could have done.


for the packages unfortunately I may need to wait until the next update, however something I had left out is that the exclude operation was not being sufficient to resolve the conflicts, I had to use some combination of nodeps and ignore-rebuild. What I did was using those flags for recompiling conflicting dependencies, recompiling the consumers, then recompiling both with along with some of the conflicting packages left out, maybe without the flags. It did work because on each cycle an ever greater number of dependency relations got solvable, (some even collateral, like when executed without the flags) at least among themselves, even though in relation with the full dependencies of the whole world upgrade they still did not; but after some repetitions eventually it was possible to have a globally solvable dependency resolution. The drawback is the number of rebuilds that may be necessary for the same packages, including for safety
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22694

PostPosted: Thu Sep 21, 2023 3:55 pm    Post subject: Reply with quote

You should never need to use --nodeps. --exclude only forbids emerge from installing the specified atoms. If they are required by some other change, excluding them will probably cause an error. You should instead solve the problem(s) that prevent you from installing them. There is no --ignore-rebuild. Did you mean you are ignoring slot operators? That too may cause new problems.
Back to top
View user's profile Send private message
jeffss
n00b
n00b


Joined: 13 Sep 2019
Posts: 55

PostPosted: Sun Sep 08, 2024 4:58 pm    Post subject: Reply with quote

Hu wrote:
Symbol table checks are not sufficient, and generally would help only if the affected packages are removing deprecated interfaces before their consumers have migrated to the new interface. This may happen, but the simple solution is to get the providing packages to keep the interfaces longer.

There is no need for a package to break its consumers. That only happens when the providing package's developers choose not to provide a clean migration path. If they choose not to do so, you cannot compensate for that lack with a more complicated dependency solver, because there is no valid path, no matter how clever the solver.

I think further discussion would require a more concrete example identifying what package(s) were a problem, why the manual fix worked (and the drawbacks it had), and from there we can discuss what a more clever solver could have done.


Right I agree with the critics, avoiding the security problems mentioned there is something I thought that could be used alongside that would be more secure, portage already have an option "buildpkgonly" to just build binary packages, different from installing immediately. Though for this purpose the fact that it still needs the dependencies to be installed limits it, but maybe it could be achieved with some form of system isolation such as containers with both the dependencies and the sources to be built and latency could be reduced by doing the isolation over a whole region of dependent packages. An isolated build could be triggered by packages which would be pulled from USE flags and dependencies exclusive to them or at least with few other side effects to be included and the same for packages indicated, then those priorities could also be considered. If it does not bring too much additional issues for implementation
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum