Drakxtools development documentation

From Mandriva Community Wiki

Jump to: navigation, search
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.
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 :
  • 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

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

Image:Drakconf-icon.png drakconf development

Software management

Image:Drakrpm-icon.png rpmdrake development Image:Drakrpm-update-icon.png MandrivaUpdate development
Image:Drakstats-icon.png drakstats development


Online administration

Image:rfbdrake-icon.png rfbdrake development


Hardware

• Manage your hardware
Image:harddrake2-icon.png harddrake2 development Image:draksound-icon.png draksound development
• Configure graphics
Image:Drak3d-icon.png drak3d development Image:Drakx11-icon.png drakx11 development
• Configure mouse and keyboard
Image:keyboarddrake-icon.png keyboarddrake development Image:mousedrake-icon.png mousedrake development
• Configure printing and scanning
Image:system-config-printer-icon.png system-config-printer development Image:scannerdrake-icon.png scannerdrake development
Image:drakfax-icon.png drakfax development
• Others
Image:drakups-icon.png drakups development


Network & Internet

• Manage your network devices
Image:draknetcenter-icon.png draknetcenter development Image:drakconnect-icon.png drakconnect development
Image:drakroam-icon.png drakroam development Image:Netapplet-lan-on.png net_applet development
• Personalize and secure your network
Image:drakproxy-icon.png drakproxy development Image:drakgw-icon.png drakgw development
Image:draknetprofile-icon.png draknetprofile development Image:drakvpn-icon.png drakvpn development
• Others
Image:drakhosts-icon.png drakhosts development


System

• Manage system services
Image:drakauth-icon.png drakauth development (on a network) Image:drakmenustyle-icon.png drakmenustyle development
Image:drakxservices-icon.png drakxservices development Image:drakfont-icon.png drakfont development
• Localization
Image:drakclock-icon.png drakclock development Image:draklocale-icon.png draklocale development
• Administration tools
Image:logdrake-icon.png logdrake development Image:drakconsole-icon.png drakconsole development
Image:userdrake-icon.png userdrake development Image:transfugdrake-icon.png transfugdrake development
Image:drakbackup-icon.png drakbackup development Image:draksnapshot-icon.png draksnapshot development


Network sharing

• Configure Windows(R) shares
Image:diskdrake_samba-icon.png diskdrake_samba development Image:draksambashare-icon.png draksambashare development
• Configure NFS shares
Image:diskdrake_nfs-icon.png diskdrake_nfs development Image:draknfs-icon.png draknfs development
• Configure WebDAV shares
Image:webdav-icon.png webdav development


Local disks

Image:drakdisk-icon.png diskdrake development Image:diskdrake_fileshare-icon.png diskdrake_fileshare development


Security

Image:draksec-icon.png msec development Image:drakperm-icon.png drakperm development
Image:drakfirewall-icon.png drakfirewall development Image:drakinvictus-icon.png drakinvictus development
Image:drakguard-icon.png drakguard development


Boot

Image:drakboot --boot-icon.png drakboot development Image:drakedm-icon.png drakedm development


Other tools

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

Personal tools