Friendly GUI for windows building?

  • Thread starter Francois Guillet
  • Start date
R

Rupert Miscavige

Paavo said:
Source-only distributions are not crap (many portable projects are
distributed like that) and even if this were not true, there is no
connection to the quality of the project itself. Bring up some facts
instead of biased opinions!

Sure it is. Crap. The proof for this is that they are unable to compile a
windows binary, for whatever reasons, then let the user using it.
Directly, as they are supposed to do.

You are an ignorant. You don't know crap and are unable to handle it.
 
G

Geoff

Sure it is. Crap. The proof for this is that they are unable to compile a
windows binary, for whatever reasons, then let the user using it.
Directly, as they are supposed to do.

You are an ignorant. You don't know crap and are unable to handle it.

Where's the beef?

Out of curiosity I downloaded the stable archive and they don't
provided ANY binaries, not for Windows, OSX or Linux. You have to
build them yourself regardless of the platform.

I opened the fltk.sln for VS2010 and built the entire framework
error-free in about 10 minutes.

A source distribution allows you to take any portion of it you may
like without having to drag all of the framework into your
application. It also allows you to build debug and release versions of
the framework. This seems entirely logical to me.

Shipping a DLL, a collection of libs, the headers and instructions
seems more cumbersome to use than a source distro.
 
W

woodbrian77

A source distribution allows you to take any portion of it you may
like without having to drag all of the framework into your
application. It also allows you to build debug and release versions of
the framework. This seems entirely logical to me.

I agree, but think it's hard to get investors interested
in a 100% open source project.


Brian
Ebenezer Enterprises - John 3:16.
http://webEbenezer.net
 
Ö

Öö Tiib

I agree, but think it's hard to get investors interested
in a 100% open source project.

It is hard if they do not want to buy fame, or the project under
question is unlikely to provide fame. Fame is not cheap commodity.
 
I

Ian Collins

I agree, but think it's hard to get investors interested
in a 100% open source project.

Um, Linux, MySQL, PostgreSQL, Illumos, the BSDs...?

There are plenty of investors will to invest in companies who add value
(usually support or other, often also open source, add-ons) to open
source projects.
 
F

Francois Guillet

Rupert Miscavige a présenté l'énoncé suivant :
....
Sure it is. Crap. The proof for this is that they are unable to compile a
windows binary, for whatever reasons, then let the user using it.
Directly, as they are supposed to do.

And what do you suggest instead which would be better ?
 
D

Dombo

Op 06-Jan-14 23:42, (e-mail address removed) schreef:
I agree, but think it's hard to get investors interested
in a 100% open source project.

Open source software is not only written by unpaid idealistic nerds when
they are not jerking off. Most successful open source projects have
commercial backing, and many contributions to those projects are done by
paid developers.

Money is not only being made by providing support, but also quite often
by a dual licensing policy, counting on that GPL is not acceptable for
many companies.
 
J

Jorgen Grahn

.
Most successful open source projects have
commercial backing, and many contributions to those projects are done by
paid developers.

For the /big/ projects that's probably true, but not for the thousands
of normal-sized ones.

/Jorgen
 
D

David Brown

(I know this is replying to a week-old post - I've been on holiday.)
And of course, IANAL - this is just my understanding of the LGPL in
general, and not Qt in particular.
It is perfectly legal to use dynamically linked Qt in commercially
(or how ever you want to license it) distributed application. There are
only such limitations:
1. Your application must be dynamically linked to the Qt components that
came with your downloaded LGPL Qt distribution. No static linking allowed.

That's not quite true (assuming Qt uses the standard LGPL). You can
also make your application available in a linkable object form. The
point is that the user (anyone legally obtaining the application source
or binary) should be able to take the source for the LGPL library (Qt in
this case), modify it if they want, re-compile it, and link it with your
application code. The linking can be static or dynamic.

Of course, having the LGPL code as a dynamic library is by far the most
common solution - but linkable object code for static linking is allowed.
2. You can’t make changes to the Qt source code itself and sell your
application based on the changed version of Qt.

The LGPL does not allow Qt to make that kind of restriction. I suppose
it is possible that Qt are using a modified LGPL with additional
restrictions like this, but I did not see that on their website (though
I only had a very quick look). The whole point of LGPL is that you -
either the developer or the end user - can take the code and change it
as you want. But any changes you make must be made available to anyone
else to whom you give or sell the binary code, so that they too can
modify the LGPL'ed code (and re-compile and re-link it). But you can't
make changes to the Qt stuff and keep these changes secret from your
customers (as you can when using the commercial Qt license).
3. You must inform users of your application that Qt is used in the
application in some licence text or in a readme somewhere within your
distributed application files.

I don't know that you need mention Qt explicitly like this, but you /do/
have to provide the user with the source code for the LGPL code (i.e.,
the Qt library), with any modifications you have made. You can include
the source directly, or a written offer valid for 3 years (etc., etc.).

In practice, at least in the *nix world, you provide the application
without any Qt library and dynamically link to the shared libraries on
the end-user's system. As you are not distributing any LGPL code (using
headers is allowed), you don't have to say much - but of course you
would list the Qt dll/so files needed as part of your system requirements.
4. You must provide a copy of the Qt LGPL licence file together with your
distributed application files.

These things above can't be show stopper problems.

They are not - a lot of systems are made using the LGPL versions of Qt.
The biggest annoyance with Qt is that it tends to create large binaries.
Lesser annoyance is that it uses custom preprocessors that do not
understand too well C++ (particularily templates and preprocessor) and
other tools tend also not to understand Qt crap (underlining it red
and reporting errors).

It is this second point that puts /me/ off using Qt - I can live with
big binaries for my PC software.

Another annoyance is that until relatively recently, the Python bindings
(PyQt) were under the GPL (or a commercial licence), rather than the
LGPL (or Python licence), meaning you couldn't use Python and Qt without
making the whole application as GPL or paying for the commercial
license. Now that Nokia's PySide bindings are complete for Python LGPL
Qt development, I might look again at it for future software.
 
D

David Brown

Um, Linux, MySQL, PostgreSQL, Illumos, the BSDs...?

There are plenty of investors will to invest in companies who add value
(usually support or other, often also open source, add-ons) to open
source projects.

He said it was /hard/, not /impossible/. There are many ways to make
money from open source software, and therefore many reasons for
investors to back open source projects - but it can be a hard sell to
persuade the investors.
 
Ö

Öö Tiib

(I know this is replying to a week-old post - I've been on holiday.)
And of course, IANAL - this is just my understanding of the LGPL in
general, and not Qt in particular.

I just posted it to conclude the back and forth trollish name-calling
with some useful guidance how to do it. I did use words *must* and
*can't* may be too strongly, sorry. Indeed there are (too painful even
for my enemies) ways how to not follow that guidance.
That's not quite true (assuming Qt uses the standard LGPL). You can
also make your application available in a linkable object form. The
point is that the user (anyone legally obtaining the application source
or binary) should be able to take the source for the LGPL library (Qt in
this case), modify it if they want, re-compile it, and link it with your
application code. The linking can be static or dynamic.

However ... we don't want to sell half-built binaries with removed
link-time optimisations as LGPL 2.1 6.a) ... or do we?
Of course, having the LGPL code as a dynamic library is by far the most
common solution - but linkable object code for static linking is allowed.

The idea of static linking is to distribute less binaries that are better
optimised. "Allowed" is distribution of more binaries that are worse
optimised. I am in difficulties to imagine why we want that.
The LGPL does not allow Qt to make that kind of restriction. I suppose
it is possible that Qt are using a modified LGPL with additional
restrictions like this, but I did not see that on their website (though
I only had a very quick look). The whole point of LGPL is that you -
either the developer or the end user - can take the code and change it
as you want. But any changes you make must be made available to anyone
else to whom you give or sell the binary code, so that they too can
modify the LGPL'ed code (and re-compile and re-link it). But you can't
make changes to the Qt stuff and keep these changes secret from your
customers (as you can when using the commercial Qt license).

Yes, that was what I meant, we can not make unpublished changes to
LGPL library. If we do whatever changes to Qt we have to publish that
modded Qt too and that means again some pain we don't desire.
I don't know that you need mention Qt explicitly like this, but you /do/
have to provide the user with the source code for the LGPL code (i.e.,
the Qt library), with any modifications you have made. You can include
the source directly, or a written offer valid for 3 years (etc., etc.).

If we followed "1." and "2." then we did not make any changes and so
we do not need to publish the Qt library. Then we just mention it as
dependency.
In practice, at least in the *nix world, you provide the application
without any Qt library and dynamically link to the shared libraries on
the end-user's system. As you are not distributing any LGPL code (using
headers is allowed), you don't have to say much - but of course you
would list the Qt dll/so files needed as part of your system requirements..

However if we modified Qt and our application needs that Qt then there
must be some ways to acquire the modded Qt in source code form
for all users and ways to check that it is the correctly modded Qt for
application.
They are not - a lot of systems are made using the LGPL versions of Qt.


It is this second point that puts /me/ off using Qt - I can live with
big binaries for my PC software.

If to use Qt only as GUI layer and to develop that with Qt tools (drag
and drop like OP asked) then it is easy. If to use it as framework for
whole application then eventually there will be desire to use other
tools (that may need to read/write code) and that it is difficult.
Another annoyance is that until relatively recently, the Python bindings
(PyQt) were under the GPL (or a commercial licence), rather than the
LGPL (or Python licence), meaning you couldn't use Python and Qt without
making the whole application as GPL or paying for the commercial
license. Now that Nokia's PySide bindings are complete for Python LGPL
Qt development, I might look again at it for future software.

That PyQt is AFAIK separate (not C++; Python) plugin by separate
corporation. There are other ways how to bind Python to C++ project.
 
D

David Brown

I just posted it to conclude the back and forth trollish name-calling
with some useful guidance how to do it. I did use words *must* and
*can't* may be too strongly, sorry. Indeed there are (too painful even
for my enemies) ways how to not follow that guidance.

Fair enough - I don't think that argument was getting anywhere! But I
like to try to be accurate in such posts, because you never know when
someone will take it out of context and /assume/ it is accurate. And of
course, there is always plenty to learn by getting corrected in Usenet :)
However ... we don't want to sell half-built binaries with removed
link-time optimisations as LGPL 2.1 6.a) ... or do we?

It is unusual, but I have heard of it being done. For code running on
an OS like Windows or Linux, it would be much more practical to put the
secret sauce in a dll/so file if you can't simply use the dynamic
library directly. But for embedded systems, dynamic linking is often
hard or inefficient, and so linkable object files is one way to get a
reasonably efficient, license-compliant and secret solution.
The idea of static linking is to distribute less binaries that are better
optimised. "Allowed" is distribution of more binaries that are worse
optimised. I am in difficulties to imagine why we want that.

Static linking is also vital for systems that don't support dynamic
linking (such as small embedded systems). And it should be pretty much
equally optimised if I take my secret code, compile it, and link it to a
static version of the LGPL library as if I compile my code and give you
the object files so that you can link in the static LGPL library
yourself. (LTO would change that, but I think using LTO with the LGPL
library could violate the license.)

As I said, it is unusual - but it /is/ a license compliant solution.
Yes, that was what I meant, we can not make unpublished changes to
LGPL library. If we do whatever changes to Qt we have to publish that
modded Qt too and that means again some pain we don't desire.

OK. You /said/ that you can't make changes - but it is precisely the
ability to make changes that a major motivation for the GPL/LGPL. So it
is good to get this clarified. (And if anyone is in any doubt as to
what "publishing the modifications" means here, they can look it up in
the GPL/LGPL faq pages, because it is too complicated to explain here...)
If we followed "1." and "2." then we did not make any changes and so
we do not need to publish the Qt library. Then we just mention it as
dependency.


However if we modified Qt and our application needs that Qt then there
must be some ways to acquire the modded Qt in source code form
for all users and ways to check that it is the correctly modded Qt for
application.

Yes - although "all users" means everyone to whom you have legally given
or sold the code. You don't have to make it publicly available (but you
can't stop people who have legal access to the code from taking the
modified LGPL code and passing it on to anyone else).

I don't think you have to provide any way to /check/ that the Qt part of
your binaries is generated from the modified Qt code you distribute -
but if it is not the same, then you are breaking the LGPL license. And
users must be able to compile the modified Qt code and link it in
themselves - in that way they can be sure what code is running.
If to use Qt only as GUI layer and to develop that with Qt tools (drag
and drop like OP asked) then it is easy. If to use it as framework for
whole application then eventually there will be desire to use other
tools (that may need to read/write code) and that it is difficult.


That PyQt is AFAIK separate (not C++; Python) plugin by separate
corporation. There are other ways how to bind Python to C++ project.

That is correct - PyQt is from a third-party commercial company. The
"official" Python Qt bindings (from Nokia, I believe, and now handled by
the new Qt folk) are PySide, which will make Python Qt development a lot
easier (as well as having the LGPL license rather than just commercial
or GPL). Of course, there were always other ways to get Python code to
work with Qt - but not as easily, and not with as current Qt support.
 

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
474,099
Messages
2,570,626
Members
47,237
Latest member
David123

Latest Threads

Top