Well, it appears I’ve been caught in the cross-fire in some open source wars.
A number of years ago, SkyBound released GeckoFX as an wrapper for XULrunner, or the Firefox browser engine. Eventually Andrew moved on and left it to the community. One fellow, Scott, picked up the reigns and continued development and eventually forked it as MozNet.
GeckoFX was wonderful. It gave me a fantastic alternative to the Visual Studio WebBrowser component, and made a lot of things easier. Under the hood, the WebBrowser component is just Trident, axshdoc.dll, wrapped up for Visual Studio and .NET. It’s ok for some things, but the MSHTML tends to get mashed up and mangled. Compounded with things like the DocumentCompleted event firing 3x every time a document is loaded, it really is something that you want to avoid if you can in many situations.
Enter MozNet. For $30 I bought a source code license (now $50), and that was a deal and a half.
The fellow that forked MozNet had been supporting GeckoFX for a long time. However, it appears that $30 or $50 was far too expensive for anyone to fork out, and the whining about “free” seemed incessant at times. Geez… The guy put in a huge amount of effort, and only asked for a token gesture for it. Sigh… I wish I could bitch about free at the grocery store, gas station, and the mall…
Now GeckoFX was licensed as GPL/LGPL, and MozNet followed that license. You could download a trial of the binary, purchase the binary, or purchase a source code license.
Enter discord in the GeckoFX forums… And the OpenGeckoSharp project…
The fighting in the GeckoFX forums got pretty nasty with banning, deleted posts, name calling, accusations, and all manner of icky badness. The MozNet site even has a “Wall of Shame” page:
You can read the nastiness in the GeckoFX forums (follow the link above). Here’s one post that played a large role in the blowup:
This thread is supported by both moderators.
From the README.txt:
This is the MozNET MozNet 184.108.40.206 SR12 source, extracted from a .NET Reflector. The latest, freely available MozNET component [.dll file] was disassembled, and the resulting source was saved.
This produces the code that you see. The main .csproj file is not usable, so you will have to go through and pick and choose the code that you want.
This source was gotten for free, without hacks or stealing involved.
More info here (post #14):
Quote from that post:
MozNET’s license (which is based on top of GeckoFX) is closest in legality to the LGPL, as he does sell the binary without the source. This is not possible with a GPL product. So, you would legally be able to distribute MozNET’s binary for free under the LGPL [as it is binary only], and the source under the LGPL or GPL [as the LGPL is GPL-compatible] – once again, for free. On top of that, the notion that you need to buy one license per developer is something you can literally laugh at. With all this information at hand, you can also feel free to make a fork of MozNET under the GPL if you buy the source code. Although currently no one in this community knows GeckoFX and MozNET better than Sofwerx, so attempting to start your own fork would more than likely lead to a screwier version of MozNET then what is normally available.
Enjoy all. Credits to Sofwerx for developing the library on top of GeckoFX, credits to me for disassembling, saving, and uploading the code, and credits to the moderators for allowing me to post this here.
So anyways, at the end of the day there are now 3 projects, with 1 of them basically dead or dying, and 2 forks. Yay. Choices. That’s just what everyone needs here — divided development efforts so half as much can be accomplished with twice the resources. Don’t you love politics?
Oh, and did I mention that there are at least 4 different forums for the project? And different voices saying, “No, use MY forums…” etc. etc. Sigh…
6 thoughts on “Open Source Wars: GeckoFX and MozNet”
Thanks for the support, Ryan.
I’d just like to mention that I do not run a support forum for GeckoFX nor do I trying to tell anyone to use my support forum – they do so because it is specifically for supporting MozNET.
Also, although similar and at one time based-upon, MozNET is not GeckoFX and shouldn’t be confused with it. I don’t think GeckoFX (nor any of its derivatives – OpenGeckoSharp, for example) can even hold a candle to it. Sure, there’s a few forks out there that are wrapping newer XulRunner builds but, so what? What kind of support do they offer? What kind of examples do they have to show you? What kind of features do they have – or do you have to ‘build’ everything yourself from the bits and pieces they are created from? Do things as simple as prompts and alerts even work (no, they don’t)? What about the ability to download (that doesn’t work for them either)?
So, to make a long story short – MozNET is not GeckoFX and should not be confused with GeckoFX. MozNET is MozNET, plain and simple 😉
Also, MozNET is not open-source. I do provide the source code for purchase but, the intentions are that it will be used to create a customized MozNET build for the application it’s being used in – redistribution of the code is against the MozNET license.
Ah – that clears up some licensing stuff for me then. I never really looked into it that hard as the only thing I’ll be doing with the source code is exactly what you mentioned — including it in an application. I wouldn’t want the headaches of trying to support it! 🙂
I certainly wish you all the success in the world with MozNET, Scott!
I am the developer of OpenGeckoSharp. I wish to inform you that in fact, MozNET is a dead violation of the MPL and GPL. Nowhere does MozNET say that it is an open-source project, and it has an extremely restrictive EULA that provides for Windows-like license numbers and a restriction mandating one license per developer. That is definitely not open-source. In addition, MozNET’s bought source code is very difficult to compile and is purposefully harassing. Most importantly the developer of MozNET has extremely harassed and insulted me. Here is some evidence:
Well, forget Gecko and any other things that associate with it. Use Chromium. I’ve used GeckoFX for a long time and even had used many forks of it. I’ve build one fork too. I got to admit, even tough Gecko is pretty good, but I don’t like the way it works. To many interfaces. Right now, I’m using Chromium engine inside my web browser and its very good compared with Gecko. No offense, but my engine is much better than MozNet. It scores 322 + 9 in HTML5 test. 7 points less than Google Chrome 15. And it has C# -> JS communication and vise-versa.
PS : BTW, my username in GeckoFX forum is DashHax and I’ve account in twbp.x10hosting.com/forums too.
@ODell – Is there a .NET interface for Chromium? Or did you build your own?
He built his own I think, and it is closed source so nobody else can use it (no offense). You can try “OpenWebkitSharp” though…it is a fork of Webkit.NET with tons of more features. I am an extremely small contributer to the project and it again, is at http://twbp.x10hosting.com/forums (or devatan.co.cc if you want a easy redirect). That forum is the replacement for the GeckoFX General Dev subforum and is more active than GeckoFX Forums.
Gecko does allow you to change about:config values such as page rendering delay, proxy, and such. Webkit does not have such a collection of variables, and things like setting a proxy are pretty basic browser features.