Re: new win32 port of GTK http://introspector.sourceforge.net/dia_win32.htm



--- Charles Schmidt <cschmidt2 emich edu> wrote:
> I've been following this for a bit, and thought I would add my two 
> cents, so to speak.

Thanks. I hope that we can end this one here. 

I must admit that the LGPL has much looser terms of distribution than
the GPL, but even the, care has to be taken that all links are up to
date and that all changes are snapshotted.

> James Michael DuPont wrote:
> 
> [...]
> 
> > See section 3 of the GPL : 
> > ----------------------------------------------------------------
> > "The source code for a work means the preferred form of the work
> for
> > making modifications to it. For an executable work, complete source
> > code means all the source code for all modules it contains, plus
> any
> > associated interface definition files, plus the scripts used to
> control
> > compilation and installation of the executable. However, as a
> special
> > exception, the source code distributed need not include anything
> that
> > is normally distributed (in either source or binary form) with the
> > major components (compiler, kernel, and so on) of the operating
> system
> > on which the executable runs, unless that component itself
> accompanies
> > the executable. "
> > ----------------------------------------------------------------
> > 
> > "is normally distributed (in either source or binary form) with the
> > major components (compiler, kernel, and so on) of the operating
> system"
> > 
> > libiconv, gettext, glib and gtk are distributed with debian and are
> > easy to compile. The sources are effectivly in the same place.
> > 
> > Under windows it is a nightmare!
> > The port to windows needs all of that this is very clearly covered
> by
> > the GPL.
> 
> Yes. I'm sure it is a nightmare.  However, I don't read the GPL has 
> requiring distribution of those libraries.  

You are Right. %100. The LGPL allows for distribution of EXEs the use
the libs without full source, but a link is needed.

But that is not the issue. The issue is that the people who build GTK
applications need to make sure that they have a copy of the DLLS and
sources that they use. Or they need to make sure that the versions they
link to never change. 

Imagine that you use a program that is linked to Python 2.0 for
scripting, and only have python 2.2, and all the libs that people
pointed to are upgraded! This is situation that I was in. 

Just because the code was there, does not mean it will always be there.
It is more important to provide code for the DLLs that you distribute
then to just have a link. The link can break, the server can
dissaapear, the software can be upgraded, leaving you with a dead
pointer. 

Also it is important to prominently telling people (as they are
now)that they have to distribute the sources as well (and they should
tell them that they can also give a written offer that tells them that
all the sources are on this server or will be sent to them at low cost)

If we are just talking about a standard lib then there is not any
problem. The problem starts when the sources have been slightly altered
to work on a new platform. 

> The GPL says the source
> code 
> needs to contain:  the source, interface definition files and
> Makefiles 
> (or the like).  

> It says nothing about external libraries.  
> For an executable work, complete source code means all the source 
> code for all modules it contains, plus any
> associated interface definition files, plus the scripts used to
> control compilation and installation of the executable

The modules it contains are the external libs that are linked in,
otherwise you dont need the "associated interface definition files",
this is before the DLL mania started.

But you are right, in terms of LGPL, there is a clear clause that you
can distribute the the exe if the lib is in a prominent place. But as I
said, great care has to be taken to prevent broken links and version
mismatches. 

>The GPL goes on to say that the source code does not need to
distribute anything that 
> is not common on the operating system.

The LPGL has looser restrictions than the GPL.

I think that something I was wrong about, the LPGL allows you to
distribute the DLL without the lib sources in the same place, as long
as the exact lib sources used are in a place where they can be found. 
The GPL has stronger terms, and I was looking at the DIA application
itself. 

Seen from the LGPLed lib perspective they can just link to the
homepages of the sources, as long as the exact versions are stated. 
Seen from the GPL perspective, you need all sources in one place. 

>   I understand this to say that 
> it does not need to distribute/include anything that relates to or is
> requried by the [source, interface definition files or Makefiles]. 

The GNU manifesto states clearly the goals of being able to change the
programs and having access to the source. The way that the DIA
installer now distributes the source is perfect. All the sources of all
the libs that are distributed. If I want to try and reproduce that
exact version, i have the sources. that is the intent of the GPL.

> No where in the list of things to distribute does the GPL say that 
> libraries the program links to, or other programs the program may
> depend on need to be distributed at the same place as the source
code.

It talks about EXES, not about libs. I am talking about the users of
the GTK and others who make exes. 

Now if you need to make changes to the lib to compile it, in the build
scripts, the headers etc.  Then you need to make those sources
available. If you just download the sources from a location then the
link is ok. But you cannot just say, use the gnome cvs to get the
sources, because that leaves the versions open. A link to the GNOME
snapshot would be needed.

----------------------------------------------------------------------
Here is the LGPL for building libs :
http://www.gnu.org/copyleft/lgpl.html

"6. As an exception to the Sections above, you may also compile or link
a "work that uses the Library" with the Library to produce a work
containing portions of the Library, and distribute that work under
terms of your choice, provided that the terms permit modification of
the work for the customer's own use and reverse engineering for
debugging such modifications. 

You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things: 

a) Accompany the work with the complete corresponding machine-readable
source code for the Library including whatever changes were used in the
work (which must be distributed under Sections 1 and 2 above); and, if
the work is an executable linked with the Library, with the complete
machine-readable "work that uses the Library", as object code and/or
source code, so that the user can modify the Library and then relink to
produce a modified executable containing the modified Library. (It is
understood that the user who changes the contents of definitions files
in the Library will not necessarily be able to recompile the
application to use the modified definitions.) 

b) Accompany the work with a written offer, valid for at least three
years, to give the same user the materials specified in Subsection 6a,
above, for a charge no more than the cost of performing this
distribution. 

c) If distribution of the work is made by offering access to copy from
a designated place, offer equivalent access to copy the above specified
materials from the same place. 

d) Verify that the user has already received a copy of these materials
or that you have already sent this user a copy.
"
------------------------------------------------------------------------


> Therefore, www.gtk.org provides the sources and win32 binaries.  What
> is 
> the problem?  Furthermore, if you look at 
> ftp://ftp.gtk.org/pub/gtk/v2.2/dependencies  (or v2.0/dependencies or
> 
> what have you) You see liibjpeg, libpng and libtiff! Goodness!  Its
> not 
> as if these additional libaries are difficult to track down or
> anything. 

Remember, I never registered any complaints against GTK.
The problems were with the users of it. 

I am pleased to see that my mails has made a positive effect, the
problems are going away. The Win32 port of dia now has all the sources
that are installed, and there are people working on the build
instructions. Tor has put a warning on his page that people need to
think about source redistribution. 


>   The Gtk+ team goes above and beyond by providing the source to
> these 
> libraries.  Many other GPL projects merely provide a link to the
> website 
> of the library, and require the user to navigate and track down the
> source.

My original problem was with the Dia port to win32, i noticed that
other users of those libs have similar problems. It looks like these
problems are going away. 

Tor has put in the effort to fix the problems mentioned
and I have not any problems with his current page.

The dia installer team now also has a page with all the sources
http://dia-installer.sourceforge.net/sources.html

> 
> [...]
> 
> > So, I think that my criticism of the practices at the time in july
> were
> > valid and fair. Since then I have taken steps to fix the problem
> and
> > present a set of sources that are in full compliance with the gpl. 
> > 
> > Please do give my effort at least a reference from your GTK+ page, 
> > many people do not know about this work,and would benefit from it.
> 
> Honestly, I don't think people would benefit from it terribly. 

May people have written to me and are interested in this port.
The market for a free GUI development kit that does not need any
windows to run is great. In the post 9/11 and post worldcom economy,
you will see many more people turning to Linux and cross compilation.

The system that I am setting up has 1 major advantage : 

it is easy. it is simple. It works. It is painless.


> You're 
> merely providing yet another build of the source.  

I am providing a single and simple command for the cross compilation of
win32- 

dpkg-buildpackage.


>You may be
> following 
> a different interpretation of the GPL, and may have a different build
> system, but the fact remains that it is merely another build for the 
> win32 platform.  

yes with the freedom from all microsoft code, and a full set of sources
and a full set of build scripts. No hidden dlls no dll hell.

> I see no reason to replace or even coexist with Tor
> &  Hans' work, which is sanctioned by the Gtk+ already. 

My goal is still to take over the DiaWin32 port after Hans has dropped
support of it. 

Many users were shocked at his announcement to take down the binaries
of the dia, and i have declared that I will be taking over of that.

I have been working on the past six months to completly recompile the
entire DIA tool with all dependancies. 


> Why give people, especially Windows users, the kind of confusion that
> will stem from two differing versions of Gtk+ for Windows?  

The debian packaging of GTK will give the user no confusion at all,
when the DPKG has been given a win32 installer and a download manager
they will just click on the instaler and pull the needed packages. Very
simple.

I dont want to confuse anyone.  I just want to clean up around here,
somone has to take it apon himself to fix the problems at hand, 
after many mails about the GPL the DIA port, things have gotten better.


I have stopped complaining and starting fixing, and the work so far has
been beneficial.

> If you have fault with the Gtk+  win32 team, why not attemp to work 
> with them, rather than breakin away  like this?

The patches will be submitted upstream as soon as we are finished
testing.

mike



=====
James Michael DuPont
http://introspector.sourceforge.net/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]