Question about code publishing

Discussion about the AutoHotkey Foundation and this website
RAMON

Question about code publishing

02 Oct 2018, 01:47

Hello All,

I'm working for a company that needs to use Autohotkey to develop RPA programs for his clients.

My question is the next: is mandatory to publish in the forum all development source made by us in case we use Autohotkey or is not necessary?

Thanks ina dvance for your help.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Question about code publishing

02 Oct 2018, 02:50

You cannot publish closed source materials in the scripting forum - meaning that you share compiled .exes in the scripting forum. Thats due to concerns regarding malware and the fact that the forum is intended for learning purposes.
If you really want to publish closed source then I recommend publishing it in the other tools secion.
If you want to post in the ask for help forums then there are no restrictions regarding the source - though people may not be able to help you unless you properly describe the missing parts.
Recommends AHK Studio
User avatar
tank
Posts: 3122
Joined: 28 Sep 2013, 22:15
Location: CarrolltonTX
Contact:

Re: Question about code publishing

02 Oct 2018, 06:47

Working in RPA myself I would like to learn more about your practice
We are troubled on every side‚ yet not distressed; we are perplexed‚
but not in despair; Persecuted‚ but not forsaken; cast down‚ but not destroyed;
Telegram is the best way to reach me
https://t.me/ttnnkkrr
If you have forum suggestions please submit a
Check Out WebWriter
Guest

Re: Question about code publishing

02 Oct 2018, 13:16

Perhaps OP means to ask if it would be required to publish the source code of their compiled scripts due to the GPL license of AHK.
There is no definitive answer but you'll find some useful comments here https://autohotkey.com/boards/viewtopic.php?t=13312 by Lexikos (current developer or AHK) for what its worth.
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

13 Oct 2018, 10:32

RAMON wrote:Hello All,

I'm working for a company that needs to use Autohotkey to develop RPA programs for his clients.

My question is the next: is mandatory to publish in the forum all development source made by us in case we use Autohotkey or is not necessary?

Thanks ina dvance for your help.
1. There is no GPL requirement that you must publish your source code on the AutoHotkey forum.

2. Your source code, the script that you or your company wrote, is your property and belongs to you. You can have your script/source code copyrighted.

3. The GPL, to my understanding, is referring to you or your company modifying the AutoHotkey source code. It seems that many people get confused on this point.

The script that you write (your personal source code) and that you can have copyright to or can sell, is not the same as the AutoHotkey source code (what you download from here or Github. If you modify or change the AutoHotkey source code, and release it to the public, then you might need to release it to the public too or at least provide a link to the AutoHotkey source or modified AutoHotkey source. You don't have to release your script or compiled exe, but possibly the modified AutoHotkey source code via a link.

From the GPL Website-
Does the GPL allow me to sell copies of the program for money? (#DoesTheGPLAllowMoney)

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)
"Required written offer to provide source code that must accompany binary-only release", in your Read Me text file, it appears you or your company could just make a simple offer to provide the AutoHotkey source code upon request under the GPL (not the script you or your company wrote) to include any modified version of the AutoHotkey source code that might have been created.

Per creator of AutoHotkey, Chirs Mallett
"Can get" is pretty open ended and I'm comfortable that just about anything reasonable satisfies it (such as a publicly available web site like autohotkey.com).
From Wiki
Is GPL free for commercial use?
Software under the GPL may be run for all purposes, including commercial purposes and even as a tool for creating proprietary software, for example when using GPL-licensed compilers. Users or companies who distribute GPL-licensed works (e.g. software), may charge a fee for copies or give them free of charge.
From the GPL Website-
If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? (#GPLCommercially)

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.

These requirements are the condition for including the GPL-covered code you received in a program of your own.
If you are planning to sell or use GPL software commercially, you can ask for advice from the GNU ([email protected]). However, the final decision is still yours and somethings might still be a bit foggy. Another point is your company can make money around AutoHotkey, not only selling it directly. For example, if you are charging for support or for creating a solution.

The creator of AutoHotkey, Chris Mallett had addressed this directly.

OK to sell?
https://autohotkey.com/board/topic/4462-ok-to-sell/
My understanding is that scripts you've written (or for that matter anything you've written) are under your copyright by default. Of course you can reassign or give up the copyright by releasing the work as public domain, etc.

Since they're under your copyright, you can license or sell the scripts, even if they're in compiled EXE form.
In other words, when you build an app with AutoHotkey, there are no restrictions on selling it, nor do you have to release your script's source code. This is because it is similar in principle to having built the app with a GPL C++ compiler.
Note- Chris wasn't saying it was the same, but similar.

From GPL website-
In most countries only the copyright holders are legally empowered to act against violations.
It appears that Chris, who has openly stated that he is fine with the commercial use of scripts and compiled EXEs from AutoHotkey, would ultimately be the deciding factor of what is or is not to be done. Personally, I think the MIT license is the best, because there is no ambiguity about commercial use. You simply can use it, if you post their copyright notice. But possibly people didn't know about it years ago. Nevertheless, Chris did publicly state he is fine with AutoHotkey created scripts and exes being used commercially. And that would be for the best, because it makes the language more popular and useful.
lexikos
Posts: 9494
Joined: 30 Sep 2013, 04:07
Contact:

Re: Question about code publishing

13 Oct 2018, 20:31

SOTE wrote:It appears that Chris, who has openly stated that he is fine with the commercial use of scripts and compiled EXEs from AutoHotkey, would ultimately be the deciding factor of what is or is not to be done.
False.

AutoHotkey contains source code by many authors. Some of them cannot be contacted (as far as I know), and some of them (i.e. the AutoIt developers) were not even happy about their code being used in AutoHotkey (or the existence of AutoHotkey) in the first place, though it is explicitly allowed by the GPL.

Chris Mallet's words are not legal advice and should not be taken as authoritative on this matter.

The issue with distributing compiled scripts is the doubt around whether or not a compiled script constitutes a "derived work". A work derived from a GPL-licensed program must be licensed under the GPL or compatible. One argument (possibly the main one) was that because the script and interpreter can be easily separated, they are considered to be simply bundled together for convenience, and not a derived work. However, I believe that this argument falls apart if you take measures to prevent decompilation (in order to prevent others from extracting your script's source code from the exe).

Distribute closed-source compiled scripts at your own risk, or get proper legal advice. I would personally allow it, but it is not up to me.

Another point that virtually everyone ignores is that when you distribute a compiled script, you are distributing the AutoHotkey interpreter and are therefore required by the GPL to do certain things (even if it applies only to the interpreter, not your script).


As for the OP's question, I believe the answer is simply "No", you are not required to distribute anything here on this forum. You can limit distribution to just your clients. The questionable parts are only whether or not you are required to give your clients access to the source code of your compiled script, and whether your clients are allowed (by the GPL) to redistribute or modify your script.
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

14 Oct 2018, 04:27

lexikos wrote:
SOTE wrote:It appears that Chris, who has openly stated that he is fine with the commercial use of scripts and compiled EXEs from AutoHotkey, would ultimately be the deciding factor of what is or is not to be done.
False.

AutoHotkey contains source code by many authors. Some of them cannot be contacted (as far as I know), and some of them (i.e. the AutoIt developers) were not even happy about their code being used in AutoHotkey (or the existence of AutoHotkey) in the first place, though it is explicitly allowed by the GPL.

Chris Mallet's words are not legal advice and should not be taken as authoritative on this matter.

The issue with distributing compiled scripts is the doubt around whether or not a compiled script constitutes a "derived work". A work derived from a GPL-licensed program must be licensed under the GPL or compatible. One argument (possibly the main one) was that because the script and interpreter can be easily separated, they are considered to be simply bundled together for convenience, and not a derived work. However, I believe that this argument falls apart if you take measures to prevent decompilation (in order to prevent others from extracting your script's source code from the exe).

Distribute closed-source compiled scripts at your own risk, or get proper legal advice. I would personally allow it, but it is not up to me.

Another point that virtually everyone ignores is that when you distribute a compiled script, you are distributing the AutoHotkey interpreter and are therefore required by the GPL to do certain things (even if it applies only to the interpreter, not your script).


As for the OP's question, I believe the answer is simply "No", you are not required to distribute anything here on this forum. You can limit distribution to just your clients. The questionable parts are only whether or not you are required to give your clients access to the source code of your compiled script, and whether your clients are allowed (by the GPL) to redistribute or modify your script.
First, let me state that you have my utmost respect as a developer of AutoHotkey. Please don't take my difference in opinion the wrong way (which might actually only be a minor difference). However, if you visit the GNU GPL website and read what they wrote, to include the direct quotes from them that I gave in my previous post, it's clear that they (the GNU GPL itself) don't have an issue with selling. They state so multiple times, that it's OK to sell. Please refer to https://www.gnu.org/philosophy/selling.en.html and https://www.gnu.org/licenses/gpl-faq.en.html
Another point that virtually everyone ignores is that when you distribute a compiled script, you are distributing the AutoHotkey interpreter and are therefore required by the GPL to do certain things (even if it applies only to the interpreter, not your script).
Perhaps here we are in agreement. It is my understanding that what is required, if the AutoHotkey Interpreter is used, is giving credit to the creators and linking to the source code or offering to provide the source code of AutoHotkey (modified or unmodified) to the customer/user (last part is reference from GNU GPL). Note- this is if you release a compiled script publicly or attempt to sell a compiled script. For use in a private environment, such as within a business or school might mean they don't have to give such credit or links.

Also, just like Chris Mallet is not a legal authority, so is the GNU and GPL not law nor a legal authority. The GNU does not take legal action against any violation, but rather copyright holders are the ones to decide to take action. Chris Mallett has repeatedly and publicly stated AutoHoktey compiled scripts are fine to sell. Even if other various parts of AutoHotkey code are derived from other authors, he is the main copyright holder and creator, who gave AutoHotkey it's name in the first place. It is likely that those other authors would have to take up the issue with Chris. Because the issue would be how much say so does a contributor to a work created and copyrighted by different person do they have? In other words, can an author who disagrees about how his part of the code is used, decide on how the entire GPL work was used? This by itself would likely need to be resolved legally, before even attempting to move on to any supposed violations of the GPL.

If any "minor" copyright holder or contributor were to take action against the selling of a compiled AuthHotkey EXE, they would have to contend with not only the creator's (Chris Mallett) public statements, but exactly about what they are arguing against. The user has copyright over the script and source code that they created. To not understand this, is like stating Microsoft has copyright over code created with Visual Studio and claiming that all programs created with it are "derived works". Imagine if Microsoft said they owned AutoHotkey source code because it is a "derived work" created from their Visual Studio. Clearly this is not the case, and any court would immediately strike down claims to the user's source code.

Your proposed definition of "derived work" (which you seem unsure about) can not be correct, because then any program created by a GPL compiler would also be a derived work. It would mean an application created by the GCC compiler, must be under the GPL, and this not the case (and the GNU GPL has said so). That AutoHotkey/GPL source code can be separated from user scripts means they are bundled. Which arguably makes the distinction easier, not harder. This would still be the case if the user's script is obfuscated or encrypted. What is obfuscated and encrypted is the user's source code, where the AutoHotkey/GPL source code part can still be extracted. Furthermore, the GNU indicated that GPL requirements (to includes Chris's public statements) can be satisfied by linking to the AutoHotkey/GPL source code (or modified AutoHotkey/GPL source code) or written offer of the AutoHotkey/GPL source code (modified or unmodified) upon request.

To further clarify, it is perfectly within the user's right to have obfuscated or encrypted source code. Not to mention that nearly all other programming languages have various protection measures or 3rd party companies that specialize in protecting source code in various programming languages, which prevents or protects from decompiling. The GPL at no time speaks against this. However, such a user is still obligated to provide credit to the creators and links to GPL source code or a written offer to provide the original or modified GPL source code upon request.

This is not "me" stating this and pulling the opinion from nowhere, but the GNU GPL stating such-
https://www.gnu.org/licenses/gpl-faq.en ... ToolsForNF
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.

Some programs copy parts of themselves into the output for technical reasons—for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.

As it happens, Bison can also be used to develop nonfree programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for nonfree programs.

If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses? (#IfInterpreterIsGPL)

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone...

Do I have “fair use” rights in using the source code of a GPL-covered program? (#GPLFairUse)

Yes, you do. “Fair use” is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.

Note, however, that there is no world-wide principle of fair use; what kinds of use are considered “fair” varies from country to country.
lexikos
Posts: 9494
Joined: 30 Sep 2013, 04:07
Contact:

Re: Question about code publishing

15 Oct 2018, 03:27

SOTE wrote:
14 Oct 2018, 04:27
However, if you visit the GNU GPL website and read what they wrote, to include the direct quotes from them that I gave in my previous post, it's clear that they (the GNU GPL itself) don't have an issue with selling. They state so multiple times, that it's OK to sell.
I didn't say anything at all about selling, as it is irrelevant. Charging for distribution or other services does not in any way change the requirements imposed by the GPL.
As quoted by SOTE, GNU wrote:You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.
It is likely that those other authors would have to take up the issue with Chris.
I disagree completely. Chris has licensed us to use, modify and distribute AutoHotkey. Current versions of AutoHotkey are licensed to you by me, not by Chris. Copyright holders are entitled to protect their intellectual property independently of who "created" the project or what projects their property is used in.
To not understand this, is like stating Microsoft has copyright over code created with Visual Studio and claiming that all programs created with it are "derived works".
No, it isn't. When you distribute a program created with Visual Studio, you are not distributing Visual Studio. Nor do these programs depend on Visual Studio to run, or contain Visual Studio code. (Sometimes they contain Visual C++ (or other language) runtime code, which has its own license.)
Your proposed definition of "derived work" (which you seem unsure about) can not be correct, because then any program created by a GPL compiler would also be a derived work.
Again, they aren't comparable. Programs created with a compiler do not contain the compiler. (Ahk2Exe is not a compiler in the same sense).
Clearly this is not the case, and any court would immediately strike down claims to the user's source code.
I'm not inclined to take your word for it. I doubt that it would be so clear even to someone actually qualified to know such things.


You can argue all you like, but in doing so you are reinforcing my point that how the GPL applies to compiled scripts is debatable. Opinions won't protect anyone. My advice is still:
Distribute closed-source compiled scripts at your own risk, or get proper legal advice.
It is quite possible that all of this is irrelevant to the OP.
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

15 Oct 2018, 04:39

Again, I want to first be clear that I hold you in high regard and have tremendous respect for you as a developer of AutoHotkey. I'm mentioning this subject, because this issue being so fuzzy can be holding AutoHotkey back in being considered a useful scripting language by various people. To include schools, IT departments, businesses, or even potentially gifted programmers. Many might stay away from the language or choose other languages, due to fears, ignorance, or misunderstandings about the GPL.
lexikos wrote:
15 Oct 2018, 03:27
I disagree completely. Chris has licensed us to use, modify and distribute AutoHotkey. Current versions of AutoHotkey are licensed to you by me, not by Chris. Copyright holders are entitled to protect their intellectual property independently of who "created" the project or what projects their property is used in.
That is quite interesting. I'm seeking to be enlightened. Are you saying that AutoHotkey_L uses no code from AutoHotkey_Basic? Or that you have or have been legally given exclusive rights and ownership of the AutoHotkey language that overrides any public statements or future claims from Chris Mallett. Meaning, you are the sole or main copyright holder of AutoHotkey, in regards to any dispute concerning the GPL?

And if that is the case, could AutoHotkey_H then make the same claim, that it's creator is the sole or main copyright holder that provides the "license" to the users, independent of yourself and AutoHotkey creator Chris Mallett?
I didn't say anything at all about selling, as it is irrelevant. Charging for distribution or other services does not in any way change the requirements imposed by the GPL.
No, it isn't. When you distribute a program created with Visual Studio, you are not distributing Visual Studio. Nor do these programs depend on Visual Studio to run, or contain Visual Studio code. (Sometimes they contain Visual C++ (or other language) runtime code, which has its own license.)
Distribution and selling of AutoHotkey by users is allowed under the GNU GPL. This is very strongly a key that relates to the next point. This is not irrelevant. Please do not ignore the GNU statements in https://www.gnu.org/philosophy/selling.en.html (Selling Free Software). Because it means users are allowed to distribute and sell (charge fees for distributing) AutoHotkey, along with their scripts (which is legally under separate copyright).

That the compiled AutoHotkey EXE is "bundled", makes distribution and selling an easier point, not more difficult. The user has copyright and the right to sell their own source code and script, and this is copyright law. They also have the right to distribute AutoHotkey too, and charge for the distribution of it. As they have the right to do both, it is a very strong legal argument that they can bundle them together, thus sell a compiled (bundled) AutoHotkey EXE that contains their source code and the AutoHotkey interpreter.

I also went beyond just giving a Visual Studio example, but giving 2 other examples directly from the GNU GPL. That is where the GNU GPL specifically addressed interpreters as you described AutoHotkey as and where the GNU GPL specfically mentions Fair Use. In both cases, the GNU GPL is contradicting what you are saying. The GNU GPL states, "no". "...the interpreter just interprets a language..."

As in the script created by the user is under their copyright, that an interpreter has no rights over nor can impose requirements about licensing on that script. Furthermore, the user has "Fair use" of AutoHotkey. "Fair use" means the users do not need any permission from the developers to use a GPL-covered program like AutoHotkey.

According to the GNU GPL, a user selling an application made with AutoHotkey, has the rights of distribution, to sell (to charge for distribution), and "Fair use" combined.

For example, if a user creates an application with AutoHotkey, they are selling their source code(script) in an application and are distributing the AutoHotkey interpreter (which they are also allowed to charge distribution fees). They are allowed to do both, under the GNU GPL. The only requirement imposed by the GNU GPL is that the user provides a link to the original AutoHotkey/GPL source code (modified or unmodified) or a written offer to provide it upon request.

From the GNU GPL
If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses? (#IfInterpreterIsGPL)

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone....

Do I have “fair use” rights in using the source code of a GPL-covered program? (#GPLFairUse)

Yes, you do. “Fair use” is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.

Note, however, that there is no world-wide principle of fair use; what kinds of use are considered “fair” varies from country to country.
From lexikos-
I'm not inclined to take your word for it. I doubt that it would be so clear even to someone actually qualified to know such things.

You can argue all you like, but in doing so you are reinforcing my point that how the GPL applies to compiled scripts is debatable. Opinions won't protect anyone. My advice is still:
Distribute closed-source compiled scripts at your own risk, or get proper legal advice.
I'm a bit curious why wouldn't their be pride and advocacy in the expansion, promotion, and use of the AutoHotkey language.

And regards to this, it is not simply my word, but direct quotes and references to the GNU GPL. I encourage everyone to look at it or email them questions. Furthermore, there are already AutoHotkey applications being sold. What I'm saying is not hypothetical, but based on research and what I've seen. Example- FastKeys (https://www.fastkeysautomation.com/) and it is my opinion that they fully meet the requirements of the GNU GPL in their credits.
Special thanks:

Lan Glad for development and testing

Roland Tóth for Hungarian translation

TWaits for Slovenian translation

Yaroslav P. and Nick for Russian translation

Mintaz Aksoy for Dutch translation

MoonyHart for Japanese translation

Nico78 for French translation

Marco Lúcio Rosa Batista for Portuguese translation

Themistocles Papassilekas for Greek translation

Michał Chęciński for Polish translation

Jürgen Feldmann for German translation

Marián Hikaník (www.mojepreklady.net) for Slovak translation

Mohamed Abdalazez for Arabic translation

Milton Chaves de Almeida for Brazilian Portuguese translation

Dennis M Wallentin for Swedish translation

Salva Roselló for Spanish translation

Fantasynoff for Chinese Simplified translation

Abdul Tauhid for Hindi translation.


AutoHotkey, Copyright © 2004 - 2013 Chris Mallet and others, https://www.autohotkey.com/

AutoHotkey_L by Lexikos (https://autohotkey.com/docs/AutoHotkey.htm)

AutoHotkey_H by tinku99 and HotKeyIt (https://hotkeyit.github.io/v2/)

Scintilla, Copyright 1998-2013 by Neil Hodgson <[email protected]> All Rights Reserved.
lexikos
Posts: 9494
Joined: 30 Sep 2013, 04:07
Contact:

Re: Question about code publishing

15 Oct 2018, 05:55

SOTE wrote:
15 Oct 2018, 04:39
Are you saying that AutoHotkey_L uses no code from AutoHotkey_Basic? And thus you have exclusive rights and ownership of the AutoHotkey language that overrides that of Chris Mallett. Meaning, you are the sole or main copyright holder of AutoHotkey, in regards to any dispute concerning the GPL?
Nothing of the sort. I am saying that the project contains my intellectual property, and the intellectual property of numerous others, and we do not need Chris' permission to pursue legal action against violations of our copyright.
This is not irrelevant.
There are two reasons I say it is irrelevant:
  1. RAMON (the OP) asked whether it was required to publish source code on the forums in case they use AutoHotkey, not whether it is OK to sell scripts, nor whether it is required to provide source code when one distributes a compiled script, nor anything else about compiled scripts. The programs (scripts) would be used by his clients, so there's no need for them to ever be published on the forum in any form.
  2. As I said, selling and whether the GPL (or compatible license) must apply to the compiled script as a whole are two entirely separate issues. Charging money, obviously, does not excuse one from complying with the GPL. Putting aside the original topic, if the question is whether source code must be provided for each compiled script, whether you are charging money for it has absolutely no bearing on the answer.
They also have the right to distribute AutoHotkey too, and charge for the distribution of it.
Only if they comply with the terms set out in the license. So, hypothetically:
  • If the compiled script as a whole constitutes "a work based on the Program", the GPL applies to the whole (the compiled script). One can sell the compiled script, but must provide access to the source code of the whole (at least to customers), and the customers are also granted certain rights by the GPL.
  • If the compiled script as a whole does not constitute "a work based on the Program", the GPL only applies to the interpreter portion. The copyright holder of the other portion can do whatever he wants with that portion, and can sell the whole, but must provide access to the source code of the interpreter.
So one can sell the compiled script either way. The issue is only about source code, not about charging money. This is why I say it is irrelevant.


Regarding the GNU FAQ about interpreters, "When the interpreter just interprets a language" is quite vague. Does AutoHotkey "just interpret a language"? You also omitted an important part:
However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way.
Consider two hypothetical scenarios:

1. I take a GPL-licensed library and use it to implement critical functionality in my C++ program. I required to provide complete source code for my program when distributing it, otherwise I would have no legal right to use or distribute the library within my program, since I am not complying with the terms set out in the license.

2. I take a GPL-licensed library and put it into an interpreter, then use that library via the interpreter to implement critical functionality in my scripted program. I then "aggregate" the interpreter with my script and distribute it. This provides a loophole which allows my program, a simple executable seemingly no different from my C++ program, to be distributed without providing complete source code. Or does it?

I do not believe that merely using different technologies to build a derived work provides this loophole. Maybe you do. I've read there are similar issues with dynamic vs static linking of libraries, and that the answer is basically still unknown since it hasn't really been tested in court. Who wants to be the one to test it?
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

15 Oct 2018, 07:57

lexikos wrote:
15 Oct 2018, 05:55
Nothing of the sort. I am saying that the project contains my intellectual property, and the intellectual property of numerous others, and we do not need Chris' permission to pursue legal action against violations of our copyright.
Understood and agreed.
lexikos wrote:
15 Oct 2018, 05:55
  1. RAMON (the OP) asked whether it was required to publish source code on the forums in case they use AutoHotkey, not whether it is OK to sell scripts, nor whether it is required to provide source code when one distributes a compiled script, nor anything else about compiled scripts. The programs (scripts) would be used by his clients, so there's no need for them to ever be published on the forum in any form.
  2. As I said, selling and whether the GPL (or compatible license) must apply to the compiled script as a whole are two entirely separate issues. Charging money, obviously, does not excuse one from complying with the GPL. Putting aside the original topic, if the question is whether source code must be provided for each compiled script, whether you are charging money for it has absolutely no bearing on the answer.
They also have the right to distribute AutoHotkey too, and charge for the distribution of it.
Only if they comply with the terms set out in the license. So, hypothetically:
  • If the compiled script as a whole constitutes "a work based on the Program", the GPL applies to the whole (the compiled script). One can sell the compiled script, but must provide access to the source code of the whole (at least to customers), and the customers are also granted certain rights by the GPL.
  • If the compiled script as a whole does not constitute "a work based on the Program", the GPL only applies to the interpreter portion. The copyright holder of the other portion can do whatever he wants with that portion, and can sell the whole, but must provide access to the source code of the interpreter.
So one can sell the compiled script either way. The issue is only about source code, not about charging money. This is why I say it is irrelevant.
I'm in agreement with you, that regardless of if the compiled script does or does not constitute a work based on the AutoHotkey interpreter, as it's a GPL program, a link to the source code at AutoHotkey.com or to Github should be provided or written offer to provide the source code upon request. Ideally giving credit to the authors as well.
lexikos wrote:
15 Oct 2018, 05:55
Regarding the GNU FAQ about interpreters, "When the interpreter just interprets a language" is quite vague. Does AutoHotkey "just interpret a language"? You also omitted an important part:
However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way.
Consider two hypothetical scenarios:

1. I take a GPL-licensed library and use it to implement critical functionality in my C++ program. I required to provide complete source code for my program when distributing it, otherwise I would have no legal right to use or distribute the library within my program, since I am not complying with the terms set out in the license.

2. I take a GPL-licensed library and put it into an interpreter, then use that library via the interpreter to implement critical functionality in my scripted program. I then "aggregate" the interpreter with my script and distribute it. This provides a loophole which allows my program, a simple executable seemingly no different from my C++ program, to be distributed without providing complete source code. Or does it?
I omitted this part, as was specifically referring to if the interpreter can impose restrictions on the user's copyright of their script. And the AutoHotkey interpreter can not. The AutoHotkey interpreter can not infringe upon the copyright and intellectual property of the user's script, and indeed they are separate entities as acknowledged by the GNU GPL. That the user's script and the AutoHotkey interpreter are merely "bundled" in the compiled EXE, makes the distinction and difference between the entities even clearer.

In the next part, they are talking about the interpreter itself, not a user's script. That is, if the AutoHotkey interpreter is or is not dynamically or statically linking to libraries. This is separate to the point of the user's copyright of the script that they wrote.

Furthermore, you have claimed that as a AutoHotkey_L developer that the project contains your intellectual property and copyright, which is distinct and separate from what was developed by Chris Mallett. Therefore you should realize that users of AutoHotkey that create scripts, have the same claim to intellectual property and copyright for their scripts, distinct from the AutoHotkey source code and AutoHotkey interpreter. The user's script is their intellectual property.

Also, please remember to put this in context with "Fair use". The user has the "Fair use" right, under the GNU GPL, to use the AutoHotkey source code for script creation, and the right to distribute the AutoHotkey interpreter with their script.

From GNU GPL
“Fair use” is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.
From lexikos
lexikos wrote:
15 Oct 2018, 05:55
I do not believe that merely using different technologies to build a derived work provides this loophole. Maybe you do. I've read there are similar issues with dynamic vs static linking of libraries, and that the answer is basically still unknown since it hasn't really been tested in court. Who wants to be the one to test it?
There is no "loophole" in regards to the GNU GPL explicitly stating users have the right to distribute, sell (charging for distribution), and "Fair use" of GPL software, to include the AutoHotkey interpreter.

What you refer to as derived work, is specified by the GNU GPL as "derivative work". This is usually put in the context of modified source code, which is linked to, continues to use, and interdependent on the code before. Furthermore, the legal definition is that the derivative work contains portions of the original within itself. That is, AutoHotkey_L is a derivative work of AutoHotkey_Basic, thus must be under the GPL.

A user's script or compiled EXE could be considered output or data, thus AutoHotkey developers can not impose restrictions or terms on it, and it is separate and distinct. In fact, to create the script itself, it's not necessary for the user to use AutoHotkey source or interpreter. They could have made it on notepad or LibreOffice. Thus a user script is allowed to have it's own copyright, to license it as they please, or to sell it. And if that user's data is processed through an interpreter, the developers of the interpreter can't infringe upon the copyright or licensing of such data. Which is what appears to be happening in a compiled AutoHotkey EXE. The user script (data) is processed through the AutoHotkey/GPL interpreter, thus it's licensing can be separate.

Think of if you used GPL software such as LibreOffice to create and write an e-book or research paper. The developers of LibreOffice can not claim that your book was a derived or derivative work in which they can lay claim to. The developers also can't claim that since you read the e-book with LibreOffice (data processed through their application), that the e-book belongs to them nor can they reject the e-book's author use of GPL'd LibreOffice. Even if people need to use LibreOffice to open your e-book or if you bundled LibreOffice with your e-book, they are still considered separate copyright and under separate licensing.

From lexikos
...with dynamic vs static linking of libraries, and that the answer is basically still unknown since it hasn't really been tested in court. Who wants to be the one to test it?
Cases are not usually brought to court on dynamic linking grounds, because that is a technical term that differs from terminology usually used in copyright law, where they talk about creative works. However, in the ONLY case that ever made it to court regarding dynamic linking and derivative work, Galoob v. Nintendo (https://en.wikipedia.org/wiki/Lewis_Gal ... erica,_Inc.), the Court of Appeals ruled that derivative work "must incorporate a portion of the copyrighted work in some form". Which differs from and arguably nullifies the technical term of "dynamic linking". A user's script, does not incorporate source code into itself from the interpreter. The user script are instructions to the interpreter, thus arguably data processed by the interpreter.

Nintendo attempted to sue Galoob, and failed. Nintendo claimed that Galoob's modifications of their game was a derivative work. The Court said differently, and that those modifications or "derivative work" must incorporate a portion of the copyrighted work. A user's script does not consist of source code, rather instructions. A compiled AutoHotkey EXE is merely bundling of the user script (instructions) with the AutoHotkey interpreter. This bundling still means the 2 parts are separate items, that can always be separated. And in fact, Galoob v. Nintendo, reinforced "Fair use". Therefore I remind people to read what the GNU GPL has to say about the "Fair use" and distribution of GPL programs.

The requirement of the GNU GPL is to provide links to the source code (modified or unmodified) of what is under the GPL (or what is "bundled" with), not the user's script. That the user used a GPL program to create it, does not mean he forfeits his intellectual property, copyright, or right to sell his scripts. And based on researched and known legal precedent, the user script is not a derivative work, as it doesn't contain actual source code from the interpreter (within itself) and is a separate item.

From the GNU GPL
"The output of a program is not, in general, covered by the copyright on the code of the program. So the license of the code of the program does not apply to the output"

"The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone."
Does the GPL allow me to add terms that would require citation or acknowledgment in research papers which use the GPL-covered software or its output? (#RequireCitation)

No, this is not permitted under the terms of the GPL. While we recognize that proper citation is an important part of academic publications, citation cannot be added as an additional requirement to the GPL. Requiring citation in research papers which made use of GPL'd software goes beyond what would be an acceptable additional requirement under section 7(b) of GPLv3, and therefore would be considered an additional restriction under Section 7 of the GPL. And copyright law does not allow you to place such a requirement on the output of software, regardless of whether it is licensed under the terms of the GPL or some other license.

In what cases is the output of a GPL program covered by the GPL too? (#WhatCaseIsOutputGPL)

The output of a program is not, in general, covered by the copyright on the code of the program. So the license of the code of the program does not apply to the output, whether you pipe it into a file, make a screenshot, screencast, or video.

Note- the below is referencing exceptions. And of course contents of the original program still retain their original copyright and license.

The exception would be when the program displays a full screen of text and/or art that comes from the program. Then the copyright on that text and/or art covers the output. Programs that output audio, such as video games, would also fit into this exception.

If the art/music is under the GPL, then the GPL applies when you copy it no matter how you copy it. However, fair use may still apply.

Keep in mind that some programs, particularly video games, can have artwork/audio that is licensed separately from the underlying GPLed game. In such cases, the license on the artwork/audio would dictate the terms under which video/streaming may occur. See also: Can I use the GPL for something other than software?
Lastly, why wouldn't developers of AutoHotkey not want to encourage use of, promote, and be proud of commercial applications written in the AutoHotkey language. Particularly since the original creator of AutoHotkey, Chris Mallett, gave public approval multiple times to do such. Seems like real world commercial use would be a point of pride for the AutoHotkey community, and if it was not possible, a devastating blow.
lexikos
Posts: 9494
Joined: 30 Sep 2013, 04:07
Contact:

Re: Question about code publishing

15 Oct 2018, 20:35

SOTE wrote:
15 Oct 2018, 07:57
I omitted this part, as was specifically referring to if the interpreter can impose restrictions on the user's copyright of their script. And the AutoHotkey interpreter can not.
Speaking generally, the GPL can and does impose restrictions on a work as a whole, including the parts which you hold copyright for. You can choose not to accept the license and its restrictions, but in that case you have no right to distribute the work as a whole, since it contains parts that you would have no license for.
In the next part, they are talking about the interpreter itself, not a user's script. That is, if the AutoHotkey interpreter is or is not dynamically or statically linking to libraries.
Clearly, "the interpreted program is effectively linked to the facilities it uses through these bindings" is talking about the script. AutoHotkey contains numerous libraries; it is not merely an interpreter.
That the user's script and the AutoHotkey interpreter are merely "bundled" in the compiled EXE [...]
... is debatable. A linker combines multiple binaries into one file, forming a program which would generally be considered a derived work. How is this different? The base executable (AutoHotkeySC.bin) actually cannot work without having been combined with a script into one file.
Therefore you should realize that users of AutoHotkey that create scripts, have the same claim to intellectual property and copyright for their scripts, distinct from the AutoHotkey source code and AutoHotkey interpreter. The user's script is their intellectual property.
Of course. But that does not give them the right to distribute a derived work of AutoHotkey without complying with the license terms.
The user has the "Fair use" right, under the GNU GPL, to use the AutoHotkey source code for script creation, and the right to distribute the AutoHotkey interpreter with their script.
Again, one must comply with the terms of the license to have any rights granted by that license. The debate is about interpretation of the terms.
A user's script or compiled EXE could be considered output or data, thus AutoHotkey developers can not impose restrictions or terms on it, and it is separate and distinct.
The compiled EXE is not output of AutoHotkey, nor merely output of Ahk2Exe. It contains an AutoHotkey binary, compiled from AutoHotkey source code (though different portions of the code than AutoHotkey.exe). It cannot restrict what the user does with the script part independently of the compiled EXE, but the GPL most certainly can restrict what the user does (legally) with the compiled EXE.
This bundling still means the 2 parts are separate items, that can always be separated.
That isn't necessarily the case if the executable has been compressed.
Thus a user script is allowed to have it's own copyright, to license it as they please, or to sell it.
Absolutely, if it is done independently of anyone else's intellectual property. That is not the case for compiled scripts.
Lastly, why wouldn't developers of AutoHotkey not want to encourage use of, promote, and be proud of commercial applications written in the AutoHotkey language.
If I did, it would not affect my interpretation of the GPL or the status of compiled scripts.
The Court said differently, and that those modifications or "derivative work" must incorporate a portion of the copyrighted work.
Unlike the Game Genie device, which did not incorporate any portion of Nintendo's work, a compiled EXE clearly incorporates AutoHotkey. Whether this constitutes a derived work is debatable, which has been my point from the beginning. What you've written seems convincing enough, but it is not sufficient to dispel all doubt as there is much that is dependent on your (or someone else's) personal interpretation. As long as there is doubt, my advice will remain the same.
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

16 Oct 2018, 03:51

As I mentioned in the court ruling, Lewis Galoob Toys, Inc. v. Nintendo of America, Inc. (https://en.wikipedia.org/wiki/Lewis_Gal ... rica,_Inc.), the court does not recognize the technical term of "dynamic linking" and "binding", as portions of the programming community does, but rather if the creative work is derivative by having portions of the original contained within itself and in a permanent form. Remember, the only case to make it to court, is Nintendo losing and Galoob winning (who had the "dynamically linked plug-in/add-on).

The court also went even further into defining what a derivative work is, in regards to software. The Appellate court rejected Nintendo's claim of "dynamic linking" and "derivative work"
"[a] derivative work must incorporate a protected work in some concrete or permanent form."
Not only this, but the Appellate court reaffirmed the right of "Fair use". And which the GNU GPL also explicitly reaffirms this as well (https://www.gnu.org/licenses/old-licens ... GPLFairUse).

And more precisely, Galoob had a plug-in/add-on that Nintendo claimed was "dynamically linked" and directly modifying their program by giving instructions. Galoob's Game Genie had no independent purpose and could only be used in conjunction with Nintendo's NES. The court ruled against Nintendo and their claims. The plug-in/add-on of Galoob was not considered dynamically linked nor a derivative work, because it could be separated and that code from the main program was not contained within the plug-in/add-on, so that it could be called a derivative work.

From lexikos
That isn't necessarily the case if the executable has been compressed.
A user's AutoHotkey script can be separated, whether compressed, obfuscated, or encrypted. Because it can be decompressed, deobfuscated, and decrypted. Further, the GNU GPL makes no such restrictions on the use of compression, obfuscation, or encryption. There is nothing in the GNU GPL that restricts, prohibits, or speaks against compression, obfuscation, or encryption.

From lexikos
The compiled EXE is not output of AutoHotkey, nor merely output of Ahk2Exe. It contains an AutoHotkey binary, compiled from AutoHotkey source code (though different portions of the code than AutoHotkey.exe). It cannot restrict what the user does with the script part independently of the compiled EXE, but the GPL most certainly can restrict what the user does (legally) with the compiled EXE.


From GNU GPL
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?

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.

Some programs copy parts of themselves into the output for technical reasons—for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.

As it happens, Bison can also be used to develop nonfree programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for nonfree programs.

Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require that these designs must be free?

In general this is legally impossible; 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 his own data, the copyright on the output belongs to him, 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.

So the only way you have a say in the use of the output is if substantial parts of the output are copied (more or less) from text in your program. For instance, part of the output of Bison (see above) would be covered by the GNU GPL, if we had not made an exception in this specific case.

You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.
In terms of output, I was referring to instructions (or data) processed through a GPL interpreter, where developers of compilers or interpreters attempts to lay claim to it. The GNU GPL specifically states, in addition to the law, that the developer has no such claim to the output or code that the user wrote. For instance, a user develops a game application with a GPL compiler or uses a GPL interpreter, the developers can't claim the output or code were derivative works that belong to them.

The GNU GPL then added confusion about Bison, where it copies a portion of itself into the output. They then make it clear that they permit nonfree/commercial use of Bison without restriction. This is likely the case not so much out of the goodness of their hearts, but because of legal copyright definitions.

In terms of restrictions on a compiled EXE, that is not done by the GNU GPL. It's the law and courts that decide the matter. And whether or not to pursue a violation comes from the copyright holders. As far as legal precedent. This has already been established in the Nintendo vs Galoob case. Any attempt to pursue the matter, would have to face the already made legal decision and definitions. The courts will be looking at if the compiled EXE is a derivative work that violates copyright, not simply if there is a "binding", "linking", "bundling", or any other computer jargon. And Nintendo lost the case, the court made the "dynamic linking" computer jargon irrelevant, and Galoob's code was found not to be a derivative work of their main program.

From lexikos
Unlike the Game Genie device, which did not incorporate any portion of Nintendo's work, a compiled EXE clearly incorporates AutoHotkey.
Reading the court case of Nintendo vs Galoob is a helpful guide to how the courts see it. Because Nintendo's position was indeed that Game Genie's plug-in/add-on was a "dynamically linked derivative work", thus was part of Nintendo's main program. So the counter argument, concerning AutoHotkey, appears to be that by the script and AutoHotkey interpreter being bundled together by what is called a "compiled" EXE, they are one. The answer looks to be no, from the legal perspective. This argument is similar to what Nintendo was making against Galoob. Nintendo was claiming that Galoob's add-on/plug-in was "dynamically linked" and a derivative work of their program. The Appellate court rejected Nintendo's claim, because the plug-in/add-on could be separated, there was no permanent change to the source/main code, and the source/main code was not contained within the separated plug-in/add-on. The user's AutoHotkey script can be separated, there is no permanent change to the AutoHotkey interpreter, and there is no source code or interpreter code contained within the separated script.

AutoHotkey can not nor does not inject source code into a user's script, which is probably more aptly described as a document of instructions. The script itself does not contain source code nor code from the interpreter. And the GNU GPL even went into this more precisely by clarifying interpreters. The AutoHotkey script is just data processed by the AutoHotkey interpreter, so there is no requirements about it's licensing. Even further, the AutoHotkey script can be created with numerous other software, such as Notepad, LibreOffice, etc... This only strengthens the position of it being more like a document of instructions, not a derivative work (as defined by the court) that contains portions of source code within itself.

And the court's definition of what is a "derivative work" for the purposes of copyright deviates substantially from the layman's commonly used terms of "derived" or "linked". The courts have specific tests, often comparing the similarity of structure/content and purpose between 2 items, that they use. It is here where I think the FSF and GNU GPL purposely blurs definitions a bit (to include what appear to be contradictions) or attempts to create "viral infection" through association, and also where commonly used computer jargon creates confusion. However, we should focus too on the legal definitions in copyright law versus just computer jargon, because that will ultimately decide the outcome.

GNU GPL
If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.
From lexikos
Clearly, "the interpreted program is effectively linked to the facilities it uses through these bindings" is talking about the script. AutoHotkey contains numerous libraries; it is not merely an interpreter.
From the GNU GPL
However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them. These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to link dynamically with these specific libraries, then it too needs to be released in a GPL-compatible way.
Note- That the GNU GPL is stating this part in the secondary paragraph, not the primary paragraph, where they state there are no requirements about licensing data processed through an interpreter.

As mentioned, the court does not recognize "dynamic linking" in the way that the programming community does. Rather, they will look at if the user's script is a derivative work that contains portions of the interpreter or source code (within itself) in a permanent way. This is because copyright law is based on original and creative works. Let us remember that the claim brought to the court will not be based on just if a "dynamic link or binding" occurred, but on if a violation of copyright occurred. So it is better to think in terms of copyright law, not computer lingo.

So when we are talking about "bindings" and "linked", are those permanent bindings and linking where the script and interpreter can't be separated from each other. In other words, where the copyright's holder original work is permanently contained within the other item in question. Keep also in mind, that this reflects on "Fair use" as well. The answer is no, the bindings and links are not of a permanent nature. If a compiled executable was made, where the user's portion and the original copyrighted work, source code, or interpreter could not be separated, then that is a permanent. This is why in a previous posting, I stated the AutoHotkey situation is easier, not harder to determine. Because the script and interpreter are more bundled together, than actually "compiled" in the traditional sense.

That the user's script and AutoHotkey's interpreter can be separated from each other, means their respective copyrights can be separate. And that is what the court appears to be looking at in a claim, as they did in Nintendo vs Galoob. Galoob's add-on/plug-in, could be separated from the main code, upon separation there was no part of the main code in the add-on/plug-in, and this separation resulted in no permanent change to the main code. This then means you are dealing with 2 distinct items, versus a true and permanent merging and intermixing into 1 item.

In addition to selling his script (under his own copyright), the user also has the right of distribution, selling (charging for distribution), and "Fair use" of the AutoHotkey interpreter under the GNU GPL. As long as he meets the requirements of the GNU GPL of linking to the source code or a written offer to provide it upon request.
Of course. But that does not give them the right to distribute a derived work of AutoHotkey without complying with the license terms.

Again, one must comply with the terms of the license to have any rights granted by that license. The debate is about interpretation of the terms.
In this we are in agreement, if distributing AutoHotkey (along with selling any script of their's), users should comply with the GNU GPL requirements. And to comply with the terms of the GNU GPL, they should provide a link to the AutoHotey/GPL source code (modified or unmodified) or have a written offer to give it upon request. It's important to clarify what is under the GPL, so that the users know their rights on what they can do with it, and that they have access to the GPL source code. Keep in mind this is distinct and separate from the user's script, copyright, and license.

AutoHotkey_L VS AutoHotkey_Basic VS User's script

I detected possible confusion on this matter, so think it might be good to clarify the distinction. AutoHotkey_L is a derivative work of AutoHotkey_Basic, because it directly contains portions of code from the original work (AutoHotkey_Basic) within itself (C++). AutoHotkey_L is a “new edition” of a preexisting work (AutoHotkey_Basic) with substantial similarity, thus a derivative that has to stay under the GPL. The 2 are intermixed and interdependent upon each other. In executable form, one would not be able to separate code of one from the other.

A user's AutoHotkey script can be created on any word processing software. The code written on the user's script can be separated from the AutoHotkey source (or interpreter) and is in a different programnotming language, C++ vs AutoHotkey. Thus distinguishing them from each other, from a legal perspective, and issues of copyright and licensing are much more clear. The user's code is not a "new edition" of the AutoHotkey source's or interpreter's code. The script of the user is different in purpose, content, coding language, and internal structure from that of the source or interpreter, and so is arguably not a derivative work and can be licensed by it's creator as they see fit. Even if the user's script is "bundled with", "linked to", or makes use of the AutoHotkey interpreter, separation and distinction between them can always be made.

And in terms of copyright, the AutoHotkey language in terms of who created it and named what, would arguably be a separate matter to the AutoHotkey source code. Meaning who has the right to call the terms used in the AutoHotkey language their own would be hotly contested.
DRocks
Posts: 565
Joined: 08 May 2018, 10:20

Re: Question about code publishing

18 Oct 2018, 17:41

This topic was an interesting read after the GNU doc..

So it is legal to sell a script that we made in the AHK langage.
But there are risks because of personnal interpretations.

So would YOU personnaly sell a worthy script with confidence that - you are fully legal of doing so - and that you would not fear having partial copyrights on the source code that you wrote?
SOTE
Posts: 1426
Joined: 15 Jun 2015, 06:21

Re: Question about code publishing

18 Oct 2018, 18:12

DRocks wrote:
18 Oct 2018, 17:41
This topic was an interesting read after the GNU doc..

So it is legal to sell a script that we made in the AHK langage.
But there are risks because of personnal interpretations.

So would YOU personnaly sell a worthy script with confidence that - you are fully legal of doing so - and that you would not fear having partial copyrights on the source code that you wrote?
I'm not sure if you were addressing the question to just me, but I will take a crack at. Anybody else can feel free to give their opinion.

I agree with the assessment that it does legally look possible to sell programs written in the AutoHotkey programming language, but that definitely comes with risks. It's also probably unlikely anybody would ever take a case to court, because it looks to be extremely difficult to win such a copyright claim, due to AutoHotkey's history and situation, and due to the legal precedent of Galoob v. Nintendo. How tolerant a person or company will be to any risks, is going to be different in each case. To mitigate a lot of the risk, the person or company should definitely give credit and link to the source code (AutoHotkey's source code, not their own). But, that comes with some negatives too, such as unscrupulous people who might try to get the program's source code (the script they wrote) will then know it's AutoHotkey and how to more precisely target it. Note, such a situation is definitely not unique to AutoHotkey, and affects all programming languages to various degrees. As a counter to such a situation for an AutoHotkey program, the person or company will more likely need to use obfuscation or encryption to protect their own source code/script. To understand what I'm saying in a real world example, would be the entirely AutoHotkey program of FastKeys, which uses encryption to protect it's source code. Which by the way, it also gives credit and links to the source code (not it's own source code, but that of AutoHotkey).

Various companies, schools, or IT departments might have no interest in selling any programs written in AutoHotkey, but instead have an interest in using it internally. As long as they were not releasing their program publicly, they likely don't have to worry about the requirements of giving credit and linking to the source. However, security might be an issue, where an AutoHotkey program might contain sensitive information. This is an issue with just about all scripting languages that are uncompiled, not just AutoHotkey. Here, the matter about obfuscation or encryption might be more of an interest. Lastly, I think that AutoHotkey is a fantastic programming language, with some advantages over similar languages in the automation and ease of use space on Windows. That's likely why anybody would even bother with considering it.
Last edited by SOTE on 19 Oct 2018, 03:12, edited 3 times in total.
DRocks
Posts: 565
Joined: 08 May 2018, 10:20

Re: Question about code publishing

18 Oct 2018, 19:09

Thank you, that makes alot of sense to me.

Return to “About This Community”

Who is online

Users browsing this forum: No registered users and 38 guests