The Cairo operating system
Posted Jul 5, 2006 21:44 UTC (Wed) by
farnz (guest, #17727)
In reply to:
The Cairo operating system by evgeny
Parent article:
Cairo release 1.2.0 now available
I'm still not clear what you're after; Cairo has the needed separation
between backends and core library internally. They just haven't spent the
hours needed to write dlopen() boilerplate code, and their own runtime
linking of backends derived from this, especially since the backend
interface isn't stabilised, and thus this boilerplate code would need
plenty of changes.
You're still arguing that because your distribution of choice combines
a lack of flexibility in providing alternative versions of a package with
maintainers unwilling to do the extra (manual) work involved in providing
those alternatives, all library developers should do the extra (manual)
work in working round this deficiency.
Plus, as you've said yourself, who cares about a few bytes? If you
never use anything other than the SVG backend for Cairo, the other
backends and their associated libraries won't be used in memory at all,
and disk is even cheaper than RAM (which you're happy to burn). Indeed,
if the dynamic linker is bright enough (and I've never checked this), you
could delete the X11 and OpenGL backends, and not even notice that you're
missing compile-time dependencies.
If it's security that worries you, I'd just like to point out that
you're advocating that the Cairo developers stop making use of the
dynamic linker's symbol resolution, and write their own version; there's
no guarantee that this code won't be buggy. In addition, bugs in a
manually coded subset of a dynamic linker are likely to lead to arbitrary
code execution, not to output faults.
Here's a constructive suggestion for you; if the dynamic linker isn't
bright enough to cope with missing libraries (despite the fact that
they're not used), why don't you motivate someone to fix this? The result
should be that your server code (which presumably never touches the
DirectFB backend) can link to a version of Cairo that was compiled with
all the backends, and never notice that someone didn't install the
DirectFB backend. Then, your distribution of choice can compile Cairo
with everything turned on, but ship it in a split set of packages with
different backends.
(
Log in to post comments)