Last modified: 2014-10-31 00:43:59 UTC
Hi, I am using a self-written framework (in https://en.wikipedia.org/wiki/PureBasic) for my bot running on my local machine. The PureBasic compiler is proprietary software, but I release all my codes under MIT license. I wanted to migrate my bot programs from my local computer to tool labs. Do the labs terms of use allow free codes compiled with a proprietary compiler? (Sorry, I know this is not a bug, but I need a public confirmation or rejection)
I think it would be, as long as your code itself is open source. I'll wait for Coren to confirm, however.
Legal was pointed towards this bug, and their opinion on the matter is what we need so I am not going to express an opinion either way. :-)
As a legal matter, what I care about is that we, the Foundation, have permission to have the code on our servers without needing to review each individual license. So as long as only open source code (i.e., in this case, not the compiler) is on our servers, that is legally fine by me. (The compiler obviously can't live on labs.) As a policy matter, part of why we have an open source requirement is to make sure the code can be reviewed, maintained, and improved by others. I don't think this meets that requirement, but I don't think we've ever actually written it down as a hard/fast requirement because it was always previously covered by the first point. So I'm inclined to say "no" but I think the second point is up for discussion and my "no" shouldn't be taken as a hard/fast refusal from legal.
A point of data is that section 2 of http://opensource.org/osd-annotated reads: "The program must include source code, and must allow distribution in source code as well as compiled form. [...] The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed." It's arguable that a program whose source is ostensibly open but which cannot - in practice - be recompiled after modification fails that requirement? It's an annoying gray area though. "You need to buy X to compile that program" seems to violate the spirit of Open Source when X is "a compiler", yet it's obvious that it's okay if X is "a computer". Perhaps a good analogue is the whole kerrufle about TPM - is being able to recompile something still properly Open Source if it then can't be run because it needs a signature you cannot get?
On the third hand, the code being suitably licensed means that its function can easily be reimplemented in some other language (a derived work), or some interpreter/compiler can be written to parse the original language's syntax and semantics into some other form that can be compiled. Would a program written in an old dialect of some other language no extant compiler still speaks (say, very old K&R C or cfront-epoch C++) lose its opensourceness because of it? Food for thought.
This is the kind of thing where the open source definition's descent from the Debian Free Software Guidelines shows through. That language makes more sense if you're an operating system ;)