Let's say I have a work which consists of a source code and some license.

The source code can be a program (e.g. written in C) but also an image (e.g. written in SVG).

This source code can be converted (compiled) to a compilation. By compilation I mean the output of the compiling process. This is a technical term.

The compilation is the binary form. This can be machine code or a JPG/PNG/... file for SVG.

For the source code the license is always easy to find out.

Let me name the examples PHP, Cygwin and Ubuntu. Their compilations can all be downloaded (PHP installer, Cygwin installer and Ubuntu iso). Do these have the same license as the source code? Does the compilation have the same license if I compile them myself?

Is the compilation a derivative work?

Can someone please answer this question in general and for these licenses?

  • GPL / LGPL
  • MIT license
  • Apache license
  • Mozilla Public license
  • BSD license
  • 1
    In general I think this question is okay, but your examples are bad - Cygwin and Ubuntu are aggregations (this is a technical term), not compilations. Dec 6 '21 at 8:51
  • Please don't be that accurate. I mean the source code on the one side and the binary form produced from the unmodified source code on the other side. You can call the output whatever you like...
    – somega
    Dec 6 '21 at 9:32
  • 3
    The difference between compiled output and an aggregation is just about everything in licensing terms. You cannot ignore this. Dec 6 '21 at 9:34
  • 1
    Have you read this answer? If so, does it tell you what you need to know?
    – MadHatter
    Dec 6 '21 at 12:33
  • It's possible we're getting confused by terminology here. When you say "compilation" I think you actually mean the binary produced by compiling a program distributed as source code. In GPL terms, the GPL calls this "object code" or "non-source forms", and the terms for dealing with such forms are specifically mentioned in the license. Other open source licenses also mention this, but might call the non-source form a "binary", "binary forms" or "binaries" instead.
    – Brandin
    Dec 9 '21 at 9:38

Converting code to another format doesn't introduce any new creative expression to that code1, nor does it remove any creative expression (except, I supposed, non-functional comments). Code compiled to object form has the same copyright status as its source form, just as translation applies to any other copyrighted work. The production of a translation involves a derivative work, so its creation and distribution is an exclusive right belonging to the copyright holder:

A “derivative work” is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. (17 USC S.101)

For code under any FLOSS license (a category to which all your example licenses belong), the copyright holder has granted permission to produce and redistribute the code in a translated object form. For some licenses, this permission may be accompanied by requirements. Notably, the GPL allows the distribution of code translated to object form only if it is accompanied by corresponding source. For example, GPLv3 gives the permission to distribute non-source "object code" translations in section 6, which begins:

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways...

If you receive source code without permission to produce or distribute compiled object forms, then you may not produce or distribute object forms of that code. It is the right of the copyright holder to forbid this, if they wish. Fortunately, all free and open source licenses do allow this, so if you receive FLOSS-licensed source code, you can be sure the copyright holder has already given this permission. The license(s) governing the compiled form of some source code is whichever license(s) give you permission to do anything with that binary that would normally be an exclusive right of the copyright holder. In the case of all FLOSS licenses, the permissions afforded to source forms are identical to those afforded to binary forms (with the caveat that copyleft licenses may also impose source-sharing obligations on the distribution of object forms).

A final note: you say "compilation" is a technical term, which is true in both the domain of language-syntax theory ("the output of a compiler, which is a system for translating a set of syntactic expressions into a different language") and the domain of copyright law ("a work formed by the collection and assembling of preexisting materials"). I don't think you've done so, but take care not to confuse how the two different domains use this term in different ways.

  1. Note that the mechanics of compilation may introduce multiple works into the same binary file (e.g., libraries and application code together). You must abide by the copyright holders' licenses associated with each component you include in any binary you distribute.

Your question definitely has an interesting underlying curiosity, but I don't understand the exact question. I try to explore them here.

If the question is:

  • Can I compile a program on my side to workaround all author's copyrights?

The answer is: Nice try. Not as default.

Compiling a software is not a creative action. You may have some authorship rights on some creative compiling customizations, but you can't just "steal" all the copyrights by simply compiling it by yourself.

In short, the license of your compilation should be assumed as the same of the source code itself and vice-versa, without any other clarification.

Nice try anyway.


By saying this, it is possible that the author is telling you weird things like "you can do whatever you want but only if you recompile it by yourself and if you remove my logos and my names etc." or other weird conditions involving compilation. Almost only in that case, yes, by compiling it you have different rights. Otherwise, no.

If the question is:

  • If I'm the author of an image made with GIMP (which is under the GNU General Public License, so it's FLOSS software) are these images mine? or they belong to GIMP, under GNU GPL?

The answer is: Nice question. Normally your creative product is just yours.

If you use whatever tool to create an indipendent and original and creative stuff, you are almost surely the copyright holder of that output and so you decide the license, not GIMP or Photoshop authors. But the author can surely create particularly precise conditions to deny you this kind of use of the tool (for example saying: the final user cannot use my software if it wants to generate images for this list of uses ...). That's a limitation on the software itself, causing limitations on the output.

See also the GNU Affero General Public License which is interesting for this. In practice, if you visit a site whose server is under the GNU AGPL, just reaching "its output" (the HTML) triggers the license of the software. So, if you have made modifications to, let's say Mastodon, even if you hide your software on your servers, however, visitors must have all the rights you have, so you have to give the source code of your Mastodon modifications etc. Anyway, also in this case, the license does not affect the contents themselves.

The author of the content decides its license.

My answers are valid for all the licenses you cited, but modifications to the question and on this answer are appreciated.

  • My question is simple. I download a GPL program and compile it. What license does the compiled binary executable file have?
    – somega
    Dec 7 '21 at 8:46
  • @somega It has the same license. When you compile a program from source code to a binary, the binary is a translation and/or a derivative work of the original source code, so you need to treat it under the same license.
    – Brandin
    Dec 9 '21 at 9:35
  • @somega Well, that has the caveat that the license actually allows you to compile and distribute the program binaries. Open source licenses generally allow this, but they may have conditions. GPL has the condition that if you distribute a binary, then you must also distribute the corresponding source code of that binary. Or you must supply a Written Offer to allow a person to get the source code from you.
    – Brandin
    Dec 9 '21 at 9:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.