Drakxtools development documentation
From Mandriva Community Wiki
(Redirected from Development/Howto/Hacking Mandriva)
This article is a work in progress being written, rewritten or being significantly restructured.
You are invited to discuss the changes and to participate to the article's improvement according to what has been decided on the talk page.
You are invited to discuss the changes and to participate to the article's improvement according to what has been decided on the talk page.
Due to using a bunch of specific software components, techniques and programming languages, "diving in" Mandriva specific software components (DrakX, urpmi, Mandriva Control Center, etc) is not blatantly obvious. Here is a good starting point, if you want to fix bugs or contribute features to Mandriva software components.
Before you continue :
Bear in mind that most Mandriva tools (such as DrakX, urpmi, rpmdrake, drakconf, etc) use Perl libraries :
Bear in mind that most Mandriva tools (such as DrakX, urpmi, rpmdrake, drakconf, etc) use Perl libraries :
- perl-MDK-Common: is a set of generic library functions aimed at producing better code (shorter, more readable, more functional)
- ugtk2.pm: is a set of functions allowing more object-style and functional gtk2-interface code
- interactive.pm: is a powerful GUI abstraction layer allowing to write programs that can run with a GTK interface, a newt interface or an stdio interface.
Contents |
Development documentation
- Writing a drakwizard module - People can write Perl wizard, and add them to drakwizard interface easily. This page will show you how to create a simple wizard, and some technique used to do so.
- Libraries and GUI policy used in DrakXTools This topic describes some GUI tools, such as ugtk2 and mygtk2.
Human interface Guidelines and articles about GUI
Installation program
DrakX is the Mandriva Linux installation program. It's written in Perl. A good starting point is the Mandriva Installer Howto.
Control Center tools
Software management
Online administration
Hardware
| • Manage your hardware | |||
|---|---|---|---|
| • Configure graphics | |||
| • Configure mouse and keyboard | |||
| • Configure printing and scanning | |||
| • Others | |||
Network & Internet
| • Manage your network devices | |||
|---|---|---|---|
| • Personalize and secure your network | |||
| • Others | |||
System
| • Manage system services | |||
|---|---|---|---|
| • Localization | |||
| • Administration tools | |||
Network sharing
| • Configure Windows(R) shares | |||
|---|---|---|---|
| • Configure NFS shares | |||
| • Configure WebDAV shares | |||
Local disks
Security
Boot
Other tools
- The Drakwizard tools (mail, file sharing, etc.).
-
drakbug development
- NetApplet development
- Mdkonline development
Generic cleanups
Add default icon to windows
rationale: when iconized or when browsing windows list, tools should be obvious to locate
We just have to reuse the icon from menu entry...
use perl-Libconf
- better respect for altered config files
- better data abstraction
package gi/doc from cvs as drakxtools-doc
Explain:
- ugtk2,
- embedding in mcc,
- need for HIG,
- how to do proper patches & cvs logs
- how to add entries in mcc
- how to use perl_checker (perl-MDK-Common-devel)
A new tool : TGZDrake/InstallDrake/CompileDrake ?
(VincentPanel 09/07/04)
- This tool helps installing a package from sources
- First, package gets selected
- The tool extracts the package in a user configurable directory (by default, ~/src/<package_name>)
- Then, the tool displays INSTALL, README and LICENSE files
- Then, the tool asks for options to ./configure and runs it
- Then, the tool runs make
- Then, the tool asks for root pwd, and runs make install
- Of course, before running and displaying anything, everything is checked (presence of files and success of the previous step)
- May be improved : when ./configure fails, complaining about a missing file, urpmf looks for this file and installs the necessary rpm package.
I think this could have checkinstall as a dependency: make install is weak practice on an RPM-based system. liberforce

