Re: Portability and distribution with Gtk+ 1.3



On Tue, 17 Apr 2001, Arnaud Charlet wrote:

> To the Glib and Gtk+ designers,
> 
> When porting GtkAda to Glib/Gtk+ 1.3, we found that many additional
> dependencies had been added in order to build Gtk.
> 
> The list of dependencies for Gtk+ 1.3.3 is as follows:
> 
> libtiff (optional as far as we can see, but might be needed by gdk-pixbuf)
only needed if you want to load tiff images, otherwise can be omitted.

> libgif  (optional as far as we can see, but might be needed by gdk-pixbuf)
Not needed (gdk-pixbuf contains its own GIF decoder).

> libjpeg (optional as far as we can see, but might be needed by gdk-pixbuf)
only needed if you want to load png images, otherwise can be omitted.

> zlib    (needed by libpng)
> libpng  (needed by gdk-pixbuf to at least load the stock images)
similar here.

> pkg-config (needed by glib & gtk+, and also contains glib-1.2.8)
> pango   (needed by gtk+)
> glib    (needed by gtk+ and by the end user)
> gtk+    (end user lib)
> 
> For the record, the list of dependencies for Gtk+ 1.2 is:
> glib
> gtk+
> 
> So this makes building and distributing Gtk+ based applications much harder
> and complex. One of the strong characteristics of Gtk+ up to now was that
> it was a relatively compact and easy to install/use library.
> 
> With Gtk+ 1.3.3, this is certainly no longer true, and Gtk+ is now a complete
> system on its own, very much like Gnome is.
> 
> Is this intended ? Are they plans to reduce the dependencies ? Simplify
> installation and portability ?
> 
> In particular, libraries that are outside glib/gtk control like zlib which
> is needed do not even have a proper configure script, and do not have built-in
> capability to provide a shared zlib library, required by libpng. This
> makes the whole system user unfriendly to say the least.
> 
> The other issues that worries us is the number of shared libraries now needed
> by a simple Gtk+ application.
> 
> Again, in Gtk+ 1.2, the number of shared libraries is very reasonable, and
> more important, there are no hidden shared library dependencies. By hidden
> I mean dependencies that do not appear in the linked executable, but appear
> only at run time, by the mean of dlopen().
> Again, this makes very hard to distribute stand alone executable.
> Also, when pango loads <prefix>/lib/pango/modules/*.so, this makes distribution
> very hard, since it means that without recompiling an application, there
> are built-in paths that dictate how a software can be installed on a
> foreign machine. Or am I missing something ?

The pango and gdk-pixbuf modules (or a subset thereof) can be compiled
into the respective libraries, which gets rid of some of these `hidden'
dependencies, which should be a help if you are trying to statically link
a program.

James.

-- 
Email: james daa com au
WWW:   http://www.daa.com.au/~james/






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