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

Re: gEDA-user: [RFC 2/6] Plugin system



On Fri, 2009-01-16 at 18:35 -0500, DJ Delorie wrote:
> > Having been stung by this in the past, I would prefer the majority
> > of plugins to be "opt-in" than "opt-out" (i.e. loaded only when the
> > current project needs to use them).
> 
> The counter-sting is trying to automatically install N plugins, each
> of which has to be listed in a single config file.  Avoiding a central
> listing has its benefits too.

We do need some kind of opt-in system, otherwise we wouldn't be able to
ship a load of (possibly contradictory / mutually exclusive) plugins in
some standard system location /usr/lib/gEDA or some such.

We can't rely on symlinking them into the user's config area either,
since symlinks aren't portable to all OS.

Going back to the potential for mutual exclusion, it becomes clear that
the plugins might need some kind of dependency information with them,
and we start to get into the rather horrible realisation that we may
need to re-invent dpkg for gEDA.

Plugins might need to "provide" certain named capabilities, such as
"refdes_autonumber" or some such, and these plugins might have to
declare excluding any other plugins which provide that same feature
name.

Plugins _do_ need some known API exported. One to query plugin name,
version, and built ABI version would be a very good start.

Compiz does most of these things with its plugins, vaguely nicely from
an end-user point of view. If you try to activate a conflicting plugin,
it will tell you - and ask you how to resolve the conflict. It also
checks for compatible ABI before continuing.

(Many times before now I've made PCB crash after forgetting to recompile
plugins for a new version of PCB).


Solving the difficulty of enabling a number of plugins at once via a
config file.. That's the kind of thing an "Enable all" button in the GUI
is good for.

If we're feeling generous, we could code an "Add plugin" button to
install it for you as well. (Some apps on the desktop even interface
with things like package-kit to fetch / install new plugins without
going behind the distro's package manager to do so).


-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user