Google Summer of Code 2021
Suggested Project ideas
The following are ALT Linux Team project ideas for Summer of Code.
ALT Linux Team and Sisyphus
Basic open source project of ALT Linux Team is Sisyphus. This is large rpm-based open-source software repository.
There are a several development distributions regularly creating on it, and also several stable branches forked from it for product line of distributions.
Sisyphus based on original technologies interesting it self, not as a part of repository and distribution infrastructure:
- development stack - gear/hasher/mkimage;
- distribution stack - libshell/control/alterator;
- infrastructure stack - libnss-role/gpupdate/admc.
Distribution stack ideas
Name Service Switch subsystem control with bash-completion
Name Service Switch (NSS) subsystem provides a variety of sources for common configuration databases and name resolution mechanisms. Current time every distribution have own instruments to control NSS configuration placed in /etc/nsswitch.conf. ALT distributions and other Sisyphus based solutions use special module control to set and restore during system upgrade various system parameters and file modes. Shortly Control is ALT-specific set of scripts to control installed system facilities (like local system policy rules) - "control-policy rules".
Shell completion is a useful function which using everyday not only by developer, but users too. Typing begin part of command or it's argument and pressing [tab] will return a list of probable variant in various contexts (program names, name of files or directories, program arguments and other dynamically determinable options). So each command may different type of options to be taught to autocompleted.
The student should write two special improvements:
- control-policy rules to control NSS subsystem for all supported configuration databases;
- common bash-completion rules for all control-policies rules.
The challenge is in doing this in a clean Unix-way style, integrated with other control-policy rules.
- Difficulty: Medium
- Language(s): Bash
- Possible Mentors: Evgeny Sinelnikov
Alterator DBus command line interface
Each modern Linux distributions with UI-interface use special system IPC, called DBus, and authorized for each method by special system service, called PolicyKit. Originally Alterator, as core part of distribution stack, designed with own system interface based on unix-sockets and called woo bus, used as qt-based system control center, graphical instalator anf web-interface. But alterator modules, a this implementation, has no own introspectable interface. Current time we develops alterator-dbus module, which present each method from woo bus to DBus as controlled proxy authorized by policy kit.
The aim of this proposal is twofold:
- there is no dbus introspection for alterator module at the moment;
- every module have common (REST API like) woo bus interface, but it also have a special own logic.
The student should write command line interface for alterator modules via DBus and basic alterator modules introspection.
- Difficulty: Hard
- Language(s): C, Bash, Scheme (guile)
- Possible Mentors: Ivan Melnikov
Infrastructure stack ideas
FSMO management in Active Directory Control Center
Flexible Single Master Operations (FSMO) is a feature of Microsoft's Active Directory (AD). The tasks which are not suited to multi-master replication and are viable only with a single-master database are the FSMOs. Active Directory Control Center (admc) is alternative (potentially cross-platform) implementation of Remote Server Administration Tools (RSAT) for control AD.
At the moment modern implementation of RSAT (from newest version for Windows 10) cannot be used for control Samba AD server, due it requires Active Directory Web Services (ADWS) that should be only plan to be supported (Samba#11231).
In this task the student should add support to backend of admc ldap request templates to control FSMO and appropriate support of it in graphical part of application.
- Difficulty: Hard
- Language(s): C++
- Possible Mentors: Dmitry Degtyarev