Dual licence is a great thing and I already started looking at code. First day brought this questions/problems.
1. Linking with JCL.
JCF uses jcl units in several places. They are: JclStrings, JclFileUtils, JclSysUtils. These units are only MPL at moment and as I know they cannot be GPLed because of copyright problems.
So we have few options:
- add needed stuff from used units inside one, ask GPL only for that things and replace JCLxxx by that unit. Or we can reimplement this stuff and place it there.
- IFDEF parts of JCF where it uses JCL and replace use of JCL functions with RTL functions where is possible.
In other words this is the first part where we should invent some solution which you can accept.
2. inc file
JCF doesnot use generic inc file with defines. I understand - JCF never needed it before since was only delphi tool. To compile JCF with FPC we need to place at least {$IFDEF FPC}{$mode delphi}{$ENDIF} define at the top of overy JCF file. Better to place all such stuff (delphi version determination, fpc, switches and so on) into one inc file and simple use it in every unit.
I've seen JCF uses jcl inc file somewhere but better to create own for this big project.
---
If second point is more or less understandable I dont know a good solution for the first point.
And the last question. Is it possible to contact you in another form? Maybe mail list / irc channel?
If you want to contact me directly please use this email:
Paul(dot)Ishenin(dog)gmail(dot)com
Best regards,
Paul Ishenin.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, I'm a contributor of JCF project; and i' like to discuss about point 1.
I'm not particulary familiar with licence, but i've seen this :
JEDI's MPL licence summary:
Project JEDI's implementation of the MPL allows developers to use its code in their applications ("Larger Work") regardless of whether the intended distribution will be in the public domain or as commercial applications, as long as the licence conditions are met.
And this:
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media.
As far as I understand, if the jcl-modified units:
1/ Are distributed in their code source format
2/ Have MPL licence text
3/ Add Description of Modifications
4/ Keep EXHIBIT A. from MPL
then there is no problem. Am I right ?
If so, it is only little work ...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No. GPL is fundamentally incompatible with MPL according to FSF.
Mozilla had a solution for that, dual licensing MPL/LGPL, but when Jedi started, none of the projects chose that option. Later several projects that were still in contact with all its contributors changed (Jedi SDL and Math).
The problem is that this is probably not doable for the JCL and JVCL because they have a relatively high number of contributors.
For designtime components we can _partially_ work around that by letting the user do the final link, but for components with complex interfaces (like JCF) that is not really a solution.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dual licence is a great thing and I already started looking at code. First day brought this questions/problems.
1. Linking with JCL.
JCF uses jcl units in several places. They are: JclStrings, JclFileUtils, JclSysUtils. These units are only MPL at moment and as I know they cannot be GPLed because of copyright problems.
So we have few options:
- add needed stuff from used units inside one, ask GPL only for that things and replace JCLxxx by that unit. Or we can reimplement this stuff and place it there.
- IFDEF parts of JCF where it uses JCL and replace use of JCL functions with RTL functions where is possible.
In other words this is the first part where we should invent some solution which you can accept.
2. inc file
JCF doesnot use generic inc file with defines. I understand - JCF never needed it before since was only delphi tool. To compile JCF with FPC we need to place at least {$IFDEF FPC}{$mode delphi}{$ENDIF} define at the top of overy JCF file. Better to place all such stuff (delphi version determination, fpc, switches and so on) into one inc file and simple use it in every unit.
I've seen JCF uses jcl inc file somewhere but better to create own for this big project.
---
If second point is more or less understandable I dont know a good solution for the first point.
And the last question. Is it possible to contact you in another form? Maybe mail list / irc channel?
If you want to contact me directly please use this email:
Paul(dot)Ishenin(dog)gmail(dot)com
Best regards,
Paul Ishenin.
Hi, I'm a contributor of JCF project; and i' like to discuss about point 1.
I'm not particulary familiar with licence, but i've seen this :
JEDI's MPL licence summary:
Project JEDI's implementation of the MPL allows developers to use its code in their applications ("Larger Work") regardless of whether the intended distribution will be in the public domain or as commercial applications, as long as the licence conditions are met.
And this:
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media.
As far as I understand, if the jcl-modified units:
1/ Are distributed in their code source format
2/ Have MPL licence text
3/ Add Description of Modifications
4/ Keep EXHIBIT A. from MPL
then there is no problem. Am I right ?
If so, it is only little work ...
No. GPL is fundamentally incompatible with MPL according to FSF.
Mozilla had a solution for that, dual licensing MPL/LGPL, but when Jedi started, none of the projects chose that option. Later several projects that were still in contact with all its contributors changed (Jedi SDL and Math).
The problem is that this is probably not doable for the JCL and JVCL because they have a relatively high number of contributors.
For background info see e.g. http://wiki.freepascal.org/licensing
For designtime components we can _partially_ work around that by letting the user do the final link, but for components with complex interfaces (like JCF) that is not really a solution.
Oh, and Jedi apilib also did, which it is currently part of the FPC distro
Hi Paul
I have sent you an email.
An include file can be done.
We can move some code out of JCL* units. Some of the string functions were originally by me.
The rest would have to reimplemented.
Es posible instalar los componentes en lazarus para linux, trabajo con ubuntu 10.4 y lazarus v0.9.28.2, si es posible me podrían ayudar