2011/1/21 Devwrat More
> Really nice one lokesh…..:) 🙂
> @ Praveen:
> Please elaborate on how Copyright is used for CopyLeft and who OWNS
> copyleft… ( really smart thing!!! )
Copyright law says copyright holder (author of a creative work) has all rights to his or her work. Nobody else can use, distribute or remix the work without his permission.
Now with copyleft, the author gives such a permission (called a copyright license), it can be GPL, LGPL, AGPL etc (difference copyleft licenses with slightly different conditions, will explain the difference below). which says you have all the freedoms, but when you give the work to others they are also entitles to all the freedom you got in the first place.
GPL (General Public License) – strong copyright, any work that uses a GPL covered work (derivative work) should also be GPL. For example you use a shared library (.so file on unix systems and .dll on windows systems) in your code and if that library is released under GPL, then your code also should be GPL. quid-pro-quid. Take my code, but give back what you write. gnu readline is an example.
LGPL (lesser General Public License) – weak copyleft, any change to the code covered under the license need to be released, but if you are just linking to it, you decide license for your code. GNU C Library (glibc) is an example. You write C programs and it uses functions from GNU C Library like printf, scanf etc. You include these functions when you say #include
Between GPL and LGPL, the decision is a strategic one. If the code we write is a new feature, our interest is to give advantage to Free Software developers, we may use GPL. But if what you write is already available and there is no advantage to Free Software developers, you may chose LGPL so that more people may use the work. Read more details about this case written by RMS
“Which license is best for a given library is a matter of strategy, and it depends on the details of the situation. At present, most GNU libraries are covered by the Lesser GPL, and that means we are using only one of these two strategies, neglecting the other. So we are now seeking more libraries to release under the ordinary GPL.
Proprietary software developers have the advantage of money; free software developers need to make advantages for each other. Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it.
Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Lesser GPL in certain cases. The most common case is when a free library’s features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library.”
Complete article is http://www.gnu.org/philosophy/why-not-lgpl.html
AGPL (Affero General Public License) – stronger copyleft than GPL itself, if you use the code as a website, all of its users should have access to its code. Example statusnet, silpa, launchpad, diaspora etc. Designed for web-based applications. I heard this story from someone, about bc (binary calculator). It goes like this, there was a known bug in bc and some people were curious and tried the same operation on google search box (in addition to web search google search box works as calculator, currentcy convertor and many other things). They found the same bug in google as well. After some time, they tried the same thing again and found google has fixed its site, but bc was still buggy, meaning google did not give back to the community. Current GPL implementation does not cover this case because web services were not common when it was written and it would be considered as normal use of the program. Just to reiterate, you don’t have to accept GPL if you are just using the program or even making private modification. GPL starts only when you give the software to someone else.
So what happens when someone does not follow the conditions of GPL? That is very common case for many embedded hardware like routers. Authors of the software (most of the time it is linux kernel developers, note this point carefully, only the authors can file a case, not you, me or even FSF can file a case if we don’t have copyright. You or me can notify the authors, if we see violations. FSF sues companies which violates code that FSF has copyright on like binutils – basic commands like ls, cat etc are part of binutils).
When the violator says, I did not read GPL, court asks show me the license. They don’t have any other license than GPL itself so it is a clear violation of copyright law. Distributing copyrighted work without a license – pay fine, stop distributing etc. Now if we say they don’t agree with GPL or they don’t like GPL, they again don’t have any other license, which means clear copyright violation. So if you are distributing GPL covered software, you have only two options
1. Agree with GPL and follow all its conditions
2. Don’t agree and stop distributing.
So you can go to court and enforce one of these conditions. And it has been proved in court.
Ask if you are not clear, because it is a very important and commonly mistaken concept.
For more legal savvy folks, read the court judgement against D-Link http://www.jbb.de/judgment_dc_frankfurt_gpl.pdf
See http://gpl-violations.org/ for more details on how GPL is enforced.
> Also you did not answer about how one earns his living with Free softare. (I
> could not understand what Lokesh has written about earning and No warranty
> … does it mean programmer earns by MAINTAINING a software ????? )
Abhijit has explained one way of making money, provide services, charge for your expertise etc. This is used by many compnies including my employer Red Hat. The concept is similar to how we pay a plumber or a lawyer. We can fix our taps or we can pay someone to fix it. We can argue our case or pay a lawyer on behalf of us. Same way you can fix the code yourself or you pay someone for it. It might not be financially feasible to hire programmers to fix such large a codebase. So you opt for paying someone who has expertise on the entire code base and can help fix things when it breaks. Some big companies can afford to have their own programmers and they don’t buy these support. But then again that is another model, those compies are employing Free Software developers.
Another option is dual-licensing model. It is commonly used with GPL license. You take the code, it is GPL, but you have to make your code also GPL. If you don’t agree, pay us and you can keep your code proprietary. So the software itself will always be Free under GPL, and any other Free Software developers can use that code, but proprietary compies who want to use the code has to pay. So proprietary companies fund such Free Software projects! How brilliant! MySQL uses such a model, QT used follow this model, now after Nokia aquired TrollTech – the company which developed QT, they changed QT license from GPL to LGPL. Now Nokia wants everyone to use QT, they have lot of money and don’t have to depend on proprietary companies for funding. For mobile companies the choice may be between Android and QT. If they don’t have to pay for Android, and pay some money to Nokia for QT, they might not want to use QT.
For some hardware companies, all they care is about selling their hardware, so they employ developers to write drivers, test on Free Operating Systems etc. HP develops drivers for many of its printers and scanners this way. They employ developers to write drivers, it is released as Free Software. HP cares about selling more printers and not about drivers itself.
There are many other models we will discuss more on this as part of our foss elective, we will keep the session open for every one.
The basic idea is this, the old model of developing a software, marketing it, restricting it and charging huge moeny for each copy if obsolete now. It opens up new opportunities for everyone to make money. So a Free Software business model is only limited by every one’s imagination.
I am sure, if you see something is not working in Free Software and realise people are ready to pay to get it repaired, that is an opportunity for you. Its completely upto you how you want to make money with Free Software.
And remember this too, many developers have other day jobs and write Free Software because they like doing it. So there is absolutely no requirement for you to get a Free Software job to contribute to Free Software. If you like doing it, just do it. Look for a career else where.
PS: College Of Engineering Pune has a vibrant Free Software community and it is rewarding experience to work with them. We are running a Free Software Development course as an elective for final year Information Technology and Computer Engineering students. The enthusiasm of the students is evident when I see some students who took it as an audit course – which means, they don’t get any credits for the course, but they come an sit for the course anyway! There are some second year students who also attend this course regularly! Not many teachers are this lucky to have such interested students, plus great flexibility to deliver it!