Hello,

I'm trying to gauge interest in a little project I've been working
on in my spare time. 


What I have so far is a monolithic package that combines all the
usual GNU/Linux graphics libraries into one big MacOS X style
Framework.  Namely I have a /Library/Frameworks/GNU-Graphics.framework
that has all the graphics manipulation capabilities of libpeg-6b,
libpng-1.2.x, tifflib-6beta, libungif etc ...

Thus, instead of telling gcc "-ljpeg -lpng -lz" on the link command
line, one can do "-framework GNU-Graphics" and get basically the
same result.  (By simlinking all the dylibs to the one big framework
dylib one can still link the original way.  By simlinking the headers
to their place in the framework, the preprocessor never notices 
the difference either)


Besides teaching myself how Darwin/OS X works the "OS X-native" way
(as opposed to the "BSD-native" way), I did this as a proof of
concept for a different methodology for prebinding in fink (or
darwinports or whatever).

The idea is to collect the libraries that are used most (all the
graphics ones in one framework, the audio ones in another, the kde base
ones in a third etc).  By reducing the sheer number of libraries
one can reduce the seg1addr address space collision problem to a
more managable size.

In the bonus side-effect column, those libraries should be available 
to the MacOS project builder stuff and to 3rd parties in a more
"friendly" manner.

Instead of carving up the available address space into tiny bits that
may move around and such, one can just "reserve" hunks of space for
related libraries (ie, a hypothetical GIMP-Framework has a space
to itself where the 1.2 libgtk, libgdk, libgmodule etc all fit somewhere
in)

As long as one dynamically links to the Framework, the binary sizes
stay basically the same.  One can still generate the
/usr/local/lib/libfoo.a static lib if one wants.


Of course there are some significant drawbacks, like "having" to 
relink, redistribute and bump up the Framework version number everytime
a sub-library gets changed (and worring about incompatible versions)

Mixing licenses is also an issue (I Am Not A Lawyer, but it seems to
me that the libraries I used are compatible with libMNG's use of the
LGPL)

I'm sure there are lots of other issues with the idea as well, but
I figured I'd at least try to see if it was actually do-able first,
and it seems to work just fine limited tests.


Questions? (about my sanity)? Comments (regarding my certifiability)? 

-dean takemori



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to