Improve Configuration Upgrade Mechansim with Elektra
Description of the project: Currently configuration files only gets automatically replaced when no modification was done in the configuration file. In every other situation the user is prompted if she/he wants the file to be replaced. This detection is overly pessimistic and leads to large number of unnecessary required user input. Additionally, merges need to be done by hand without tool support.
I propose to reduce that number by using Elektra that has exact knowledge of the key/value pairs and its metadata like comments. Then automatic merging would be possible in most scenarios and the user would only see real conflicts.
No-Goals: Implementation of mappings between any configuration file to Elektra's ?KeySet. This is done in separate projects within the Elektra's Initiative.
Related work: https://wiki.debian.org/PackageConfigUpgrade Elektra's approach allows usage of various programming languages, while Config::Model is Perl only. Unlike Config::Model, Elektra is a library to be used by the program themselves, thus creating synergies for the code base. Eventually, Elektra provides a way for a global key database to be used by any application and any user, and is not limited to configuration upgrades.
Further Information: http://www.libelektra.org
How to contact the mentor: firstname.lastname@example.org
Deliverables of the project: Provide an Elektra Debconf Integration that does a three-way merge of Elektra's ?KeySet.
Desirable skills: C/C++, Debian Packaging, ideally Debconf Knowledge
What the student will learn: