Re: custom functions in introspection typelibs



On Sat, Sep 27, 2008 at 6:26 PM, Havoc Pennington <hp pobox com> wrote:
>
> Not just for users - though that's bad - but also for developers. If
> I'm hacking on a binding (or app), it greatly decreases my efficiency
> if I'm forking libraries left and right, or having to jhbuild all
> hundred-something things in jhbuild instead of 3 modules. I certainly
> don't jhbuild all of gnome. I don't know why I should have to. In fact
> I don't want to, I think it's right to develop most apps against
> widely-deployed versions, not bleeding-edge versions. Most apps aren't
> part of the GNOME release cycle.

Using jhbuild doesn't imply bleeding edge (trunk/HEAD).  You can
perfectly well jhbuild a released moduleset.  This is just using
jhbuild as a way to circumvent the essentially unmodifiable OS vendor
binary tarballs.

> Few are going to contribute to my binding or app if they have to do
> the whole jhbuild in order to work on it. That barrier is too high.

Well, I would really like it if building GNOME wasn't so hard (this is
http://blog.fishsoup.net/2007/09/27/upstream-gnome-as-a-product/ ).
It's something we need to fix rather than letting OS vendors handle it
because it is a *serious barrier* to entry for contributors.  There
are multiple things that need doing such as using system installed
libraries if the jhbuild source is equivalent, etc.

> Anyway: it's the whole premise of gir-repository, and why that module
> exists, so I think we should maintain gir-repository with this
> premise.

This is assuming gir-repository gets shipped by OS vendors at all, and
I'm still not convinced that it has to.  A lot of your workarounds
will go away when using FFI.  Another large chunk go away when you
have the ability to inject a custom binding layer.  I admit there are
some things like the Cairo registered types that are annoying but
those tend to have already been worked around in higher level
libraries (like HippoCanvas does).

A gir-repository binary package would be very painful to ship by
vendors; to do it cleanly you'd need to have a binary package for each
library, or accept one mega gir-repository.rpm that Requires: the
entire world.


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