Big development in the GUI realm

R

RM

For all you GUI developers, things just got a little more interesting.
Trolltech will soon be offering the QT GUI toolkit for Windows under
the GPL license. That means that PyQt may become a much more popular
option in the near future. Unfortunately, some things available for
the commercial customers of Trolltech are not available to the GPL
users. For example, from their FAQ, it seems that no precompiled
binaries will be provided. Support for comercial compilers will not be
built in, only for gcc (through Cygwin?). Also, their database drivers
will not be available. Oh, well, I guess you can't have it all. Good
news though!

See more here:

www.trolltech.com

I wonder how this is going to affect the GUI landscape.
 
M

Michael Goettsche

For all you GUI developers, things just got a little more interesting.
Trolltech will soon be offering the QT GUI toolkit for Windows under
the GPL license. That means that PyQt may become a much more popular
option in the near future. Unfortunately, some things available for
the commercial customers of Trolltech are not available to the GPL
users. For example, from their FAQ, it seems that no precompiled
binaries will be provided. Support for comercial compilers will not be
built in, only for gcc (through Cygwin?). Also, their database drivers
will not be available. Oh, well, I guess you can't have it all. Good
news though!

See more here:

www.trolltech.com

I wonder how this is going to affect the GUI landscape.

Not 100% right. Only drivers for commercial databases will not be included,
mysql and co. are available.
 
L

Luke Skywalker

Not 100% right. Only drivers for commercial databases will not be included,
mysql and co. are available.

What I find weird, is that I always understood the GPL meaning that
you must give back any contribution you made to the source code of the
GPLed code, but not if you're just using either a binary distribution
(eg. a DLL) or if you copy/pasted the code as is, with no changes on
your own.

If this is true, then the fact that Qt is now GPLed for Windows means
that I should be able to use this widget set even in commercial apps
since I'm not making any change to Qt, just using it.

Am I totally off-target?

Cheers
Luke.
 
F

Fredrik Lundh

Luke Skywalker said:
What I find weird, is that I always understood the GPL meaning that
you must give back any contribution you made to the source code of the
GPLed code, but not if you're just using either a binary distribution
(eg. a DLL) or if you copy/pasted the code as is, with no changes on
your own.

If this is true, then the fact that Qt is now GPLed for Windows means
that I should be able to use this widget set even in commercial apps
since I'm not making any change to Qt, just using it.

Am I totally off-target?

yes. for details, see the "Combining work with code released under the
GPL" section on this page:

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

</F>
 
L

Luke Skywalker

yes. for details, see the "Combining work with code released under the
GPL" section on this page:

Mmmm.. The FAQ isn't very clear about whether it's allowed to write a
proprietary EXE that calls a GPLed DLL:

"However, in many cases you can distribute the GPL-covered software
alongside your proprietary system. To do this validly, you must make
sure that the free and non-free programs communicate at arms length,
that they are not combined in a way that would make them effectively a
single program. The difference between this and "incorporating" the
GPL-covered software is partly a matter of substance and partly form.
The substantive part is this: if the two programs are combined so that
they become effectively two parts of one program, then you can't treat
them as two separate programs. So the GPL has to cover the whole
thing."

Considering the fact that the Qt DLL exist by themselves, that the
version used is the one provided by Qt, and that the EXE uses a
standard, open way to communicate with it, the above does seem to say
this use would be valid. Anybody knows of a similar case and the
output?

Luke.
 
F

Fredrik Lundh

Luke said:
Considering the fact that the Qt DLL exist by themselves, that the
version used is the one provided by Qt, and that the EXE uses a
standard, open way to communicate with it, the above does seem to say
this use would be valid.

http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

"/.../ If modules are designed to run linked together in a shared address
space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate
programs. So when they are used for communication, the modules
normally are separate programs. But if the semantics of the
communication are intimate enough, exchanging complex internal
data structures, that too could be a basis to consider the two parts
as combined into a larger program."

</F>
 
G

Grant Edwards

Mmmm.. The FAQ isn't very clear about whether it's allowed to write a
proprietary EXE that calls a GPLed DLL:

Yes it is allowed. You are always allowed to write proprietary
programs that incorporate GPL code. What you are not allowed
to do is distribute those programs under a license that's not
the GPL.
Considering the fact that the Qt DLL exist by themselves, that the
version used is the one provided by Qt, and that the EXE uses a
standard, open way to communicate with it, the above does seem to say
this use would be valid. Anybody knows of a similar case and the
output?

My understanding is that what you propose is not valid. An EXE
that uses a GPL'd DLL must be distributed according to the
terms of the GPL. Were that not the case, the LGPL would not
have been needed.
 
T

Tim Churches

Fredrik said:
Luke Skywalker wrote:




http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

"/.../ If modules are designed to run linked together in a shared address
space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate
programs. So when they are used for communication, the modules
normally are separate programs. But if the semantics of the
communication are intimate enough, exchanging complex internal
data structures, that too could be a basis to consider the two parts
as combined into a larger program."

</F>
Yes, that is what the FSF GPL FAQ says. However, the GPL itself says:

"[Section 0] Activities other than copying, distribution and
modification are not covered by this License; they are outside its scope."

There is not, AFAICS, any formal definition of what is meant by
"modification" in the GPL.

Section 2.b of the GPL says:

"b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third parties
under the terms of this License."

and Section 2 goes on to say:

"These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, and
can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based on
the Program, the distribution of the whole must be on the terms of this
License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it."

Thus, it seems to me, and to the expert legal advice which we sought
(note the scope of the advice was Australian law only) that provided no
GLPed source or object code is mixed, included or combined with
non-GPLed code, and that the GPLed and non-GPLed code are distributed or
otherwise made available in packages which are very clearly separate
works, and that any interaction between the two is restricted to
runtime, then the GPL does not require that non-GPLed code to be
distributed under the GPL.

It is arguable whether that opinion is at odds with the sentiments
expressed in the FSF GPL FAQ - it depends whether importing two python
modules into the same namespace is considered equivalent to, as the FAQ
says, "run linked together in a shared address space", but ultimately,
it is what the GPL license text says, not what the FSF FAQ says, which
matters.

Note that I am not in favour of or advocating any attempt to circumvent
or undermine the GPL. I just think it is important to be guided by what
software licenses actually say, rather than by what the authors of the
licenses wished they had said in retrospect.

Tim C
 
D

Damjan

For all you GUI developers, things just got a little more interesting.
Trolltech will soon be offering the QT GUI toolkit for Windows under
the GPL license. That means that PyQt may become a much more popular
option in the near future.

This applies to QT-4 only.
I wonder how much of PyQT is ready for QT4?

Anyway its time for a PyQT based VB-killer [ a GPL one :) ].
 
S

Steve Holden

Luke said:
What I find weird, is that I always understood the GPL meaning that
you must give back any contribution you made to the source code of the
GPLed code, but not if you're just using either a binary distribution
(eg. a DLL) or if you copy/pasted the code as is, with no changes on
your own.

If this is true, then the fact that Qt is now GPLed for Windows means
that I should be able to use this widget set even in commercial apps
since I'm not making any change to Qt, just using it.

Am I totally off-target?
Yes.

The GPL only dictates what you *must* do when you re-distribute GPL'd
code, or code derived from GPL'd code - and there's substantial room for
disagreement about what is and what is';t a derived product, with a
recent opinion suggesting that the FSF would regard importing a GPL'd
Python module as making your Python program constitute a "derived product".

As long as you don't redistribute anything you are free to do whatever
you want with GPL'd code. The intent of the license is essentially to
stop proprietary freeloaders from benefiting from GPL'd code without
giving anything back to the community. Microsoft choose to call this
"viral", but as usual they are talking out of their wallet.

regards
Steve
 
H

huy

RM said:
For all you GUI developers, things just got a little more interesting.
Trolltech will soon be offering the QT GUI toolkit for Windows under
the GPL license. That means that PyQt may become a much more popular
option in the near future. Unfortunately, some things available for
the commercial customers of Trolltech are not available to the GPL
users. For example, from their FAQ, it seems that no precompiled
binaries will be provided. Support for comercial compilers will not be
built in, only for gcc (through Cygwin?).

Isn't this just the same thing with a different spin. There was always
an available distribution for linux for non-commercial use. Windows was
always the problem. You still can't use it for windows without knowing
how to compile the thing on windows.

huy
 
K

Kartic

Is there a "GPL for Dummies" out there??? :)

Sorry if I am asking a question that has already been asked/answered in
another form.

In any case, let's say I use Python to create an application that uses
some module that is GPL. So what are my options?
1. Distribute my app as closed source but with source, available upon
request and clearly stated so in my license, for the GPL'ed module. But
the code to my app only is not available as it is closed source.
2. Distribute my app with the source code available upon request, along
with the code of any other GPL'ed modules that my app uses.

I don't know if any other option is possible. Do my stated options
cover the possibilities and if so, which of these are the correct legal
one that I would follow?

Thanks,
-Kartic
 
L

Luke Skywalker

Thus, it seems to me, and to the expert legal advice which we sought
(note the scope of the advice was Australian law only) that provided no
GLPed source or object code is mixed, included or combined with
non-GPLed code, and that the GPLed and non-GPLed code are distributed or
otherwise made available in packages which are very clearly separate
works, and that any interaction between the two is restricted to
runtime, then the GPL does not require that non-GPLed code to be
distributed under the GPL.

That's how I understood things, ie. calling a standard, clearly
independent (ie. EXE or DLL) binary downloaded from the project's web
site and just calling it is not covered by the GPL since no change has
been made whatsoever to the original work.

Which makes sense, since the goal of the GPL is to make sure that no
one can steal the code, correct bugs or add features without
redistributing those changes.

Muddy waters, indeed :)

Luke.
 
F

Fredrik Lundh

Tim said:
Thus, it seems to me, and to the expert legal advice which we sought (note the scope of the advice
was Australian law only) that provided no GLPed source or object code is mixed, included or
combined with non-GPLed code

and how exactly are you going to load a DLL from an EXE file with-
out "mixing, including, or combining" the two?

I don't see how the legal advice you got is incompatible with the FAQ;
they both say that as long as you keep things separate, you're in the clear.
but as soon as you mix things, the GPL applies.

</F>
 
D

Damjan

Isn't this just the same thing with a different spin. There was always
an available distribution for linux for non-commercial use. Windows was
always the problem. You still can't use it for windows without knowing
how to compile the thing on windows.

There'll be people that know how to compile :), and they'll be able to
release & distibute binaries... Previously you couldn't even compile the
GPL QT on windows, since it lacks the low-level win32 api calls that do all
the work.
 
J

JanC

Kartic schreef:
In any case, let's say I use Python to create an application that uses
some module that is GPL. So what are my options?

For your own personal use: doesn't mather.

If you want to distribute it, your application must be GPL'ed, so *all*
source code must be made available for those you distribute it to.
 
M

Mike Meyer

Kartic said:
Is there a "GPL for Dummies" out there??? :)

Sorry if I am asking a question that has already been asked/answered in
another form.

In any case, let's say I use Python to create an application that uses
some module that is GPL. So what are my options?
1. Distribute my app as closed source but with source, available upon
request and clearly stated so in my license, for the GPL'ed module. But
the code to my app only is not available as it is closed source.

You can't do this one. At least, that's the stand that the FSF is
taking.

I wonder about distributing an installation tool that grabs the GPL'ed
module from it's "standard" location and just installing it? That way,
you're not distributing any GPL'ed code, so your code can be
distributed however you want. It would seem that that would have to be
legal, otherwise apt-get and CPAN would be legally problematical.

<mike
 
A

Alex Martelli

Dennis Lee Bieber said:
hassle to code, but if your application could dynamically select from
whatever toolkit is available on the machine, you (and I should emphasis
that this is an impersonal/generic "you" I reference) might be able to
argue an exemption from the QT license.

So maybe it's time to resurrect anygui, maybe in a simplified version
which can only interface to, say, PyQt or Tkinter -- 'eithergui' maybe.


Alex
 
G

Gabriel B.

users. For example, from their FAQ, it seems that no precompiled
Isn't this just the same thing with a different spin. There was always
an available distribution for linux for non-commercial use. Windows was
always the problem. You still can't use it for windows without knowing
how to compile the thing on windows.

Well, if it's GPLed, can't i simply compile it and distribute a GPLed
..DLL with the source code for everyone?
 
J

Jeremy Bowers

Unfortunately, GPL faq is extremely vague on such border cases, instead
of simple "yes/no" answers faq is filled with some advocacy talks ...

To re-iterate a point I made on a thread last week, nobody really knows
what the GPL says and means on this topic. We can *barely* outline our
ignorance, but even our ignorance is pretty fuzzy.

Copyright-based models can't handle modern computer programs, and the GPL
is still copyright-based. As such, it is hosed.

(For an expansion of that idea, see
http://www.jerf.org/writings/communicationEthics/node7.html ; note the
next chapter tries to solve this problem in the context of more
conventional communication, but even with my refinements I'm *still* not
sure how to handle something like the GPL reasonably. I think you'd have
to re-define what the GPL covers almost from scratch; I think it could be
done, but I'm not sure you can fully rationally create an LGPL that
doesn't have critical exceptions.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top