Gentoo Archives: gentoo-dev

From: Michael Lienhardt <michael.lienhardt@×××××××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] SAT-based dependency solver: request for test cases
Date: Tue, 06 Feb 2018 10:52:04
1 Dear all,
3 With the help of some friends and colleagues, I am working on an SAT-based dependency solver for portage.
4 We need your help to test it and possibly improve in the long run the already great portage toolset.
6 To help, you can send us the tar generated by this bash script:
7 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).
8 With this, we will see if our solver is able to recreate your system and how much time it takes.
10 You can send everything to my professional email: mlienhar@××××××××.it
13 The goal of this alternative solver is to overcome some of the limitations of emerge.
14 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:
15 - 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)
16 - 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
17 - 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.
19 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:
20 - about the documentation I collected to implement the solver
21 - about the solver and its motivations
22 - about the tests I'm doing
25 About me:
26 I'm a researcher in computer science, about formal methods, concurrency and software engineering.
27 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 ^^:
28 In 2013, I designed and contributed to the implementation of a dependency solver for dynamic cloud architecture (currently maintained by Jacopo Mauro )
29 I'm a gentoo user since 2007, and I'm very happy by this opportunity to contribute back :).
32 Thank you!
33 Michael Lienhardt