hi all,
one thing that is currently unclear to me is whether/how Apache OOo may
depend on code licensed under a Category B license.
the most prominent specimen of this category is the MPL.
first, about OOo:
how we currently build external libraries:
the external libraries are not checked into the HG repository; they
reside (as source tarballs) on some FTP server.
the repository contains things to build the external library:
* a fetch_tarballs.sh script, which is executed as part of "bootstrap"
and downloads all the tarballs
* for every external library, a module, containing:
- patches to fix bugs that affect OOo
- patches to backport security fixes (taken from upstream)
- patches to make it build in our environment (especially on windows)
- more bizarre patches :)
- a makefile.mk to drive the build: call configure with proper flags,
then make, ...
- dependency metadata (prj directory)
during the build, the downloaded external library tarball is unpacked,
built, and the binaries and headers copied to a global directory.
one thing should be perfectly clear: if there is an external C/C++
library that builds in our environment on all platforms without needing
to be patched, then i haven't seen it; i don't think such a creature exists.
of course for all the external modules it's possible to tell configure
to not build the module in OOo but instead use the library on the system
(which in many cases of course only works on GNU/Linux or *BSD).
i think for some libraries (cairo?) it could be an option to do our
release builds against system libraries; if i understood correctly it
should be possible to do this for both Category B and Category X libraries.
while ApacheOOo can never ship Category X libraries, for Category B
there is this:
http://www.apache.org/legal/resolved.html#category-b
"Software under the following licenses may be included in binary form
within an Apache product if the inclusion is appropriately labeled:
[...]
By including only the object/binary form, there is less exposed surface
area of the third-party work from which a work might be derived; this
addresses the second guiding principle of this policy. By attaching a
prominent label to the distribution and requiring an explicit action by
the user to get the reciprocally-licensed source, users are less likely
to be unaware of restrictions significantly different from those of the
Apache License. Please include the URL to the product's homepage in the
prominent label."
now, some questions:
the sentence on "including only the object/binary form" i don't
understand at all.
if we ship a binary installation set, then of course it doesn't include
the source code for anything (except perhaps Python/BASIC code...).
so i guess this refers to a source code release.
but that doesn't make much sense either: what exactly is gained by
putting binary libraries for a bunch of platforms into a source tarball?
_which_ platforms? all of them? that's going to be huge...
is this sentence perhaps intended specifically for Java libraries?
secondly, "requiring an explicit action to get the reciprocally-licensed
source", does our existing fetch_tarballs.sh script qualify?
does an explicit configure flag that enables fetch_tarballs.sh to fetch
the Category B source qualify?
would we get any closer to compliance by uploading per-platform binary
Category B tarballs, which fetch_tarballs.sh may then fetch and which
are unpacked during the build?
basically, how can we build an ApacheOOo binary release that includes
Category B licensed libraries?
confused,
michael
--
"And I don't need to waste my time with a computer just because I am
a computer scientist. [Medical researchers are not required to
suffer from the diseases they investigate.]" -- Edsger W. Dijkstra