Hi Jim,

Interesting! That brings a number of questions:
      * When it comes to distributing plug-ins, what is your preferred
        way of doing it? Developers distribute them on independent sites
        or contribute them to the Shotwell repo? Personally, I'd prefer
        the latter as I'm confortable writing code but I would struggle
        to work out sensible build and packaging code.
      * If the latter, would you rather offer a single package that
        includes Shotwell + plugins or several packages, one for
        Shotwell core and others for the various plugins?
      * And if plugins are distributed separately, what is the plan to
        make them discoverable?

By the way, I get the following error when starting Shotwell with the
current trunk:

shotwell: symbol lookup
error: /usr/local/lib/shotwell/plugins/builtin/spitter.so: undefined
symbol: spit_wad_get_type

Cheers,

Bruno


On Tue, 2011-02-08 at 19:29 -0800, Jim Nelson wrote:
> Hi Rodney,
> 
> To jump in here, there's still some work to be done to support plug-in
> writers.  We wanted to make sure our own plug-ins worked first so we weren't
> putting untested interfaces out into the world.
> 
> One ticket you should be aware of: http://trac.yorba.org/ticket/3160  This
> is to have Shotwell install the .h and VAPI files in a "make install".  This
> will only happen if a switch is enabled with the configure script.
> 
> As part of this work we'll also produce and install a .pc file.
> 
> Until then, you'll need to copy the generated .h, .vapi, and .dep files to
> your project and include them in your build (the valac --vapidir option is
> useful here).  Because the .vapi files wants to look for the .h files in a
> plugins/ subdirectory, they should be placed there, i.e. my_project/plugins.
> 
> Once Shotwell is capable of installing the header and VAPIs, you won't need
> to include them in your project directory.
> 
> -- Jim
> 
> On Tue, Feb 8, 2011 at 5:53 PM, Lucas Beeler <[email protected]> wrote:
> 
> > Hi Rodney,
> >
> > Sorry for not answering your questions! Admittedly, my previous email
> > was probably more of an introduction to the state of the Shotwell
> > plug-in system than it was a specific response to your points. Once
> > again, I apologize. I'll hit your questions one-by-one this time:
> >
> > > Is there a shared library that the plug-ins link
> > > to for the Spit.* API/Interfaces?
> >
> > No. The plug-ins link directly with the Shotwell executable. There's
> > no stub library or developer package that needs to be installed or
> > that appears in Synaptic or as a pkg-config module. All of the
> > references to the word "package" in the Shotwell make files refer to
> > Vala packages. As you noted, a Vala package isn't a "package" in the
> > sense of Synaptic or pkg-config. It's just a .vapi file and a .deps
> > file.
> >
> > > is there also a .gir being generated for them?
> >
> > No. Shotwell doesn't use GObject introspection to discover interfaces.
> > Interface specification is all done directly through .vapi and .deps
> > files.
> >
> > > If so, is there a .vapi/.deps being built for those?
> >
> > Yes. The .vapi and .deps files for the plug-in interfaces are
> > generated automatically by the Shotwell build system. Simply running
> > "./configure ; make" will cause the files shotwell-spit-1.0.vapi,
> > shotwell-spit-1.0.deps, shotwell-publishing-1.0.vapi, and
> > shotwell-publishing-1.0.deps to appear in the
> > ${SHOTWELL_ROOT}/plugins/ directory. These should be sufficient for
> > interface specification, at least as far as the Vala compiler is
> > concerned. If you're curious, the make rules that generate these files
> > are located in the file ${SHOTWELL_ROOT}/src/plugins/mk/interfaces.mk.
> >
> > > If so, is there a .pc file to specify CFLAGS/LDFLAGS for linking?
> >
> > No. The Vala compiler will specify the CFLAGS and LDFLAGS variables
> > automatically when it invokes gcc as a child process. Right now, if
> > you want to develop plug-ins in C instead of Vala, you'll need to set
> > these up manually.
> >
> > Cheers,
> > Lucas
> > _______________________________________________
> > Shotwell mailing list
> > [email protected]
> > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >
> _______________________________________________
> Shotwell mailing list
> [email protected]
> http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell


_______________________________________________
Shotwell mailing list
[email protected]
http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell

Reply via email to