Google Summer of Code 2021: Difference between revisions

From ALT Linux Wiki
(first number of ideas)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Suggested Project ideas =
= ALT Linux Team and Sisyphus =
 
One of core components of [[ALT Linux Team]] is [[Sisyphus]], large rpm-based
open-source software [http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ repository].
 
Sisyphus is a source of packages for development distributions. Stable branches are forked
from development branches each corresponding to one of the distributions such as p9, p8 etc.
Sisyphus consists of multiple components: development stack, distribution stack and infrastructure stack.
 
The <u>''Distribution stack''</u> is represented by following components:
 
* '''Alterator''' is a configuration framework that provides users with a handy and powerful graphical utility to manage the ALT Linux system with ease.
* '''Control''' is an interface implemented in Openwall GNU/*/Linux and ALT Linux to control installed system facilities (for example local system policy rules).
* '''Libshell''' is a POSIX shell library of common functions, packaged to facilitate code reuse.
 
The Libshell library is majorly utilized in <u>''Development stack''</u> that in turn consists of:


The following are ALT Linux Team project ideas for Summer of Code.
* '''Gear''' is a tool for building RPM packages from git repositories. It is used at git.alt, an automated system for building packages and maintaining a repository of packages.
* '''Hasher''' allows users to build packages in a safe and reproducible manner.
* And with '''mkimage''' hasher users can build ISO images, virtual machine and system images.


== ALT Linux Team and Sisyphus ==
The <u>''Infrastructure stack''</u> is represented by:


Basic open source project of [[ALT Linux Team]] is [[Sisyphus]].
* '''libnss-role''' which is an NSS module that adds support for nesting groups;
This is large rpm-based open-source software [http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ repository].
* '''gpupdate''' utility that provides user with a powerful tool for AD management;
* '''ADMC''' graphical utility for easy active directory domain management.


There are a several development distributions [[Regular | regularly]] creating on it,
= Suggested Project ideas =
and also several stable branches forked from it for product line of [http://getalt.org distributions].


Sisyphus based on original technologies interesting it self, not as a part of repository and distribution infrastructure:
The following are ALT Linux Team project ideas for Summer of Code.
* development stack - gear/hasher/mkimage;
* distribution stack - libshell/control/alterator;
* infrastructure stack - libnss-role/gpupdate/admc.


== Distribution stack ideas ==
== Distribution stack ideas ==
=== Name Service Switch subsystem control with bash-completion ===
=== 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 [http://git.altlinux.org/gears/c/control.git 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".  
Name Service Switch (NSS) subsystem provides a variety of sources for common configuration databases and name resolution mechanisms.
Today every major distribution has their own instruments to control NSS configuration. Configuration is placed in /etc/nsswitch.conf.
ALT distributions and other Sisyphus based solutions use a special control module to set various system parameters and file modes
during system upgrade.


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.
Command-line completion (also known as tab completion) is a common feature of command-line interpreters, in which the program
automatically fills in partially typed commands. Command-line completion is useful in several ways. Commonly accessed commands,
especially ones with long names, require fewer keystrokes to reach. Commands with long or difficult to spell filenames can be entered by
typing the first few characters and pressing a completion key, which completes the command or filename.


The student should write two special improvements:
This task will require the student to implement the following improvements:
* control-policy rules to control NSS subsystem for all supported configuration databases;
* control-policy rules to control NSS subsystem for all supported configuration databases.
* common bash-completion rules for all control-policies rules.
* 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.  
The challenge is in doing this in aclean Unix-way style,
 
while retaining integration with other already implemented control-policy rules.
* Difficulty: Medium
* Difficulty: Medium
* Language(s): Bash
* Language(s): Bash
* Possible Mentors: Evgeny Sinelnikov
* Mentors: Evgeny Sinelnikov, Igor Chudov


=== Alterator DBus command line interface ===
=== Alterator D-Bus 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.
Alterator is an ALT Linux module which provides user with qt-based system control center, graphical installer and a web-interface.
 
Modern Linux distributions with graphical interface use special system IPC, called D-Bus for communication between applications.
The aim of this proposal is twofold:
Originally Alterator, as the core part of distribution stack, was designed with its own system interface based on UNIX-sockets called
* there is no dbus introspection for alterator module at the moment;
woo-bus. Current implementation of alterator modules does not support introspection and we are working on alterator-dbus module,
* every module have common (REST API like) woo bus interface, but it also have a special own logic.
which translates method calls from woo-bus to D-Bus as a controlled proxy authorized by PolicyKit.
 
The student should write command line interface for alterator modules via DBus and basic alterator modules introspection.  


The student should write command line interface for alterator
modules using D-Bus and implement alterator modules introspection.
* Difficulty: Hard
* Difficulty: Hard
* Language(s): C, Bash, Scheme (guile)
* Language(s): C, Bash, Scheme (guile)
* Possible Mentors: Ivan Melnikov
* Mentors: Evgeny Sinelnikov


== Infrastructure stack ideas ==
== Infrastructure stack ideas ==
Line 52: Line 71:
=== FSMO management in Active Directory Control Center ===
=== 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 ([https://github.com/altlinux/admc admc]) is alternative (potentially cross-platform) implementation of Remote Server Administration Tools (RSAT) for control AD.
Flexible Single Master Operations(FSMO) is a feature of Microsoft's Active Directory (AD), set of tasks performed by Active Directory
 
domain controllers that require mandatory uniqueness of the server performing these operations. Active Directory Control Center (ADMC)
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 plane to be supported ([https://bugzilla.samba.org/show_bug.cgi?id=11231 Samba#11231]).
is alternative implementation of Remote Server Administration Tools (RSAT) for control AD.  


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.
A modern implementation of RSAT (starting with the latest version for Windows 10) cannot be used to manage Samba AD server because it
requires Active Directory Web Services (ADWS). ADWS is only planned to be supported in samba. ([https://bugzilla.samba.org/show_bug.cgi?id=11231 Samba#11231]).


This task requires the student to investigate the implementation of FSMO in samba, implement ldap requests to manage FSMO, and support them in [https://github.com/altlinux/admc ADMC].
* Difficulty: Hard
* Difficulty: Hard
* Language(s): C++
* Language(s): C++
* Possible Mentors: Dmitry Degtyarev
* Mentors: Dmitry Degtyarev, Evgeny Sinelnikov


[[Category:Google Summer of Code]]
[[Category:Google Summer of Code]]

Latest revision as of 18:19, 2 March 2021

ALT Linux Team and Sisyphus

One of core components of ALT Linux Team is Sisyphus, large rpm-based open-source software repository.

Sisyphus is a source of packages for development distributions. Stable branches are forked from development branches each corresponding to one of the distributions such as p9, p8 etc. Sisyphus consists of multiple components: development stack, distribution stack and infrastructure stack.

The Distribution stack is represented by following components:

  • Alterator is a configuration framework that provides users with a handy and powerful graphical utility to manage the ALT Linux system with ease.
  • Control is an interface implemented in Openwall GNU/*/Linux and ALT Linux to control installed system facilities (for example local system policy rules).
  • Libshell is a POSIX shell library of common functions, packaged to facilitate code reuse.

The Libshell library is majorly utilized in Development stack that in turn consists of:

  • Gear is a tool for building RPM packages from git repositories. It is used at git.alt, an automated system for building packages and maintaining a repository of packages.
  • Hasher allows users to build packages in a safe and reproducible manner.
  • And with mkimage hasher users can build ISO images, virtual machine and system images.

The Infrastructure stack is represented by:

  • libnss-role which is an NSS module that adds support for nesting groups;
  • gpupdate utility that provides user with a powerful tool for AD management;
  • ADMC graphical utility for easy active directory domain management.

Suggested Project ideas

The following are ALT Linux Team project ideas for Summer of Code.

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. Today every major distribution has their own instruments to control NSS configuration. Configuration is placed in /etc/nsswitch.conf. ALT distributions and other Sisyphus based solutions use a special control module to set various system parameters and file modes during system upgrade.

Command-line completion (also known as tab completion) is a common feature of command-line interpreters, in which the program automatically fills in partially typed commands. Command-line completion is useful in several ways. Commonly accessed commands, especially ones with long names, require fewer keystrokes to reach. Commands with long or difficult to spell filenames can be entered by typing the first few characters and pressing a completion key, which completes the command or filename.

This task will require the student to implement the following 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 aclean Unix-way style, while retaining integration with other already implemented control-policy rules.

  • Difficulty: Medium
  • Language(s): Bash
  • Mentors: Evgeny Sinelnikov, Igor Chudov

Alterator D-Bus command line interface

Alterator is an ALT Linux module which provides user with qt-based system control center, graphical installer and a web-interface. Modern Linux distributions with graphical interface use special system IPC, called D-Bus for communication between applications. Originally Alterator, as the core part of distribution stack, was designed with its own system interface based on UNIX-sockets called woo-bus. Current implementation of alterator modules does not support introspection and we are working on alterator-dbus module, which translates method calls from woo-bus to D-Bus as a controlled proxy authorized by PolicyKit.

The student should write command line interface for alterator modules using D-Bus and implement alterator modules introspection.

  • Difficulty: Hard
  • Language(s): C, Bash, Scheme (guile)
  • Mentors: Evgeny Sinelnikov

Infrastructure stack ideas

FSMO management in Active Directory Control Center

Flexible Single Master Operations(FSMO) is a feature of Microsoft's Active Directory (AD), set of tasks performed by Active Directory domain controllers that require mandatory uniqueness of the server performing these operations. Active Directory Control Center (ADMC) is alternative implementation of Remote Server Administration Tools (RSAT) for control AD.

A modern implementation of RSAT (starting with the latest version for Windows 10) cannot be used to manage Samba AD server because it requires Active Directory Web Services (ADWS). ADWS is only planned to be supported in samba. (Samba#11231).

This task requires the student to investigate the implementation of FSMO in samba, implement ldap requests to manage FSMO, and support them in ADMC.

  • Difficulty: Hard
  • Language(s): C++
  • Mentors: Dmitry Degtyarev, Evgeny Sinelnikov