Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Old codebase? New codebase?? madwifi-ng?!?! ARGH!!

The long story

Unfortunately people are a little confused about "old codebase", "new codebase", "madwifi-ng" and so on. This page is to clear things up a little.

The old codebase - that's the code that nearly everyone used until now. It was hosted using a CVS repository at This is where all the development took place so far, in different branches like HEAD, BSD and WDS. In other words: no magic at all.

In early 2005 Atheros started to fork off their own internal branch, in order to add a whole bunch of new features to the driver. Allmost all of these changes were planned to be contributed back to Madwifi, and first announcements of the new code drop came through the mailing lists around April or May. For various reasons, the release of this code has been delayed several times. Then, finally, Atheros offered several preview snapshots of their code to a limited number of testers, and the half-public testing phase was started.

The goal of this phase was to find bugs that have been overlooked by the Atheros developers, before the code would be made public. Talking about this code in the public lists ended up in descriptions like "the new code drop", "the preview snapshots" and other constructs. At this time it was already clear that the new code differed a lot from the old codebase, and merging all the changes back to the old codebase was virtually impossible. So it was decided to switch to the new code, porting missing features from the old codebase to the new one and making the new code the base for all future development. In other words: the new code will become the "next generation of MadWifi" - et voila, the term madwifi-ng was born.

Ok, cut. I need to shed some light on another thing that was worked on in parallel, but we're coming back to the main subject soon. The idea of moving away from Sourceforge with some of the web services of the project had been around for nearly a year. This move was necessary in order to switch from CVS to Subversion, and for getting proper project management software in place (that's what you're looking at right now). A more detailed description of the reasons for this step can be found here. We worked on the new site,, for some time, and the original plan was to launch it along with the public release of madwifi-ng. Keep this story in mind: we're heading back to the main subject now.

During a discussion in madwifi-devel it was suggested to make madwifi-ng available to anyone for testing purposes, in order to speed up development. The more users test, the faster outstanding issues can be reported. Good idea. Meanwhile we had a Subversion repository in place, which was used for testing purposes. But since wasn't finished yet, I decided to create a separate (Subversion) repository for madwifi-ng and announced its availability.

The next day Bruno talked to me about this announcement. He asked why I made a separate repository for madwifi-ng, rather than taking the opportunity and performing the long awaited cut - making madwifi-ng the new codebase where all further development would take place. He offered his help for getting in final shape for the official launch, and so we started the final spurt.

Part of this work was to recreate the Subversion repository in order to get rid of all our testing results (lots of useless commits). The complete old CVS repository (and with it the complete history of the MadWifi code) was imported to cvs-import. The place in CVS where development took place until that point was put into the branches/madwifi-old branch, forming the "old codebase". And the madwifi-ng code was put to trunk/, the place where all the future development will take place.

Bottom line

Now that is officially launched, we have finished switching from CVS to Subversion. This means: forget about the CVS repository that is hosted at That's deprecated. The same applies to the old CVS Snapshot archive, by the way.

All further development takes place in the new Subversion repository. For archiving purposes we imported all content from the old CVS repository to the cvs-import section.

The old codebase can be found in the madwifi-old branch. This branch is deprecated since June 2006 and no longer maintained.

The new codebase, which has been formed out of the code formerly known as madwifi-ng, can be found in /trunk. This code has all the shiny new features that Atheros has contributed (virtual AP support, WDS support, new HAL which recognizes all currently available chipsets, and so on). You automatically use this codebase if you work with one of the releases or with trunk.

Still confused?

In this case feel free to contact me by e-mail or in IRC (talk to otaku42).