Dear all,

With the help of some friends and colleagues, I am working on an SAT-based 
dependency solver for portage.
We need your help to test it and possibly improve in the long run the already 
great portage toolset.

To help, you can send us the tar generated by this bash script: 
https://raw.githubusercontent.com/HyVar/gentoo_to_mspl/master/benchmarks/get_installation.sh
This bash script extracts your world file, the USE flags and keywords 
configuration of your system and the list of installed packages you have (it 
should not take more than few seconds).
With this, we will see if our solver is able to recreate your system and how 
much time it takes.

You can send everything to my professional email: mlien...@di.unito.it


The goal of this alternative solver is to overcome some of the limitations of 
emerge.
Thanks to some users of the forum and the gentoo-user mailing list, I already 
tested the solver on 8 systems, and the results for now are:
 - emerge is not able to recreate any of these systems (i.e., 'cat 
world_of_test_configuration | xargs emerge -vp' on a gentoo osboxes VM does not 
succeed, even with the right /etc/portage/package.* files)
 - our solver takes 2 minutes in average (with little variation), and gives 
either a yes answer (with what to install, which USE flags to set, which 
packages to keyword) or a no answer (with the set of conflicting constraints) 
for every systems
 - we solved one bug in our solver (a behavior of emerge that seems documented 
only in the PMS document, not in devmanual nor in the wiki, and that is visible 
only in 15 packages), but at least one seems to still be around.

I started discussing this on the gentoo-portage-dev and the gentoo-user mailing 
lists (sorry for the duplicates), and on the forum with three posts:
 - https://forums.gentoo.org/viewtopic-t-1074170.html about the documentation I 
collected to implement the solver
 - https://forums.gentoo.org/viewtopic-t-1074202.html about the solver and its 
motivations
 - https://forums.gentoo.org/viewtopic-t-1075286.html about the tests I'm doing


About me:
I'm a researcher in computer science, about formal methods, concurrency and 
software engineering.
Friday, I will present my first paper on portage, showing that its packages and their 
dependencies constitute what is called a "Multi-Software Product Line" in 
software engineering. If you skip the algebraic definition, it should be readable ^^: 
http://www.di.unito.it/~mlienhar/vamos.pdf
In 2013, I designed and contributed to the implementation of a dependency 
solver for dynamic cloud architecture (currently maintained by Jacopo Mauro 
https://bitbucket.org/jacopomauro/zephyrus2/src )
I'm a gentoo user since 2007, and I'm very happy by this opportunity to 
contribute back :).


Thank you!
Michael Lienhardt

Reply via email to