Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate

OK to sell?


  • Please log in to reply
96 replies to this topic
Dewi Morgan
  • Members
  • 191 posts
  • Last active: Jun 07 2015 04:02 AM
  • Joined: 03 Oct 2005
Hee :D Careful - quoted out of context, that could be taken as saying "Ah, AutoIT could be written in a fortnight!" :P

corrupt
  • Members
  • 2558 posts
  • Last active: Nov 01 2014 03:23 PM
  • Joined: 29 Dec 2004

Hee :D Careful - quoted out of context, that could be taken as saying "Ah, AutoIT could be written in a fortnight!" :p


... and your point is?... Just kidding :lol: . From having a look at the AHK source, AHK is not really a modified version of AutoIT as many seem to assume as far as I can tell.

Nemroth
  • Members
  • 278 posts
  • Last active: Dec 31 2011 10:53 PM
  • Joined: 07 Sep 2004
I know it's an old post but when I read :

YOU ARE WRONG.

I think that Dewi Morgan didn't aswered to the real question, witch is :
WHAT IS PROTECTED BY THE (L)GPL ?
It is the AHK programm SOURCE CODE
This is the AHK SOURCE CODE witch is programmed in Visual C++, witch is under GPL, not the AHK scripts source codes. The AHK script source codes have NO AHK SOURCE CODE (witch is in C++) in them.
When I read :

YOU ARE BREAKING THE LAW.
[Edit]

I feel insulted. :shock:
GPL (LGPL and other) IS NOT A LAW, but a convention. You must respect his terms only if you decide to use it. Chris decided to use GPL, so he must respect it.
I do not see in the name of what I can be legaly linked by a decision which I didn't take, except in the case of a law. but the GPL isn't a law... So if I sell a compiled script that I made and that I don't want to put under the GPL, it's my decision, my choice, and I am able to do it, even if Dewi Morgan isn't agree with that. :) :) :)
I think that

a work containing the Program

is a programm containing whole or part of the AHK source code, so a programm witch is programmed in C++....

2. You may modify your copy or copies of the Program or any portion of it (AHK source code), thus forming a work based on the Program (AHK source code), and copy and distribute such modifications (of AHK source code) or work under the terms of Section 1 above, provided that you also meet all of these conditions:

What is in bold whas added by me.
I think that an AHK script source code have not to obey to the GPL, except if the person who wrote this script wishes to obey to GPL.
If I make an addition to AHK (adding a procedure programmed in Visual C++ and integrated in the AHK source code), I must respect the GPL, as the GPL applies to the AHK source code (and to the modifications, additions made to it). (It's just an example, as I don't know how to programm in C++).
But if I make an AHK script, witch isn't of course part of the AHK source code, I can choose what I want to do with my own creation, if I want to give it for free or sell it, if I want to put it under GPL or not, even if Dewi Morgan isn't agree with that. !!! :) :) :)
If the GPL applies to binary code and not source code, once again, Chris would have to pay something to MS for each copy of AHK downloaded as he use Visual C++ binary generated code (AHK source code is compiled with Visual C++) in AHK.

Dewi Morgan
  • Members
  • 191 posts
  • Last active: Jun 07 2015 04:02 AM
  • Joined: 03 Oct 2005
I think that your confusion may have come from a misunderstanding of what "source code" is. Source code is un-compiled code: it's the words and symbols you use to make your program. Compiled code is what happens when you compile source code :)

I think you may have meant "code, whether compiled or not" rather than "source code" in your argument, in which case the first half of my response is not relevant.

Also, in this thread we're talking about the .exe files, not about the .ahk script files. The GPL only becomes an issue for you if you compile your ahk script into an exe (to include GPL code into the same derivative work), AND you distribute it (to make it a copyright issue).

I think you may have been talking about merely the .ahk files, and not the compiled exes, in which case the second half of my response is not relevant, and I have never disagreed with you: in this case, you should probably have read my original post more carefully.


It is the AHK programm SOURCE CODE


I'm afraid not, no. GPL applies to source AND to the compiled result of that source.

Modifying the GPL to say differently does not make your changes true, even if you put them in bold :)

Do you think that software piracy is OK because copyright law only applies to the source code of programs, and it's OK to distribute the compiled binaries? Of course not. The same principle, and the same copyright law, is applied here.

Do you think that with music, I'm only breaking the copyright if I distribute the sheet music, and not a "compiled" audio file of the played music? Of course not, or the RIAA wouldn't hate MP3s :)

The GPL states very clearly:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:


I think you should probably read the whole GPL before commenting further. http://www.gnu.org/copyleft/gpl.html

GPL (LGPL and other) IS NOT A LAW, but a convention. You must respect his terms only if you decide to use it.


It is neither a law, nor a convention. It is a license, which falls under international copyright law.

[This is a simplification: there is no global copyright law, but that's outside the scope of this discussion. Copyright law is most definitely a law within the jurisdictions that matter for AHK, and so for this discussion.]

Under copyright law, if you are "copying" a product, you are bound to comply with the licence granted to you by the copyright holder. This applies if you are distributing any part of a GPL licensed product which does not fall under copyright waivers (such as "fair use", "personal use", copyright expiration, etc).


a work containing the Program

is a programm containing whole or part of the AHK source code, so a programm witch is programmed in C++....


Nope. There is also more than one way to include the comppiled code. One way is with what is known as a "linker". This is where stuff from various files is all put into one file. In the case of AHK exe files, the .exe is made up almost entirely of the interpreter, with a few bytes for your script.

But if I make an AHK script, witch isn't of course part of the AHK source code, I can choose what I want to do with my own creation, if I want to give it for free or sell it, if I want to put it under GPL or not, even if Dewi Morgan isn't agree with that. !!! Smile Smile Smile


Correct! ...at leat until you distribute it with a copy of something that is copyrighted to someone else. That happens when you compile it into an executable that includes an interpreter. Then you're not distributing something you made completely yourself, you're distributing it as a "derivative work", which is something that has a special (and slightly complicated) status under copyright law.

But basically, if you're including a GPL thing in your derivative work, then you MUST (no options) distribute your derivative work as GPL.

If the GPL applies to binary code and not source code, once again, Chris would have to pay something to MS for each copy of AHK downloaded as he use Visual C++ binary generated code (AHK source code is compiled with Visual C++) in AHK.


Incorrect.

First we must point to the distinction between the three different possible kinds of relationship between a library and the code that uses it.

Type 1: independant. If code is compiled with a compiler, and no libraries are used (not even stdlib.h or whatever), then that code, whether compiled or not, is 100% free of copyright to anyone other than the programmer.

This is the same as creating an image from scratch in photoshop - you have the copyright to the image.


Type 2: Dependant. If the code is compiled with external libraries that are linked (dlls) then those libraries may be distributed along with the program only in accordance with the copyright license of those library. They are considered as separate. This is often the case (or used to be in the past) with VB programs which require that you download the right version of vbrunXXX.dll. Microsoft has now licenced the VB dlls so that they can be distributed as you like, so this has become less of an issue.

This is equivalent to making an image that has carefully placed holes in, so that, when held up to a book, it will show another story.


Type 3: Derivative work. If the code is compiled with library functions included internally, so that the two cannot be separated, then the resulting code becomes a "derivative work", and he will need to read the licenses that come with his compiler.

This is equivalent to creating a collage of images in photoshop, for which the copyright for each image remains with the original photographers and artists, and the copyright for the composition remains with you. There's a LOT of complicated case history about collages and photomodified images :)


If the license is "incompatible with GPL", then he may not distribute AHK with both MS libraries and GPL libraries included in the same work.

To be incompatible with GPL, the libraries would require a clause stating that derivative works could not be placed under GPL. The MS libraries don't have any such clause, so far as I know, so are usable freely.

For example, I have a copy of JBuilder Personal Edition, which allows me to create programs, but since they will all include parts from Borland libraries, I may not distribute those compiled programs. Yes, I'm serious, I have a compiler for programs that I can't use. I'd need the "Pro" version to allow me to distribute them.

Here's the sample from that license:

2.1 Grant of License. Subject to the terms and conditions of this Agreement, Borland grants to you, as an individual, a personal, nonexclusive, nontransferable and limited license to install and execute the Product on one (1) computer to develop, compile (including byte code compile), test and use your own application programs and other works ("Works") solely for personal use. You may not use the Product or any Work for any commercial, business, governmental or institutional purpose of any kind ("Commercial Purpose").


IMPORTANT: Distributing applications generated with the Personal Edition is prohibited.


Incredible, huh? But it's what the license says. To distribute any part of their product, under copyright law, I must agree to this.

This is an extreme example of a license which is incompatible with the GPL :)


However, all that said, I retract my statement nontheless, because we have found what I believe to be a loophole. Because there is a utility called "exe2ahk" which can extract the script from an executable, they are not an "indivisible derivative work" (type 3), but just a "dependant work" (type 2), and so can be distributed under different licenses - the interpreter under the GPL, and your script under whatever license you wish.

Compiled C code doesn't have this luxury, though :)
Yet another hotkeyer.

corrupt
  • Members
  • 2558 posts
  • Last active: Nov 01 2014 03:23 PM
  • Joined: 29 Dec 2004
semi-brief summary ;) :

yourAHKscript.exe = script.ahk + AHK GPL licensed runtime code

yourAHKscript.exe is not considered GPL as a whole as script.ahk is not considered GPL unless you want it to be BUT the AHK GPL licensed runtime code IS so... if you decide to distribute yourAHKscript.exe you must follow the GPL license for the AHK portion of the .exe file (provide source code to AHK, copy of License, etc...).

You do not have to provide the .ahk source (the part you wrote in AHK code) for your script unless you want your script to be covered under the GPL.

BTW... All of this does not mean that you cannot sell a script. Even if you decide to put the .ahk code you wrote under the GPL as well you can still sell your script. GPL licensed works can be sold.

Edit: well... not sold per se but you can charge for making it available...

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.



AHKnow*
  • Guests
  • Last active:
  • Joined: --
I agree that:

. Exe2ahk's ability to separate the user's script from AutoHotkey

. The ability of the user to copyright their script, separate from the license and copyright of AutoHotkey.exe

. Chris's approval of commercial use of AutoHotkey

.... makes a very strong case that AutoHotkey can be used to create commercial programs, so long as the authors distribute the source for the interpreter or perhaps provide links to it and acknowledge AutoHotkey(?).

Also, I think this is a wise path for such scripting/programming languages. Commercial use of the scripting language will hopefully help create more developers, popularize it, and help the scripting language become more useful and advanced. It also appears to be in the best interest of the freeware community, as this can create a symbiotic relationship, in which they both help each other and perpetuate open source freeware. I think "Win, Win" scenarios are the best that you can get. These type of symbiotic relationships with freeware allow commercial interests to be in the position to "give back" to the freeware community, via direct donation, development, acknowledgement, etc....

On the otherhand, a lot of scripting and programming languages and freeware, die, rarely get used, are barely known, the creators of the freeware are unknown, webservers and space can not be maintained, etc... Like I typed, "Win, Win" is just the better path to follow.

  • Guests
  • Last active:
  • Joined: --

How difficult would it be to rewrite that code? ... Then, with the possible exception of things like the 'Random' command, the program would be yours to copyright as you would wish.

It would probably take a solid 2 or 3 weeks to write and test replacement code for AutoHotkey.exe. It would take much longer if ahk2exe were to be done too.

This may happen someday (especially if license freedom becomes an issue), but for now it seems best to defer it so that the time can be spent on other improvements.


I think it would be a good idea to re-write the AutoIt code, at some point in the future, since this would totally put a lot "those issues" to rest.

I would also like to state, that it appears that over time, that the distance between AutoHotkey and AutoIt will increase. But the differences will only be so much for various reasons....

Even if a code re-write was done, AutoHotkey and AutoIt will always be relatively closely related in comparison to other programming languages because of the origin and purpose of the programs. They are both, primarily automation scripting languages.

Even if AutoHotkey and AutoIt shared 0 code, the similarity of their purpose would probably have led to similar syntax. One just has to take a look at other automation languages like WinBatch, etc.... to see this.

The 2 programming languages, AutoHotkey and AutoIt, simply can't ignore each other or try to pretend the other does not exist. I think there will always be some level of competition between the 2, just because of the similarity of their purpose. Therefore, peaceful co-existence between the 2 is beneficial to all. Both, languages, can be very helpful to users.

sysop
  • Guests
  • Last active:
  • Joined: --
Ok, from reading this entire thread, I have come to understand that:

If I so choose, I could sell my AutoHotKey scripts commercially, or a compiled exe of my script, but only if I show them licensed as separate components with a copy of the AutoHotKey source code in order to comply with the GPL AND because Chris has given permission.

So this is what a section of my EULA for my commercial script/exe would look like, and the commercial distribution of my script/exe would also contain a copy of the AutoHotKey source code or at the very least a link to it.

SECTION II: Separation of Components

This SOFTWARE PRODUCT is licensed as separate components. Its component parts may be separated. The script component is licensed under the terms of this EULA. The script's interpreter component is licensed under the terms of the GNU General Public License (http://www.autoitscript.com/)


On a side note: I'm all for open source and free software, but I understand there are times when the effort might be worth a little compensation. Now I also more clearly understand the limitations of the GNU GPL and some of the problems it can create. It's not perfect, but at least there are other options for licensing. :)

Thalon
  • Members
  • 641 posts
  • Last active: Jan 02 2017 12:17 PM
  • Joined: 12 Jul 2005
Maybe AHK can get rid of GPL fully with v2?

If I sell a compiled script (where the interpreter-part is GPL):
Do I have to say the user what rights he has (so I would have to integrate a little statement?)?

Thalon

PhiLho
  • Moderators
  • 6850 posts
  • Last active: Jan 02 2012 10:09 PM
  • Joined: 27 Dec 2005

Maybe AHK can get rid of GPL fully with v2?

I believe Chris would be glad to do so.
But for this, one would have to bite the bullet and rewrite entirely the script_autoit.cpp file...
From what I understood, that's where all parts taken from AutoIt 3 are gathered, the remainder of the code is entirely made by Chris (or with a more liberal license, like the DllCall stuff).
Posted Image vPhiLho := RegExReplace("Philippe Lhoste", "^(\w{3})\w*\s+\b(\w{3})\w*$", "$1$2")

AHKnow*
  • Guests
  • Last active:
  • Joined: --

Ok, from reading this entire thread, I have come to understand that:

If I so choose, I could sell my AutoHotKey scripts commercially, or a compiled exe of my script, but only if I show them licensed as separate components with a copy of the AutoHotKey source code in order to comply with the GPL AND because Chris has given permission.

So this is what a section of my EULA for my commercial script/exe would look like, and the commercial distribution of my script/exe would also contain a copy of the AutoHotKey source code or at the very least a link to it.

SECTION II: Separation of Components

This SOFTWARE PRODUCT is licensed as separate components. Its component parts may be separated. The script component is licensed under the terms of this EULA. The script's interpreter component is licensed under the terms of the GNU General Public License (http://www.autoitscript.com/)


On a side note: I'm all for open source and free software, but I understand there are times when the effort might be worth a little compensation. Now I also more clearly understand the limitations of the GNU GPL and some of the problems it can create. It's not perfect, but at least there are other options for licensing. :)


I think this section of your EULA looks pretty good and covers everthing that was talked about here. I'm interested in what others think.

Perhaps the main goal of v2 should be focused on changing the license and getting rid of the AutoIt code. That alone, seems to be a bit of a project.

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004

Perhaps the main goal of v2 should be focused on changing the license and getting rid of the AutoIt code. That alone, seems to be a bit of a project.

Someday I'd like to have a less restrictive license such as the BSD-style (which is also much simpler). But the effort involved, compared to its benefit, produces a low score in the list of priorities.

Dewi Morgan
  • Members
  • 191 posts
  • Last active: Jun 07 2015 04:02 AM
  • Joined: 03 Oct 2005

However, all that said, I retract my statement nontheless, because we have found what I believe to be a loophole. Because there is a utility called "exe2ahk" which can extract the script from an executable, they are not an "indivisible derivative work" (type 3), but just a "dependant work" (type 2), and so can be distributed under different licenses - the interpreter under the GPL, and your script under whatever license you wish.


Amusingly, if you compile with the /NoDecompile switch, the above doesn't count.

Which means, if you use that switch, you "must" make your source code available under the GPL :lol: Rather defeats the point of the flag! :roll:

In most places, a legal action about copyright violation can only be brought by the copyright holder. So if you don't GPL your /NoDecompile'd code, then you could be sued for copyright violation by:
1) Chris (rather unlikely),
2) the authors and copyright holder of "script_autoit.cpp",
3) anyone who later gets to own the copyright, or
4) the FSF in certain circumstances.

Option 3 there could happen if the copyright for AHK or AutoIt belong to a business rather than individuals, and that business goes bust and becomes the property of some asset-stripping organisation determined to suck the business' intellectual property assets dry of every penny. Or if the company becomes the property of a company that makes a product that competes with your own, or has some other reason to take action against you.

Option 4 is where AutoIt or Chris assign copyright to the FSF. The FSF has a policy of taking action on every violation they encounter, though in the first instance they tend to send a cease&desist rather than going straight to court.

All this is unlikely, though: very unlikely, even. But still, by distributing code compiled with /NoDecompile and not putting it under GPL, you'd be doing something illegal.

Yes, this is of course very, very farcical, and is the kind of thing that makes me strongly against copyright in any form, and the GPL in particular.
Yet another hotkeyer.

Thalon
  • Members
  • 641 posts
  • Last active: Jan 02 2017 12:17 PM
  • Joined: 12 Jul 2005
@Dewi Morgan
Also with the switch the interpreter and your code are 2 independend files put into one. It's still possible to extract the code without touching the interpreter (also it does need some knowledge, but this was previously also necessary via password).
So only the interpreter is under GPL in my opinion.

Thalon

Dewi Morgan
  • Members
  • 191 posts
  • Last active: Jun 07 2015 04:02 AM
  • Joined: 03 Oct 2005
Really? D'oh, there I go looking silly, leaping to assumptions.

So, the "NoDecompile" flag doesn't actually mean it can't be decompiled? In that case, yeah, I won't worry about the GPL, as the interpreter remains separable from the script.
Yet another hotkeyer.