February 07, 2020
On Friday, 7 February 2020 at 14:23:58 UTC, Andre Pany wrote:
> [...]
>
> Now the sad part. I would like to use GtkD at work but I can't. The license is really dangerous for companies (you compile lGpl source code into your application), therefore it is a complete no go from the IP department. The license is a huge blocker for GtkD commercial usage.

I'm not sure why LGPL is an issue. Does GtkD not allow dynamic linking?
February 07, 2020
On Friday, 7 February 2020 at 18:16:37 UTC, Les De Ridder wrote:
> On Friday, 7 February 2020 at 14:23:58 UTC, Andre Pany wrote:
>> [...]
>>
>> Now the sad part. I would like to use GtkD at work but I can't. The license is really dangerous for companies (you compile lGpl source code into your application), therefore it is a complete no go from the IP department. The license is a huge blocker for GtkD commercial usage.
>
> I'm not sure why LGPL is an issue. Does GtkD not allow dynamic linking?

I am not an expert at all in the topic of licensing. This is my understanding:

Gtk has the license lgpl. As long as you link dynamically to the shared object files, you can use it in commercial products.

GtkD is a D wrapper for GTK. It is D source code which ease the access to the C api of Gtk. GtkD has also the license lgpl. To use GtkD in my application I have to statically link the D source code.
Now it gets more complicated, GtkD has some additions to the lgpl rules.

I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.

Kind regards
Andre


February 07, 2020
On Friday, 7 February 2020 at 14:23:58 UTC, Andre Pany wrote:
> Also from me congratulations!
>
> GtkD (GTK) are a great piece of software and your tutorials are fantastic to get into it.
>
> Now the sad part. I would like to use GtkD at work but I can't. The license is really dangerous for companies (you compile lGpl source code into your application), therefore it is a complete no go from the IP department. The license is a huge blocker for GtkD commercial usage.

This is just FUD, and not true. Did you read the license? [1] It explicitly states additional freedoms not present in the LGPL. You may even link statically without the license infecting your proprietary code!

It seems to me it is the incompetence of your IP department that is your problem, not the GtkD license.

> I would like to run GTK applications in the browser (broadway html5). Due to the license issue I have to use the C api):

What difference does that make, legally? AFAIK the C api license is more restrictive than GtkD’s license.

> I hope the authors of GtkD could change their mind in future.

In what way? I’d advise your IP department to talk to Mike Wey directly.

Bastiaan.

[1] https://github.com/gtkd-developers/GtkD/blob/master/COPYING
February 07, 2020
On Friday, 7 February 2020 at 19:51:52 UTC, Andre Pany wrote:
> [snip]
> Now it gets more complicated, GtkD has some additions to the lgpl rules.
>
> I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.
>
> Kind regards
> Andre

The changes are the following:
1) Modification to work on another platform is not a modified or derivative work
2) Static linking is not a modified or derivative work and you do not need to include source code.
3) You have to identify that you use GtkD.

If anything, 1 and 2 should make it easier to use GtkD with your company versus a standard LGPL. The price you pay is #3. So long as you do #3, it isn't any worse than a normal LGPL license.

I work in an industry where the goal is to take smart risks and be compensated for it. Almost everything is a risk. The question is if the risk is worth it or not. If using GtkD saves you X more hours a year in programming time than the C API, then that helps put a dollar value of the benefit. I think the cost is relatively minor, but that's for your company to decide.
February 07, 2020
On Friday, 7 February 2020 at 19:51:52 UTC, Andre Pany wrote:
> On Friday, 7 February 2020 at 18:16:37 UTC, Les De Ridder wrote:
>> On Friday, 7 February 2020 at 14:23:58 UTC, Andre Pany wrote:
>>> [...]
>>>
>>> Now the sad part. I would like to use GtkD at work but I can't. The license is really dangerous for companies (you compile lGpl source code into your application), therefore it is a complete no go from the IP department. The license is a huge blocker for GtkD commercial usage.
>>
>> I'm not sure why LGPL is an issue. Does GtkD not allow dynamic linking?
>
> I am not an expert at all in the topic of licensing. This is my understanding:
>
> Gtk has the license lgpl. As long as you link dynamically to the shared object files, you can use it in commercial products.
>
> GtkD is a D wrapper for GTK. It is D source code which ease the access to the C api of Gtk. GtkD has also the license lgpl. To use GtkD in my application I have to statically link the D source code.
> Now it gets more complicated, GtkD has some additions to the lgpl rules.
>
> I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.
>
> Kind regards
> Andre

GtkD's COPYING file contains the following:

> 2. Static linking of applications or any other source to the GtkD
> library does not constitute a modified or derivative work and does not
> require the author(s) to provide source code for said work, use the
> shared GtkD libraries, or link their applications against a
> user-supplied version of GtkD.

Looking at the GtkD code, it seems much of it was written in a way
specifically to avoid licensing issues, e.g. by loading libraries and
populating function pointers at runtime[1][2]. I'm not sure it even
*supports* static linking with GTK libraries.

I compiled one of the GtkD examples[3] on Linux with dub, and was able
to confirm with `ltrace` that it indeed loads the GTK libraries at
runtime using `dlopen` when compiling with the default configuration.

[1] https://github.com/gtkd-developers/GtkD/blob/master/src/gtkd/Loader.d
[2] https://raw.githubusercontent.com/gtkd-developers/GtkD/master/generated/gtkd/gtk/c/functions.d
[3] https://github.com/gtkd-developers/GtkD/tree/master/demos/gtkD/TestWindow
February 07, 2020
On 2/7/20 3:44 PM, jmh530 wrote:
> On Friday, 7 February 2020 at 19:51:52 UTC, Andre Pany wrote:
>> [snip]
>> Now it gets more complicated, GtkD has some additions to the lgpl rules.
>>
>> I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.
>>
>> Kind regards
>> Andre
> 
> The changes are the following:
> 1) Modification to work on another platform is not a modified or derivative work
> 2) Static linking is not a modified or derivative work and you do not need to include source code.
> 3) You have to identify that you use GtkD.
> 
> If anything, 1 and 2 should make it easier to use GtkD with your company versus a standard LGPL. The price you pay is #3. So long as you do #3, it isn't any worse than a normal LGPL license.

Just a cursory reading of 1 it pretty much guts the point of using LGPL, as anyone can legitimately claim that they modified gtkd to work with their application (isn't that why you would modify it in the first place?)

The second exception is a solid addition, and makes things much more pleasant in terms of D being a statically compiled language. The second part of that clause is again gutted by the first clause -- it's basically on the whim of the developer whether he wants to consider a modification to gtkd to be a "modified work".

I would be fine with that license if I were doing proprietary development (I have no problem giving attribution).

-Steve
February 07, 2020
On Friday, 7 February 2020 at 19:51:52 UTC, Andre Pany wrote:
> On Friday, 7 February 2020 at 18:16:37 UTC, Les De Ridder wrote:
>> I'm not sure why LGPL is an issue. Does GtkD not allow dynamic linking?
>
> I am not an expert at all in the topic of licensing. This is my understanding:
>
> Gtk has the license lgpl. As long as you link dynamically to the shared object files, you can use it in commercial products.
>
> GtkD is a D wrapper for GTK. It is D source code which ease the access to the C api of Gtk. GtkD has also the license lgpl. To use GtkD in my application I have to statically link the D source code.
> Now it gets more complicated, GtkD has some additions to the lgpl rules.
>
> I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.
>
> Kind regards
> Andre

I prefer MPLv2 for LGPL-style liberal copyleft in D code because it unambiguously draws the line based on files.  No one has to speculate about whether, for example, LGPL's special exceptions for macro expansion also cover D's template system.

https://www.mozilla.org/en-US/MPL/2.0/FAQ/
February 07, 2020
On Friday, 7 February 2020 at 20:44:32 UTC, jmh530 wrote:
> On Friday, 7 February 2020 at 19:51:52 UTC, Andre Pany wrote:
>> [snip]
>> Now it gets more complicated, GtkD has some additions to the lgpl rules.
>>
>> I cannot judge how high the risk is for companies to use this component, but as an employee I do anything to avoid any risk for the company I work for.
>>
>> Kind regards
>> Andre
>
> The changes are the following:
> 1) Modification to work on another platform is not a modified or derivative work
> 2) Static linking is not a modified or derivative work and you do not need to include source code.
> 3) You have to identify that you use GtkD.
>
> If anything, 1 and 2 should make it easier to use GtkD with your company versus a standard LGPL. The price you pay is #3. So long as you do #3, it isn't any worse than a normal LGPL license.
>
> I work in an industry where the goal is to take smart risks and be compensated for it. Almost everything is a risk. The question is if the risk is worth it or not. If using GtkD saves you X more hours a year in programming time than the C API, then that helps put a dollar value of the benefit. I think the cost is relatively minor, but that's for your company to decide.

I am in the position to convince the team architect to use an unknown programming language which gui framework is of type lgpl. The team architect of course say, why can't we use programming language x, y or z where there is no license question at all? From a risk management perspective I would also decide for any other language just to be 100% on the safe side.

All what you say is completely true. Still, the license makes it a very hard job to advertise the D Programming Language at the place I work. It is already hard, and I do not want also get into discussions with IP department about license issues.

And still, GtkD is in my opinion the best UI for D. If GtkD would have any other type of license, I could just use without getting in contact with IP department.

Kind regards
Andre


February 07, 2020
On Friday, 7 February 2020 at 20:36:41 UTC, Bastiaan Veelo wrote:
> On Friday, 7 February 2020 at 14:23:58 UTC, Andre Pany wrote:
>> Also from me congratulations!
>>
>> GtkD (GTK) are a great piece of software and your tutorials are fantastic to get into it.
>>
>> Now the sad part. I would like to use GtkD at work but I can't. The license is really dangerous for companies (you compile lGpl source code into your application), therefore it is a complete no go from the IP department. The license is a huge blocker for GtkD commercial usage.
>
> This is just FUD, and not true. Did you read the license? [1] It explicitly states additional freedoms not present in the LGPL. You may even link statically without the license infecting your proprietary code!
>
> It seems to me it is the incompetence of your IP department that is your problem, not the GtkD license.
>
>> I would like to run GTK applications in the browser (broadway html5). Due to the license issue I have to use the C api):
>
> What difference does that make, legally? AFAIK the C api license is more restrictive than GtkD’s license.
>
>> I hope the authors of GtkD could change their mind in future.
>
> In what way? I’d advise your IP department to talk to Mike Wey directly.
>
> Bastiaan.
>
> [1] https://github.com/gtkd-developers/GtkD/blob/master/COPYING

Are this point of time I didn't contacted the IP department. I try to advertise the D Programming Language at the place I work. There are multiple programming languages used and no one has heard of D before.
Although you are right, the label lgpl makes my job harder. From a risk management perspective I understand if a team architect decides for any other language just to be 100% on the safe side.

This is the point I want to stress.

Kind regards
Andre
February 07, 2020
On Friday, 7 February 2020 at 23:14:28 UTC, Andre Pany wrote:
> [snip]
>
> All what you say is completely true. Still, the license makes it a very hard job to advertise the D Programming Language at the place I work. It is already hard, and I do not want also get into discussions with IP department about license issues.
>
> [snip]

You keep emphasizing the problem with LGPL. That is also a problem with any use of Gtk. If you used Gtk with any other language, then you would likely have the exact same issue. PyGTK is LGPL, for instance. Your issue isn't with D or GtkD, except to the extent that other GUI libraries aren't as developed or don't have licenses you are happy with either.