Re: [OT] Fun with walking package licenses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Temlakos wrote:

>> Ok, I have to admit, I have not been playing close attention to this
>> discussion, but what I have seen has raised a question for me.  I
>> would like a clarification.  Do I, as an end user have the right to
>> install non-GPL software (e.g. RealPlayer) on my Linux box if it links

The question got me interested in what Real Player does hook up to, so I
wrote a small recursive script to spider dependent library licenses, and
their dependencies.  It is only as accurate as the license given in the
RPM though...

$ lider /usr/local/RealPlayer/realplay.bin
RealPlayer-10.0.5.756 RPSL, EULA
Dependent Licenses
------------------
BSD
BSD/GPL dual license
GPL
LGPL
MIT
MIT/X11, and others

Dependent Packages
------------------
atk-1.9.1 LGPL
compat-libstdc++-33-3.2.3 GPL
expat-1.95.8 BSD
fontconfig-2.2.3 MIT
freetype-2.1.9 BSD/GPL dual license
glib2-2.6.6 LGPL
glibc-2.3.5 LGPL
gtk2-2.6.10 LGPL
libgcc-4.0.2 GPL
pango-1.8.1 LGPL
xorg-x11-libs-6.8.2 MIT/X11, and others
zlib-1.2.2.2 BSD

Dependent libs
--------------
/lib/libc.so.6 glibc-2.3.5 LGPL
/lib/libdl.so.2 glibc-2.3.5 LGPL
/lib/libgcc_s.so.1 libgcc-4.0.2 GPL
/lib/libm.so.6 glibc-2.3.5 LGPL
/lib/libpthread.so.0 glibc-2.3.5 LGPL
/usr/lib/libatk-1.0.so.0 atk-1.9.1 LGPL
/usr/lib/libexpat.so.0 expat-1.95.8 BSD
/usr/lib/libfontconfig.so.1 fontconfig-2.2.3 MIT
/usr/lib/libfreetype.so.6 freetype-2.1.9 BSD/GPL dual license
/usr/lib/libgdk_pixbuf-2.0.so.0 gtk2-2.6.10 LGPL
/usr/lib/libgdk-x11-2.0.so.0 gtk2-2.6.10 LGPL
/usr/lib/libglib-2.0.so.0 glib2-2.6.6 LGPL
/usr/lib/libgmodule-2.0.so.0 glib2-2.6.6 LGPL
/usr/lib/libgobject-2.0.so.0 glib2-2.6.6 LGPL
/usr/lib/libgtk-x11-2.0.so.0 gtk2-2.6.10 LGPL
/usr/lib/libpango-1.0.so.0 pango-1.8.1 LGPL
/usr/lib/libpangoft2-1.0.so.0 pango-1.8.1 LGPL
/usr/lib/libpangox-1.0.so.0 pango-1.8.1 LGPL
/usr/lib/libpangoxft-1.0.so.0 pango-1.8.1 LGPL
/usr/lib/libstdc++.so.5 compat-libstdc++-33-3.2.3 GPL
/usr/lib/libz.so.1 zlib-1.2.2.2 BSD
/usr/X11R6/lib/libX11.so.6 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXcursor.so.1 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXext.so.6 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXfixes.so.3 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXft.so.2 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXinerama.so.1 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXi.so.6 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXrandr.so.2 xorg-x11-libs-6.8.2 MIT/X11, and others
/usr/X11R6/lib/libXrender.so.1 xorg-x11-libs-6.8.2 MIT/X11, and others



I believe that despite what the packages say, the actual libraries used
in libgcc and compat-libstdc++ are LGPL, so this does not show a problem
AFAIK.

> I had always thought that you /are/ permitted to install non-GPL
> software on your own box, even if it links to GPL software. Indeed, the
...
> But you may not /distribute/ a GPL/non-GPL package.

Yes, you can do what you like with GPL stuff, link proprietary code to
real GPL libraries, add proprietary code to GPL code, whatever: so long
as you will not 'distribute' the result.  The GPL only seeks to control
the terms of distribution, otherwise do what you want.  For example you
could "extend and embrace" GPL code to form a website AIUI and keep that
proprietary.

AIUI the general rules for distribution and proprietaryness are:

 - your proprietary app + proprietary libs : pay to license the libs and
binary-only is fine

 - your proprietary app + BSD or similar, or PD : binary-only is fine,
you need to include some copyright notices in the binary with BSD

 - your proprietary app + LGPL'd libs : binary-only is fine, but if you
ship the libs you need to provide sources for them, including any mods
to them

 - your proprietary app + GPL'd libs : *GPL ERROR*, you must GPL your
app or find an alternate LGPL or BSD or PD or Proprietary alternative
library to link to

Things get complicated with mixing GPL code and other licenses as
somebody else said, because the GPL insists there can be no extra
conditions applied to it.  It's out of my experience how that pans out
with compiling GPL code with, say, Openssl libs

http://www.openssl.org/source/license.html

> This is why Fedora /never/ distributes with MP3 libraries or

Well the logic for the MP3 ban is to do with patents as somebody else
pointed out, it's not directly connected to the GPL.

-Andy
#!/bin/bash

#
# Lider License Spider
#
# Andy Green <andy@xxxxxxxxxxx>
# License: Public Domain
#

if [ -z "$1" -o "$1" = "--help" ] ; then
 echo "Usage: $0 <path to executable file>"
 exit 1
fi

depth=$2

if [ -z "$depth" ] ; then
 depth=1
 rm -f /tmp/lider-list
 touch /tmp/lider-list

 pkg=`rpm -q --whatprovides $1`
 if [ ! -z "$pkg" ] ; then
  rpm -q --queryformat "%{NAME}-%{VERSION} %{LICENSE}" $pkg
 else
  echo "($1 is unpackaged)"
 fi
 echo
fi

#echo Depth $depth

LIST1=`ldd $1 | tr -s ' ' | cut -d' ' -f 3 | grep ^/`
for i in $LIST1 ; do 
 package=`rpm -q --whatprovides $i`
 if [ -z "`grep $i /tmp/lider-list`" ] ; then
 echo -n "$i " >>/tmp/lider-list
 rpm -q --queryformat "%{NAME}-%{VERSION} %{LICENSE} \n" $package | head -n1 >>/tmp/lider-list
  $0 $i $(( $depth + 1 ))
 fi
done

if [ "$depth" -eq 1 ] ; then
	echo "Dependent Licenses"
	echo "------------------"
	cat /tmp/lider-list | sort | uniq | cut -d' ' -f3- | sort | uniq
	echo
        echo "Dependent Packages"
	echo "------------------"
        cat /tmp/lider-list | sort | uniq | cut -d' ' -f2- | sort | uniq
	echo
        echo "Dependent libs"
	echo "--------------"
        cat /tmp/lider-list | sort | uniq

	rm -f /tmp/lider-list
fi

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux