On Thu, Jul 03, 2014 at 02:59:55PM +0200, Hugo Trippaers wrote: > > On to the actual point behind my comment, ASF policy is not very clear > about when we can or can’t put anything in our code that points to > something with a (L)GPL license. I would like some feedback from > people with a finer grasp of the policy to see if we can actually > include this dependency on mysql and the mysql connection in our wix > script. > > Cheers, > > Hugo
This is a bit tricky (and splitting hairs)... Obviously all of this is based on my understanding of past discussions and the relevant policies / licenses... but INAL and certainly not an expert here. Comments / disagreements welcome. In a non-platform specific sense, we have said that the MySQL connector jar file is a *system dependency*. Meaning... for our software to work, it needs to be installed by the user on the system before-hand. We have allowed it to be downloaded in certain maven profiles (specifically, IIRC, developer-centric profiles), as a convenience only (since those profiles aren't required for normal users). For the non-developer profiles, it is expected that mysql connector is already on your system prior to using the software. Above is all about users building from source, based on what we officially release.... Now, we DO provide scripts to help downstream projects and users build packages: Our DEB/RPM packaging scripts *do* reference this dependency. Since the project itself does *not* distribute packages, and since packages are designed to specify *system dependencies*, we believe this satisfies the ASF policies. OpenJDK is also a *system dependency* that we specify in our packages, and nobody would be confused about us expecting java to exist on the target environment for our software to work. (This was discussed with mentors back during incubation, but I can't seem to find the relevant links at the moment.) We do *NOT* include MySQL itself in our package scripts, only the connector. Now, dealing with the whole MSI thing (including the specific review in question, but also looking in other places related to the MSI), we have a different situation. *MySQL Itself* First, we are specifically taking action to download and install MySQL. This has to be taken out IMO, since it's quite a bit different from saying "here's a system package we expect to be there, like java itself". Since Windows doesn't have "package management" that pulls from a central repo, I understand why the download is there... but I'm -1 on it being in a release. *MySQL Connector* I see that we are doing the same thing with the connector in the pom files and the MSI - explicitly pulling it into the system. I'll defer to someone else about the specifics of that in the pom files, because I'm not a maven guy that knows what exactly is ocurring there. Can someone review and talk about how that directive behaves (and compare / contrast with the developer profiles)? In the packaging, same problem as MySQL... we are explicitly downloading GPL code. That also needs to be removed IMO. I'm -1 on that being in the codebase. Unfortunately, I *think* that we need to document MySQL and MySQL Connector.jar installations are being pre-requisites to installing ACS from an MSI. If a *downstream* project / product wants to include them in an installer, fine... but the Apache CloudStack project needs to remove them and add them as documented pre-requisites. -chip