Complying with LGPL using FPC

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Complying with LGPL using FPC

Vladimir Zhirov
Hi,

Would you please help me to find out the steps I should follow
to comply with LGPL if my application is built using FPC
and uses pascal source code of LGPL'ed library?

Section 4 of LGPL requires to

> d) Do one of the following:
> 0) Convey the Minimal Corresponding Source under the terms of this
> License, and the Corresponding Application Code in a form suitable for,
> and under terms that permit, the user to recombine or relink
> the Application with a modified version of the Linked Version
> to produce a modified Combined Work, in the manner specified
> by section 6 of the GNU GPL for conveying Corresponding Source.

Suppose application and library files are:

project1.pas
project1.o
project1.compiled
lgpled_lib.pas
lgpled_lib.o
lgpled_lib.ppu

What files I must make public, and how people are supposed to use them
in order to relink my application with newer/modified version of the
library?

Thanks in advance.

--
Best regards,
 Vladimir

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Complying with LGPL using FPC

Tomas Hajny
On Fri, July 4, 2008 18:15, Vladimir Zhirov wrote:


Hi,

> Would you please help me to find out the steps I should follow
> to comply with LGPL if my application is built using FPC
> and uses pascal source code of LGPL'ed library?
>
> Section 4 of LGPL requires to
>
>> d) Do one of the following:
>> 0) Convey the Minimal Corresponding Source under the terms of this
>> License, and the Corresponding Application Code in a form suitable for,
>> and under terms that permit, the user to recombine or relink
>> the Application with a modified version of the Linked Version
>> to produce a modified Combined Work, in the manner specified
>> by section 6 of the GNU GPL for conveying Corresponding Source.
>
> Suppose application and library files are:
>
> project1.pas
> project1.o
> project1.compiled
> lgpled_lib.pas
> lgpled_lib.o
> lgpled_lib.ppu
>
> What files I must make public, and how people are supposed to use them
> in order to relink my application with newer/modified version of the
> library?

I believe that one of the ways would be compiling lgpled_lib.pas into a
shared library/DLL and having it linked to your program dynamically,
another solution would be providing interested users with all the required
object files (*.o), libraries (.a) and a linker script. The linker script
is created and preserved if compiling with -s parameter, all the required
.o and .a files are listed in that script.

Tomas


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Complying with LGPL using FPC

Felipe Monteiro de Carvalho
In reply to this post by Vladimir Zhirov
On Fri, Jul 4, 2008 at 1:15 PM, Vladimir Zhirov <[hidden email]> wrote:
> Would you please help me to find out the steps I should follow
> to comply with LGPL if my application is built using FPC
> and uses pascal source code of LGPL'ed library?

Which library are you using that is LGPL?

--
Felipe Monteiro de Carvalho
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Complying with LGPL using FPC

Jonas Maebe-2
In reply to this post by Vladimir Zhirov

On 04 Jul 2008, at 17:15, Vladimir Zhirov wrote:

> Suppose application and library files are:
>
> project1.pas
> project1.o
> project1.compiled
> lgpled_lib.pas
> lgpled_lib.o
> lgpled_lib.ppu
>
> What files I must make public, and how people are supposed to use them
> in order to relink my application with newer/modified version of the
> library?

Compile the program with -Cn.

Then supply the users with all .o files referenced from the generated  
link.res file (including those from the rtl/flc/packages/...), as well  
as with the link.res file itself and the generated ppas.sh/ppas.bat  
file.

Or, as Tomas mentioned, you can also use the LGPL code as a shared  
library. In that case the linking is done by the dynamic linker, and  
you don't have to distribute the parts of your program as linkable  
components.


Jonas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal