Recent

Author Topic: Component and GPL  (Read 7182 times)

ginoo

  • Jr. Member
  • **
  • Posts: 65
Component and GPL
« on: April 09, 2024, 06:48:02 pm »
Sorry to bother you, I wrote a wizard for the lazarus ide and someone on the mailing list said it has to be GPL. But is it true, does a wizard for lazarus have to be GPL?
This project of mine is not GPL (at least not this one) it is interesting to clarify this. If anyone wants to do some commercial component before I run away from lazarus.
Many use lazarus for a living and writing a component with its own wizard should be your decision whether to make it GPL or what to do with it.
Or if it has the wizard for the IDE must it be GPL?

Then TMS and others should be GPL too.

wp

  • Hero Member
  • *****
  • Posts: 12072
Re: Component and GPL
« Reply #1 on: April 09, 2024, 07:12:13 pm »
I'm not a license specialist, I would say: of course you can write a non-GPL wizard for Lazarus. But you must go the correct way: you can use the interface units in components/ideintf, but you cannot use anything from the folder "ide" (for this, your wizard would have to be GPL).

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11605
  • FPC developer.
Re: Component and GPL
« Reply #2 on: April 09, 2024, 07:14:57 pm »
Where is that written?

wp

  • Hero Member
  • *****
  • Posts: 12072
Re: Component and GPL
« Reply #3 on: April 09, 2024, 07:21:31 pm »
COPYING.txt in the Lazarus folder (for "ide" being GPL), README.txt in components/ideintf (for "ideintf" being LGPL)
« Last Edit: April 09, 2024, 07:23:46 pm by wp »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11605
  • FPC developer.
Re: Component and GPL
« Reply #4 on: April 09, 2024, 07:25:40 pm »
COPYING.txt in the Lazarus folder (for "ide" being GPL), README.txt in components/ideintf (for ideintf being LGPL)

Ok. The wording is totally nonsense of course (if you link LGPL and GPL units together, it is still a GPL derived work, so declaring those units LGPL means nothing), but at least it is written somewhere and that should at least be considered a letter of intent.

Thaddy

  • Hero Member
  • *****
  • Posts: 14850
  • Censorship about opinions does not belong here.
Re: Component and GPL
« Reply #5 on: April 09, 2024, 07:30:51 pm »
wp is right. in the case that right now, the wizzards need to be compiled in. The generated code, however, is not.
That may change when the full package support is in place and a recompile is no longer necessary.
That is as long as wizzard/designtime is really decoupled from generated code.
So right now, strictly speaking, wizzards or design time component parts are GPL, not LGPL or free.
The generated code, however, is a different matter.

That said, everybody knows the recompilition is a pain, and it reflects on the question you asked:
Yes, design time wizzards are for now GPL'd but that is very strictly speaking.
And no, any code generated from that design time wizzard is not licensed at all.

The issue is somewhat solved in the future.
« Last Edit: April 09, 2024, 07:54:09 pm by Thaddy »
Remember the Medway disaster..

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10010
  • Debugger - SynEdit - and more
    • wiki
Re: Component and GPL
« Reply #6 on: April 09, 2024, 07:35:23 pm »
I guess I am that "someone".

The answer depends what packages you use.

The packages IdeIntf, BuildIntf are LGPL with the same linking exception as the LCL => you can use any unit from those packages, and your wizard can have any license you want. You can make it close source, and sell it.

It is the full indent of those packages (IdeIntf, BuildIntf) to allow commercial add-ons to the IDE.



But, units that are in the folder ide/* (or any of it's subfolders) are GPL. So those can't be used. They can only be used with other GPL code.



If we are talking about this https://lists.lazarus-ide.org/pipermail/lazarus/2024-April/240779.html

Then 2 out of the 3 problems you listed, can be solved, already.

The 3rd can probably be added to the *Intf packages too.



There sometimes are bits missing in the *Intf packages. Simply by oversight, or because no one though they would be needed. If they are needed they should be added.

But if you add a request for something to be added, please describe what you want to to with it.
There may be more than one way to add it, and we (the team) want to be part in choosing wich way.



From what I know / My understanding is

The entire idea behind this system of having the Intf* packages is:

- The (original) team wanted to allow for add-ons. And that does include commercial addons.
- But, the IDE should be GPL, so no one could take a (minor modified) copy of the IDE and sell the IDE. The IDE itself should be protected.


In that spirit, additional access to interact with the IDE, and allow plugins to access more of the options in the IDE, those Intf* packages will be extended as needed.


Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10010
  • Debugger - SynEdit - and more
    • wiki
Re: Component and GPL
« Reply #7 on: April 09, 2024, 07:46:17 pm »
COPYING.txt in the Lazarus folder (for "ide" being GPL), README.txt in components/ideintf (for ideintf being LGPL)

Ok. The wording is totally nonsense of course (if you link LGPL and GPL units together, it is still a GPL derived work, so declaring those units LGPL means nothing), but at least it is written somewhere and that should at least be considered a letter of intent.

That is, why those Intf* packages (like the LCL) are "modified LGPL"
COPYING.modifiedLGPL.txt

From my understanding (but I have no background as layer...):
- You can link your units to the mLGPL units, and you can ship the resulting .o / .ppu files. Or resulting dll.
- However you can not ship a pre-build IDE with your non-GPL packages linked into.

Such an IDE however AFAIK can be build by the end user. Provided they do not ship the result.
And provided they have a license of the add-on copyright holder to use the add-on in a build with the IDE.






paweld

  • Hero Member
  • *****
  • Posts: 1061
Re: Component and GPL
« Reply #8 on: April 10, 2024, 07:14:47 am »
@Martin_fr
Quote
- But, the IDE should be GPL, so no one could take a (minor modified) copy of the IDE and sell the IDE. The IDE itself should be protected.
The GPL does not prohibit selling software covered by it, it simply forces the source code of: solutions that are under the GPL or use GPL-licensed solutions to be made available.
Best regards / Pozdrawiam
paweld

paule32

  • Full Member
  • ***
  • Posts: 233
Re: Component and GPL
« Reply #9 on: April 10, 2024, 07:57:51 am »
nearly all my projects runs under MIT license's as non-profit.
but, you can use it as profit license's, later (if you re-firm your organization or account name (on github)).

MIT allows to use the source code in commercial projects, but have the exception, that all the original code have to ship with the notice of the origin.
This can be done as/into a splash screen by the software.

And, you can undersell your own solutions by own sister account's - so you don't have no cost's, but different product name's.

Note: This is a little gap by the license law.
So, you have to know your decision's !

Because - it's like a so called snowball system...
when someone use your code, and don't put a notice of the developer's result, than it could fall out on your feets...

But please: THIS IS COMING NOT FROM ME !!!
« Last Edit: April 10, 2024, 07:59:52 am by paule32 »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11605
  • FPC developer.
Re: Component and GPL
« Reply #10 on: April 10, 2024, 09:44:32 am »
That is, why those Intf* packages (like the LCL) are "modified LGPL"
COPYING.modifiedLGPL.txt

From my understanding (but I have no background as layer...):

Everything IMHO, since I'm of course not a lawyer, but do know the basic licensing principles. The problem is easy to explain:

The changing of the licensing of the intf units is fine if you only link to those units. (and those units don't use GPL units). GPL however is a linking license, not a USES license, as it says nothing about language importing mechanisms. And as soon as you link GPL and proprietary units together to form an executable (AND DISTRIBUTE IT), the GPL applies, no matter if there are some LGPL units in between. 

In short: the licensing only covers the unit with the license, and doesn't say anything about the other units in the EXE (direct or indirect doesn't matter)

Since distribution is needed, it is a stumbling block in particular for creating big prebuilt lazarus IDEs distributions.

Quote
- You can link your units to the mLGPL units, and you can ship the resulting .o / .ppu files. Or resulting dll.
- However you can not ship a pre-build IDE with your non-GPL packages linked into.

I know what the intentions are, but the current licensing does not cover that intention. I already tried to raise this when writing the "licensing" wikipedia entry, and again at a Detlef get together in Nieuwengein (where several component builders were present, and afaik you too).

The times I raised it with Mattias, he mumbled something about "but we know the intention and won't prosecute", but it is not written clear anywhere in the legal texts and the written down licensing clauses don't even cover the intentions in concept.

Probably the GPL text should get some exception added that it doesn't apply when interfacing through the documented interface, units X,Y and Z.

And licensing intentions shouldn't come down to what is written in a world writable wiki or mail archives, but should be in some clear text in the repo or the licensing options in the IDE.

Quote
Such an IDE however AFAIK can be built by the end user, provided they do not ship the result.
And provided they have a license of the add-on copyright holder to use the add-on in a build with the IDE.

If that is the intention (no prebuilt lazarus distributable with incompatible licenses (and that possibly includes even MPL and other GPL incompatible(according to FSF) but common open source licenses), then you don't need a special license for the interface. Everything designtime/IDE GPL would also cover that.

And that intention (no modified lazarus distribution) is never stated clearly anywhere. Regardless how you take it, the intentions are vague and the licensing doesn't fit any interpretation of the intentions (and then specially the distribution of Lazarus binaries with combined licensing, commercial, or formally  incompatible).

Worse, the text does nothing to reassure component builders or other third party builders.
« Last Edit: April 10, 2024, 09:48:00 am by marcov »

ginoo

  • Jr. Member
  • **
  • Posts: 65
Re: Component and GPL
« Reply #11 on: April 10, 2024, 01:59:49 pm »
Sorry, I thought I deleted the post.
My reflection and I hope it is correct. I started with some code without knowing anything about the GPL nature of the IDE. Now I fixed it by removing all references to the IDE using only IdeIntf.
But only I use the component and I am a programmer. If it is for personal use (even for commercial applications) I think it can be done as Lazaris IDE is also GPL and I can use it to make commercial applications, so if I make a wizard for internal use that uses the Lazarus IDE units it follows the same logic , so I can create commercial applications. But I can't sell the wizard any more than I could sell Lazarus itself.
Another solution is to GPL only the wizard and not the rest
« Last Edit: April 10, 2024, 06:46:56 pm by ginoo »

paule32

  • Full Member
  • ***
  • Posts: 233
Re: Component and GPL
« Reply #12 on: April 12, 2024, 04:42:31 pm »
with GPL, you can do commercial, yes.
But the profit of these goals are limited to:
- a device, where your product (software) will be deliver
- the costs for Porto and Packaging

This limit can be $5 or similar.
GPL is not intended to make big money.

If you would like make big money, then you could take a look to the Delphi CE (Community Edition) first, before you buy a professional version of Delphi or RAD Studio.
I can point you to Mathias - he can give you more details.

With the Delphi CE Version, you can make money on a limit of $5.000 per year !!!
If you plan a marge of 1001 copies of your super dubbed wizard,  in a year, then you could decide to stay on fpc.
Because $5 * 1001 = $5005 - a profit of $5 - for a beer, a cola ?

Is this your intention ?

paweld

  • Hero Member
  • *****
  • Posts: 1061
Re: Component and GPL
« Reply #13 on: April 13, 2024, 08:02:30 am »
Quote from: paule32
with GPL, you can do commercial, yes.
But the profit of these goals are limited to:
- a device, where your product (software) will be deliver
- the costs for Porto and Packaging

This limit can be $5 or similar.
The GPL in no way determines how much you can earn from your work. There is simply one condition you must always make the source code available.
The GPL allows the person who bought the solution from you to share the sources (for free or for money) with others
Best regards / Pozdrawiam
paweld

ginoo

  • Jr. Member
  • **
  • Posts: 65
Re: Component and GPL
« Reply #14 on: April 13, 2024, 09:36:39 am »
with GPL, you can do commercial, yes.
But the profit of these goals are limited to:
- a device, where your product (software) will be deliver
- the costs for Porto and Packaging

This limit can be $5 or similar.
GPL is not intended to make big money.

If you would like make big money, then you could take a look to the Delphi CE (Community Edition) first, before you buy a professional version of Delphi or RAD Studio.
I can point you to Mathias - he can give you more details.

With the Delphi CE Version, you can make money on a limit of $5.000 per year !!!
If you plan a marge of 1001 copies of your super dubbed wizard,  in a year, then you could decide to stay on fpc.
Because $5 * 1001 = $5005 - a profit of $5 - for a beer, a cola ?

Is this your intention ?
There was a lot of confusion. I have a wizard that now has no connection with the ide.
But even if it had the ide connection, I use it just for myself. So at this point it is like one modifying lazarus for himself and using it to develop a commercial application. Can he do that to make his own commercial software? Yes. The same for the wizard (now it no longer depends on the ide so the problem is gone) I use it only for myself.
The problem arises if I give it to others, but that is not my case, and in any case now that I have removed the dependencies from the ide I might as well. The dipendence is with IdeIntf.
« Last Edit: April 13, 2024, 11:25:40 am by ginoo »

 

TinyPortal © 2005-2018