[haiku-development] Re: Moving wpa_supplicant back in-tree or forking it?

  • From: Michael Lotz <mmlr@xxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 02 Aug 2015 17:22:41 +0200

On 02.08.2015 16:12, Alexander von Gluck IV wrote:

We have a "lot" of patches to wpa_supplicant to draw windows,
do password management, and other stuff.

https://github.com/haikuports/haikuports/blob/master/net-wireless/wpa_supplicant/patches/wpa_supplicant-2.0.patch

The patch certainly is large. This isn't due to a lot of changes in the internals of the wpa_supplicant code however. In fact there pretty much aren't any changes to the core, just some to the BSD driver wrapper and a couple of compiler warning fixes. The patch is mainly this large due to Haiku specific classes that add a couple of new files.

The things we do in the Haiku specific classes aren't anything beyond what the other OS wrappers (driver ones for OS specific packet capture and integration ones like dbus and the QT4 GUI), which are included in the official wpa_supplicant/hostapd repository, do.

We do not do password management in wpa_supplicant, we are just using the keystore API to retrieve/store the corresponding info. We do create and show the network selection and password entry dialog inside wpa_supplicant. I'm not sure what you refer to with "other stuff".

Right now we keep wpa_supplicant as a recipe with a very long patch.
I think the patches will likely never be accepted upstream.
(I assume we've tried already?)

I, at least, have not tried. I do not know if Axel tried with his original patchset.

Do we want to fork wpa_supplicants' repo or keep the code in-tree?

I fail to see how bringing the wpa_supplicant in-tree solves anything. It would certainly contradict the trend we've been following of outsourcing external code.

The source for the haikuports patch is my GitHub repository where I maintain the wpa_supplicant for Haiku with a vendor branch (it's simply the diff between the vendor and master branch):

https://github.com/mmlr/wpa_supplicant-haiku

Pointing the haikuports recipe to this repository instead of producing patches would be easy enough.

wpa_supplicant is a fast moving project, so that definitely isn't ideal...
but as things stand fixing many, many bugs it has is a pain.

While certainly outdated by now, the wpa_supplicant has been working for me without significant issues for the past years. From the open bug reports it is clear that the stability issues seem to be related to the very diverse individual network setups. Since I wasn't and still am not able to replicate the many, many bugs in my particular setup it is rather hard to debug them.

In general, problems tend to be related to the fact that the wpa_supplicant is fundamentally single threaded and uses a central event loop. Doing anything from another thread is problematic. It is quite possible that I missed some events when reworking things to funnel processing through the central event loop. It is also quite possible that the release I was using as a base simply wasn't very stable.

Updating and merging would certainly be a good idea. Moving the code in-tree IMHO wouldn't.

Regards,
Michael

Other related posts: