[haiku-development] Re: What for does SAT solver needed for package management?

  • From: Joseph Groover <looncraz@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 18 Jun 2012 10:19:14 -0500

Should PackageBuilder handle dependency generation itself?

When I create an package, the builder can go through the symbols and determine what packages I have installed on my system are required to satisfy those dependencies. It can even determine system dependencies if the ABI broke due to some terrible bug at some point...

THEN, it could ALSO generate DependencyPackages which are correlated with repository packages which have been identified as having dependents so as to never be removed. The dependent symbols are logged for each and every package with dependencies.

When a new version of a package with dependents is uploaded, the old version is compared - automatically - to the new one to identify if dependent symbols have changed to an incompatible state. If so, dependent packages currently in the repository will need to use the old version, and future versions will need to run a symbol check to see which version they need.

This way, most of the load is handled by the server and the developer.

When I install a package, the solver simply asks the server for the list of dependencies, which is easily solvable through ABI branching per updated dependencies, and the PackageInstaller/fs can then directly resolve them by checking if they are installed already (and which version - by ABI) and continue very rapidly.

That is what I think would work the best... or am I missing something?

--The loon

PS on the compositing app_server - I will have time in September... through November ;-) I'm pulling up roots (and I'm DEEPLY rooted) and moving across the country... for a year... then I'll be going to who-knows-where...


Other related posts: