[Nucleo] Nucleo dependencies

Frederic Crozat fcrozat at mandriva.com
Thu Feb 8 12:36:19 CET 2007


Le mercredi 07 février 2007 à 22:44 +0100, Nicolas Roussel a écrit : 
> Hi,
> 
> > while trying to clean metisse dependencies, I discovered nucleo is  
> > trying to pull exif as a build dependencies but there is no code at  
> > all
> > in nucleo using libexif.
> 
> nucleo/image/encoding/JPEG.cxx uses libexif to figure out the  
> orientation of JPEG images and automatically rotate them.

Thanks, I missed it when I did my "grep -r" :) 

> docs/installation.html lists nucleo's dependencies. As it says,  
> OpenGL (AGL or GLX), libjpeg, libexif, libpng, freetype2 and dns-sd  
> will be used if available at compilation time. But nucleo should  
> compile fine without them.

My point is to try to prevent requiring the entire earth just for
nucleo. 

> Among these, I think OpenGL is the only one you really need to build  
> the Metisse compositor. You'll need libjpeg if you want to be able to  
> take screenshots, though.

I'm not against adding features in our package. It would be best if
people could use it for their needs without recompiling it.

I'm thinking about enabling dns-sd, maybe Qt (which version is needed,
qt3 or qt4) and moving those two and ffmpeg into separate subpackages.

So, I'm wondering : why are plugins (I've only checked ffmpeg nof now)
available both as library in %{_libdir}/libnPffmpeg.so  and as a
dlopened module (ie a plugin) in %{_libdir}/nucleo/libnPffmpeg.so.0 ?

Do we need both ?

BTW, for dlopened modules, it is usually standard pratice to drop
versionning in soname (unless you plan to have parallel install for
those modules). Adding -avoid-version for linking is the right fix.

> As a Mac user relying on Fink for libs that are not part of a  
> standard OS X installation, I tend to think twice before adding a new  
> dependency. libexif seemed small and stable enough to me. Have you  
> had any problem with it?

Not at all, I didn't found any code using it when I did my search, but I
did it wrong :) 

> I could probably replace libjpeg, libpng and libexif with a single  
> image manipulation library. Suggestions are welcome.

I'd suggest gdk-pixbuf (from GTK+2) but it doesn't handle the exif part.
But you will get SVG support for free if librsvg gdk-pixbuf loader is
installed. 

> One last thing: I will soon commit some files that add basic XMPP  
> support to nucleo. This code uses expat to parse XML and gnutls for  
> secured communications. More optional dependencies...

Hmm, you might want to check for loudmouth with handle XMPP
transparently and wrap it with a glib interface.

I'm not a huge fan of expat, since many apps are already pulling libxml2
but that is your call.

-- 
Frederic Crozat <fcrozat at mandriva.com>
Mandriva



More information about the Nucleo mailing list