Bug#343605: libgtk2.0-bin: apiver should contain the arch-os-gnu triplet

Loïc Minier lool at dooz.org
Thu Oct 5 15:12:57 CEST 2006


        Hi Goswin,

 Please find below a short summary of the pango1.0 multiarch changes and
 and a preview of the Gtk implementation.

On Fri, Dec 16, 2005, Goswin Brederlow wrote:
> while working on multiarch support I notice that gtk2.0-bin will
> break. In update-gtk-immodules you set 'apiver=2.0' and create
> /etc/gtk-$apiver/gtk.immodules. For multiarch systems there must be
> multiple such files, one for each abi used.

 I've worked on multiarch support in pango1.0, and I've just uploaded a
 first version to unstable, but with a relatively different approach.

 With modules, these are the main problems:
 - location of the actual modules
 - content and/or location of files listing modules

 The first one is relatively easy to solve with configure's --libdir, so
 let's tackle the other problem.

 Pango only loads modules from absolute pathes.  The default module path
 is LIBDIR/pango/MODVER/modules.  The list of modules to load is
 configurable, and is SYSCONFDIR/pango/pango.modules by default.

 What I did for Pango was to alter the module loading code to load all
 modules listed in all files matching
 LIBDIR/pango/MODVER/module-files.d/*.modules (plus
 SYSCONFDIR/pango/pango.modules for compatibility).  Each binary package
 has to generate such a file which lists absolute pathnames, and this
 can be achieved via dh_pangomodules.


 Now this was not too complicated for Pango because it only loads
 modules listed in the files listing pango modules absolute pathnames
 and because there's only one module type.
   The only other package shipping Pango modules (pango-libthai) was
 converted to this new layout and is in unstable since 5 days.


 Enter Gtk, which has 6 module types (filesystem backends, gdkpixbuf
 loaders, engines, input methods, and printing backends, as well as
 generic "modules").

 It seems to me that only gdkpixbuf loaders and immodules are listed in
 configurables files.  These list only absolute pathnames (relative ones
 are supported, but no prefix is prepended, so this is useless for us or
 would need patching).

 Other modules types do not have a query tool to generate a
 configuration file listing them, and they seem to all be loaded when
 requested (by programs, config file, or environment vars), and not
 automatically.

 So, I basically did the same thing than for Pango, but with two sets of
 module files.

 (I didn't enable Multiarch LIBDIR switching in Gtk yet, as it is
 impractical to do until all modules have been converted to the new
 module handling mechanism.)


 Finally, there's a special virtual provide to track the binary version
 of modules.  This virtual provides has the multiarch keyword in it for
 a dh_pangomodules built with multiarch support, so it should prevent
 from mixing non-multiarch modules with multiarch pango and vice-versa.

 I would appreciate your feedback on version 1.14.5-1 built with
 DEB_BUILD_OPTIONS=multiarch.

 I've rebuilt 1.14.5-1 with DEB_BUILD_OPTIONS=multiarch as
 1.14.5-1multiarch1, and it's available at:
<http://people.dooz.org/~lool/debian/pango1.0/1.14.5-1multiarch1/experimental/>

   Bye,
-- 
Loïc Minier <lool at dooz.org>





More information about the Pkg-gnome-maintainers mailing list