473,395 Members | 1,919 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Are PHP libraries linked dynamically or statically?

Hi,

When a PHP program links to a library using include or require (or their
_once variations), is the library then linked dynamically or statically?

While it might seem irrelevant from a technical point of view, the
linking method is important when it comes to licencing issues as some
licences, like GPL, differ between those kinds of linking when it comes
to viewing the library as a derivative work of the main program.

Therefore it is quite important to know what kind of linking is in
effect when including libraries, and I hope someone in this group can
shed some light on this matter.

Thank you very much in advance,
Martin
Jul 19 '07 #1
36 3114
NC
On Jul 19, 4:14 pm, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
wrote:
>
When a PHP program links to a library using include
or require (or their _once variations), is the library
then linked dynamically or statically?
Neither. include/require is not a linking mechanism; it is a way to
assemble a complete block of source code prior to its interpretation.
Any static linking takes place at the server process start-up (i.e.,
before any include/require can happen); dynamic linking (if any)
occurs during execution (i.e., after the source code has been
interpreted, and, therefore, after any include/require).
it is quite important to know what kind of linking is in
effect when including libraries,
Only if the libraries are true libraries (i.e., those compiled into
native executable code). With PHP "libraries", using include/require
does not imply any linking...

Cheers,
NC

Jul 20 '07 #2
Martin Larsen wrote:
When a PHP program links to a library using include or require (or their
_once variations), is the library then linked dynamically or statically?
Dynamically.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 29 days, 14:30.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 20 '07 #3
Thanks NC,

I understand that PHP is very different than say a Windows executable,
and perhaps linking is not the right term for what happens.

Anyway, in your opinion, does the mechanism rememble dynamic or static
linking most?

Btw, if I were to get an "official" statement, do you by chance know who
I should contact?

Martin
Jul 20 '07 #4
NC
On Jul 20, 12:34 pm, Jerry Stuckle <jstuck...@attglobal.netwrote:
>
I understand that PHP is very different than say a Windows
executable,
PHP isn't (it can be a Windows executable). PHP scripts are.

Not quite true. The PHP interpreter (php.exe) itself is executable.
My point exactly. I guess I should have written "PHP interpreter"
rather than just "PHP"... :)

Cheers,
NC

Jul 20 '07 #5
NC wrote:
>Btw, if I were to get an "official" statement, do you by
chance know who I should contact?

The PHP group: http://www.php.net/contact.php
Thanks for link. However, that page actually refers to this newsgroup or
the webmaster for website related comments.

Is there a way to contact the PHP Group directly?

Thanks again,
Martin
Jul 21 '07 #6
Hi Henk,
This may be true from a strict technical definition, but juridical
reasoning may not be that strict.
Thank you for making clear what I was trying to say. It is in fact a
juridical matter.

If we agree that the term linking might not be entirely irrelevant,
which kind of linking would you say is in effect when a PHP program
links to a script: dynamically or statically.

The reason why this is important is that dynamically linking is often
seen as a licence boundary
(http://en.wikipedia.org/wiki/Library...ynamic_linking)

Regards,
Martin
Jul 21 '07 #7
Martin Larsen wrote:
Hi Henk,
>This may be true from a strict technical definition, but juridical
reasoning may not be that strict.

Thank you for making clear what I was trying to say. It is in fact a
juridical matter.

If we agree that the term linking might not be entirely irrelevant,
which kind of linking would you say is in effect when a PHP program
links to a script: dynamically or statically.

The reason why this is important is that dynamically linking is often
seen as a licence boundary
(http://en.wikipedia.org/wiki/Library...ynamic_linking)

Regards,
Martin
And despite what Henk posted, has absolutely nothing to do with PHP.

NC is correct in his discussion. You need to paying attention to what
he is saying.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 21 '07 #8
Martin Larsen wrote:
NC wrote:
>>Btw, if I were to get an "official" statement, do you by
chance know who I should contact?

The PHP group: http://www.php.net/contact.php

Thanks for link. However, that page actually refers to this newsgroup or
the webmaster for website related comments.

Is there a way to contact the PHP Group directly?

Thanks again,
Martin
Why?

If you understood the technology, the answer would be clear. Rather, I
suggest you visit your local library or bookstore and find out how
interpreters work.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 21 '07 #9
Jerry Stuckle wrote:
Unless you have implemented a PHP optimizer, every PHP file is
interpreted every time you load the file. There is no intermediate code.
There normally *is* an intermediate form, but it's discarded after each
execution unless you have a PHP cache, such as eAccelerator.

That is, on each execution, the PHP interpreter:

1. Opens up the file;
2. Tokenises it, storing the token stream in memory;
3. Parses it into a form of byte code, storing that in
memory too; then
4. Executes the byte code.

Most smart interpreters (and I assume PHP is included here) will also
perform a bit of code optimisation around stage 3 too. Code optimisation
trades off execution time for parsing time, so interpreters (optimise once,
run once) tend not to optimise as much as compilers (optimise once, run
many) do.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 30 days, 12:01.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 21 '07 #10
Martin Larsen kirjoitti:
Hi Henk,
>This may be true from a strict technical definition, but juridical
reasoning may not be that strict.

Thank you for making clear what I was trying to say. It is in fact a
juridical matter.

If we agree that the term linking might not be entirely irrelevant,
which kind of linking would you say is in effect when a PHP program
links to a script: dynamically or statically.

The reason why this is important is that dynamically linking is often
seen as a licence boundary
(http://en.wikipedia.org/wiki/Library...ynamic_linking)
Looking at this definition:

"Dynamic linking means that the subroutines of a library are loaded into
an application program at runtime, rather than being linked in at
compile time, and remain as separate files on disk."

Based on that I'd say php "linking" resembles more dynamic linking than
static linking, since there is no separate "compile time" per se, a
script is each time recompiled at runtime. Plus the included scripts are
separate files on disk, they are not "built" into one executable.

And the reason I say it _resembles more_ is the basic problem that
neither of these terms can really be applied to php scripts, what you
need is a new term: call it including.

--
Ra*********@gmail.com

"Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan
usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze
Jul 21 '07 #11
On Fri, 20 Jul 2007 01:14:02 +0200, Martin Larsen
<ma********************@bigfoot.comwrote:
>When a PHP program links to a library using include or require (or their
_once variations), is the library then linked dynamically or statically?

While it might seem irrelevant from a technical point of view, the
linking method is important when it comes to licencing issues as some
licences, like GPL, differ between those kinds of linking when it comes
to viewing the library as a derivative work of the main program.

Therefore it is quite important to know what kind of linking is in
effect when including libraries, and I hope someone in this group can
shed some light on this matter.
Have you seen the following - not sure if it helps, or muddies the waters
further:

http://www.gnu.org/licenses/gpl-faq....terpreterIsGPL

In particular the final two paragraphs:

"Another similar and very common case is to provide libraries with the
interpreter which are themselves interpreted. For instance, Perl comes with
many Perl modules, and a Java implementation comes with many Java classes.
These libraries and the programs that call them are always dynamically linked
together.

A consequence is that if you choose to use GPL'd Perl modules or Java classes
in your program, you must release the program in a GPL-compatible way,
regardless of the license used in the Perl or Java interpreter that the
combined Perl or Java program will run on. "
The implication appears to be that loading Perl modules is treated as "dynamic
linking" for the purposes of the license (pure technical definitions aside).
Perl modules are often "pure-Perl" and so very closely match "require/include"
for PHP libraries.

--
Andy Hassall :: an**@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
Jul 21 '07 #12
Jerry Stuckle wrote:
Ah, but OpenOffice is not MS Word. And just because OpenOffice
implements something one way doesn't mean Word does.
No, no -- the quotes from the OpenOffice.org developers were regarding
the MS Word ".doc" file format -- which they had to reverse engineer --
they were not on the subject of OpenOffice.org's behaviour.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 32 days, 4:23.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 23 '07 #13
Jerry Stuckle wrote:
Martin Larsen wrote:
>Is there a way to contact the PHP Group directly?
Why?

If you understood the technology, the answer would be clear. Rather, I
suggest you visit your local library or bookstore and find out how
interpreters work.
Ok, I will tell you why. I had hoped it was not necessary, but here it is...

I do in fact know how interpreters work. I have actually written one
myself. Being a professional windows programmer for ages, I have also
learned the hard way the distinct difference between dynamic and static
libraries: missing DLL files on the end user's computer preventing the
programs from even starting.

I deliberately asked the question in a simple minded manner as I did not
want my own view of the matter to bias the replies. The thing is that
the core team behind a major CMS (Joomla) has recently changed their
mind about non-GPL plugins (or scripts, if you like). Until then they
accepted and welcomed proprietary plugins, but now they say that since
the CMS is GPL, the plugins must also be GPL to comply.

Now, I don't wish this thread to be for or against GPL. I only want to
discuss the reasoning behind their claims. The point is that they argue
that most extensions are *derivative work* of the CMS (even though they
normally don't include a single line of code from it) because they are
statically linked to the CMS. If they were dynamically linked, the
matter would be different.

Yep, that is what they say. While you and I can agree that it doesn't
make much sense to talk about linking for interpreters, they
nevertheless use it in their argumentation. And that is why I asked the
question: Are PHP libraries linked dynamically or statically?

In my opinion they make two mistakes: the first is to talk about linking
at all, the second is to claim that the plugins are statically linked.

As I see it, even when we are not really talking linking, the
characteristics of the processes involved in the INCLUDE more closely
resembles dynamic linking than static linking. Which means that their
argumentation is wrong no matter what.

As it happens, we (third-party developers for Joomla) have tried hard to
make them see that their arguments are wrong. But they keep claiming
that the scripts are statically linked and thus derivative works of the CMS.

And now to my question: Is there a way to contact the PHP Group directly?

I have an idea that if we could get a "official" statement of the
linking or non-linking involved, they might be more prone to listening.

And again, I certainly don't want the PHP Group or any other to comment
on the good or bad of plugins being GPL because that is entirely
irrelevant. I just sincerely believe that their technical resoning is
entirely wrong.

Thanks,
Martin
Jul 23 '07 #14
Martin Larsen wrote:
Jerry Stuckle wrote:
>Martin Larsen wrote:
>>Is there a way to contact the PHP Group directly?
>Why?

If you understood the technology, the answer would be clear. Rather,
I suggest you visit your local library or bookstore and find out how
interpreters work.

Ok, I will tell you why. I had hoped it was not necessary, but here it
is...

I do in fact know how interpreters work. I have actually written one
myself. Being a professional windows programmer for ages, I have also
learned the hard way the distinct difference between dynamic and static
libraries: missing DLL files on the end user's computer preventing the
programs from even starting.
Wow. A WINDOWS programmer. So you've been programming for what - 15
years, maybe? And you've programmed for ONE OS? Wow.

And you wrote an interpreter? Golly, Gee, Batman. I guess that makes
you an expert on everything! ROFLMAO!

I deliberately asked the question in a simple minded manner as I did not
want my own view of the matter to bias the replies. The thing is that
the core team behind a major CMS (Joomla) has recently changed their
mind about non-GPL plugins (or scripts, if you like). Until then they
accepted and welcomed proprietary plugins, but now they say that since
the CMS is GPL, the plugins must also be GPL to comply.
You got answers to the question you asked.
Now, I don't wish this thread to be for or against GPL. I only want to
discuss the reasoning behind their claims. The point is that they argue
that most extensions are *derivative work* of the CMS (even though they
normally don't include a single line of code from it) because they are
statically linked to the CMS. If they were dynamically linked, the
matter would be different.
This has nothing to do with PHP programming. I suggest you take it over
to the Joomla newsgroup.
Yep, that is what they say. While you and I can agree that it doesn't
make much sense to talk about linking for interpreters, they
nevertheless use it in their argumentation. And that is why I asked the
question: Are PHP libraries linked dynamically or statically?
That's their problem. If you understood as well as you say, you would
have the answer to your question.
In my opinion they make two mistakes: the first is to talk about linking
at all, the second is to claim that the plugins are statically linked.
That could be. But it's not a topic for this newsgroup.
As I see it, even when we are not really talking linking, the
characteristics of the processes involved in the INCLUDE more closely
resembles dynamic linking than static linking. Which means that their
argumentation is wrong no matter what.
It resembles INCLUDES. It has nothing to do with linking.
As it happens, we (third-party developers for Joomla) have tried hard to
make them see that their arguments are wrong. But they keep claiming
that the scripts are statically linked and thus derivative works of the
CMS.
Then build your own CMS.
And now to my question: Is there a way to contact the PHP Group directly?
Why? They can't change Joomla's mind, either. Nor are they going to
change Joomla's terminology.
I have an idea that if we could get a "official" statement of the
linking or non-linking involved, they might be more prone to listening.
This has nothing to do with their use of terminology. It is a licensing
issue, and they have a write to require licenses for their CMS to follow
their rules.
And again, I certainly don't want the PHP Group or any other to comment
on the good or bad of plugins being GPL because that is entirely
irrelevant. I just sincerely believe that their technical resoning is
entirely wrong.
You're discussing legal issues, and should be talking to an attorney.
But historically Joomla is on solid legal ground. The terminology they
use is not important. The fact your tools ARE derivative works is.
Thanks,
Martin
Please don't bring your argument over here. We're not interested.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 23 '07 #15
Jerry Stuckle wrote:
Wow. A WINDOWS programmer. So you've been programming for what - 15
years, maybe? And you've programmed for ONE OS? Wow.

And you wrote an interpreter? Golly, Gee, Batman. I guess that makes
you an expert on everything! ROFLMAO!
Excuse me, but why are you flaming like this? Did I ever call myself an
expert? Did I ever use bad language or something? Did I ever call you
stupid things? Was I ever impolite?

I really can't understand why so many people in these newsgroups are so
hostile to each other. I think you should apologize, but I don't expect
that you will.
The terminology they
use is not important. The fact your tools ARE derivative works is.
Aha. A fact?

Then please tell me why it is a fact.

Sincerely,
Martin
Jul 23 '07 #16
On Mon, 23 Jul 2007 11:40:02 +0200, Martin Larsen
<ma********************@bigfoot.comwrote:
>And now to my question: Is there a way to contact the PHP Group directly?
According to license.txt in the PHP distribution:

"The PHP Group can be contacted via Email at gr***@php.net."

I wonder if you might have more luck with Zend, the company behind the core of
PHP (the Zend engine). Since this includes the compiler + bytecode interpreter
anyway, they should be well-placed to answer.

http://www.zend.com/company/contact_us

Have you contacted the FSF as well? Since they produced the GPL license, they
may be able to clarify its terms.
>I have an idea that if we could get a "official" statement of the
linking or non-linking involved, they might be more prone to listening.

And again, I certainly don't want the PHP Group or any other to comment
on the good or bad of plugins being GPL because that is entirely
irrelevant. I just sincerely believe that their technical resoning is
entirely wrong.
If it were "libraries" then I'd interpret it as "dynamic linking" in the
context of the GPL. This seems to be backed up with the already-quoted:

http://www.gnu.org/licenses/gpl-faq....terpreterIsGPL
"Another similar and very common case is to provide libraries with the
interpreter which are themselves interpreted. For instance, Perl comes with
many Perl modules, and a Java implementation comes with many Java classes.
These libraries and the programs that call them are always dynamically linked
together.

A consequence is that if you choose to use GPL'd Perl modules or Java classes
in your program, you must release the program in a GPL-compatible way,
regardless of the license used in the Perl or Java interpreter that the
combined Perl or Java program will run on."
Introducing the term "plugin" seems to point to the following, though:

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
"If the program dynamically links plug-ins, and they make function calls to
each other and share data structures, we believe they form a single program,
which must be treated as an extension of both the main program and the
plug-ins. This means the plug-ins must be released under the GPL or a
GPL-compatible free software license, and that the terms of the GPL must be
followed when those plug-ins are distributed."
There does seem to be a valid distinction between a library, which implements
a particular function and makes that available to /any/ other application that
loads it, versus a plug-in that explicitly extends one application - which
makes the argument of "derivative work" plausible.

It's not entirely clear, so it's an interesting question.

--
Andy Hassall :: an**@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
Jul 23 '07 #17
Andy Hassall wrote:
According to license.txt in the PHP distribution:

"The PHP Group can be contacted via Email at gr***@php.net."
Thanks!
I wonder if you might have more luck with Zend, the company behind the core of
PHP (the Zend engine). Since this includes the compiler + bytecode interpreter
anyway, they should be well-placed to answer.
I think you are right, Zend would be a good source of info.
It's not entirely clear, so it's an interesting question.
Indeed it is.

Thanks for your comments. After getting flamed by Jerry, it was a
pleasence to read a decent post like yours :-)

Martin
Jul 23 '07 #18
Martin Larsen wrote:
Jerry Stuckle wrote:
>Wow. A WINDOWS programmer. So you've been programming for what - 15
years, maybe? And you've programmed for ONE OS? Wow.

And you wrote an interpreter? Golly, Gee, Batman. I guess that makes
you an expert on everything! ROFLMAO!

Excuse me, but why are you flaming like this? Did I ever call myself an
expert? Did I ever use bad language or something? Did I ever call you
stupid things? Was I ever impolite?
You came across as arrogant and self serving. If you weren't trying to
prove yourself an expert, why come up with all of that junk?
I really can't understand why so many people in these newsgroups are so
hostile to each other. I think you should apologize, but I don't expect
that you will.
Probably because you came across as self-serving and arrogant. And no,
I won't apologize for your arrogance.
>The terminology they use is not important. The fact your tools ARE
derivative works is.

Aha. A fact?

Then please tell me why it is a fact.
You want legal advice, talk to an attorney. Any one who is familiar
with computer law will tell you the same thing.

But I know you won't.
Sincerely,
Martin

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 23 '07 #19
Jerry Stuckle wrote:
Martin Larsen wrote:
>Excuse me, but why are you flaming like this? Did I ever call myself
an expert? Did I ever use bad language or something? Did I ever call
you stupid things? Was I ever impolite?

You came across as arrogant and self serving. If you weren't trying to
prove yourself an expert, why come up with all of that junk?
Sheesh, Jerry! You do this a lot. Your blood sugar gets out of whack
or something and you go BALLISTIC on some poor fool.

Not all of us are here to prove that we're experts.
Some of just like having conversations about things we're interested in.
Jul 23 '07 #20
Sanders Kaufman wrote:
Jerry Stuckle wrote:
>Martin Larsen wrote:
>>Excuse me, but why are you flaming like this? Did I ever call myself
an expert? Did I ever use bad language or something? Did I ever call
you stupid things? Was I ever impolite?

You came across as arrogant and self serving. If you weren't trying
to prove yourself an expert, why come up with all of that junk?

Sheesh, Jerry! You do this a lot. Your blood sugar gets out of whack
or something and you go BALLISTIC on some poor fool.

Not all of us are here to prove that we're experts.
Some of just like having conversations about things we're interested in.

Why - because someone comes here looking for free legal advice, has no
idea about the terminology he's using, then brags about what an expert
he is?

If he wants legal advice, he should see an attorney. This newsgroup is
for discussing PHP programming, not whether Joomla or any other product
is within its legal rights.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 23 '07 #21
Jerry Stuckle wrote:
However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.
I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 32 days, 22:45.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 23 '07 #22
Toby A Inkster wrote:
Jerry Stuckle wrote:
>However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.

I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.
No, but does it require Joomla to run? Does it call their API's?
Require changes to their modules?

Or is it completely standalone (in which case there wouldn't be any
licensing issues)?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 23 '07 #23
Jerry Stuckle wrote:
>
Toby A Inkster wrote:
Jerry Stuckle wrote:
However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.
I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.

No, but does it require Joomla to run? Does it call their API's?
Irrelevant.
Or is it completely standalone (in which case there wouldn't be any
licensing issues)?
As long as what Toby wrote is true (that the plugin does not use any
Joomla code) there is no licensing issue.

Try to look at it from a different angle: If you want to give a program
you wrote the ability to shut down the computer, do you need to own the
rights to Windows or ask Microsoft for permission to use the ExitWindows
function?

Bye!
Jul 23 '07 #24
Anonymous wrote:
Jerry Stuckle wrote:
>Toby A Inkster wrote:
>>Jerry Stuckle wrote:

However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.
I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.
No, but does it require Joomla to run? Does it call their API's?

Irrelevant.
Not at all. Joomla is quite within their rights to say if your code
interfaces to them, it must meet certain conditions - like GPL.
>Or is it completely standalone (in which case there wouldn't be any
licensing issues)?

As long as what Toby wrote is true (that the plugin does not use any
Joomla code) there is no licensing issue.

Try to look at it from a different angle: If you want to give a program
you wrote the ability to shut down the computer, do you need to own the
rights to Windows or ask Microsoft for permission to use the ExitWindows
function?

Bye!

If it interfaces to Joomla, it uses their code.

And actually, yes, you need permission to use the ExitWindows function
to call it. But read your compiler license. It specifically gives you
permission to do so.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 24 '07 #25
Jerry Stuckle wrote:
No, but does it require Joomla to run? Does it call their API's?
Irrelevant.

Not at all. Joomla is quite within their rights to say if your code
interfaces to them, it must meet certain conditions - like GPL.
No. The person using my program together with Joomla must have the right
to use Joomla and the right to use my program. Nothing more and nothing
less. Calling Joomla functions from within my program only makes my
program useless for people not wanting to use Joomla or adhere to its
license.
As long as what Toby wrote is true (that the plugin does not use any
Joomla code) there is no licensing issue.

Try to look at it from a different angle: If you want to give a program
you wrote the ability to shut down the computer, do you need to own the
rights to Windows or ask Microsoft for permission to use the ExitWindows
function?

If it interfaces to Joomla, it uses their code.
No, it doesn't. It just calls a function which is unavaliable. If the
function is unavaliable my program does not run. That's it. If Joomla
happens to have functions that have the same name and make sense in the
context so that my program actually does something useful, that's great.
But that does not make my program a part of Joomla or Joomla a part of
my program.

To get this straight (so that no one can misunderstand): Of course, if I
provide a ready to use package which contains Joomla plus my program I
have to put the whole package under the GPL. Because I would not have
the right to do so without accepting the GPL.

However, if I choose to provide my program in a nonfunctional single
package which only contains my code I can choose to use any license I
like. And users who want to use my program and put Joomla and my program
together will have to abide by both li
>
And actually, yes, you need permission to use the ExitWindows function
to call it. But read your compiler license. It specifically gives you
permission to do so.
LOL! And in what way, shape or form could IBM/Borland/the GCC
team/insert compiler company of your choice here give me a license to
call code that was written by Microsoft?

Nope, the same principle I described above also works here: I don't need
to ask anyone if I am allowed to call a function called ExitWindows. If
my program just stops because such a function doesn't exist, that's bad
luck for me. If it does exist, that's fine, but doesn't make my program
part of Windows.

The user is responsible for bringing together a valid Windows license
(and thus a legally owned copy of the user32.dll which contains this
function) and my program (of course just as legally licensed by my
terms).

If what you say were true Microsoft could simply forbid anyone to
program for Windows because it is practically impossible to program for
Windows without using any Windows API.

Your technical advice is usually very good (even though a bit uppity at
times) but you don't seem equally well versed in the judicial side of
technology.

Bye!
Jul 24 '07 #26
Jerry Stuckle wrote:
Toby A Inkster wrote:
>Jerry Stuckle wrote:
>>However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.

I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.

No, but does it require Joomla to run? Does it call their API's?
Irrelevant. My newsreader (PAN) requires Linux to run (actually it can be
compiled for several operating systems, but the copy I have is compiled
for Linux, so needs Linus to run). It calls Linux APIs.

As it happens, Linux and PAN *are* both released under the same licence
(the GPL), but they don't have to be.
Require changes to their modules?
This is relevant.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 33 days, 12:21.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 24 '07 #27
Anonymous wrote:
Jerry Stuckle wrote:
>>>No, but does it require Joomla to run? Does it call their API's?
Irrelevant.
Not at all. Joomla is quite within their rights to say if your code
interfaces to them, it must meet certain conditions - like GPL.

No. The person using my program together with Joomla must have the right
to use Joomla and the right to use my program. Nothing more and nothing
less. Calling Joomla functions from within my program only makes my
program useless for people not wanting to use Joomla or adhere to its
license.
>>As long as what Toby wrote is true (that the plugin does not use any
Joomla code) there is no licensing issue.

Try to look at it from a different angle: If you want to give a program
you wrote the ability to shut down the computer, do you need to own the
rights to Windows or ask Microsoft for permission to use the ExitWindows
function?
If it interfaces to Joomla, it uses their code.

No, it doesn't. It just calls a function which is unavaliable. If the
function is unavaliable my program does not run. That's it. If Joomla
happens to have functions that have the same name and make sense in the
context so that my program actually does something useful, that's great.
But that does not make my program a part of Joomla or Joomla a part of
my program.
Which means your program requires Joomla to run. Your attempt to
rationalize will not hold up in court, IMHO. It's like saying "I was
out practicing my shooting and he just happened to get in the way of a
bullet".
To get this straight (so that no one can misunderstand): Of course, if I
provide a ready to use package which contains Joomla plus my program I
have to put the whole package under the GPL. Because I would not have
the right to do so without accepting the GPL.
No problem.
However, if I choose to provide my program in a nonfunctional single
package which only contains my code I can choose to use any license I
like. And users who want to use my program and put Joomla and my program
together will have to abide by both li
Yes. But if you want to call Joomla functions you have to abide by
their requirements to use those functions.
>And actually, yes, you need permission to use the ExitWindows function
to call it. But read your compiler license. It specifically gives you
permission to do so.

LOL! And in what way, shape or form could IBM/Borland/the GCC
team/insert compiler company of your choice here give me a license to
call code that was written by Microsoft?
Check your licenses.
Nope, the same principle I described above also works here: I don't need
to ask anyone if I am allowed to call a function called ExitWindows. If
my program just stops because such a function doesn't exist, that's bad
luck for me. If it does exist, that's fine, but doesn't make my program
part of Windows.
Tell it to the judge.
The user is responsible for bringing together a valid Windows license
(and thus a legally owned copy of the user32.dll which contains this
function) and my program (of course just as legally licensed by my
terms).
Tell it to the judge.
If what you say were true Microsoft could simply forbid anyone to
program for Windows because it is practically impossible to program for
Windows without using any Windows API.

Your technical advice is usually very good (even though a bit uppity at
times) but you don't seem equally well versed in the judicial side of
technology.

Bye!
And you come here looking for free legal advice, then throw out anything
which you don't agree with.

I suspect Joomla has done something you haven't - consulted an attorney.
I suggest you do, also. Otherwise you might find yourself in big
legal trouble.

Although IANAL, I believe you will find I am much more well versed in
the legal side than you think.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 24 '07 #28
Toby A Inkster wrote:
Jerry Stuckle wrote:
>Toby A Inkster wrote:
>>Jerry Stuckle wrote:

However, they are developing a product to interface to Joomla, and one
which uses Joomla code. The Joomla people have every right to determine
licensing rights to anyone who uses their code.
I agree, but the OP stated that the plugin didn't use a single line of
Joomla code, which changes things completely.
No, but does it require Joomla to run? Does it call their API's?

Irrelevant. My newsreader (PAN) requires Linux to run (actually it can be
compiled for several operating systems, but the copy I have is compiled
for Linux, so needs Linus to run). It calls Linux APIs.

As it happens, Linux and PAN *are* both released under the same licence
(the GPL), but they don't have to be.
>Require changes to their modules?

This is relevant.
No, it isn't, Toby. You have a license to call Linux API's, and that
license does not require PAN (or any other program) to be open source.

Linux itself is GPL - but its license does not require programs calling
its APIs to be GPL. Joomla is taking that one step further and
requiring programs using its API to be GPL.

Perfectly within their rights.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 24 '07 #29
Jerry Stuckle wrote:
Linux itself is GPL - but its license does not require programs calling
its APIs to be GPL. Joomla is taking that one step further and
requiring programs using its API to be GPL.

Perfectly within their rights.
But what they seem to be claiming is that the GPL itself demands that all
plugins must be GPL'd, and I disagree with that interpretation.

Yes, it is well within their rights to demand that plugins are GPL -- but
then they are enforcing conditions over and above what the GPL requires.

--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 33 days, 19:14.]

Parsing an HTML Table with PEAR's XML_HTTPSax3
http://tobyinkster.co.uk/blog/2007/0...table-parsing/
Jul 24 '07 #30
Jerry Stuckle wrote:
If it interfaces to Joomla, it uses their code.
No, it doesn't. It just calls a function which is unavaliable. If the
function is unavaliable my program does not run. That's it. If Joomla
happens to have functions that have the same name and make sense in the
context so that my program actually does something useful, that's great.
But that does not make my program a part of Joomla or Joomla a part of
my program.

Which means your program requires Joomla to run. Your attempt to
So what? That means a user either has to have a license to both (my
program and Joomla) or he can't run my program.
However, if I choose to provide my program in a nonfunctional single
package which only contains my code I can choose to use any license I
like. And users who want to use my program and put Joomla and my program
together will have to abide by both li

Yes. But if you want to call Joomla functions you have to abide by
their requirements to use those functions.
No, I don't. Not as long as I don't supply the functions together with
my program. As Toby already correctly put it: Who says I am using Joomla
functions? I (or someone else) could also program a compatible API to
work with my program which would eliminate the need for Joomla.

As long as I don't deliver Joomla together with my program, it has
nothing to do with Joomla at all.
And you come here looking for free legal advice, then throw out anything
which you don't agree with.
I do? I was answering questions, not asking them. Check the thread. I am
very well aware of the current legalities concerning computers and
software.
Jul 24 '07 #31
Anonymous wrote:
Jerry Stuckle wrote:
>>>If it interfaces to Joomla, it uses their code.
No, it doesn't. It just calls a function which is unavaliable. If the
function is unavaliable my program does not run. That's it. If Joomla
happens to have functions that have the same name and make sense in the
context so that my program actually does something useful, that's great.
But that does not make my program a part of Joomla or Joomla a part of
my program.
Which means your program requires Joomla to run. Your attempt to

So what? That means a user either has to have a license to both (my
program and Joomla) or he can't run my program.
>>However, if I choose to provide my program in a nonfunctional single
package which only contains my code I can choose to use any license I
like. And users who want to use my program and put Joomla and my program
together will have to abide by both li
Yes. But if you want to call Joomla functions you have to abide by
their requirements to use those functions.

No, I don't. Not as long as I don't supply the functions together with
my program. As Toby already correctly put it: Who says I am using Joomla
functions? I (or someone else) could also program a compatible API to
work with my program which would eliminate the need for Joomla.

As long as I don't deliver Joomla together with my program, it has
nothing to do with Joomla at all.
>And you come here looking for free legal advice, then throw out anything
which you don't agree with.

I do? I was answering questions, not asking them. Check the thread. I am
very well aware of the current legalities concerning computers and
software.
You really need to see an attorney. You could find yourself out of
thousands (or tens of thousands) of dollars, should Joomla choose to
enforce their license agreement.

And you obviously are NOT familiar with the current legalities
concerning computers and software!

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 24 '07 #32
Toby A Inkster wrote:
Jerry Stuckle wrote:
>Linux itself is GPL - but its license does not require programs calling
its APIs to be GPL. Joomla is taking that one step further and
requiring programs using its API to be GPL.

Perfectly within their rights.

But what they seem to be claiming is that the GPL itself demands that all
plugins must be GPL'd, and I disagree with that interpretation.

Yes, it is well within their rights to demand that plugins are GPL -- but
then they are enforcing conditions over and above what the GPL requires.
They may interpret it as that way - I haven't seen their reasoning, and
quite frankly haven't checked their license in detail. But they are
completely within their rights to enforce conditions above and beyond
what GPL requires. They just can't require LESS than what GPL requires.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 24 '07 #33
Jerry Stuckle wrote:

They may interpret it as that way - I haven't seen their reasoning, and
quite frankly haven't checked their license in detail. But they are
completely within their rights to enforce conditions above and beyond
what GPL requires. They just can't require LESS than what GPL requires.
I can't say whether or not this is true (only the court can).

However, I started this thread because I don't buy their arguments *why*
plugins has to be GPL.

To recap, they say:

1. Plugins has to be GPL because they are derivative work of Joomla
2. They are derivative work of Joomla because they are statically linked
to it.

That is the reason for me asking the question in the subject. And as you
have pointed out, it really doesn't make much sense to talk about linking.

The conclusion is that their arguments are entirely wrong.

You asked in another post in this thread if there is another CMS that
the plugin can be used with. There is: Mambo.

Joomla is a fork of Mambo, and while Mambo is also GPL, the Mambo
Foundation welcomes non-GPL plugins for the CMS. At this stage of the
fork, the common code base is still large enough for a great many
plugins to run under both systems without modications.

There are also other forks, btw.

So it is actually possible to sit in this white room without access to
Joomla's code and write plugins for it, without using a single line of
its code, and on top of it, have it running under Mambo too.

Many plugins (at least the ones I wrote) can in a short time be modified
to run standalone. Actually, one of my plugins is also published in a
standalone version. The code it the same, except the interfact part to
Joomla's API.

Martin
Jul 25 '07 #34
Martin Larsen wrote:
Jerry Stuckle wrote:

>They may interpret it as that way - I haven't seen their reasoning,
and quite frankly haven't checked their license in detail. But they
are completely within their rights to enforce conditions above and
beyond what GPL requires. They just can't require LESS than what GPL
requires.

I can't say whether or not this is true (only the court can).

However, I started this thread because I don't buy their arguments *why*
plugins has to be GPL.

To recap, they say:

1. Plugins has to be GPL because they are derivative work of Joomla
2. They are derivative work of Joomla because they are statically linked
to it.

That is the reason for me asking the question in the subject. And as you
have pointed out, it really doesn't make much sense to talk about linking.

The conclusion is that their arguments are entirely wrong.

You asked in another post in this thread if there is another CMS that
the plugin can be used with. There is: Mambo.

Joomla is a fork of Mambo, and while Mambo is also GPL, the Mambo
Foundation welcomes non-GPL plugins for the CMS. At this stage of the
fork, the common code base is still large enough for a great many
plugins to run under both systems without modications.

There are also other forks, btw.

So it is actually possible to sit in this white room without access to
Joomla's code and write plugins for it, without using a single line of
its code, and on top of it, have it running under Mambo too.

Many plugins (at least the ones I wrote) can in a short time be modified
to run standalone. Actually, one of my plugins is also published in a
standalone version. The code it the same, except the interfact part to
Joomla's API.

Martin
This is a legal issue.l See your attorney.

Free legal advice (especially in this newsgroup) is worth exactly what
you paid for it.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 26 '07 #35
Jerry Stuckle wrote:
Henk verhoeven wrote:
>NC wrote:
>>On Jul 20, 5:30 am, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
wrote:
(..)
Actually, it does. Unless you have implemented a PHP optimizer, every
PHP file is interpreted every time you load the file.
That may be true, but i was talking about function calls.
There is no intermediate code.
IMHO either you are mistaken or the developers of php are, even the
primitivce Commodore 64 BASIC interpreter converted commands and
function calls to opcodes so that repeated execution of a subroutine
would not require reparsing of the source code. Loops often run hundreds
of times, I doubt if the current level of performance on OOP code (which
tends to make lots of function calls intersecting many files) would be
possible if all functions that are called from loops where reparsed for
every call.
>"A consequence is that if you choose to use GPL'd Perl modules or Java
classes in your program, you must release the program in a
GPL-compatible way, regardless of the license used in the Perl or Java
interpreter that the combined Perl or Java program will run on." See
http://www.gnu.org/licenses/gpl-faq....terpreterIsGPL

(The terms "use" and "release" may also not be what you think. Here it
becomes really tricky, i rather avoid making comments on that)

Which has absolutely nothing to do with whether something is statically
or dynamically linked.

>BTW, running a program that is using a GPL-ed library on your own
public website might have consequences with the new version of GPL
(gpl3), see http://www.gnu.org/licenses/gpl-faq.html#UnreleasedMods

Again, nothing to do with the current discussion.
Again? Maybe the discussion has been narrowed to the technical meaning
of static versus dynamic linking, but Martin Larsen did mention GPL in
his original post, so i think the juridical meaning of linking *is*
subject of the original discussion and that i can help him by bringing
it back into the current discussion. The FSF FAQ are probably meant to
help non-lawyers to understand the juridical meaning of their GPL
license, they *may* have to do with the juridical meaning of linking.
Jul 26 '07 #36
Jerry Stuckle wrote:
This is a legal issue.l See your attorney.
God the allmighty has spoken.
Jul 26 '07 #37

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Kwan | last post by:
Hi All, In a Unix system (I am using Solaris, but not limited to it), who will dynamically linked libraries been linked to a multithreaded process? Will it have a different instance for every...
3
by: daniel_shaw01 | last post by:
I want to link the C++ standard libraries statically for my application because I don't space for the .so files on my target platform. After quite a bit of searching, I found very little...
4
by: RobG | last post by:
I have a function whose parameter is a reference the element that called it: function someFunction(el) { ... } The function is assigned to the onclick event of some elements in the HTML...
13
by: tsoukase | last post by:
Hello, two questions: 1) Why is a library a collection of compiled source-files while each header-file is a single source? Would it be more efficient if they were both either compiled or not?...
7
by: Steve | last post by:
Hi, We have an application framework library that gets statically linked to any applications we produce. (Windows apps, but I don't think that matters here). The framework is based heavily on...
8
by: bonk | last post by:
Is it generally OK for an EXE that has MFC linked statically to load an use another DLL wich has MFC linked as shared DLL ? To be more specific: I have an EXE that links a lib. Let's call it...
4
by: utab | last post by:
Dear all, I want to be able to use C++ libraries(maybe this is too abstract). Is there a source or tutorial giving the general details on the use of C++ libraries. (Sth like, to use all C++...
5
by: Chris | last post by:
I have a page with mixture of static and dynamically added controls is there any way of controlling the order which they are added to the page. My submit button (statically added) appears before...
20
by: pratap | last post by:
Could someone clarify how could one reduce the size of an executable code during compile time. Could one use specific compile time flag with makefile or is it advisable to go for dynamic linking....
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.