Google Summer of Code 2021: Difference between revisions

From ALT Linux Wiki
(initial gsoc2021 ideas)
 
 
(15 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].


The following are ALT Linux Team project ideas for Summer of Code.
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.


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


Basic open source project of [[ALT Linux Team]] is [[Sisyphus]].
* '''Alterator''' is a configuration framework that provides users with a handy and powerful graphical utility to manage the ALT Linux system with ease.
This is large rpm-based open-source software [http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ repository].
* '''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.


There are a several development distributions [[Regular | regularly]] creating on it,
The Libshell library is majorly utilized in <u>''Development stack''</u> that in turn consists of:
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:
* '''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.
* development stack - gear/hasher/mkimage;
* '''Hasher''' allows users to build packages in a safe and reproducible manner.
* distribution stack - libshell/control/alterator;
* And with '''mkimage''' hasher users can build ISO images, virtual machine and system images.
* infrastructure stack - libnss-role/gpupdate/admc.


== Development stack ideas ==
The <u>''Infrastructure stack''</u> is represented by:


=== Building bash-completion for system tools ===
* '''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.


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.
= Suggested Project ideas =


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


== Distribution stack ideas ==
== 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 DBus service interfaces ===
=== Alterator D-Bus command line interface ===


Each system UI-interface in modern Linux distributions used 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. So, each alterator module have own not introspectable interface. Current time we develops alterator-dbus module, which present each method from woo bus to DBus as controlled proxy by policy kit proxy.
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 aim of this proposal...
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 ==
== Infrastructure stack ideas ==
Line 36: Line 71:
=== FSMO management in Active Directory Control Center ===
=== FSMO management in Active Directory Control Center ===


The aim of this proposal...
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. ([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
* Language(s): C++
* Mentors: Dmitry Degtyarev, Evgeny Sinelnikov
 
[[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