Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Automatic update of common submodule
From 3cb3d3c to 5edcd85
- Loading branch information
Showing
4 changed files
with
205 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,12 @@ | ||
GStreamer is currently maintained by the consensus of a number | ||
of people, including, but not limited to: | ||
|
||
David Schleef <ds@schleef.org> | ||
Jan Schmidt <thaytan@noraisin.net> | ||
Wim Taymans <wim.taymans@gmail.com> | ||
David Schleef <ds@schleef.org> | ||
Tim-Philipp Müller <tim centricular net> | ||
Sebastian Dröge <slomo circular-chaos org> | ||
|
||
Maintainer-related issues should be addressed to: | ||
|
||
gstreamer-devel@lists.sourceforge.net | ||
|
||
|
||
gstreamer-devel@lists.freedesktop.org |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
================================= | ||
GStreamer Static Linking README | ||
================================= | ||
|
||
DRAFT, April 2013 | ||
|
||
|
||
I. INTRODUCTION | ||
|
||
It is possible to link GStreamer libraries, plugins and applications | ||
statically, both in case of free/libre/open-source software applications | ||
and proprietary applications. On some platforms static linking may even | ||
be required. | ||
|
||
However, distributing statically linked binaries using GStreamer usually | ||
requires additional effort to stay compliant with the GNU LGPL v2.1 license. | ||
|
||
The purpose of this document is to draw attention to this fact, and to | ||
summarise in layman's terms what we believe is required from anyone | ||
distributing statically linked GStreamer binaries. Most of this also | ||
applies to dynamically linked GStreamer binaries. | ||
|
||
|
||
II. DISCLAIMER | ||
|
||
This document is not legal advice, nor is it comprehensive. It may use | ||
words in ways that do not match the definition or use in the license | ||
text. It may even be outright wrong. Read the license text for all the | ||
details, it is the only legally binding document in this respect. | ||
|
||
This document is primarily concerned with the implications for the | ||
distribution of binaries based on LGPL-licensed software as imposed by | ||
the LGPL license, but there may be other restrictions to the distribution | ||
of such binaries, such as terms and conditions of distribution channels | ||
(e.g. "app stores"). | ||
|
||
|
||
III. THE SPIRIT OF THE LGPL LICENSE | ||
|
||
The GNU LGPL v2.1 license allows use of such-licensed software by | ||
proprietary applications, but still aims to ensure that at least the | ||
LGPL-licensed software parts remain free under all circumstances. This | ||
means any changes to LGPL-licensed source code must be documented and | ||
be made available on request to those who received binaries of the | ||
software. It also means that it must be possible to make changes to the | ||
LGPL-licensed software parts and make the application use those, as far | ||
as that is possible. And that recipients of an application using | ||
LGPL-licensed software are made aware of their rights according to the | ||
LGPL license. | ||
|
||
In an environment where GStreamer libraries and plugins are used as | ||
dynamically-loaded shared objects (DLL/.so/.dyn files), this is usually | ||
not a big problem, because it is fairly easy to compile a modified version | ||
of the GStreamer libraries or LGPL plugins, and the application will/should | ||
just pick up and use the modified version automatically. All that is needed | ||
is for the original, LGPL-licensed source code and source code modifications | ||
to be made available, and for a way to build the libraries or plugins for | ||
the platform required (usually that will be using the build system scripts | ||
that come with GStreamer, and using the typical build environment on the | ||
system in question, but where that is not the case the needed build scripts | ||
and/or tools would need to be provided as well). | ||
|
||
|
||
IV. THINGS YOU NEED TO DO | ||
|
||
* You must tell users of your application that you are using LGPL-licensed | ||
software, which LGPL-licensed software exactly, and you must provide them | ||
with a copy of the license so they know their rights under the LGPL. | ||
|
||
* You must provide (on request) all the source code and all the changes | ||
or additions you have made to the LGPL-licensed software you are using. | ||
|
||
For GStreamer code we would recommend that the changes be provided either | ||
in form of a branch in a git repository, or as a set of "git format-patch"- | ||
style patches against a GStreamer release or a snapshot of a GStreamer git | ||
repository. The patches should ideally say what was changed and why it | ||
was changed, and there should ideally be separate patches for independent | ||
changes. | ||
|
||
* You must provide a way for users of your application to make changes to | ||
the LGPL-licensed parts of the code, and re-create a full application | ||
binary with the changes (using the standard toolchain and tools of the | ||
target platform; if you are using a custom toolchain or custom tools | ||
you must provide these and document how to use them to create a new | ||
application binary). | ||
|
||
Note that this of course does not mean that the user is allowed to | ||
re-distribute the changed application. Nor does it mean that you have | ||
to provide your proprietary source code - it is sufficient to provide a | ||
ready-made compiled object file that can be relinked into an application | ||
binary with the re-compiled LGPL components. | ||
|
||
|
||
V. THINGS TO LOOK OUT FOR | ||
|
||
While most GStreamer plugins and the libraries they depend on are licensed | ||
under the LGPL or even more permissive licenses, that is not the case for | ||
all plugins and libraries used, esp. those in the gst-plugins-ugly or | ||
some of those in the gst-plugins-bad set of plugins. | ||
|
||
When statically linking proprietary code, care must be taken not to | ||
statically link plugins or libraries that are licensed under less permissive | ||
terms than the LGPL, such as e.g. GPL-licensed libraries. | ||
|
||
|
||
VI. SPECIAL CONSIDERATIONS FOR SPECIFIC USE-CASES | ||
|
||
|
||
1. Proprietary GStreamer/GLib-based Application On iOS | ||
|
||
Let's assume an individual or a company wants to distribute a proprietary | ||
iOS application that is built on top of GStreamer and GLib through | ||
Apple's App Store. At the time of writing the Apple iPhone developer | ||
agreement didn’t allow the bundling of shared libraries, so distributing | ||
a proprietary iOS application with shared libraries is only possible using | ||
distribution mechanisms outside of the App Store and/or only to jailbroken | ||
devices, a prospect that may not appeal to our individual or company. So the | ||
only alternative then is to link everything statically, which means the | ||
obligations mentioned above come into play. | ||
|
||
|
||
2. Example: Jabber on iOS | ||
|
||
Tandberg (now Cisco) created a Jabber application for iOS, based on GStreamer. | ||
On request they provided an LGPL compliance bundle in form of a zip file, with | ||
roughly the following contents: | ||
|
||
buildapp.sh | ||
readme.txt | ||
Jabber/Jabber-Info.plist | ||
Jabber/libip.a [236MB binary with proprietary code] | ||
Jabber/main.mm | ||
Jabber/xcconfig/Application.xcconfig | ||
Jabber/xcconfig/Debug.xcconfig | ||
Jabber/xcconfig/Release.xcconfig | ||
Jabber/xcconfig/Shared.xcconfig | ||
Jabber/Resources/*.lproj/Localizable.strings | ||
Jabber/Resources/{Images,Audio,Sounds,IB,Message Styles,Emoticons,Fonts}/* | ||
Jabber/Resources/* | ||
Jabber.xcodeproj/project.pbxproj | ||
Jabber.xcodeproj/project.xcworkspace/contents.xcworkspacedata | ||
opensource/build/config.site | ||
opensource/build/m4/movi.m4 | ||
opensource/build/scripts/clean-deps.sh | ||
opensource/build/scripts/fixup-makefile.sh | ||
opensource/build/scripts/MoviMaker.py | ||
opensource/build.sh | ||
opensource/env.sh | ||
opensource/Makefile | ||
opensource/external/glib/* | ||
opensource/external/gstreamer/{gstreamer,gst-plugins-*}/* | ||
opensource/external/openssl/* | ||
opensource/external/proxy-libintl/* | ||
opensource/toolchain/darwin-x86/bin/{misc autotoools,m4,glib-mkenums,glib-genmarshal,libtool,pkg-config,etc.} | ||
opensource/toolchain/darwin-x86/share/{aclocal,aclocal-1.11,autoconf,automake-1.11,libtool}/* | ||
opensource/toolchain/darwin-x86/share/Config.pm | ||
opensource/toolchain/darwin-x86/share/Config.pm.movi.in | ||
patches/glib/glib.patch | ||
patches/gst-plugins-bad/gst-plugins-bad.patch | ||
patches/gst-plugins-base/gst-plugins-base.patch | ||
patches/gst-plugins-good/gst-plugins-good.patch | ||
patches/gstreamer/gstreamer.patch | ||
patches/openssl/openssl.patch | ||
|
||
readme.txt starts with "This Readme file describes how to build the Cisco | ||
Jabber for iPad application. You need to install Xcode, but the final package | ||
is built by running buildapp.sh." and describes how to build project, | ||
prerequisites, the procedure in detail, and a "How to Include Provisioning | ||
Profile Manually / Alternate Code Signing Instructions" section. | ||
|
||
|
||
3. Random Links Which May Be Of Interest | ||
|
||
[0] http://multinc.com/2009/08/24/compatibility-between-the-iphone-app-store-and-the-lgpl/ |
Submodule common
updated
from 3cb3d3 to 5edcd8