Arguably the hardest part (which happens to be the sticking point for the BSDs, etc.) is the memory manager (TTM or GEM). It's requires interacting with the OSes memory management code which is often very complex and non-portable. The rest of the code (modesetting, command submission, etc.) can be re-used more or less directly.
The real issue about copying for the most part isn't the xorg bits though. They are generally licensed pretty well. Its the Linux kernel and Linux interface bits that xorg has relied more and more on that tend to ruffle the *BSD devers feathers (read the commit about removing the xf86config code where it says at the end "...besides every linux distro has a way to set it anyway." and the following argument on that over at daemon forums). The simple reason is due to how the GPL is structured it does not fit into their license so they cant really borrow anything except maybe concepts from Linux. A great example was the Atheros drivers. The base for the working ones started on FreeBSD, then they were grabbed by Linux and all the BSD code was wrapped in a layer of GPL and they cant take any improvements back from the Linux version of the driver, Now that starts another holy war that is too long for this post (BSD gets code back freely from the people Linux is so afraid of stealing their code, vice versa, ad nauseum) but I wont go into that.
But to get back on track they have wanted kernel mode setting for a while, many people have looked at trying to port the linux one but there just isnt enough graphical brain trust in the BSD community, hell most of Linux's graphics stack seems to have a lot of people that work at the manufacturers. BSD does try to keep current, hell they actually addressed Nvidias memory management concerns to bring the nvidia binaries over, but its a matter of man power, and instead of damning them because they dont have the shiniest new toy or interface because you churn your APIs/ABIs faster than anyone could ever hope to port them, how bout lending a hand to the guy Linux also benefits off of. Linux has borrowed a lot from the BSDs and has given very little back (mostly because you have to re-license to give back and the "OHH NOEZ SOME ONES WILL STEALZ MY CODE!!!1!!1!!" syndrome comes in) Hell one of the few times in recent memory BSD tried to use something from Linux as a framework (they didnt even take the code they just were inspired by the driver and tried to rewrite it) one of the B43xx devers came over and pissed right in their cornflakes until they stopped their version of the driver because he was hoping to get a sweet gig at broadcom. but I am ranting at this point </rant>
The whole point behind the BSD license is to allow the use of their code by people who don't want (or are unable) to contribute back. Seriously. That's the one and only point to their entire license. And yet, as soon as someone from Linux comes in and uses the license in the manner it was designed for, all the BSD folks start grabbing pitchforks and complaining about how unfair it is.
If you want to make sure people who grab your code contribute back to it, use a different license. Like, say, the GPL.
Last edited by kusuriya; 09-10-2011 at 07:06 PM.
No, most companies just take the code silently and you never know. You only hear about the companies that contribute back. The difference is that Linux is open so you know about it.Then it makes them more mad because the companies that do borrow from BSD tend to give back and its a very openly recorded 2 way street for them, but linux tends to be a black hole.
I actually code for a company, and I can tell you flat out that I've taken BSD code and used it internally. Never contributed back, and my company would never pay me to do so. I've avoided GPL code when doing this, and my company would not let me break a license if they found out about it. It's rather nice to be able to borrow code like that, so I like the fact that the BSD exists and people use it. But you are really naive if you think that the BSD gets higher contribution rates from corporations than the GPL does.That is patently false. look at the many companies that have been caught sneaking GPL code, I'm willing to bet that's less than 1% of the ones that do it. BSD well before linux ever got the corporate backing it did had better contribution rates from corporations, now mind you 1% is still better than 0% and it was low. But code theft is a fact of life for Open Source no matter what license you use. To think otherwise is naive, all the GPL does is manages to hold the company hostage when they do get caught and give them incentive to never get caught.
You are correct that a lot of people steal GPL code anyway, but for the most part people just ignore it if they can't use it.