GNU GPL FAQ

From ElphelWiki
Jump to: navigation, search

If your question is not covered here please post it in: Questions and Answers


The first topic to be covered is application of GNU GPL to Elphel products

Questions related to the licensing of Elphel products

On your web site you write that your products come with GNU GPL license. What does it mean for me as an end user? OEM?

GNU General Public License is designed to protect your freedom to modify and distribute covered programs and imposes conditions to ensure that the recipients of your modifications will have the same rights as you do. That means that before you start to develop derivative products you have to carefully read the text of the license and make sure it is compatible with your plans.

Of course, if you do not have plans to distribute your modifications and intend to use Elphel products only internally, you may skip the reading of the legal stuff and are free to do whatever you like, modify any part of our products and keep all your secrets with you.

As far as I know GNU GPL is a software license. How is it applicable to your hardware?

Yes, text of the GNU GPL uses the term 'Program' as the covered object and is based on the copyright law that is not directly applicable to the hardware systems. But as more and more parts of the hardware are acquiring software features, more parts can be covered by the software licenses. Absolute majority of the hardware use some kind of a microprocessor that runs firmware and so do Elphel products. We use Axis ETRAX processors optimized for and running GNU/Linux operating system - most parts of it are also covered by GNU GPL. All of the specific software code designed for operating Elphel cameras is also released with the same license.

The high processing speed of Elphel cameras needed for video processing comes from the reconfigurable Xilinx FPGA devices. These devices can typically run 100 times faster than the general purpose processors, their reconfigurability makes it possible to change their code similar to microprocessor firmware. Usually FPGA code is developed using one of the hardware description languages such as Verilog or VHDL (Elphel products use Verilog) and so the code of these designs can be (and in our case is) protected by the GNU GPL.

Can I resell your products bundled with our proprietary software running on the connected computers without providing the source code?

Yes, you can. License that comes with Elphel cameras does not restrict your ability to use them with any types of software running outside of the camera. Of course you may still be bound by the GNU GPL if you base your software on the software provided on our Live DVD or any third party software that you receive with GNU GPL.

Can I install our proprietary software inside the camera and resell it as our product without providing the source code for our additions?

Usually yes, but that depends. As with any software running on GNU/Linux system you may install (and distribute) proprietary software without disclosing the source code if it is not derived from GPL-covered code.

Basically these are the same rules as with the computer running software covered with this license. What is legal on the computer is legal in the camera, what is not - is not.

All the Elphel software installed in the camera including drivers that provide processor interaction with the FPGA and the image sensors is covered by GNU GPL.

What about FPGA code? Can we add our own processing to it without disclosing our secrets?

No, it is not possible. You can use proprietary FPGA code in Elphel products only if you completely rewrite all the FPGA code from scratch, including host interface, interaction with the sensor, dedicated SDRAM memory and the system memory - not just the video compressor. No part of the Elphel FPGA code may be included with the proprietary closed-source replacement.

It is so because the current development software for the FPGA used in Elphel projects does not allow to combine separately compiled modules - all the code is synthesized from the source together, the placement is also inter-dependent. This prohibits to mix Elphel code covered by GNU GPL with closed one in the same chip.

So yes, it is possible but we would recommend to stay with GNU GPL - for those who develop such software that runs in or with Elphel cameras we exclude software development cost from the price of our cameras and provide our customers with a discount that can be combined with other discounts available for the cameras.

Can I resell your products with modified FPGA code?

I know some companies work with dual licensing. Can I buy a proprietary license to be able to resell you products as part of ours without providing of any source code to our customers?

GNU GPL is the only license that Elphel provides for our products and we do not sell licenses that allow licensee to close the source code. Our business model does not involve that source of compensation.

Can I keep secret that Elphel cameras are used in our products?

Some companies consider it to be their advantage that they use Elphel cameras inside their products and do not want their competitors to know that. Is it possible? In most cases the answer is "no". The only case where it is legal is when you use our (or derived from our) product exclusively in-house without any distribution or sales to others - same as with Free Software. As soon as you start to provide such product to your customers you have an obligation to provide the complete source code to them and can not limit their freedom to distribute the code (and so the fact that the cameras hardware and significant portion of the software and FPGA code are designed at Elphel) by any kind of non-disclosure (or similar) agreements.

Do I have to pay Elphel any royalties if I will build my cameras using documentation provided by Elphel, Inc?

No, you do not have to pay any royalties to Elphel if you decide to clone Elphel camera or manufacture an improved derivative product. But in that case you will still be bound by the GNU GPL license for all parts of the firmware and/or hardware code that you plan to reuse and subject to all license compatibility issues described above.

What do I need to be able to resell your products (or our based on yours) in compliance with the license?

First of all you have to read the full text of the GNU GPL and take it seriously. Covered materials are not in the public domain and are protected by the copyright law of most countries. GPL itself describes what is required for compliance, you may also find this vendor FAQ and this source code FAQ useful. Below are specifics for Elphel products.

Even modified software in the cameras will have to run with GNU/Linux as it is the only software provided for the Axis CPU by the manufacturer. Of course, it is theoretically possible to port some non-free operating system to run in the camera or even write your own, but it is too time consuming to be practical. It would be much easier to modify the hardware to use some other CPU for which it is possible to purchase non-free operating system.

And as your device will run GNU/Linux you will need to provide the source code of at least that part of the software on the terms described in the license. Same applies to all of the software that you preserved in the cameras "as is" or modified from the Elphel firmware or any third party software that you obtained with the GNU GPL license.

You will also have to provide the source code of the FPGA - original developed by Elphel or possibly your amended version if you used any part of the original one. Forgive us for being suspicious if you claim that you completely rewrote the code and haven't used a single line of the one you received with the camera from Elphel - FPGA code of our products make a significant part of the value of the cameras and while it is easier to replace it than the GNU/Linux part of the firmware - we believe it is still far from an easy task.

We are proud of our designs and care that all users of our hardware receive the freedoms guaranteed by the GNU GPL and would like to help you to ensure license compliance and help to fix the problems if they would come out.

All of the Elphel products come with /* source inside */ (tm) logo and have the source code of all the firmware and the FPGA code sufficient to rebuild all the code and run it in the cameras. The only exception - sources of the Linux kernel and original Axis software (freely available on the Internet) that are too big to fit in the camera flash memory. We may help you to modify the script that will include your additions/modifications so you could provide the source code in the way we do ourselves.

How do you make money with the open designs?

You really want to know our secrets?

OK. First of all our products fill the virtual void on the market of the open hardware. Demand is still much higher than offer and people are willing to pay money for the systems they will be able to modify to their needs - it saves them a lot of resources when they can not find an exact fit on the market and the only other option would be a complete custom design. In recent years when the advance of GNU/Linux and free software became obvious for many, most companies are already using or planning to use it, they expect (and are actively looking for) similar solutions for the hardware.

Significant activity of the hobbyists who modify and improve the off-the-shelf devices, such as OpenWrt project indicates that many developers are eager to work in this area in spite of the difficulties of the usually not-so-good support from the hardware manufacturers.

Next - this business model helps startups as it helped Elphel when it was a one-man company. Open designs make it less risky for the customers to use the products and services for big projects, because even if the company goes under it will not take the project to it's grave. It may somewhat slow down new development but you always may continue it on your own or hire specialists who can take over the project.

Are we afraid of somebody cloning our products? Not really. There might be two types of cloning - illegal one if the clone will be distributed in violation of the GNU GPL and the fair one if the clone will be built and distributed in compliance with the license.

In the first case it will soon come out - now it is virtually impossible to keep your product (and the fact that it is a clone) secret from the Internet community. And even if that would be possible - the product will lack significant part of the features that originals have - features that depend on flexibility ensured by the openness.

Fair cloning or manufacturing of modified versions would not hurt us either. Software and FPGA code developed for compatible products would increase the value of our products too. And there will be code even if the cloning company would not develop code - better availability of the products would drive up number of independent developers. And sure we are constantly working on the new designs and periodically release the new better products.