Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 596338

Summary: Let emerge store resolve information in a file, and resolve using past resolutions
Product: Portage Development Reporter: Alexander Berntsen (RETIRED) <bernalex>
Component: Core - Interface (emerge)Assignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: esigra, kingjon3377, pacho
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 528394    
Bug Blocks: 155723    

Description Alexander Berntsen (RETIRED) gentoo-dev 2016-10-06 11:01:17 UTC
THE IDEA
========
Whenever Portage resolves how to do something, we could save all of this information to a file. We could then re-use resolutions instead of needlessly re-resolving.

Through options, we could do this automatically. I.e. store all resolutions, and only remove them when they are useless.


MOTIVATION
==========
Too often, someone does 'emerge X', only to be told that they need to unmask Y and Z, and then restart 'emerge X'. That's, often, ten minutes of their day gone. There are other scenarios where it'd be useful too.


USAGE
=====
This stuff should probably work in the background. If it is enabled as a piece of automagic, it'll store all resolutions, and then prompt the user to reuse them if applicable.

→ emerge --ask X

Calculating dependencies...

You have calculated dependencies before.

1) Resolve again
2) Use TIMESTAMP resolution
3) Use TIMESTAMP resolution


DETAILS
=======
There needs to be a way to validate whether the resolution is outdated (and therefore useless). Zac suggests to store state hashes for all package repositories, the installed package database, and the portage configuration. He also thinks we should assert that users can't modify ebuilds without updating the state hash. This all sounds reasonable to me.
Comment 1 Zac Medico gentoo-dev 2016-10-06 16:14:13 UTC
(In reply to Alexander Berntsen from comment #0)
> DETAILS
> =======
> There needs to be a way to validate whether the resolution is outdated (and
> therefore useless). Zac suggests to store state hashes for all package
> repositories, the installed package database, and the portage configuration.
> He also thinks we should assert that users can't modify ebuilds without
> updating the state hash. This all sounds reasonable to me.

This part ties in with bug 528394.