Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2016-05

components\aggpas\gpc - non-commercial use only

21 messages · 6 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Denis Kozlov

Hi,

Licensing terms of "components\aggpas\gpc" state that it is free for non-commercial use only. Should it even be allowed to be part of Lazarus components?

For this reason it was excluded from Debian packaged Lazarus, as discussed here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708695

We could try getting an exception for Lazarus from the author: http://www.cs.man.ac.uk/~toby/alan/software/#Licensing

In the meantime, aggpas could be moved to CCR, to keep Lazarus clean and free.

Regards,
Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160516/326dc2bb/attachment.html>

Reply by email

Graeme Geldenhuys
to Denis Kozlov
Denis Kozlov wrote
Licensing terms of "components\aggpas\gpc" state that it is free for non-commercial use only. Should it even be allowed to be part of Lazarus components?

This was discussed before and the licensing information (readme) was updated. The GPC code is totally optional and NOT used by default in yes it is fine being there.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Denis Kozlov
Graeme Geldenhuys wrote
This was discussed before and the licensing information (readme) was updated. The GPC code is totally optional and NOT used by default in yes it is fine being there.

Does it make sense to include NON-free components in Lazarus distribution?

Similarly, many icons were recently removed from Lazarus because they were NON-free, even though optional to use.

This breaks the paradigm and consistency that FPC, Lazarus and LCL are licensed under modified LGPL <http://wiki.lazarus.freepascal.org/licensing>. It puts developer into a tricky situation - does one needs to check every source code file to ensure it can be included in their code base?

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/0a43ffa4/attachment.html>

Reply by email

Ondrej Pokorny
to Denis Kozlov
Denis Kozlov wrote 10 lines
On 17 May 2016 at 10:15, Graeme Geldenhuys < <mailto:>> wrote: This was discussed before and the licensing information (readme) was updated. The GPC code is totally optional and NOT used by default in yes it is fine being there. Does it make sense to include NON-free components in Lazarus distribution?

How do you define "free"? Is GPL free?

Similarly, many icons were recently removed from Lazarus because they were NON-free, even though optional to use.

They were not optional to use :)

Show quoted text 5 lines
This breaks the paradigm and consistency that FPC, Lazarus and LCL are licensed under modified LGPL <http://wiki.lazarus.freepascal.org/licensing>. It puts developer into a tricky situation - does one needs to check every source code file to ensure it can be included in their code base?

You are mixing up 2 different things. See
http://wiki.freepascal.org/Lazarus_Faq#Licensing

Lazarus itself is not licensed under modified LGPL but GPL/LGPL. It's LCL that uses modified LGPL. Third-party components in "components" directory have different licenses as well. E.g. some are GPL only (e.g. CodeTools).

Ondrej
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/93b649cf/attachment.html>

Reply by email

Denis Kozlov
to Ondrej Pokorny
Ondrej Pokorny wrote
How do you define "free"? Is GPL free?

I meant it in the simplest term, that developers can freely distribute or sell built applications.

You are mixing up 2 different things. See

Licensing terms is an intricate subject, I was over-generalizing it.

Neither GPL/LGPL/modifed.LGPL explicitly prohibit building commercial applications. Licensing terms of GPC are more restrictive, they explicitly forbid use for commercial purposes.

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/89affa10/attachment-0001.html>

Reply by email

Mattias Gaertner
to Denis Kozlov: On 17 May 2016 at 10:15, Graeme Geldenhuys Does it make sense to include NON-free…
[...] Does it make sense to include NON-free components in Lazarus distribution?

It depends on how you define "NON-free".

The gpc.pas may be freely copied, modified, and redistributed provided that the copyright notice is preserved on all copies. You may not distribute this software, in whole or in part, as part of any commercial product without the express consent of the author.

Show quoted text 7 lines
Similarly, many icons were recently removed from Lazarus because they were NON-free, even though optional to use. This breaks the paradigm and consistency that FPC, Lazarus and LCL are licensed under modified LGPL <http://wiki.lazarus.freepascal.org/licensing>. It puts developer into a tricky situation - does one needs to check every source code file to ensure it can be included in their code base?

Developers must at least read the readme of each package they use. The aggpas readme.txt mentions the gpc exception.
And Lazarus has GPL packages, which do not allow use in closed source applications.

Mattias

Reply by email

Graeme Geldenhuys
to Ondrej Pokorny: How do you define "free"? Is GPL free? They were not optional to use :) You are mixing up…
Ondrej Pokorny wrote
Lazarus itself is not licensed under modified LGPL but GPL/LGPL. It's LCL that uses modified LGPL. Third-party components in "components" directory have different licenses as well. E.g. some are GPL only (e.g. CodeTools).

Exactly! Lazarus is a bit of a mixed bag, and it is up to the developer to check the license of any third party component, be that in the ?components? directory, or the Lazarus-CCR code repository. Not all open source licenses are equal, so it is up to the developer to decide if it fits in with his wishes and his project goals.

I just had a similar thread in the FPC mailing list. The ?Simplified BSD? (2-clause) license is as ?free? as you can get, but apparently it doesn?t fit in with the goals of Free Pascal?s FCL, so no BSD licensed components will be accepted in the FCL. I believe that is very unfortunate, but I respect there wishes.

Coming back to AggPas, the Generic Polygon Clipper (GPC) unit is completely optional as I mentioned, and not used by AggPas as standard. The GPC unit by itself is not the issue, but the Algorithm that it implements - that is what is under license. Now some would argue that algorithms cannot be licensed either, but that is another matter, and not something I would like to discuss.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Denis Kozlov
to Graeme Geldenhuys: Exactly! Lazarus is a bit of a mixed bag, and it is up to the developer to check the…
Graeme Geldenhuys wrote 6 lines
I just had a similar thread in the FPC mailing list. The ?Simplified BSD? (2-clause) license is as ?free? as you can get, but apparently it doesn?t fit in with the goals of Free Pascal?s FCL, so no BSD licensed components will be accepted in the FCL. I believe that is very unfortunate, but I respect there wishes.

That is the precisely the disconnect that I am worried about. It may seem, especially for new comers, that all FPC/Lazarus sources are GPL/LGPL licensed, and short of checking every source file/folder it is impossible to tell otherwise.

Q1: Should all bundled code, whether it is FCL or LCL or otherwise, follow the standard FPC/Lazarus licensing schema? So far it feels to be on a case-by-case basis.

Q2: Maybe libraries and components which do not fall under the same licensing terms should be moved to a separate folder, to help developers identify portions of code which require an inspection of the licensing terms before their use?

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/467732a0/attachment.html>

Reply by email

Graeme Geldenhuys
to Denis Kozlov
Denis Kozlov wrote
seem, especially for new comers, that all FPC/Lazarus sources are GPL/LGPL licensed, and short of checking every source file/folder it is impossible to tell otherwise.

Why, nobody told them it is like that, so why would they assume that.

Mattias already answered the question. ?Free? is a relative term in the open source world. Why must some code be excluded from Lazarus, even though it is still open source - albeit with a different license.

Q1: Should all bundled code, whether it is FCL or LCL or otherwise, follow the standard FPC/Lazarus licensing schema?

No, and there is no good reason why it must. The Lazarus project already makes it very clear... See the readme file located in the ?components? directory.

If a developer uses every willy nilly component out there, and never checks any license details of those components, they are looking for trouble. As a developer, part of your job is to ensure whatever 3rd party components you use fits in with your project goals.

Q2: Maybe libraries and components which do not fall under the same licensing terms should be moved to a separate folder

Again, why? The readme file inside the ?components? directory already summarised everything you need to know. Nobody officially part of the Lazarus project has every mentioned that all components included with Lazarus has the same license as the IDE or LCL - so don?t make that assumption.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Denis Kozlov
to Graeme Geldenhuys
Graeme Geldenhuys wrote
Mattias already answered the question. ?Free? is a relative term in the open source world. Why must some code be excluded from Lazarus, even though it is still open source - albeit with a different license.

One can also call a piece of code "free" which allows distribution of source but forbids distribution in compiled form, but then that would render it "free" but useless. I regret referring to the term "free", because everybody has their own understanding of what it means.

If a developer uses every willy nilly component out there, and never

checks any license details of those components, they are looking for trouble. As a developer, part of your job is to ensure whatever 3rd party components you use fits in with your project goals.

Again, this is an extreme, let's narrow it down. I am talking about official bundled components.

Of course, when a developer decides to use a 3rd party component it is natural to check the licensing terms of that component. However, when a developer uses an official distribution of IDE, whether it is Lazarus or Delphi or other, it is not natural to require developer to check *every component or part* for licensing terms, which can be hundreds or even thousands of individual parts.

That is why I thought it could be clearer if most of Lazarus/FPC code base is under the same licensing schema, while everything that falls outside of it could be easily discovered (this is where an idea of placing such code into a dedicated folder came about). This kind of approach would drastically simply code base slicing based on licensing terms, that is what Debian packagers have to do with Lazarus and many other packages.

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/5be9d467/attachment.html>

Reply by email

Mattias Gaertner
to Denis Kozlov
[...]it is not natural to require developer to check *every component or part* for licensing terms, which can be hundreds or even thousands of individual parts.

Hundreds? You only need to check one per package.

Show quoted text 6 lines
That is why I thought it could be clearer if most of Lazarus/FPC code base is under the same licensing schema, while everything that falls outside of it could be easily discovered (this is where an idea of placing such code into a dedicated folder came about). This kind of approach would drastically simply code base slicing based on licensing terms, that is what Debian packagers have to do with Lazarus and many other packages.

For Debian maintainers and other third party bundles we should gather the abbreviated license information in the components/readme.txt, so they can easier pick the cherries.

Mattias

Reply by email

Graeme Geldenhuys
to Denis Kozlov: On 17 May 2016 at 13:24, Graeme Geldenhuys One can also call a piece of code "free" which…
Denis Kozlov wrote
developer uses an official distribution of IDE, whether it is Lazarus or Delphi or other, it is not natural to require developer to check *every component or part* for licensing terms

As Mattias said, it's not per component, but per package. So that reduces the amount of checking significantly.

The other thing is, what you are saying above might work fine for closed source applications like Delphi, but not for open source projects like Lazarus. There is no need to limit or place restrictions on bundled [useful] components. Each project developed by an end-user has different goals.

That is why I thought it could be clearer if most of Lazarus/FPC code base is under the same licensing schema, while everything that falls outside of it could be easily discovered

Placing them in different directories is going to do *nothing* for the ?easily discovered? argument. ?make ide? or ?make bigide? builds a predetermined set of components and registers them on the Component Palette. Lazarus developers tend to simply select and drop a component on a form. They are not going to check which package that component comes from, then double check the directory of that unit.

What they are going to do is associate a package dependency with there project. That doesn?t reveal the directory location though.

The licensing information should be in the ?Package Options -> Description -> License? memo. But sadly, many packages don?t include that information. So again, it is the developers job to make sure any components they use have a license that agrees with their project. No need for the Lazarus Team to police developers.

Getting back to AggPas. If you use the AggPas code as-is from the "components" directory, there are no licensing restriction for commercial projects. So there is NO issue by default. You have to explicitly include the gpc unit somewhere in YOUR code before a license restriction applies. AggPas functions perfectly well without the gpc unit, hence it is not referenced anywhere in the standard AggPas units.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Jürgen Hestermann
to Graeme Geldenhuys
Graeme Geldenhuys wrote 6 lines
Getting back to AggPas. If you use the AggPas code as-is from the "components" directory, there are no licensing restriction for commercial projects. So there is NO issue by default. You have to explicitly include the gpc unit somewhere in YOUR code before a license restriction applies. AggPas functions perfectly well without the gpc unit, hence it is not referenced anywhere in the standard AggPas units.

I don't use AGGPAS but I assume that the GPC unit is part of the package. If that is true, then it would not be enough to check for the licencing of the package. Every unit can have different licencing restrictions which makes it quite cumbersome to find all licencing information.

Reply by email

Ondrej Pokorny
to Jürgen Hestermann
J?rgen Hestermann wrote
I don't use AGGPAS but I assume that the GPC unit is part of the package. If that is true, then it would not be enough to check for the licencing of the package.

Of course it is. Please try to find information before you post wrong statements. There is an info about it in the package. See components/aggpas/readme.txt

Ondrej

Reply by email

Jürgen Hestermann
to Ondrej Pokorny
Ondrej Pokorny wrote
On 17.05.2016 18:09, J?rgen Hestermann wrote: > I don't use AGGPAS but I assume that the GPC unit is part of the package. > If that is true, then it would not be enough to check for the licencing of the package. Of course it is. Please try to find information before you post wrong statements. There is an info about it in the package. See components/aggpas/readme.txt

Well, to me it only sounded contradikting that there is "one licence per package" and on the other hand *some* units in packages may have different licences.

I was (am) just not sure that we can rely on having *all* licence information for a package summed up in just one readme file (of this package) for all packages (not just AGGPAS).

Reply by email

Florian Klämpfl
to Graeme Geldenhuys: Exactly! Lazarus is a bit of a mixed bag, and it is up to the developer to check the…
Graeme Geldenhuys wrote
I just had a similar thread in the FPC mailing list. The ?Simplified BSD? (2-clause) license is as ?free? as you can get, but apparently it doesn?t fit in with the goals of Free Pascal?s FCL,

Please quote properly! The reason is not that it does not fit into the goals but the reason is simply that we cannot expect that everybody checks each used packages unit for its license and add the appropriate copyright line to the application if a certain unit is used.

so no BSD licensed components will be accepted in the FCL. I believe that is very unfortunate, but I respect there wishes.

Reply by email

Graeme Geldenhuys
to Florian Klämpfl
Florian Kl?mpfl wrote
Please quote properly! The reason is not that it does not fit into the goals but the reason is simply that we cannot expect that everybody checks each used packages

1. I didn't actually quote anybody.

2. What I said is that the BSD License doesn't fit with the FCL goals. What you just said is the same thing, just explained in a bit more detail.

So I don't see anything wrong with my statement. FPC likes to police developers, Lazarus leave the task up to the developer. I don't have a problem with either.

Regards,
Graeme

Reply by email

Denis Kozlov
Mattias Gaertner wrote 5 lines
For Debian maintainers and other third party bundles we should gather the abbreviated license information in the components/readme.txt, so they can easier pick the cherries.

It's not a bad idea.

Maybe we can go even a step further, to avoid duplication and introduce some consistency:

1) Document licensing terms in *.lpk files of each package (making it mandatory for all future packages).
2) Use 2 licensing attributes/nodes in *.lpk files: A) License Title (e.g. "GPL", "LGPL", "MPL", "MIT", "BSD" ... "Custom"
- so that it can be easily enumerated and summarized); B) License Description (i.e. this can be the full license text, in case of "Custom" licensing terms)
3) Create IDE tools to summarize licensing terms of: A) Currently installed packages,
B) All available packages,
C) Packages used in the current project (if possible)

If this is suitable, I volunteer to analyze licensing terms of existing packages and implement the work above.

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160517/a043bf0f/attachment.html>

Reply by email

Mattias Gaertner
to Denis Kozlov
Show quoted text 15 lines
On 17 May 2016 at 16:34, Mattias Gaertner wrote: > > For Debian maintainers and other third party bundles we should gather > the abbreviated license information in the components/readme.txt, so > they can easier pick the cherries. > It's not a bad idea. Maybe we can go even a step further, to avoid duplication and introduce some consistency: 1) Document licensing terms in *.lpk files of each package (making it mandatory for all future packages).

It always was. If a lpk is missing its license, please report the bug.

2) Use 2 licensing attributes/nodes in *.lpk files: A) License Title (e.g. "GPL", "LGPL", "MPL", "MIT", "BSD" ... "Custom" - so that it can be easily enumerated and summarized);

What about double licensing (e.g. "GPL2 or higher", "MPL or LGPL2 with liking exception") or part (e.g. "LGPL-2, except gpc.pas which has custom license")?

Show quoted text 5 lines
B) License Description (i.e. this can be the full license text, in case of "Custom" licensing terms) 3) Create IDE tools to summarize licensing terms of: A) Currently installed packages, B) All available packages,

This info can be shown in "Package Graph" and "Install Packages" in the memo. Read this: you don't need a new dialog for this.

C) Packages used in the current project (if possible)

This info can be shown in the Project Inspector. Read this: you don't need a new dialog for this.

If this is suitable, I volunteer to analyze licensing terms of existing packages and implement the work above.

Thanks.

Mattias

Reply by email

Denis Kozlov
to Mattias Gaertner
Mattias Gaertner wrote 5 lines
> 1) Document licensing terms in *.lpk files of each package (making it > mandatory for all future packages). It always was. If a lpk is missing its license, please report the bug.

A quick search revealed that 73 out of 106 lpk files have a <License> tag, as of r52328.

Show quoted text 9 lines
> 2) Use 2 licensing attributes/nodes in *.lpk files: > A) License Title (e.g. "GPL", "LGPL", "MPL", "MIT", "BSD" ... "Custom" > - so that it can be easily enumerated and summarized); What about double licensing (e.g. "GPL2 or higher", "MPL or LGPL2 with liking exception") or part (e.g. "LGPL-2, except gpc.pas which has custom license")?

I plan to write a tool to automatically extract licensing information from all packages. Then, stick this information into a sheet for analysis, maybe even put it on the Wiki for the reference.

The sheet will highlight packages which do not contain licensing terms and allow to pick out the list of commonly used licensing abbreviations (titles). This is were it should become clearer how many variations there actually are ("GPL2 or higher", "MPL or LGPL2 with liking exception", "LGPL-2, except gpc.pas which has custom license", etc).

For example, if there are 10 variations of licensing terms, a summarized list of packages per licensing variation should be a good licensing overview and significantly simplify slicing based on the licensing terms.

Show quoted text 15 lines
B) License Description (i.e. this can be the full license text, in case > of "Custom" licensing terms) > 3) Create IDE tools to summarize licensing terms of: > A) Currently installed packages, > B) All available packages, This info can be shown in "Package Graph" and "Install Packages" in the memo. Read this: you don't need a new dialog for this. > C) Packages used in the current project (if possible) This info can be shown in the Project Inspector. Read this: you don't need a new dialog for this.

I agree, these are good places for displaying licensing information.

P.S. I don't plan to reinvent wheels or add dialogs unnecessarily.

Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20160520/1d4b933d/attachment.html>

Reply by email