Google Summer of Code 2009 Ideas
From Mandriva Community Wiki
This page is for listing ideas for Google Summer of Code 2009
Youri-check
youri-check is Youri's project package checking tool. It offers an extensible and coherent Perl framework for running arbitrary QA checks on a package repository. The framework is there but now some work should be done to improve usuability for maintainers.
It is used by PLF and should be used by Mandriva soon (a demo for Mandriva [is available]). The reports are stored in a database and static HTML pages are generated. A more dynamic web interface with various views (maintainer page, package page, queries, ...) would help. Some integration with bugzilla and maintainers database would also be nice.
Some work could also be done on temporal analysis, as currently we only store the reports for the current day. It could be interesting to think of a way to store efficiently data over time and add nice things like "new bugs from this week", "from today", ...
rpmlint
rpmlint is a python software checking rpm packages, and widely used by rpm based Linux distributions (like Mandriva or Fedora). Some feature requests like http://rpmlint.zarb.org/cgi-bin/trac.cgi/ticket/29 require writing some generic algorithms (like "if the field foo matches the regexp a then the field bar must (or must not) be b", the same for files in the packages or other metadata) with some way of configuring (and/or subclassing) them.
This would allow to have a set of generic checks (like check that the spec contain a given line, eventually in a specific section), and then some "real" checks that would implement the actual policies using the generic ones.
msec
msec (Mandriva Security framework) is a full-featured framework intended to control and manage the security of the system. It was initially introduced in Mandrake 8, being one of the first system security utilities of its kind, and was heavily modified and redesigned for Mandriva 2009.1. During this redesign, its internal functionality was completely rewritten, making it distribution-agnostic, and support for custom plugins and settings was implemented.
With this msec redesign, it is possible to easily integrate it with any other Linux distribution. Besides, it is also possible to create custom plugins for each distribution or use case (for example, AppArmor and selinux plugins to audit and control AppArmor selinux status and security notifications). The plugin architecture of msec allows creating infinite number of custom plugins, which may be active by default or only installed on demand when required.
This is particularly interesting as this project will result in a complete, full-featured and distribution-agnostic framework for security management.
shorewall gui
Mandriva network tools (drakx-net) already support gui-based configuration of shorewall parameters. However, only the most essential features are supported, such as port blocking/unblocking, intrusion detection and white/blacklisting. Lots of features can be added to fully support shorewall - such as MAC filtering, SNAT/DNAT, routing, support for VLAN, QoS, Forwarded packet filtering, Portforwarding and Bridging.
Comprehensive web view of package for developpers
For maintainers (or anybody wanting to contribute), it can be difficult to gather all available informations regarding a package, such as opened bug reports, SVN commits, versions available for various distributions, etc.. Debian has a interesting page on http://packages.qa.debian.org/
Easy backup access (generated by draksnapshot) from dolphin / nautilus
Draksnapshot is a Mandriva tool configuring rsnashopt based backups, à la Apple TimeMachine. However, there is currently no easy way to selectively access those backups, to restore one specific file backuped at a specific date. Development need to be done for both dolphin (for KDE4) and nautilus (for GNOME) to allow this easy backup browsing. Nautilus part could done in conjuction with GNOME Summer of Code for a similar mode for btrfs (see http://live.gnome.org/SummerOfCode2009/Ideas ), based on Sun patch on nautilus.
Nepomuk related projects
Reference page: Nepomuk SoC on KDE techbase
- Context side bar: sidebar on the desktop which shows information about the resource in the current context
- Visual query builder
- Saving and loading of documents via meta-data
- Improved virtual folders
- Konqueror bookmarks using virtual folders
Code checking, coding rule conformance and code optimisation using GGCC
Context: http://ggcc.info
- launch GGCC during the Mandriva build
- extract the results and the associated metrics
- store the results into a database
- develop a Web layer for displaying the results
- extend the build system with MELT GCC (LISP rules): http://gcc.gnu.org/wiki/MiddleEndLispTranslator (interactions with Basile Starynkevitch, CEA
Mandriva Linux ARM port
With the wide spread of ARM processors in netbooks and embedded architecture, this area holds a lot of potential. We look forward to get a basesystem to provide then to Community so that contributers can build a new architecture supported for a wide range of applications. System On Chip is to be defined to provide best optimzations.
ClamAV GUI
ClamAV is one of the most successful anti-virus projects for Linux. Beside it being an important project, it does not have a proper graphical user interface. The GUIs available for it are either old and unmaintened or not fully functional. In order for it to be adopted as the default for desktop linux installations, it requires a user-friendly interface that works for the most common usage scenarios.
Mandriva Linux Light Environments Components
As Linux distributions are more and more installed on netbooks and devises with small hardware configuration, Mandriva Linux project is more and more asked to provide smooth environment to run on such devices: lightweight components to compose the desktop. Mandriva Linux has already some of these components, but there are still some missing:
- A lightweight taskbar. Besides the fact of being lightweight, the taskbar still needs to implement two basic features: the ability to be themable and the integration with Compiz (to be able to show window previews and so on).
- A systemtray. This systemtray should probably be implemented together with the taskbar. They should both be integrated into a single panel on the desktop.
- Lightweight media center. While Elisa serves as a full powered media center, for some scenarios it is necessary to use lighter applications to show pictures, music and videos. One of the targets for this media center is its usage in very early setups (where OpenGL is not always present).
Unified System Desktop Control Center Tool Integrations
The two lead desktop environments in open source, KDE and Gnome have their own administration control center, respectively SystemSettings on KDE 4 and Gnome Control Center in Gnome. Many of Linux distributions, and some Unix distributions, provides their own set of extra tool for administering system. In the case of Mandriva, we have drak tools, which today can be found standalone or inside their own panel drakconf. To avoid this long time duplication, the proposal is integrate the tools inside both control modules through embed process, allowing uses current tools, inside the desktop admin center, without need of two or three control centers. Both System Settings and Gnome Control Center works under same XDG specification, making this task more cross desktop possible. What is really needed to do:
- Verify feasibility of x-embed external tools on control centers
- Adapt .desktop files of tools to match the layout of control centers
- Verify if the native look of tool can be shared with the current desktop
Where is applied in Mandriva:
- Drak modules
- Webmin modules
LDAP backend for KDE4
Based on what was done on KDE3, provide a LDAP backend for KDE4 to store sets of right and manage it using LDAP directory. It should make administrators able to create groups of users with given rights access to KDE4 functionnalities and applications
rpmctl replacement
rpmctl is a simple tool allowing people (with correct authorization) to remove packages from repositories or move them between repositories. It's major limitation is that it was not updated for new repositories structure and is not aware of branches for the media (it can only act on release/). A clean version (probably using Youri infrastructure which already knows a lot about the structure) would be very useful.

