Bug #74250 incomplete source archive; please ensure GPL compliance of the source tarball
Submitted: 7 Oct 2014 13:59 Modified: 14 Oct 2014 22:12
Reporter: Dmitry Smirnov Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:6.2.3 OS:Any
Assigned to: CPU Architecture:Any
Tags: GPL

[7 Oct 2014 13:59] Dmitry Smirnov
Description:
Once again MySQL Workbench source archive ship generated source-less files.
From quick look it seems that most (or all) of them are in "/generated" folder. In particular "generated/grti/*" files are marked as generated but they are not built by the build system and their sources (and/or build scripts) seems to be missing. Interestingly, bits that suppose to be building those files are commented in "CMakeLists.txt". Also "generated/README.txt" mention "generate.cmd" which is not included to source archive.

This is not the first time such issues are neglected. I can't stress enough the importance of GPL compliance (i.e. all source files and/or build scripts should be present). It is also a strict requirement of Debian DFSG.

Such issues can easily get MySQL Workbench removed from Debian and other GNU/Linux distributions.

Besides re-generation of all source files is important to for successful build on all architectures.

How to repeat:
Try to re-build files in "generated" folder.
[8 Oct 2014 14:57] Alfredo Kojima
Hi Dmitry,

The WB package has everything that's needed to both develop and build WB, except for 3rd party dependencies.

I'll explain how these file come to be:
The files in generated/grts are created from the XML files in res/grt/. They are generated by the tool in tools/genobj. Because we seldom regenerate these files and because regenerating has a circular dependency we regenerate them only when the XML is modified. The circular dependency is because to compile tools/genobj, you need these headers in generated/grts (even if they're outdated). And to generate the files in generated/grts, you need tools/genobj :) So you do need the files in generated/grts to be in the source package.

One may say that's a nasty situation, but that's just how the project ended up evolving. Also, I think this wouldn't qualify as a GPL violation, since it's not like we're taking someone else's code and shipping without sources; in fact the whole sources are in the src.tar.gz and we're not holding away anything (except for a couple of commercial plugins, which have nothing to do with this).

generated/grti is in a similar situation, although they're instead generated from the files in modules/interfaces (we've kind of obsoleted that stuff ourselves, tho).

If you think that this *really* is a big problem for Debian, we can spend a couple of days finding a solution for this, as a show of good faith. But anyone can build from sources just like us and anyone can regenerate these headers, the same way we do (do a normal full build of WB using included headers, build tools/genobj, then go to generated/ and type make to regenerate the headers).
[8 Oct 2014 15:07] Peter Laursen
As far as I  can understand a contradicting conclusion was reached here:
http://bugs.mysql.com/bug.php?id=74227

-- Peter
-- not a MySQL/Oracle person.
[8 Oct 2014 15:46] Alfredo Kojima
Peter, 

* we are Oracle, not Microsoft
* Oracle does not own the *Microsoft* Visual Studio runtime redistributables, neither in binary much less in source form
* We have been advised to not redistribute MS binaries, because it could violate Microsoft's EULA
* So... I don't see how this has anything to do with the bug you linked?
[13 Oct 2014 8:19] Dmitry Smirnov
Hi Alfredo,

Thank you for explanation. Circular dependency in source is an unusual problem.
Certainly it is not as bad as source-less files so I'm downgrading bug's severity.
IMHO it is worth fixing when convenient, perhaps after when more important issues like #74147 and #74241 are addressed...

In general including pre-generated files to source archive is a bad practice just like including any kind of binary blobs that are not meant to be (directly) modified by humans. IMHO not rebuilding those files is a defect of build system. It would be nice to fix it eventually.