Posted on May 27th, 2009 7 comments
Does community based software development violate the GPL? The obvious answer is of course not. But walk with me for a few minutes and you’ll see why I asked the question.
In my conversations with various open source developers, I find a varying degrees of belief as to what constitutes a legitimate open source project. Most people would agree that throwing source code up on sourceforge, github, or some other hosting site does not give the code a right to be called a project. After all, a project should be living or have some evidence of past life. The numbers of abandoned code trees on sourceforge.net alone is staggering (don’t ask me to quote a number that seems to increase like the US national debt). But is the code still open source?
There are many open source licenses; I would agree with those that say there are too many. The Open Source Initiative hosts a widely accepted definition of open source. For my purpose, I will refer to the GNU project’s Software Freedom Definition, paraphrasing the four freedoms here.
Freedom to run the program.
Freedom to redistribute the program.
Freedom to study and modify the program.
Freedom to improve the program and redistribute your improvements.
According to this definition, every abandoned code tree on sourceforge that is licensed under compatible terms with the GNU software freedom definition or the OSI’s open source definition is open source, and yet there is no activity.
Which leads me to the crux of my opening question. No one debates whether or not code released by an individual under some random license is open source. But what about commercial entities that release their archives? I’ve heard many people mutter in the dark corners about Sun and Open Office. I’m no fan of Sun, but whatever you may think, current OpenOffice releases are under version 3 of the LGPL. Therefore is it by definition open source software. You may not like the community but that does not disqualify the nature of the license.
Once you require participation in a community in order to legitimize code as open source, you have added an additional requirement outside of the GPL as sure as the dreaded three clause BSD license. Can open source software exist without an open development community? Yes. All that is necessary to fulfill the spirit of the GPL or BSD licenses is for one person to release their code so that others can utilize the freedom granted. Can a software development community exist without open source? Yes, but probably only the sense of a holding tea parties or book readings. Both of which can be fun but rarely generate anything useful.
Open source is about the freedom to fork. Community is about the freedom to merge. Please don’t sacrifice one at the expense of the other.
– Cheers, Jerry
Posted on May 9th, 2009 7 comments
For eleven years now, I’ve been part of the Samba Team, the core group of developers that lead, develop, and release Samba (http://www.samba.org/). It has been a wonderful, at times stressful, experience for me. However, during April of this year I decided it was time to step down from my position within the team. There are lots of events that played a role in my decision, not the least of which is my involvement in the development of a new open source SMB/CIFS server as part of the Likewise Open project (http://www.likewiseopen.org/). But I was also curious about experiencing Samba development without upstream commit access and see how far the distributed development model with git could go.
The real question for me as I look back on the past decade is, “What have I learned?” There are the obvious technical things like the Windows printing architecture, authentication protocols, and a slew of DCE/RPC operations. But what did I really learn?
One piece of knowledge that I hope I have gained is to never allow your identity to be determined by the code or project you work on. In the end, it is just code. It should be code that you are proud of, but like all things it will eventually be replaced or fade away. Someone will rewrite what you have written or it will simply be removed from the base as it becomes unnecessary. These events are inevitable and should be seen as the cycle of life reflected in code. Letting go that emotional ownership allows one to view things in a more objective light and avoid feeling threatened by logical assessments of the code’s value by others.
Secondly, there is something to learn from everyone. Engineers of all types have a strong tendency to be opinionated at the expense of not asking ourselves, “What wisdom can I glean from this comment?” Never cease to listen to the ideas of others. Humility will not fail you.
I read once that the human brain can only truly grasp seven concepts at once without resorting to an additional memory mechanism. For myself, if I can only remember these two and put them to daily use I believe I will be the better for it.
– Cheers, Jerry