GSoC

From Wiki [en] OpenMandriva
Revision as of 02:41, 11 February 2014 by Guims (Talk | contribs) (Errors)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Google Summer of Code

What it is?

Google Summer of Code is a global program that offers post-secondary student developers ages 18 and older stipends to write code for various open source software projects.

Old Mandriva participated in this program several times as a mentoring organization. With respect to the community, OpenMandriva is Mandriva successor, so it is logical for us to join the Summer of Code this year.

Below is the ideas exposed by our community (feel free to add your owns, the application deadline for organizations closes on 14 February at 19:00 UTC). Note that the list of possible projects is not necessary limited to the one presented below; students are free to propose their own ideas and we are free to accept them if they are useful and reasonable.

Major Ideas for 2014

Here list of major ideas that we would like to be implemented.

Develop a function popularity analyser

The aim of this project is to create a library function usage recording tool to form a basis for QA testing libraries. When a program is run a db record would be created to show which functions from which libraries were accessed. Ultimately these records could form the basis of a test harness to apply QA to system libraries.

Desired knowledge: C/C++

Mentors: itchka, dsilakov


Adopt musl libc library for OpenMandriva

[1] is a C standard library for Linux intended to be used in embedded systems and mobile devices. OpenMandriva is interested in such devices and already has ports to different ARM architectures. However, glibc is too heavy in many senses for such platforms; currently we have uclibc as an analogue, but it would be useful to adapt musl libc library. The aim of this project is to create a base OpenMandriva system that uses musl libc instead of glibc and compare performance with glibc variation.

Desired knowledge: C, Linux kernel, system programming

Mentors: bero, TPG

Prepare MIPS port of OpenMandriva

OpenMandriva already has ports to several ARM variations. We would like to have a MIPS distribution, as well. We have a convenient infrastructure to perform this task - OpenMandriva is built using ROSA ABF build system which is quite flexible and allows to add custom build nodes of any hardware architecture. In particular, one can add build nodes that use QEMU emulation, though real devices proved to be much more faster. In particular, one can see ABF presentation at FOSDEM to take an idea of how we are developing ARM ports.

The aim of this project is to prepare a minimal working MIPS base system with a minimal repository at ABF which would allow to easily rebuild other packages from OpenMandriva repositories for MIPS.

Desired knowledge: MIPS architecture, Linux kernel, system programming

Possible mentors: fedya, bero

Adapt zypper as an urpmi alternative

Urpmi is a Mandriva-specific package manager developed more than decade ago. Though it has a lot of advantages, its code base is quite old, it doesn't have many active developers and it differs a lot from more popular package managers used in other rpm-based distributions - in particular, Yum and Zypper. We would like to become more close to other distributions and to join our efforts with developers of alternative package managers. One of the perspective directions is to adapt Zypper (or at list its SAT solver).

Desired knowledge: C, RPM, Perl (urpmi is written in Perl and it is possible that student will have to dig into its code)

Possible mentors: TPG, dsilakov

Add per-package installation

Currently OpenMandriva uses a 'live' installer that just unpacks the pre-formatted distribution image to hard drive. This is very fast and convenient for many users, but we feel a need to implement possibility of per-package installation (or at least possibility to install large blocks of software at once - e.g., make a choice between KDE, Gnome and LXDE from the same ISO image without a need to install or remove packages after installation).

Desired knowledge: RPM, Perl

Possible mentors: TPG, dsilakov

Other Ideas for 2014

Below is the list of other ideas expressed during the brain storm. We don't have detailed descriptions for them, but if students are interested in some of them, we can discuss possible work directions.

Suggestion Author(s) Status
Re-write drakx* tools with QT5 framework TPG
KDE5 migration (port remaining applications from Qt4/KDE4 to Qt5/KDE5) bero
Write the first boot screen we've been planning, with stuff like "I want this box to look and feel similar to [ ] OpenMandriva [ ] Windows [ ] OSX [ ] ... bero
Wayland integration bero
Write a Qt based applet to control firewalld so we can reduce our memory footprint by avoiding a huge library like GTK from being dragged into memory bero