new user creation module in firstboot

David Zeuthen davidz at redhat.com
Fri Oct 5 15:52:44 UTC 2007


On Fri, 2007-10-05 at 00:39 -0400, Ben Konrath wrote:
> > Finally, it would be good to have this feature as a "Component" so it's
> > easy to embed into other applications; e.g. if I want to write a OS
> > installer app, then I can easily embed this component. Same, FWIW, goes
> > for the work we're doing on the clock applet and in the future any
> > system configuration bits. I think firstboot has /some/ notion of
> > plug-in architecture but actually haven't reviewed it since I'm not sure
> > it's appropriate in an environment where the UI should run unprivileged.
> > But it just might work.
> 
> Yeah, firstboot does have a plugin architecture so making a component is
> probably what I want. Can you elaborate on what you mean by component? -
> What technologies should I be looking at using?

Unfortunately not, hence why I used quotes around component above.
There's things like Bonobo, KParts, COM, Eclipse extensions, Mono addins
etc.. In NetworkManager, for VPN plugins, we use (or used too, don't
know how it works post 0.6) a pretty simplistic in-process approach (not
even GObject based)

http://svn.gnome.org/viewcvs/NetworkManager/branches/NETWORKMANAGER_0_6_0_RELEASE/vpn-daemons/README?revision=1545&view=markup
http://svn.gnome.org/viewcvs/NetworkManager/branches/NETWORKMANAGER_0_6_0_RELEASE/gnome/vpn-properties/nm-vpn-ui-interface.h?revision=1545&view=markup

whereby the UI for managing VPN connections would load a GModule
providing the UI and functionality (there's at least three different
open source plug-ins at this point). Nautilus has a similar concept with
it's extension system; see the nautilus-devel package and some of the
extensions. 

The idea was simply that this functionality, along with other things
(such as selecting your location/timezone etc.), would be targets for
embedding in, say, containers like the OS installer, firstboot, gdm or
whatever. Depending on the audience for the OS (or spin), you'd select
where each component then goes. For example for home-user oriented
desktops you'd want everything to go into the live cd installer, for
other targets you want something else.

I'm not really sure it's worth worrying about at this point; I'd just
focus on creating a single program for now then it can always be
retrofitted it into one or more component system later on (and it sounds
like you want a firstboot module as well so perhaps writing the program
as a library might be a good idea too).

Anyway, I'll stop the architecture astronaut thing now (need air!) but I
thought it was important to mention that retrofitting the code so it can
be used in different contexts is desirable.

     David





More information about the desktop mailing list