Nokia SDK incomplete source code

Roberto Gordo Saez roberto.gordo at gmail.com
Wed Aug 13 20:44:51 CEST 2008


I would want to get your opinion in a particular case regarding
the software for Nokia N810 (and other models) Internet Tables.

In general, Nokia has done a remarkable task to comply with
free licenses. I've been closely tracking their changes and it
looks that they have reviewed most code in the base libraries,
they got rid of any incompatible, suspicious or unclear code in
many of them. They also ensured to remove all GPL code from
libraries in order to be able to place their proprietary
software on top.

As usual, there are also borderline cases that may be GPL
incompatibilities or not depending on the person that you ask
(proprietary kernel modules, binary firmware and so on...) but
I'm not focused on that. Instead, I would want to comment about
another case. This is my analisys of the situation. I will quote
fragments from the LGPL v2 along my comments:

The library libesd.so is under the LGPL v2. It is inside the
osso-esd package, which is based on the Enlightened Sound Daemon
(EsoundD). Nokia modified and added code to the library, so it
is a "work based on the Library".

    [...] A "work based on the Library" means either the Library
    or any derivative work under copyright law: that is to say,
    a work containing the Library or a portion of it, either
    verbatim or with modifications and/or translated
    straightforwardly into another language. [...]

The library has been modified in a way that requires some
proprietary header files in order to compile. Those proprietary
files are NOT "normally distributed with the major components of
the operating system". In fact, they are not made available [1].

The LGPL allows, under certain conditions [2], to link
proprietary executables to LGPL libraries. It is called a "work
that uses the Library". Note the difference between that and a
"work based on the Library". In this case, the library is
combined with proprietary headers and a binary libesd.so is
distributed to the users, which can't be compiled by anyone else
with the provided sources.

    [...] 4. You may copy and distribute the Library (or a
    portion or derivative of it, under Section 2) in object code
    or executable form under the terms of Sections 1 and 2 above
    provided that you accompany it with the complete
    corresponding machine-readable source code, which must be
    distributed under the terms of Sections 1 and 2 above on a
    medium customarily used for software interchange. [...]

I think that Sections 1 and 2 are satisfied, but in my opinion
the "complete corresponding machine-readable source code"
requirement is not. Complete source code is defined in the
LGPL v2 as:

    [...] For a library, complete source code means all the
    source code for all modules it contains, plus any associated
    interface definition files, plus the scripts used to control
    compilation and installation of the library. [...]

Also note that the LGPL license allows non-free programs to use
free libraries, but the library internally has similar
requirements than the GNU GPL; intended to preserve the freedom
to modify, to make changes, and to be able to compile and to
relink the program with the modified library [3].

It looks that nowhere in the LGPL text allows to modify an LGPL
library and distribute a binary version that can't be recompiled
from sources. Those headers should be made available under a
license compatible with the LGPL v2 or, in case they don't want
to release those headers, the library should be reworked as a
"combined library", as defined in the Section 7 of the LGPL v2.
The combined library should have a LGPL part that can be
compiled and linked independently, and probably a proprietary
part or another small library which make use of the propietary
headers.

There has been requests by some developers for those headers,
but the response was "sorry, it is proprietary" [4]. Given the
effort previously made by Nokia to remain relatively conforming
to free licenses, I hope they will be willing to solve this
issue if the problem is correctly exposed to them.

Note that I'm Not A Lawyer, only an angry user tired of those
companies. This is indeed a complicated case subject to other
interpretations, so feel free to give me your comments; I will
feel free to ignore them if don't like them :-) [5] I will do
my best to bring back my right to modify, compile and install my
modified libesd.


Footnotes:

[1] A very old version of those header files was made available
    (though under proprietary notices), and it is still
    available on the ftp:
    http://repository.maemo.org/pool/maemo/ossw/source/o/osso-dsp-headers/
    It is not usable on the current version of the SDK.

[2] Refer to LGPL v2 Section 5 for the list of conditions.

[3] From the LGPL v2 preamble.

[4] https://bugs.maemo.org/show_bug.cgi?id=2271
    Note that this bug report refers to the gst-plugins-dsp
    package, with has the same dependency, but it is made and
    copyrighted by Nokia, so the LGPL can't be enforced to their
    own code in this case. Anyways, a very unfortunate decision
    to distribute LGPL code that nobody except Nokia could really
    use under the full LGPL terms...

[5] Just kidding, I'm interested in reading.





More information about the legal mailing list