For Fedora 11 I started with a clean installation from an x86_64 live iso:
http://linux.nssl.noaa.gov/fedora/linux/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
And found the requirements for compiling Traffic Server to be:
* glibc-devel.i586
* db4-devel.i586
* openssl-devel.i586
* tcl-devel.i586
* expat-devel.i586
For each I created a AC_CHECK_LIB test in configure.ac with
AC_MSG_FAILURE if the lib is not found (to give these tests teeth).
Specifically, for the glibc requirement, we declare some feature test
macros that may be GNU libc specific, namely _REENTRANT:
http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
I haven't done a full audit to find out whether glibc is a sticky
requirement or whether smarter autoconf tests could be made to
substitute alternative libraries to link against.
~~~
From my understanding of interacting with the lawyers, we are OK to put
in requirements during the build process for external libraries like
db4, add #include for the library headers, and make calls to the library
functions in our code. The license restrictions of these external
libraries start kicking in if we choose to redistribute
modified/unmodified code/binaries of the external library, which we
currently do not do. We currently require the person compiling the code
to get the libraries themselves (via yum install or apt-get, etc).
~~~
As for code that we have taken from other software systems, modified,
and included in Traffic Server...
We have stuff that we need to clean out like
'libinktomi++/ink_res_init.cc' before our first incubator-approved
release. 'ink_res_init.cc' was swiped from BIND with an incompatible
BSD lic with advertising clause. Doug, our mentor, said the
incompatible licenses we uncovered in our code are OK for initial upload
to ASF SVN but needs to be addressed before the first release can be
approved.
Details of the other files that need to be addressed before initial
release are in the NOTICE file:
http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/NOTICE
Not many files, but the work to remove or replace may take some time.
Cheers,
Andrew
Leif Hedstrom wrote:
Interesting. We have dependencies on various libraries, like TCL, Expat
and Berkeley DB. Andrew (since you are on top of this): Did you already
go through all such link/run time dependencies, and make sure the
licenses are compatible?