gstreamer/sdk-legal-information.md

224 lines
11 KiB
Markdown
Raw Normal View History

---
short-description: Patents, Licenses and legal F.A.Q.
...
# Legal information
2016-05-16 14:30:34 +00:00
## Installer, default installation
2016-05-16 14:30:34 +00:00
The installer (Microsoft Windows and MacOSX) and the default
2016-06-16 01:41:27 +00:00
installation (GNU/Linux) contain and install the minimal default
installation. At install time or later, the downloading of optional
components is also possible, but read on for certain legal cautions you
might want to take. All downloads are from the
[gstreamer.freedesktop.org](http://gstreamer.freedesktop.org) website.
2016-05-16 14:30:34 +00:00
## Licensing of GStreamer
2016-05-16 14:30:34 +00:00
2016-06-17 22:21:42 +00:00
GStreamer minimal default installation only contains packages which
2016-06-16 01:41:27 +00:00
are licensed under the [GNU LGPL license
2016-05-16 14:30:34 +00:00
v2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). This
2016-06-16 01:41:27 +00:00
license gives you the Freedom to use, modify, make copies of the
software either in the original or in a modified form, provided that the
software you redistribute is licensed under the same licensing terms.
This only extends to the software itself and modified versions of it,
but you are free to link the LGPL software as a library used by other
software under whichever license. In other words, it is a weak copyleft
2016-05-16 14:30:34 +00:00
license.
2016-06-17 22:21:42 +00:00
Therefore, it is possible to use GStreamer to build applications that are
2016-06-16 01:41:27 +00:00
then distributed under a different license, including a proprietary one,
provided that reverse engineering is not prohibited for debugging
2016-06-17 22:21:42 +00:00
modifications purposes. Only the pieces of GStreamer that are under the
2016-06-16 01:41:27 +00:00
LGPL need to be kept under the LGPL, and the corresponding source code
must be distributed along with the application (or an irrevocable offer
to do so for at least three years from distribution). Please consult
2016-05-16 14:30:34 +00:00
section 6 of the
[LGPL](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) for
2016-06-16 01:41:27 +00:00
further details as to what the corresponding source code must contain.
2016-05-16 14:30:34 +00:00
Some portions of the minimal default installation may be under
2016-06-16 01:41:27 +00:00
different licenses, which are both more liberal than the LGPL (they are
less strict conditions for granting the license) and compatible with the
LGPL. This is advised locally.
2016-05-16 14:30:34 +00:00
## Optional packages
2016-05-16 14:30:34 +00:00
There are two types of optional packages (GPL and Patented), which are
2016-06-16 01:41:27 +00:00
under a different license or have other issues concerning patentability
2016-05-16 14:30:34 +00:00
(or both).
#### GPL code
2016-05-16 14:30:34 +00:00
Part of the optional packages are under the GNU GPL
[v2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or
2016-06-16 01:41:27 +00:00
[v3](http://www.gnu.org/licenses/gpl-3.0.html). This means that you
2016-05-16 14:30:34 +00:00
cannot link the GPL software in a program unless the same program is
2016-06-16 01:41:27 +00:00
also under the GPL, but you are invited to seek competent advice on how
this works in your precise case and design choices. GPL is called
“strong copyleft” because the condition to distributed under the same
license has the largest possible scope and extends to all derivative
2016-05-16 14:30:34 +00:00
works.
#### Patents
2016-05-16 14:30:34 +00:00
Certain software, and in particular software that implements
2016-06-16 01:41:27 +00:00
multimedia standard formats such as MP3, MPEG 2 video and audio, h.264,
MPEG 4 audio and video, AC3, etc, can have patent issues. In certain
countries patents are granted on software and even software-only
solution are by and large considered patentable and are patented (such
as in the United States). In certain others, patents on pure software
solutions are formally prohibited, but granted (this is the case in many
European countries), and in others again are neither allowed nor granted.
2016-05-16 14:30:34 +00:00
2016-06-17 22:21:42 +00:00
It is up to you to make sure that in the countries where GStreamer is
2016-06-16 01:41:27 +00:00
used, products are made using it and product are distributed, a license
2016-06-17 22:21:42 +00:00
from the applicable patent holders is required or not. Receiving GStreamer
2016-06-16 01:41:27 +00:00
or links to other downloadable software does not provide any license
expressed or implied over these patents, except in very limited
conditions where the license so provides. No representation is made.
2016-05-16 14:30:34 +00:00
In certain cases, the optional packages are distributed only as source
2016-06-16 01:41:27 +00:00
code. It is up to the receiver to make sure that in the applicable
circumstances compiling the same code for a given platform or
distributing the object code is not an act that infringes one or more
2016-05-16 14:30:34 +00:00
patents.
## Software is as-is
2016-05-16 14:30:34 +00:00
2016-06-17 22:21:42 +00:00
All software and the entire GStreamer binaries areprovided as-is, without any
2016-06-16 01:41:27 +00:00
warranty whatsoever. The individual licenses have particular language
disclaiming liability: we invite you to read all of them. Should you
need a warranty on the fact that software works as intended or have any
kind of indemnification, you have the option to subscribe a software
maintenance agreement with a company or entity that is in that business.
Fluendo and Collabora, as well as some other companies, provide software
maintenance agreements under certain conditions, you are invited to
contact them in order to receive further details and discuss of the
2016-05-16 14:30:34 +00:00
commercial terms.
## Data protection
2016-05-16 14:30:34 +00:00
This website might use cookies and HTTP logs for statistical analysis
2016-06-16 01:41:27 +00:00
and on an aggregate basis only.
2016-05-16 14:30:34 +00:00
## Frequently Asked Questions
2016-05-16 14:30:34 +00:00
2016-10-09 14:49:29 +00:00
#### What licenses are there?
2016-05-16 14:30:34 +00:00
2016-06-17 22:21:42 +00:00
GStreamer binaries containst software under various licenses. See above.
2016-05-16 14:30:34 +00:00
2016-10-09 14:49:29 +00:00
#### How does this relate to the packaging system?
2016-05-16 14:30:34 +00:00
The packaging is only a more convenient way to install software and
decide what's good for you. GStreamer is meant to be modular, making use
of different modules, or plugins, that perform different activities.
We provide some of them by default. Others are provided as an additional
download, should you elect to do so. You could do the same by finding
and downloading the same packages for your own platform. So it is
entirely up to you to decide what to do.
2016-06-17 22:21:42 +00:00
Also, we note that GStreamer elements are divided into different packages,
2016-05-16 14:30:34 +00:00
roughly following the licensing conditions attached to the same. For
instance, the codecs-gpl package contains GPL licensed codecs. All the
packages installed by default, conversely, are licensed under the LGPL
or a more liberal license. This division is provided only for ease of
reference, but we cannot guarantee that our selection is 100% correct,
so it is up to the user to verify the actual licensing conditions before
2016-06-17 22:21:42 +00:00
distributing works that utilize GStreamer.
2016-05-16 14:30:34 +00:00
2016-10-09 14:49:29 +00:00
#### Can I / must I distribute GStreamer along with my application?
2016-05-16 14:30:34 +00:00
You surely can. All software is Free/Open Source software, and can be
2016-06-16 01:41:27 +00:00
distributed freely. You are not **required** to distribute it. Only,
be reminded that one of the conditions for you to use software under
2016-05-16 14:30:34 +00:00
certain licenses to make a work containing such software, is that you
2016-06-16 01:41:27 +00:00
also distribute the complete source code of the original code (or of
the modified code, if you have modified it). There are alternative
ways to comply with this obligation, some of them do not require any
2016-06-17 22:21:42 +00:00
actual distribution of source code, but since GStreamer contains the
2016-06-16 01:41:27 +00:00
entire source code, you might want to include it (or the directories
containing the source code) with your application as a safe way to
comply with this requirement of the license.
2016-05-16 14:30:34 +00:00
2016-10-09 14:49:29 +00:00
#### What happens when I modify the GStreamer's source code?
2016-05-16 14:30:34 +00:00
You are invited to do so, as the licenses (unless you are dealing with
proprietary bits, but in that case you will not find the corresponding
2016-06-16 01:41:27 +00:00
source code) so permit. Be reminded though that in that case you need
to also provide the complete corresponding source code (and to
preserve the same license, of course). You might also consider to push
your modifications upstream, so that they are merged into the main
branch of development if they are worth it and will be maintained by
the GStreamer project and not by you individually. We invite you not
to fork the code, if at all possible. he Cerbero build system has a
"bundle-source" command that can help you create a source bundle
containing all of the complete corresponding machine readable source
code that you are required to provide.
2016-05-16 14:30:34 +00:00
2016-10-09 14:49:29 +00:00
#### How does licensing relate to software patents? What about software patents in general?
2016-05-16 14:30:34 +00:00
This is a tricky question. We believe software patents should not exist,
so that by distributing and using software on a general purpose machine
you would not violate any of them. But the inconvenient truth is that
they do exist.
Software patents are widely available in the USA. Despite they are
formally prohibited in the European Union, they indeed are granted by
the thousand by the European Patent Office, and also some national
patent offices follow the same path. In other countries they are not
available.
Since patent protection is a national state-granted monopoly,
distributing software that violates patents in a given country could be
entirely safe if done in another country. Fair use exceptions also
exist. So we cannot advice you whether the software we provide would be
considered violating patents in your country or in any other country,
but that can be said for virtually all kinds of sofware. Only, since we
deal with audio-video standards, and these standards are by and large
designed to use certain patented technologies, it is common wisdom that
the pieces of software that implement these standards are sensitive in
this respect.
This is why GStreamer has taken a modular approach, so that you can use
a Free plugins or a proprietary, patent royalty bearing, plugin for a
given standard.
2016-10-09 14:49:29 +00:00
#### What about static vs. dynamic linking and copyleft?
2016-05-16 14:30:34 +00:00
We cannot provide one single answer to that question. Since copyright in
software works as copyright in literature, static linking means
basically that the programmer includes bits of code of the original
library in the bytecode at compile time. This amounts to make derivative
code of the library without conceivable exceptions, so you need a
permission from the copyright holders of the library to do this.
A widespread line of thinking says that dynamic linking is conversely
not relevant to the copyleft effect, since the mingling of code in a
larger work is done at runtime. However, another equally authoritative
line of thought says that only certain type of dynamic linking is not
2016-06-16 01:41:27 +00:00
copyright relevant. Therefore, using a library that is specifically
2016-05-16 14:30:34 +00:00
designed to be loaded into a particular kind of software, even through
2016-06-16 01:41:27 +00:00
API, requires permission by the copyright holder of the library when
2016-05-16 14:30:34 +00:00
the two pieces are distributed together.
2016-06-17 22:21:42 +00:00
In all cases, since most of the software we include in GStreamer is under
2016-05-16 14:30:34 +00:00
the LGPL, this permission is granted once for all, subject to compliance
with the conditions set out by it. Therefore, the problem only arises
when you want to use GPL libraries to make non-GPL applications, and you
need to audit your software in that case to make sure that what you do
is not an infringement. This is why we have put the GPL libraries in a
separate set of optional components, so you have a clearer view of what
is safely clear for use, and what might need better investigation on a
case-by-case basis.
Please be reminded that even for LGPL, the recipient of the software
must be in a position to replace the current library with a modified
one, and to that effect some conditions apply, among which that for
static linking you must also provide the complete toolchain required to
relink the library (“any data and utility programs needed for
reproducing the executable from it”, except the “major components”) and
that the license of the conditions of the resulting program must allow
decompilation to debug modifications to the library.