xffm, samba, cygwin

edscott wilson garcia edscott at xfce.org
Wed Sep 22 03:09:13 CEST 2004


El mar, 21-09-2004 a las 09:51, Maarten Boekhold escribió:
> edscott wrote:
> 
> If you can come up with some configure/autotools magic to conditionally 
> exclude samba from the build, I'd be much obliged.

OK, done. Just run configure with --disable-smbbranch.

> 
> > Other programs xffm uses are
> > mount,umount (for fstab branch), cp, mv, tar, mkisofs. The only
> > indispensable ones are cp/mv.
> 
> These are all available as far as I know, except that mount/umount works 
> differently under cygwin. There's no fstab. So we might have to tinker a 
> bit if we want to get that working. Perhaps the best option is to write 
> a cygwin-specific plugin for managing cygwin mounts.

I seriously doubt whether the fstab stuff will be of any utility under
windows.

> 
> Edscott, I'm a bit confused about how the plugins that are in the 
> xffm/libs directory are handled. As far as I can tell these are proper 
> plugins, i.e. they get installed in a module directory, and should be 
> loaded using g_module_open etc. Except I can't figure out where this is 
> happening. Can you please elaborate?

Xffm uses two types of modules. The first type are the general purpose
modules in libxfcegui4/xfce4-modules. The second type are the modules
which require xffm libraries to run (so far just 3 modules: find, samba,
and properties dialog). Both types are loaded and unloaded in the same
way. All code for loading and unloading is in libs/modules.c,h. Every
module has a "module_init()"  which returns a pointer to a structure
with the exported functions. To make things simple, instead of worrying
when to load a module, instead of using a call to the the module
function, I use a lookalike macro that will load the module if not
loaded (see header files in libxfcegui4/xfce4-modules). Thus,

    const gchar *mimetype = MIME_get_type(file,TRUE);

looks natural, but really does:

    const gchar *mimetype =
(*(load_mime_module()->mime_get_type))(*(load_mime_module()->mime_get_type))

 load_mime_module() is at libs/modules.c.


> Also, somebody mentioned on IRC that xffm installs itself numerous times 
> with a bunch of hardlinks. I assume that xffm acts as a wrapper around a 
> lot of functionality. Can you please elaborate why it is using hardlinks 
> instead of symlinks? Under cygwin there are no true hardlinks, instead 
> it just creates a copy of the file, which would be a waste of space. 
> symlinks however should work.

Originally it was using symlinks. Jasper changed them to hard links for
several good reasons which I can't remember at the moment. Since
hardlinks are unavailable under cygwin, softlinks should be used for
windows instead.

> 
> Apart from the previous mentioned libs/modules, I analyzed all other 
> plugins, and it appears no changes are necessary (apart from the cygwin 
> CFLAGS/LDFLAGS/LIBADD stuff) to get these working correctly. Good news.

Cool. :-)

regards,

Edscott

> 
> Maarten
> _______________________________________________
> Xfce4-dev mailing list
> Xfce4-dev at xfce.org
> http://lunar-linux.org/mailman/listinfo/xfce4-dev
> 



More information about the Xfce4-dev mailing list