Difference between revisions of "Intellectual property"

From RidgeRun Developer Connection
Jump to: navigation, search
m
m (Software ownership)
Line 56: Line 56:
 
== Software ownership ==
 
== Software ownership ==
  
RidgeRun honor proprietary software, realizes it is owned by the customer, and never reuses any of the proprietary software created for that customer.
+
RidgeRun honors proprietary software, realizes it is owned by the customer, and never reuses any of the proprietary software created for that customer.
  
 
RidgeRun doesn't pay much attention to who owns Open Source licensed software, and instead focuses on following the terms of the license.  In any case RidgeRun has the right to reuse software modifications and extensions to Open Source licensed software in any way RidgeRun chooses as long as the software license is respected.
 
RidgeRun doesn't pay much attention to who owns Open Source licensed software, and instead focuses on following the terms of the license.  In any case RidgeRun has the right to reuse software modifications and extensions to Open Source licensed software in any way RidgeRun chooses as long as the software license is respected.

Revision as of 18:25, 1 September 2020

Background

This is a human understandable description of RidgeRun's philosophy toward ownership of software intellectual property created by RidgeRun. This is not a legal description and cannot be used for legal purposes. See the RidgeRun Software License for the legalize.

Types of software

RidgeRun typically creates and modifies three different types of software, which are often licensed differently:

Application level software

A customer specified software executable that dynamically links to various libraries and utilizes the services of the underlying operating system is considered application level software. For most customers, the application level software is what implements many of the feature that made the product unique. For this reason, the software is developed in a manner to allow it to have a proprietary license and is typically owned by the customer.

In general, application level software is considered work-for-hire. The exception is if you purchase a license to a RidgeRun developed application, such as the ONVIF server, then RidgeRun owns the software and makes it available with a proprietary license.

Software libraries

Bundled software that exposes an API, often utilizes the services of the underlying operating system, and can not be run by itself is considered a software library. Software libraries are typically bundled to support dynamic linking.

Most software libraries used by RidgeRun and extended by RidgeRun are Open Source licensed. Examples include GStreamer. RidgeRun retains the right to reuse modifications and extensions made to Open Source software, even if the customer funded the development of those modifications and extensions.

Linux kernel driver software

Kernel drivers can be statically or dynamically linked to the core Linux kernel. Due to improper implementation, some kernel drivers only work when linked statically. RidgeRun often finds this to be the case when using System-on-Chip (SoC) manufacturer provided drivers, such as the drivers for hardware accelerated video encoding.

From a practical point of view, the Linux kernel philosophy on kernel driver licensing forces RidgeRun to use the same license as the Linux kernel itself; namely, GNU GENERAL PUBLIC LICENSE Version 2, June 1991; typically written as GPLv2. All RidgeRun provided kernel drivers are licensed GPLv2.

Software run on hardware other than general purpose CPUs

For this discussion of intellectual property, the software runs on general purpose CPUs, most often an ARM CPU. Software that runs on other hardware accelerators, such as GPUs / DSPs / FPGAs / inference engines, is excluded from this philosophical discussion.

Put simply, a different kind of specialized expertise is required for  GPU / DSP / FPGA / inference engine software development.

Patents

RidgeRun makes no claim that software provided by RidgeRun or modified or written by RidgeRun is unencumbered by one or more patents. It is up to RidgeRun's customer to verify their products do not infringe on any patents or to properly license the use of patented technologies.

Trademarks

Most software packages, such as Linux, are trademarked. RidgeRun has a trademark on its company name (of course). This page of information should have lots of trademark symbols sprinkled around, but that makes it harder to read. Just know if you think the word or phrase is trademarked, then it probably is.

Copyrights

Unless explicitly put in the public domain, all software source code has a copyright holder. Often it is not clear who holds the copyright. Typically the copyright holder for RideRun developed work-for-hire application level software is the customer who paid for the software to be developed.

The copyright holder for any Open Source licensed software that is modified or created by RidgeRun, regardless who is paying the bill, is RidgeRun. We don't feel strongly on this point, but it is our default behaviour. If you feel strongly on this point, let us know and together we can check and modify all the headers in the source code files. Irregardless of who holds the copyright of Open Source software that is created or modified by RidgeRun, RidgeRun retains the right to reuse the software in any way RidgeRun chooses as long as the software license is respected.

Proprietary software

RidgeRun develops software for embedded devices (and occasionally mobile applications to control those embedded devices). That means to keep a competitive advantage, customers require the application level software be proprietary. RidgeRun fully supports this goal. In addition, we are careful to not share ideas between different RidgeRun customers. However, RidgeRun is free to assign an engineer to support a new customer independent of customers the engineer has supported in the past.

Licenses

RidgeRun respects all licenses and does out best to be an honorable member of the Open Source ecosystem.

RidgeRun avoids GPLv3. GPLv3 creates a large burden for product developers to also maintain a development environment they can somehow deliver to their customers in a way the customers can then rebuild the code. When we read GPLv3, we don't understand it; that in itself is a reason for avoidance.

Software ownership

RidgeRun honors proprietary software, realizes it is owned by the customer, and never reuses any of the proprietary software created for that customer.

RidgeRun doesn't pay much attention to who owns Open Source licensed software, and instead focuses on following the terms of the license. In any case RidgeRun has the right to reuse software modifications and extensions to Open Source licensed software in any way RidgeRun chooses as long as the software license is respected.

Open Source software

As stated several times above, RidgeRun philosophy is to retain the right to reuse software modifications and extensions to Open Source licensed software in any way RidgeRun chooses as long as the software license is respected. Why is this?

  1. RidgeRun keeps prices low by continually growing the capabilities of Open Source packages. For example, you get 95% of GStreamer Daemon for free, but pay 5% to get the new features you need added to GStreamer Daemon. Then the next customer comes along and gets features you paid for, while perhaps the next customer also funding the development of automated endurance tests. You now get the bug fixes and enhancements developed as part of the endurance testing. Everyone gives a little and gets a lot.
  2. Using the example above, if RidgeRun attempted to keep your new feature out of core GStreamer Daemon, then soon your new feature would no longer build with the latest code base. You would be lost on a fork of GStreamer Daemon no one wants to touch. Fixed to core code have to be back ported to your unique code base. Your maintenance costs go through the room.
  3. Future enhancements to GStreamer Daemon become more complicated. Again, using the example above, if another customer also needs the feature you paid for, then we have to reimplement the code, you may become mad, and in general it complicates all the relationships. Put simply don't want to limit which direction Open Source software can go.
  4. Tracking contaminated engineers is too much trouble. Again, using the example above, and another customer asks us to add the feature as well, RidgeRun has to find an engineer that had nothing to do with your project, then be careful to not talk to anyone that did have something to do with your project, just to implement what now appears to be a common feature needed by many.

RidgeRun will not participate in the stupid approach of trying to keep extensions to Open Source software as somehow being proprietary.