5

The MIT, GPL, and Apache Licenses all make references to "files".

Here are example of such references: (all emphasis added)

MIT:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software...

GPL 3.0:

For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. ... If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Apache 2.0:

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. ... You must cause any modified files to carry prominent notices stating that You changed the files ...

Is there a legal definition for what counts as a file, in the sense these licenses are using? Does something as small as a TCP packet count as a file? If not, where is the line? If I split a file from an open source project in two, is it the same file? What if I concatenate two of them together? In general, how much of a file's contents need to be modified before it counts as a distinct file?

Without some kind of legal definition, then it seems like there would be no way to definitively answer questions like "If use an MIT library in my project (by including the name and a version specifier in a package manager config file,) and I copy code from an example usage file distributed with the library, then modify it and add more of my own code, then distribute the resulting project (containing no more of the library author’s code but what remains of the example,) under MIT, do I need to include the original authors name in the copyright field?" without a court case.

  • 1
    I strongly suspect that the answer to this will be very close to the answer to "Is there a legal definition of a 'derived work' in copyright law?" – Dave Sherohman Mar 16 at 10:40
  • "If [redistribute] [a modified] MIT library ... do I need to include the original authors name in the copyright field" - It seems like this is your actual question and it is already answered here: How should I assert copyright when I'm forking an MIT project? – Brandin Mar 16 at 13:14
  • @Brandin I meant to describe (what I would expect is) a slightly different scenario, where the library is not directly distributed with the resulting project. I have edited my question now. Further, while knowing the answer that question would be nice, I would also like to know how to answer similar types of questions that also touch on what counts as a file. – Ryan1729 Mar 16 at 17:03
  • For the Apache license, any modification, including concatenation, splitting, etc. needs to be annotated as required by that license. Other licenses may or may not require such annotations, so in that case, you can probably do all of what you describe, but if you say exactly what you want to do, you will get a better answer. – Brandin Mar 16 at 20:50
  • "In general, how much of a file's contents need to be modified before it counts as a distinct file?" - Maybe you should read Theseus' Paradox applied to code copyright. – Brandin Mar 16 at 20:51
7

No, there is no universal definition of “file” that is accepted in all jurisdictions. However, this technical term is easy to understand and unambiguous in most applications of the license, and therefore does not present a problem.

Your particular mention of TCP is not an issue here because TCP is not used for data storage but for data transmission. In many jurisdictions, copyright laws ensure that such temporary copies (like a copy of a packet that resides in a network router, or a copy of a software into RAM) are not copies in the sense of copyright law, and therefore do not require a license. The terms of a license are then irrelevant.

These file- and source-oriented licenses might have a problem in software systems that don't have source code files, for example a Smalltalk image where developers merely manipulate a temporary representation of some object, or visual programming environments. It would then be for a court to decide how the license should be applied. Maybe the court would find an analogous concept in that system, might decide that software under the license cannot be used in such a system, or might decide that such terms can be ignored in such a system.

Concrete notes on the quoted licenses:

  • The MIT license only uses the term “files” when referring to associated documentation.
  • The GPLv3 uses the term “files” in an example, and in the context of adding notices about additional terms. Technical details in the example are just illustrative of intent.
  • The Apache 2 license definitively uses the term “file” in a manner that cannot be handwaved, in particular with such detailed requirements as mandating a particular name for one file (“NOTICE”).

Your question about a particular scenario involving an MIT-licensed project that doesn't contain the license notice isn't directly related to a concept of files. As an aside, it could be argued that the project never received a valid license and therefore cannot be used, or that downstream users cannot exercise their rights under the license without adding the license notice. Under no circumstancees would such an inconspicuous license allow users to just take the code as if it were public domain.

  • I've heard lots of people bemoaning that Smalltalk or similar environments never caught on in big way. I wonder if this ambiguity around definitions of words used in licenses is partly to blame for that! – Ryan1729 Mar 17 at 20:27

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.