|
|
||
Evan Summers's BlogOpen Source ArchivesCDDL'ing up with SunPosted by evanx on May 18, 2006 at 07:52 AM | Permalink | Comments (6)Now that Sun's big boys are trying to decide "how" to opensource Java (with the "why" worked out by Jonathan and Rich a long time ago I'm sure), it's time for the little boys like me to get excited about opensource licenses and what they mean. By the way, I suggested in an earlier blog "Swing trounces Ajax" that Sun will opensource Java to counter competitors (Microsoft, IBM and Red Hat) and their competitive offerings (C#, Harmony and GCJ) because "Sun wants developers to be field of Sunflowers following the Sun." I liked that quote, so I'm repeating it, and I liked that blog so that's why I keep punting it. What I do change with each punt is the title, eg. Swing trumps, thumps, trounces... and who knows what'll be next? ;) In my previous blog "Duke in a Tux" I mused about Java being opensourced as GPL, as opposed to Apache. This was a silly suggestion because then all Java programs would have to be GPL'ed too! (I suppose the JVM could be GPL'ed and the class libraries LGPL'ed but lemme put that bone aside.) Jim Driscoll commented that OpenSolaris and GlassFish are both under CDDL. Since I didn't know what CDDL is (besides being an approved opensource license) I decided to do some reading... (Isn't Google great?)
So the story is that Sun liked the Mozilla Public License (MPL), but it needed some bugfixes, and so that's what the CDDL is - a refreshed MPL after a day at the health spa. CDDL aims to reduce the proliferation of opensource licenses by fixing up the MPL license for everyone. I get the impression that this was an honest and noble effort on Sun's part. Hey, it now has the full support of this little fish in the sea of developers - hold the presses! OpenSolaris prompted the creation of the CDDL. Sun has subsequently reused the CDDL for GlassFish. Maybe Mustang will be next? So what is this CDDL, and how does it differ from the GPL and ASL (the Apache Software License)? Claire explains that the GPL and the BSD-family of licenses (which includes Apache's ASL) where considered for OpenSolaris. GPL was too viral, in that derived works also have to be GPL'ed. So it's not company-friendly in that respect. We know that the GPL is developer-friendly license. Hey I need one of those RMS collars, that processes your speech, and everytime you say "Linux" instead of "GNU/Linux" it gives you an electric shock ;) The BSD-family of licenses (of which the ASL is the state-of-the-art, Simon Phipps says) is great for companies, since it says "Use this software as you wish, baby, just don't sue me." Not in those exact words of course. I guess they got some lawyers in, and they worked it out. After the GPL and BSD-family, the third distinct class of license is the MPL (of which the CDDL is the state-of-the-art, Simon says). The MPL neatly defines "modifications" and "derived works" in terms of files, eg. C source files. Changes to existing files are modifications, and new files that you add to the source tree, are "derived works." I like this because it's clear what's what, innit.
In this case, (re)licensing your software means you are placing it into a "public commons" where everyone can play nicely with it. According to the license of that particular commons of course. And here's the difference... In the BSD commons, you don't have to contribute your modifications or your derived works back into the commons. In the MPL commons, you have to contribute only your modifications back into the commons. In the GPL commons, you have to contribute both your modifications and your derived works back into the commons. So it's clear that the MPL is some happy medium between the ASL and GPL licenses. I can see why it's important to have a state-of-the-art bug-free MPL. Enter the CDDL. "I'll take one of those happy meals with the free Mozilla CDDLy toy - hold the BSD fries and GNU cola please!" Here is Simon Phipps' definition of opensource (April 2005). An open source software project is a software source-code commons maintained by a creative community, which uses the content of the commons to create richness and innovation, with and around the commons. In the process of that creativity, the community enriches the commons for the benefit of all and may be compensated by the recipients of the creative act. He goes on to say of the CDDL that the commons is continually enriched... That's GPL-style (copyleft) for your work on the commons and BSD-style for your own creations So the CDDL is copy-left for modifications (like the GPL), and "free use" for derived works (like the BSD/ASL). GPL is the most restrictive license, and BSD the least, with the CDDL sitting inbetween. The CDDL is less restrictive than GPL (it allows "free use" of derived works) but is more restrictive than BSD/ASL licenses (it is copyleft with respect to modifications).
As Jim points out, many groups require this joint-copyrighting, including Apache. And including the FSF, just joint-copylefting in their case of course ;) Apache have their Contributor Agreements, after which Sun modelled their SCA (Sun Contributor Agreement). SCO taught the world the need for these, innit. The GPL is great for developers that don't want some other company building a closed commercial product using their work. But what if later you wanna relicense your GPL project, eg. under ASL or CDDL, and/or build a commercial system using your project? Maybe for your new best client that is gonna help you pay off your house, by letting you work on your project all week instead of all weekend. The problem is that if you've accepted contributions, you can't. Because you don't hold copyright over all those little patches - here, there and everywhere - submitted by a whole bunch of handy helpers.
This does make the point that the license a project is released under, is not the whole part of the story. The terms and conditions of acceptance of contributions is another chapter. I guess in the extreme case, no contributions are accepted, ie. such a project would have to be forked in order to make any "contribution" to the project. Another case is the requirement that contributions are multiply-licensed, ie. contributed under a different license in addition to the original license. In my example, a project is released under the GPL (the most restrictive license), but contributions to the master source tree are only accepted if made under the ASL (the least restrictive license). Finally, a common case seems to be the requirement of a Contributor's Agreement which grants joint-copyright. This is an attractive solution for the project originators, since they retain the freedom to relicense their software into another commons, and/or use the software (which is predominantly their own) in a closed product. That is, keep their options open for the future. Also, as the FSF says, it it makes it easier to defend against infringements in court, if you can argue as the single copyright holder (and not one of hundreds). Traditionally one would assume that contributions would be accepted under the same license as the source is released under, without any further conditions. The point is that there is no guarantee of this, or that contributions would be accepted at all - clearly patches can be, and are, rejected, eg. in the case of the Linux kernel. Opensource promotes common development, where the idea is to engender a community of contributors. But maybe in some cases it's more about distribution. And in others, it's a marketing gimmick. And in most cases, it's some combination of all of the above! My Desktop OS: Windows XPPosted by evanx on May 11, 2006 at 10:06 AM | Permalink | Comments (4)Linux.com has a great series "My Desktop OS..." which is usually a Linux desktop. I thought i should do a tongue-in-cheek one "My Desktop OS: Windows XP" - to highlight some of my frustrations with the Linux desktop of late - multimedia to be specific. Which boils down to me being too lazy to bother about my own freedom. I'll follow this up with another article, "My Desktop OS: FreeDOS" ;) So after getting my hands dirty with Linux desktops over the past 8 years, I started using XP again. ("'Shock horror! Linux advocate caught using XP!' it says here in the paper.")
Actually I had lots of "exotic" computers to play with because my father's company had to port their 4GL software to all these different "micro-computers" and mini-computers, mostly from ICL (which was British for "IBM" in those days). This was in the days before the IBM PC came along and changed everything. Before the PC arrived, my favourite "micro" computer was an CP/M multi-terminal machine. It was powered by a Zilog CPU, just like my friends' Sinclair Spectrums. I didn't have a Spectrum - I had a great museum playground of ICL computers of the twentieth century! Naturally I spent every hour I could out of school at that computer playground. So this favourite CP/M box of mine was the size of the original PC, but it had four terminals hanging off it - fantastic! Especially when you're boss' kid playing at the office after school. There was always a terminal free, so I never cycled all the way from school to the office, only to have to wait for hours for someone to finish running their job. Then an "IBM" arrived. An "IBM PC." Now understand, we were predominantly an "ICL" house. But we had heard of this American "startup" computer company called "IBM." Just that I personally hadn't seen a computer made by IBM (or DEC) before. South Africa was sanctioned by the US, and I think that IBM PC had to be sneaked in via the UK. (Maggie Thatcher, you did the wrong thing for the wrong reasons - you turned me into a computer geek!)
I would have preferred this PC to run my favourite multi-user CP/M, but that didn't curb my enthusiasm one iota - I was on a path of discovery! (Pity it was computers and not girls, but still it was something.) My IBM PC desktop then was the GW-Basic fullscreen editor - fantastic! You could move the cursor around the whole screen - and that really was something special in those days, I promise you! In the mid-eighties, I progressed to Norton's Editor, and TurboC - woohoo! Little did i know that for the next decade and a half, except for the addition of a mail application (pine), and a browser application (Netscape), my desktop metaphor would remain essentially the same. Instead of programming in Norton's Editor, using the DOS command-line to compile and run, I would be programming in vi, and using the bash command-line to compile and run. I made the not-so-huge leap from run.bat to run.sh. "A small step for man, a giant leap for mankind." RMS will back me up on that.
You were right Bill, you really did only need 640k in those days, and those PCs flew! I don't remember any hour-glasses, or waiting for web pages to load... Oh, because there was no web, i forgot about that. But Linux, with its X Windows and Netscape, rocked so hard! The best thing about Linux for me, was that it opened up the wonderful world of networking, and the Internet, and the World Wide Web, oh wow, i was blown away! Once you got your XF86 config file working, you were on Al's superhighway. Actually I never got my XF86 config working - so a friend got it working for me, yeah baby! I xterminated X windows with bash, pine, vi, gcc and later java. To be honest, I only used two X applications: Netscape and xterm. Then a few years later I got a Java development contract through that very same friend that had converted me to Linux six years earlier (and got my XF86 config file working for me). He upgraded to a new laptop and gave me his old laptop (exactly what i would have done). I was all fully set up with IntelliJ, JDO, MySQL, on... XP! He explained that our clients all use Windows XP, so we are deploying our application to XP, and so we develop on XP. Actually for the month before that, I had been using my sister's XP machine to check my webmail and surf occassionally, because I was between contracts and minus a computer to call my own. So I was au fait with Windows XP, or should I say with Firefox running on Windows XP. At first I found XP very frustrating. Mostly Windows Explorer. Point and click and wait. Repeat. I was used to bash, which with its file name completion, was quick and easy to navigate the file system, and run applications - even better than the 1980's with CP/M and PC-DOS - because bash has got file name completion - it's the bomb, baby!
So I got used to Windows XP. It is slick, and runs all my favourite opensource apps, so it's pretty much like a Linux desktop. I spend 99% of my time in my IDE (which was IntelliJ), Firefox and Thunderbird, just like on Linux. I was a happy puppy, I won't lie to you. For one thing, IntelliJ was definitely a step up from that vi rock i had been living under for so many years. My next contract, the same thing happened. "Here is your XP machine. I am your network admin. Let me know if your Outlook doesn't work, or you can't print something." I somehow knew I couldn't ask him if he had a set of Fedora CDs laying around for me for reinstall my machine. My job was a Java developer, paid by the hour expressly not to be self-installing company property with unsupported operating systems and software! So I was a good user. Except for occassionally like when the printer wasn't working. I emailed the network admin that I've pressed Print about twenty times and still nothing is coming out of the network printer, but i'll keep trying! Best part is he never knew if I was joking or not. After all I was just a lame Windows user and not a l33t Linux hax0r.
When that contract was over, I tried to go back to Linux on my new home PC. Because really, I couldn't be using this "Windows Phone Home." I am a real programmer and IT professional, goddamnit! And a longtime Linux advocate to boot. Heck, I've co-founded at least one Linux assocation that i can remember, and a LUG too. My frikkin car license plate is even "LINUX." It's a known Linux bug in Cape Town. Yes, a VW Beetle. So i booted into Knoppix for starters. This is when the strange thing happened. I hated it! I wanted my XP back! The fonts looked terrible! The icons looked unfamiliar! The resolution was terrible! No accelerated video drivers. The mouse went flying across the screen at the million miles an hour. My bluetooth USB key didn't work. How am I gonna get pictures from my phone to email my family!? No iTunes for my iPod! No MP3, no Flash, no Quicktime, no podcasts, no YouTube. Darn, my life as I knew it was taken away from me in the blink of a lilo! I phoned a friend, a Linux friend, in a panic, and said, I'm doomed. I can't play that new Doom3 demo, and that's just the start of it! He said, no problem, you just gotta set up your system properly. Check this "Tips and Tricks" site, download those RPMs, these dependencies, insert those suppositories, and slap-get this other thing. I said, "Listen, buddy, I'm on frikkin holiday. It's my frikkin day off, so I'm not going to spend the whole weekend being a computer geek. I've been a computer geek my whole life, and it's enough! I just want my computer to work. Yes I'm concerned about freedom - my freedom to go outside and have a beer in the sun, rather than spending the day slapt-getting my frikkin hard drive! I've been working for the whole week on a frikkin computer, and my evenings and weekends must be free as in beer! Configuring drivers and plugins sounds very much like work to me. So get your slapt arse over here, linux boy, and configure my frikkin computer for me, bitch!"
Everything just works. My sound and video works like a dream. My weekends are my own, or should I say, MPlayer's. My bluetooth camera phone works, so I can send pictures to my Mom of me blowing up nitrous ballons at parties again. (That's my story and I'm sticking to it.) My iPod works. I got my tunes. Can life be better? (I heard that, RMS. Just let me enjoy the moment please!) Ah. I can hear the birds chirping outside... Oh it's my GoogleTalk!
| ||
|
|