On Friday 06 June 2008 15:34:41 Ivo wrote: > If you use Rob Landley's fork, your application must be GPL as Rob switched > to the GPL for all of tinycc.
Thanks for the FUD, but if you'd bothered to read the README: > License: > ------- > > Tinycc is distributed under GPL version 2. (This is a specific version of > the GPL, included in the file LICENSE in this tarball. It may not be > distributed under later versions.) > > The license on tinycc does not apply to output files produced by tinycc > (which are under whatever licenses the corresponding source files were > under), nor does it affect the header files in the include directory (look > up "Scenes a Faire" and the merger doctrine). By your logic, #including standard headers out of /usr/include would make your program GPL. For example, the glibc /usr/include/errno.h includes the glibc bits/errno.h, which includes linux/errno.h which is a file taken from the Linux kernel and licensed under GPLv2 (not LGPL). So any code that #includes the standard header errno.h is sucking in source code from the Linux kernel when it compiles. If it worked that way then every program ever compiled for Linux would be GPL version 2. There would be no binaries available under GPLv3, or the artistic license, or mozilla license, or BSD, or any proprietary license. Luckily, copyright law isn't that insane. (DMCA notwithstanding.) If your program accesses functionality through a defined API, then that API acts as a barrier to derived work status as far as copyright law is concerned. Not only does your code not include any of the other program's code, but your program is based on information contained in documentation (such as the C99 standard) and _not_ any specific implementation of what it documents. All tinyinc.h contains is a pile of C99 symbols culled from other header files (and ultimately from a standards document); as such it's probably not even copyrightable because there's no creative element. (That would be the "look up scenes a faire and the merger doctrine" part of the readme.) More fundamentally, if you're using C as a scripting language, then you're not even distributing your code as a binary, so you don't have to worry about "tainting" your binary with other code used at compile time to produce that binary. You're not _distributing_ a binary of your code, the compilation occurs on the target machine, every character of the source file _you_ are distributing was written by you. The tinycc binary is copyrighted and licensed separately from your code, and if you distribute that you have to abide by the license terms on that binary. But the same is true of a perl or python interpreter. Starting your python script with "import io, sys" doesn't suddenly mean your python script is under the same license is the python runtime. Rob -- "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson. _______________________________________________ Tinycc-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/tinycc-devel
