In cairo, implicit depenencies on librsvg2 and/or poppler?
Jeremy Messenger
mezz7 at cox.net
Thu Dec 27 11:29:49 PST 2007
On Thu, 27 Dec 2007 13:09:17 -0600, Doug Barton <dougb at FreeBSD.org> wrote:
> On Wed, 26 Dec 2007, Joe Marcus Clarke wrote:
>
>>
>> On Wed, 2007-12-26 at 13:31 -0800, Doug Barton wrote:
>>> I was doing some stale ports cleanup recently and deleted a bunch of
>>> stuff that didn't seem to be needed, including librsvg2 and poppler.
>>> Deleting the former caused several of my applications to no longer be
>>> able to display svg images. I tracked the problem down to the missing
>>> librsvg2 of course, but only after carefully watching the configure
>>> output of cairo and noticing that it gave a "can't use svg 'cuz you
>>> don't have librsvg2" type message. It gives a similar message for
>>> poppler, but AFAIK I don't actually need that.
>>>
>>> So, short version is that you might want to add OPTIONS for those two
>>> libs, and related explicit dependencies for them in the cairo Makefile.
>>
>> Actually, it's not so simple. I assume the apps that could no longer
>> display SVG images were GTK+ apps.
>
> That's where it got interesting. Some of them were GTK, yes. But,
> firefox could still render SVG just fine without librsvg2 installed.
> Weird.
>
>> If so, they get the ability to render SVG images from the SVG GDK image
>> loader installed by librsvg2
>> (/usr/local/lib/gtk-2.0/2.10.0/loaders/svg_loader.so). This is a
>> dlopen'd library, and thus is not really a hard dependency. It's more
>> along the lines of, "if you want this functionality, install this port."
>
> Right, which is why I suggested that it be made an OPTION. :)
Users enable that OPTIONS will getting the circular dependency. ;-)
I never noticed Deluge port required librsvg2 for weeks until someone
installed Deluge in lightweight desktop. All of this is just because of
deluge.svg, that's it. There is no info of dependency. I hate when it
happens. I have fixed Deluge port by add librsvg2 dependency, so if one of
port that you have installed have SVG file or whatever then this port need
to add librsvg2 dependency.
But if this port has no SVG file and is a image viewer or graphic editor
application, then user will have to install librsvg2 on their own or you
can add an OPTION for that to show users that it is need for SVG file.
Cheers,
Mezz
>> Neither gtk20 or cairo can depend on librsvg2, though, or we'd have a
>> circular dependency (as librsvg2 needs gtk20 and gtk20 needs cairo).
>
> I don't see the dependency on cairo in gtk20 or glib20, where does it
> come in?
>
> Doug
--
mezz7 at cox.net - mezz at FreeBSD.org
FreeBSD GNOME Team - FreeBSD Multimedia Hat (ports, not src)
http://www.FreeBSD.org/gnome/ - gnome at FreeBSD.org
http://wiki.freebsd.org/multimedia - multimedia at FreeBSD.org
More information about the freebsd-gnome
mailing list