8

I'm trying to understand what is (not) a "machine" in GPL's "machine-readable source code".

GPL requires you to share (a) the preferred-form-of-the-work-for-making-changes-in-it, yet at the same time (b) it "does not include general purpose tool".

In cases where the two laws conflict, which takes precedence?

  1. For a simple example, if you develop code (nontext-based) using a code studio, do you have to share-alike release the studio? (btw it might use functions that normal hardware don't have)

    Or is an explanation of the file format all that is needed? (the same working idea as Google Takeout making their exports in practice as unimportable as possible)

  2. Another simple example: what happens to GPLed code (text-based) written in a custom language? Do you need to share-alike release the language definition? Including the compiler definition? Including a working copy (however unextendable in practice) of a compiler that can digest the code within reasonable time?

5
  • 3
    "Machine-readable" is contrasted here with "human-readable". It's just saying the code has to be in digital form. It has nothing to do with the rest of your question. Jun 29, 2023 at 16:12
  • 2
    Right, "preferred form" means "what a reasonable person who works with the language would consider source code", and "machine readable" means that you can't satisfy the obligation by mailing a printed source listing.
    – hobbs
    Jun 29, 2023 at 16:46
  • @MichaelKay: Yes - it means "It's not OK to give a printout of the source code and expect the recipient to type it all in" :-)
    – psmears
    Jun 30, 2023 at 9:10
  • 1
    For an example of extremely non-machine readable source code, I used to work for a company doing large government contracts. One of the contract they got was maintaining power monitoring equipment. The vendor had to provide the source code to the client so we were told we could have access to the code. The code turned out to be printed with brown ink on yellow paper making them very hard to photocopy or digitally scan.
    – slebetman
    Jun 30, 2023 at 12:03
  • If you made copies of my GPL licensed code, and I accuse you of copyright infringement, you'd have to show evidence to a court that it is likely that you followed the terms of the license. You have to show that you provided machine readable code to the judge, and the judge will decide, possibly after asking expert witnesses.
    – gnasher729
    Jul 1, 2023 at 12:34

4 Answers 4

9

This answer is not based on the actual license text of the GPL, but on my interpretation of the intent of the GPL and how that could/should work out in practice. In that way, it is a subjective answer.

The GPL does not require that the infrastructure around a GPL-licensed program is available for free or gratis. The GPL is rooted in copyright law and within the restrictions of that law the GPL tries to ensure freedom for as much software as it can, but there are limitations on how far it can reach. Tooling to develop applications is outside the reach of the (GPL-licensed) application.

Besides that, the GPL tries to regulate software freedom, but it does not actively regulate monetary compensation, except for one small aspect -- you can't charge an additional fee to provide the source code. It is completely allowable for the GPL license to charge a monetary fee for giving your software to someone else. The main reason why it doesn't happen is economic: You can't prevent your customers to provide that same software for a lower fee or no fee at all.

Given all that, I believe that the fact that there is no gratis editor for a (graphical) language or no gratis implementation for a language is not an obstacle to releasing your software under the GPL license. It presents a technical obstacle to re-using and contributing to your software, but I don't believe this would violate the GPL.

On the other hand, if there is no editor or compiler available to the general public at all, not gratis nor paid, then I don't think there is a legal objection to using the GPL, but I would have moral objections and I would seriously question why you want to release that software as open-source.

2
  • 3
    I'll note the similarities of your final paragraphs to Stallman's thoughts on the historical "Java trap" about nonfree environments being legally permissible but practically problematic ("Your program, though in itself free, may be restricted by nonfree software that it depends on.")
    – apsillers
    Jun 29, 2023 at 13:25
  • For an example of privative languages having open source code, Genexus is a latinamerican privative code studio/graphical language with no OSS implementation for which some library usage examples are available using GPL (and even more with other "free" libraries): github.com/…
    – kouta-kun
    Jun 29, 2023 at 21:55
7

not an expert, but as an example 'non-machine readable' could be scanned images of source printout, rather than text files to give to a compiler or interpreter.

5

The term "machine-readable" contrasts with "human-readable", and the distinction is mostly that the data is "machine-readable" if it is digital, or easilize digitizable, structured data.

For example, an document in ASCII or UTF-8 in digital form would be considered machine-readable, while a printout of the source code on paper would not be, as that is not easily readable for a machine (even though OCR has seen vast improvements in the last ten or so years).

Similarly, a screenshot of the source code will also not be considered "machine-readable", because it is not structured and the information contained therein is not easily accessible for a machine, even though it is digital.

For some references, look at

Additionally, there is a barrier between the editor used to write some piece of software and that piece of software. You can either develop free (GPL-licensed) software in a proprietary editor, but you can also develop proprietary software using a free editor such as Emacs. See:

Can I use GPL-covered editors such as GNU Emacs to develop nonfree programs? Can I use GPL-covered tools such as GCC to compile them? (#CanIUseGPLToolsForNF)
Yes, because the copyright on the editors and tools does not cover the code you write. Using them does not place any restrictions, legally, on the license you use for your code.

(GPL FAQ)

Furthermore:

[...] copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert her own data, the copyright on the output belongs to her, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.

Thus, it does not matter if the editor/programs used to compile/interpret/run or otherwise use the GPL-covered code is itself non-free, that is not a problem at all.

0

The GPL license creates an obligation to supply content in digital form. It doesn't constrain in any way what that content is, what tools or equipment might be needed to take advantage of it, whether it is fit for any purpose, or whether it is even decipherable. You can release code under the GPL even though it's no use to anyone without access to a billion-dollar supercomputer. You can release code that will only run on vintage hardware that no longer exists. You can release your transcription of an ancient text that no-one knows how to decipher. It's entirely up to you what you use it for.

(Having said, that, I would always use a different open-source license in preference to GPL, because I simply don't buy into the GPL religion.)

3
  • Two points: You should add some sources or better elaborate your reasoning instead of stating it as fact, and the last paragraph is commentary that does not belong in a (factual) answer (I do agree with that comment, btw, but thats not the point of the question).
    – Polygnome
    Jun 29, 2023 at 16:41
  • 1
    My only source is the GPL license itself. Jun 29, 2023 at 17:31
  • 1
    It does place all kinds of constraints on "what that content is, what tools or equipment might be needed to take advantage of it, whether it is fit for any purpose, or whether it is even decipherable" - for example, it explicitly defines source code as "the preferred form of the work for making modifications to it" which would include code for vintage hardware but not intentionally making it hard to decipher, and it would require it to be distributed on "a durable physical medium customarily used for software interchange", so again unnecessarily using weird media would violate that.
    – Peteris
    Jun 30, 2023 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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