FAQ-Development & Licensing

  • strict warning: Non-static method view::load() should not be called statically in /home/deeproot.in/site/modules/views/views.module on line 843.
  • strict warning: Declaration of views_plugin_display::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/deeproot.in/site/modules/views/plugins/views_plugin_display.inc on line 0.
  • strict warning: Declaration of views_plugin_display_block::options_submit() should be compatible with views_plugin_display::options_submit(&$form, &$form_state) in /home/deeproot.in/site/modules/views/plugins/views_plugin_display_block.inc on line 0.
  • strict warning: Declaration of views_handler_field_broken::ui_name() should be compatible with views_handler::ui_name($short = false) in /home/deeproot.in/site/modules/views/handlers/views_handler_field.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /home/deeproot.in/site/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /home/deeproot.in/site/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter_broken::ui_name() should be compatible with views_handler::ui_name($short = false) in /home/deeproot.in/site/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /home/deeproot.in/site/modules/views/handlers/views_handler_filter_boolean_operator.inc on line 0.
  • strict warning: Declaration of views_handler_filter_many_to_one::init() should be compatible with views_handler_filter::init(&$view, $options) in /home/deeproot.in/site/modules/views/handlers/views_handler_filter_many_to_one.inc on line 0.
  • strict warning: Declaration of views_handler_filter_term_node_tid::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /home/deeproot.in/site/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/deeproot.in/site/modules/views/plugins/views_plugin_row.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home/deeproot.in/site/modules/views/plugins/views_plugin_row.inc on line 0.

Development:

 

Q: What sort of freedom and responsibility do I have when building upon existing Free Software source code?

"Building upon Free Software source code" is a phrase that can be interpreted in multiple ways. So lets look at various freedoms and responsibilities in each case:

  • Using free software libraries and tools to develop software that you plan to distribute as free software: This is what most free software products do and this is also the best and most ethical choice to make.

Since you have already decided to license and distribute your software as Free Software, you should ensure that you follow the licenses of all other software that your software depends upon.

If you make changes to others' software ensure that either you license your changes under the same license as the original software or under a compliant license.

Similarly, if you include from other projects into yours, ensure that the license of the other project is compliant with yours' - if all code you use (yours' and others) is indeed Free Software (as defined by the Free Software definition) then most of these things are already taken care for you.

  • Using a free software stack to build applications that you will not distribute: This case would fit into a situation when, for example, you are building a web application or web-site using free software tools. Free Software licenses (such as the GPL version 2) apply when software is distributed. In this case, since you are not distributing software there is no obligation on your part to share or distribute your source code. 
  • Using free software libraries and tools to develop software that you will license as proprietary software: Though this is not something that is encouraged, a lot of people invariably use free software libraries and tools to develop proprietary software.

The reason why this is covered here is because if you're going to do it anyway, then at least you should be aware of what is expected of you and if you *have* to do it, how to do it in a fair manner. The biggest          violations of Free Software licenses happen in such cases - when people use Free Software tools to build  proprietary software and don't follow-up with what they're expected to do as a part of the license agreement.

If you're using free software libraries for proprietary software, ensure the following:

  • If you use libraries, check their license. A lot of licenses don't allow free software licensed source code to be combined with proprietary software. In such cases you can't use them
  • If you ship any free software along with your proprietary product, you are also required to provide source code for it - even if you have not changed the source code
  • Some free software is distributed under dual-licenses which stipulate that if you combine the software along with proprietary software, then you can't use the software under the terms of the free software license.

 

Q: How do I get started with developing software using Free / Open Source Software tools?

  • Here is a small engagement plan on how to get started with software development using Free Software:
  • Learn how to use Free Software development tools – version control systems, bug tracking systems, wikis.
  • Learn about free programming languages – Perl, Python, PHP.
  • Get involved in and contribute to a Free Software project of your liking.
  • Participate in your local Free Software or GNU/Linux communities.

 

Q: Can I use Free Software tools to develop software for proprietary operating systems?

There is nothing in Free Software licenses that limits you from doing this. If the tools that you use to develop software run on proprietary operating systems, then you should be able to do this.

What you need to be careful about are the distribution terms of the software you write. As long as all the tools, programming languages, compilers and libraries that you use are Free Software, then you should be able to do almost anything you want without getting restricted.

Problems crop up when you use proprietary tools to develop Free Software for proprietary operating systems. Though your own software might be free, it has non-free dependencies which limit what your subsequent users can do with the software.

If your software uses proprietary libraries you also need to check the terms of those libraries to understand what limitations they apply to software developed using them.

 

Q: I don't have much choice in choosing my development platform - I am forced to use a proprietary platform by my customers. What role can Free Software play in my organisation?

You can still use Free Software in the following ways:

  • Development machines – both desktops and servers: A lot of us use very portable software development tools. Like the Apache web server or Java. You can do all your development on a GNU/Linux desktop. You can also set-up development servers using Free Software.
  • Development infrastructure: Software development that involves multiple team members needs development infrastructure that can be used to collaborate. Starting with version control system and source code management systems to bug / issue management and tracking tools to tools that allow for collaborative documentation development, Free Software has complete solutions for you.

 

Q: If I develop a Linux-based embedded software for a device, do I need to provide source code to my users?

Yes. That is what Free Software licenses such as the GNU GPL require. It doesn't matter whether you've made changes to the source or not; your users deserve the source code.

On the other hand, if you have customised some software tools, even then free software licenses require you to share source code for them.

Most importantly, releasing the source code of your software under a Free Software license will only encourage more development around your hardware (and hence more sales of it).

 


 

Licensing:

 

Q: What is a software license? Why should I license my software at all?

A software license stipulates the conditions under which the software can used, copied, distributed and changed. A license puts forth these conditions in very accurate legal language so that there is no ambiguity about these conditions.

It is extremely important to license your software - especially if the software you write is Free Software - because youwant to protect your interests as well as those of your users and developers.

 

Q: Under what licenses are proprietary software distributed?

There is no specific name for proprietary software licenses. Broadly, such licenses are classified by software developers and vendors as End User License Agreement (EULA). EULAs are very detailed techno-legal documents that seek to use a variety of international laws (like the copyright law, the contract law, the trade secret law and so on) to enforce certain conditions on the software.

Unlike Free Software licenses, which are designed to protect your freedom, proprietary licenses typically seek to limit your freedom to ways and conditions under which you can use, copy, distribute or change the software.

 

Q: How do I know whether a software available on the Internet is Free / Open Source Software?

A lot of times you might be faced with claims that a specific software is Free / Open Source Software. Here is a smallcheck-list that can be used to judge whether a software is really Free Software or not:

  • Does the software have a clear license under the terms of which it is distributed? If yes, then has the license been validated by the Free Software Foundation or the Open Source Initiative?

This is the easiest way to know if the software is Free / Open Source Software.

  • Does the software differentiate between how you can use the software and for what purpose? If yes, then it  can't be Free / Open Source Software.
  • Are you allowed to re-distribute the software? Free Software allows re-distribution of software - provided the re-distribution happens under the same conditions as the original software and all the freedom available to users are retained.
  • Does the software developer ship source code of the software along with the software? Access to source code is vital to providing and protecting your freedom. True Free / Open Source Software always ships with usable and equivalent source code.
  • If source code is available, are modifications to the source code allowed? Free Software developers encourage you to modify software that they write.

These tests are not exhaustive and different situations might require more extensive study of software licenses. However, generally software developers developing software with the intent of protecting your freedom will use well-known Free / Open Source software licenses to clarify the exact terms under which their software is distributed. They have no need to hide constraints on your freedom under multiple layers of legalese.

 

Q: My vendor tells me that their software is Open Source software. However, I still fail to get access to a validlicense and they don't want to share source code. Is this allowed?

No - if their software really is Open Source software they should publish source code for their software. If they don't then they are using the term "open source software" just to promote their software - they might actually have no interestin promoting or protecting your freedom.

Sometimes, when vendors say that their software is "open source software" they might mean that it is powered by orbuilt on open source software. That is not good enough and that does not mean that their software itself is free or open source.

There are some more conditions under which they are required to provide source code to you - irrespective of whether they have made changes to it, irrespective of whether their "own" software is free or open source software. The GNU General Public License requires a distributor to provide source code of software even when it is distributed without any changes to it. This is to ensure that users' freedoms are never compromised and that they cannot compromise other  user's freedoms.

 

Q: I made some small changes to an open source software that I downloaded from the Internet. Am I obligated to share my changes with everyone?

It all depends on what you plan to do with your software. If you plan to use the changed software only for your private use, then there is no obligation on your part to share your changes or the changed version of the software.

On the other hand, if you are going to be distributing the software to others, then anyone who gets access to yoursoftware also has a right to get access to its source code. And in such cases you must provide the source code.

 

Q: I just bought an intelligent device which runs on Linux. But the manufacturer failed to provide source codefor me. When I asked, I am told that they are not required to provide source code to me. Are they violating Free Software licenses?

Yes - the device manufacturer might be violating a wide range of Free Software licenses. The Linux kernel is distributed under the terms of the GNU General Public License (GPL) as is so much other software that we use on a GNU/Linux system. The GPL requires software distributors to provide access to source of any Free Software that they may be distributing. Even if they have not made any changes to the software.

The GPL says that whenever Free Software is distributed, each subsequent user has a right to access its source code. Either the source code should be given along with the device or media that the software ships, or the distributor is required to give users a written committment (valid for at least three years) that they will provide source code "on-demand" for a charge not more than the cost of copying the source code and the media it is shipped on.

If your device manufacturer does not do any of the above, they are definitely violating the GPL and their right to use and distribute the software automatically terminates because of this license violation.