Good Person, Bad Person

“I also don’t have a lot of interest in being a good person or bad person, from what I can tell either way you are screwed.” This is what Georgia Lass, lead character of my favourite television production “Dead Like Me”, says, when she introduces herself in the pilot episode. I cannot speak for the developers behind the Kororaa Xgl live CD, but I’d think Georgia nailed the situation they must be in pretty well. Note: this is the Mon… Err, Sunday Eve Column. My apologies for the delay, but I was… Incapacitated yesterday eve.

As reported yesterday, an unspecified person sent an email to the developers of Kororaa, claiming the Xgl live CD is breaching the GPL by bundling built versions of the nVIDIA and Ati binary drivers. The Kororaa Xgl CD has recently gathered some fame by being the first live CD to ship a working, pre-built version of Xgl, the fancy-transparency-compositing-thing written by, among others, Novell. It installed the nVIDIA and Ati drivers automatically; that is, they are distributed pre-built against the Linux kernel, and as such, constitute as a derived work. According to the person or entity that notified Kororaa, this is a clear violation of the license terms of the GPL.

The keywords in all this are ‘derived work’. Derived work is a term you cannot easily define. Derived work is not an absolute term. Some things can clearly be defined as a derived works, while others clearly cannot. When I take the Linux source code, change every instance of ‘Linus Torvalds’ into ‘Thom Holwerda’, and then build the kernel, then it is clearly a derived work. As such, I must provide the source code in machine-readable form to anyone who has the binary. However, when I look at and learn from the Linux source code, and then move on to write my own kernel, then this is clearly not a derived work.

The problem does not lie at the extremes. The problem lies in between those two extremes, the so-called ‘grey area’. This is especially difficult when it comes to kernel modules. Torvalds clarified on the lkml:

“And in fact, when it comes to modules, the GPL issue is exactly the same. The kernel _is_ GPL. No ifs, buts and maybe’s about it. As a result, anything that is a derived work has to be GPL’d. It’s that simple.”

Upon first glance, this seems like a very clear answer. Modules are derived works of the kernel, end of story, Kororaa is violating the GPL. But you guessed it– indeed, it is not that simple. Linus then continues:

“Now, the ‘derived work’ issue in copyright law is the only thing that leads to any gray areas. There are areas that are not gray at all: user space is clearly not a derived work, while kernel patches clearly _are_ derived works. But one gray area in particular is something like a driver that was originally written for another operating system (ie clearly not a derived work of Linux in origin). At exactly what point does it become a derived work of the kernel (and thus fall under the GPL)?

Linus then continues and explains that according to him, some modules cannot be considered as derived works, because they were not designed for Linux and do not use any Linux-specific behaviour.

Do you see the problem? How can someone prove beyond a reasonable doubt that a driver he or she has written was written without Linux in mind? Does Linus’ reply here mean that if you simply avoid ‘Linux specific behaviour’, you can ‘circumvent’ the requirements of the GPL? Not even the big man himself knows the answers to these questions, since he writes:

“These days it would be hard to argue that a new driver or filesystem was developed without any thought of Linux. I think the NVidia people can probably reasonably honestly say that the code they ported had _no_ Linux origin. But quite frankly, I’d be less inclined to believe that for some other projects out there…”

If not even Linus can conclusively say whether some drivers are derived works or not, then how on this sweet earth can someone like the developer of a live CD make these calls? Now, this is why I often refer to the GPL as a legal grey area in the comments’ section on OSNews. If one of the most important terms in the GPL is not clearly definable, doesn’t that mean the license is simply not suited for something as complex as an operating system kernel? Or, that the license itself is too complex and unclear?

I, and others with me, have been almost buried alive because of the above. The fact I have the audacity to claim the GPL creates a legal grey area, is, for some people, reason enough to burst into flaming balls of anger. I never understood why, really, as as we just saw, even Linus himself acknowledges the grey area. Is Linus now the ‘uninformed troll’ as well?

But I digress. How should the Kororaa developer handle this situation? Well, I think he should continue to bundle pre-built versions of the video drivers. Linus himself clearly states that at least the nVIDIA driver is not a derived work, and as such can be supplied pre-built on the Kororaa live CD. The Ati drivers are a more difficult matter, as Linus does not specifically mention these. However, Free software purists will strongly disagree. They will continue to claim that Kororaa, and other distributions who also bundle these drivers, are in violation of the GPL. If the Kororaa developers follow the purists instead of Linus, than he will give up a major selling point of his distribution, making it far less attractive to the masses.

In other words, must the developer be a good person or a bad person? I do not think it really matters. Either way, he’s screwed.

–Thom Holwerda

If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.


  1. 2006-05-15 8:58 pm
    • 2006-05-16 12:20 pm
      • 2006-05-16 5:36 pm
  2. 2006-05-15 9:02 pm
    • 2006-05-15 9:09 pm
      • 2006-05-15 9:13 pm
        • 2006-05-15 9:14 pm
          • 2006-05-15 9:21 pm
          • 2006-05-15 9:29 pm
          • 2006-05-15 9:47 pm
          • 2006-05-15 10:16 pm
          • 2006-05-16 1:47 pm
    • 2006-05-15 10:11 pm
  3. 2006-05-15 9:05 pm
    • 2006-05-15 11:16 pm
  4. 2006-05-15 9:12 pm
  5. 2006-05-15 9:13 pm
    • 2006-05-16 9:08 am
      • 2006-05-16 1:12 pm
        • 2006-05-16 4:32 pm
  6. 2006-05-15 9:20 pm
    • 2006-05-15 10:40 pm
      • 2006-05-16 12:03 am
  7. 2006-05-15 9:24 pm
    • 2006-05-15 9:29 pm
      • 2006-05-15 9:57 pm
        • 2006-05-15 10:05 pm
          • 2006-05-16 1:59 pm
          • 2006-05-16 7:04 pm
          • 2006-05-16 8:53 pm
          • 2006-05-16 9:12 pm
          • 2006-05-16 9:48 pm
          • 2006-05-16 10:04 pm
          • 2006-05-17 12:21 am
        • 2006-05-16 1:22 pm
      • 2006-05-16 1:59 am
      • 2006-05-16 6:21 am
  8. 2006-05-15 9:52 pm
    • 2006-05-15 10:10 pm
      • 2006-05-15 10:48 pm
    • 2006-05-15 11:54 pm
  9. 2006-05-15 10:13 pm
  10. 2006-05-15 10:29 pm
  11. 2006-05-15 11:02 pm
  12. 2006-05-15 11:39 pm
  13. 2006-05-15 11:55 pm
  14. 2006-05-16 12:28 am
    • 2006-05-16 4:52 am
      • 2006-05-16 5:03 am
        • 2006-05-16 6:49 am
          • 2006-05-16 7:30 am
          • 2006-05-16 9:02 am
          • 2006-05-16 5:08 pm
          • 2006-05-16 8:05 am
      • 2006-05-16 5:40 am
      • 2006-05-16 4:24 pm
    • 2006-05-16 8:07 am
      • 2006-05-16 4:29 pm
  15. 2006-05-16 1:40 am
  16. 2006-05-16 1:56 am
    • 2006-05-16 3:21 am
  17. 2006-05-16 2:36 am
  18. 2006-05-16 4:51 am
  19. 2006-05-16 6:15 am
    • 2006-05-16 9:05 am
      • 2006-05-16 3:02 pm
        • 2006-05-16 4:28 pm
          • 2006-05-16 5:43 pm
          • 2006-05-16 7:09 pm
          • 2006-05-16 9:38 pm
          • 2006-05-16 9:58 pm
          • 2006-05-17 1:04 am
          • 2006-05-16 10:28 pm
      • 2006-05-16 5:18 pm
    • 2006-05-16 6:30 pm
  20. 2006-05-16 6:54 am
    • 2006-05-16 7:16 am
      • 2006-05-16 7:41 am
  21. 2006-05-16 7:44 am
    • 2006-05-16 12:31 pm
  22. 2006-05-16 8:29 am
    • 2006-05-16 4:25 pm
  23. 2006-05-16 10:15 am
  24. 2006-05-16 2:20 pm
  25. 2006-05-16 5:32 pm
  26. 2006-05-16 6:13 pm
  27. 2006-05-16 8:31 pm