a little DrakX history:

june 1999: 
  i start rewriting redhat's install in perl, partly for the fun of it. I'm
  still working for the army

5 july 1999: 
  i start full time job at mandrakesoft. But we don't have many computers and i
  must share the accounting computer with Merieme who is working half-time. No
  test machine (i test on others box, and destroyed Jacques partitions once),
  guess how it slows things down?

august 1999: 
  at last computers, even test one
  first DrakX version which can install things, very very rough

september 1999: 
  a friend of mine help me 2 weeks on DrakX relayed by Francois

november 1999:
  first released version of DrakX (goldpack). Not really stable yet.

january 2000:
  7.0 is out, with a DrakX quite stable

july 2000: 
  dams starts working on draknet

mid-october -> mid-january 2000: 
  gc rewrites the stage1 to win every kb we can 
  -> size divided by 7 (!) for cdrom


The DrakX team is also doing a lot of other things:
- drakxtools
- urpmi, early MandrakeUpdate, early rpmdrake...
- Mandrake Control Center (new DrakConf)
- packages maintenance/enhancing (esp. ghostscript, 3D-wrappers, lilo)
- fixing core packages to make them installable
- scoring packages, sorting them, flagging them... (compssList, rpmsrate)
- reading/answering cooker and other MLs
- helping non-perl gurus :)

That doesn't give much. Me being the one more working on plain DrakX. It gives 2
people working for 1.5 years. IMO it isn't ``spending an enormous amount of
resources''.
And what do you mean by ``compared to the code base size''??? DrakX is currently
around 28K lines, which is big IMO. You can compare it with linuxconf which is
170K lines. I think the achievement of DrakX is comparable (a 6 times code size
win from dumb C++ to expressive perl is normal imo).


Also it seems like we don't have the same understanding of the word
"maintenance".
DrakX functionalities have evolved *a lot* since the beginning:

- hardware detection, configuration, debugging, work-arounding (multi-kernel installs...)
- making things prettier
  - more bitmaps
  - "advanced" button
  - syslinux graphical boot
- making it work with latest versions of software (eg: switching to rpm4)
- finding out the best way to use rpmlib
- multi-cd
- draknet: configuring every piece of stupid protocols
- diskdrake: raid, loopback, LVM, resizing, checking stupid users entry
- XFdrake: multi-mice, multi-heads, 3D-accel
- porting to axp/sparc/ppc (with Stew's help)
- always more i18n
- keeping things small
  - .cz format
  - moving to .png
  - getFile on demand from mdkinst for ramdisk installs

[...]

> You don't believe the books ? Count yourself; see the man/months spent
> in 'pure' developoment in drakX, and the resources put in mantainance
> of the code base; as far as i know, your count should confirm what the
> books says; more probabily, you will discover that our numbers are
> even worse.

if you count enhancements, adding features... in maintenance, i confirm the
numbers, and find them quite normal.

if you only count bug fixing, the time would be much shorter (around 30%).

/gi-ppc'>topic/gi-ppc</option>
<option value='topic/ia64-8_1'>topic/ia64-8_1</option>
<option value='topic/mandrakesoft'>topic/mandrakesoft</option>
<option value='topic/mlcd4'>topic/mlcd4</option>
<option value='topic/ppp'>topic/ppp</option>
<option value='topic/rp-pppoe'>topic/rp-pppoe</option>
<option value='topic/switching_to_dnf'>topic/switching_to_dnf</option>
<option value='topic/switching_to_urpmi'>topic/switching_to_urpmi</option>
<option value='topic/unlabeled-1.1.1'>topic/unlabeled-1.1.1</option>
<option value='topic/v_webmin_0_87'>topic/v_webmin_0_87</option>
<option value='topic/x86_64-branch'>topic/x86_64-branch</option>
<option value='user/animtim/designWork'>user/animtim/designWork</option>
<option value='user/colin/rescue-systemd'>user/colin/rescue-systemd</option>
<option value='user/ennael/mga6'>user/ennael/mga6</option>
<option value='user/erwan/bug-13680'>user/erwan/bug-13680</option>
<option value='user/jibz/aarch64'>user/jibz/aarch64</option>
<option value='user/martinw/mga6'>user/martinw/mga6</option>
<option value='user/pterjan/arm64'>user/pterjan/arm64</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Mageia Installer and base platform for many utilities</td><td class='sub right'>Thierry Vignaud [tv]</td></tr></table>
<table class='tabs'><tr><td>
<a href='/software/drakx/?h=17.78'>summary</a><a href='/software/drakx/refs/?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>refs</a><a href='/software/drakx/log/rescue/list.i386?h=17.78'>log</a><a class='active' href='/software/drakx/tree/rescue/list.i386?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>tree</a><a href='/software/drakx/commit/rescue/list.i386?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>commit</a><a href='/software/drakx/diff/rescue/list.i386?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>diff</a><a href='/software/drakx/stats/rescue/list.i386?h=17.78'>stats</a></td><td class='form'><form class='right' method='get' action='/software/drakx/log/rescue/list.i386'>
<input type='hidden' name='h' value='17.78'/><input type='hidden' name='id' value='d68f8a85300b159267e6d76bd6211c61bed8efb0'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/software/drakx/tree/?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>root</a>/<a href='/software/drakx/tree/rescue?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>rescue</a>/<a href='/software/drakx/tree/rescue/list.i386?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>list.i386</a></div><div class='content'>blob: 17a7aee85535967c7fbd4b4c4fca6d51cb6f9294 (<a href='/software/drakx/plain/rescue/list.i386?h=17.78&amp;id=d68f8a85300b159267e6d76bd6211c61bed8efb0'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
<a id='n2' href='#n2'>2</a>
<a id='n3' href='#n3'>3</a>
<a id='n4' href='#n4'>4</a>
<a id='n5' href='#n5'>5</a>
<a id='n6' href='#n6'>6</a>
<a id='n7' href='#n7'>7</a>
</pre></td>
<td class='lines'><pre><code>