Andy’s Blog

Just another WordPress.com weblog

Open Source Licences – Hindering Open Source Development?

Before I start I should say that all going well this should appear on the Ubuntu-UK planet (cross fingers ;))

OK so we begin.

I’m sure many of you are aware of the British Broadcasting Corporation (BBC), if you aren’t they are a publicly funded broadcasting (T.V., Radio, Website etc.). If you own a T.V. in the U.K. you generally have to pay a licensing fee which is where the BBC gets some of it’s money from. The BBC developed an application they call “iPlayer” which currently only runs on “Microsoft Windows XP”, claiming that they couldn’t develop a cross platform application without it taking a long time and costing a lot. In an attempt to prove that this is completely untrue I thought I would take a look into how easy (or hard) this is.

As two of the important benchmarks are Cost (I am a poor student), and Time, I thought “How can I keep cost down and develop fast”. And then I thought “Hay this is Open Source (or Free Software if you prefer), I can borrow from other peoples code and just bolt them together.”.

So what I needed was:

  • Media Playback
  • Peer to Peer download capabilities
  • Fetching show schedules
  • DRM (A requirement of the BBC, if I am to show that it wasn’t as difficult as claimed to produce a cross platform application I at least have to meet the same requirements do I not?)

In a few hours I have got a basic GUI (thanks to the Java Swing library) so now I am looking at solving the other problems.

First Media Playback, after rejecting Jtheora (poor documentation made it unusable) I settled on JMF (Java Media Framework). Only it’s not open source, however I don’t actually need to distribute the code due to the way Java works so not a problem there.

Peer to Peer, well there is a GPL BitTorrent library called Snark, I haven’t quite worked out how to use it yet though.

Fetching the program data really depends on the format. There is a format called TV Anytime, and helpfully the BBC have written a java library for parsing it. This is licensed LGPL (that’s another different licence!).

Now DRM, I knew this was going to be a problem but luckily there is Java DReaM. Sorted right? WRONG! It is licensed under CDDL. Now as far as I can tell that means I can’t use it in my GPL application. And I can’t make my application CDDL because then I couldn’t use the GPL or LGPL code.

So is all the different licenses actually slowing down development? All I was trying to do is build a new application. It doesn’t do anything special just things that many people have done before so surely I could use their code. And then I suddenly have to switch from being a Software Engineer to a Lawyer to determine which open source code I can or cannot use in an open source application. This slows me down a lot because I am not a Lawyer. I don’t know how to read these complex legal documents. Can the Open Source and Free Software communities really afford to have such time wasted by legal complexities that we put in our own way?

Another problem is of course that I require the libraries to be in Java. Many aren’t. A single unified language would be good. It wasn’t so much a problem for platform specific applications you can compile down to binary from and from there they library sort of looks the same (OK I know there are differences but I can call a shared object file from different languages so it’s not a huge problem). Unfortunately I lose that when trying to go Platform Independant. I can not run native libraries as the entire code would then be locked to whatever platform I could port the library to.

So do we need a single unified license, or possibly a set of compatible licenses instead of the incompatible ones we have now.

Do we need a single unified format for cross platform “binaries”? I can access a library written in one language from a different language when they are natively compiled, why is there no standard for doing this with platform independant code? Is it just a standard Virtual Machine we need? Should we all just switch to Java? Should other languages compile to Java byte code the way that compile to native machine code (is this possible?).

Any way back to the drawing board with my Free iPlayer replacement.

For anyone interested I have been able to get it to playback media files, JMF have a bean that requires only a few lines of code. SO useful, pity there’s not a Free (as in speech) implementation (that I am aware of)

September 25, 2007 Posted by | Computing, Free Software, Software | Leave a comment