aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docs/README.Bookie
blob: bec4b193624c98fe93719611206e163e72ef765c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Shared dynamic libraries is a bit of an issue for cross platform code. 
LL viewers deal with it by including their own copies of the libraries
they use.  This bypasses the idea of sharing them, and thus uses too
much resources.  On the other hand, it seems to be the Windows way of
doing things, lots of Windows packages I have seen include their own
copies of libraries.  Mac Os X seems to do the same, each application is
installed as it's own directory, filled with it's own copies of
libraries.  Not a lot of sharing going on.  Linux and the BSDs do the
right thing, most libraries are actually shared.  Except that LL viewers
STILL bring their own libraries.

I think the main difference is having a proper package management
system.  Apt, RPM, and portage (I think) can track dependencies on
libraries, install the libraries automatically, and even have different
versions of libraries installed side by side.  Without this, the OS has
no official way of tracking library dependencies, so every one has to
supply their own.  Sure Mac OS X has had a few package systems ported to
it, but none of them are the official one, so developers can't rely on
them.

SledjHamr has to deal with this, and try to do so in some sort of smart
way.  As usual, the right way to do things is generally to do the
opposite of what LL does.  lol

Bookie should be a sub system that probes the OS, trying to see if
there's some sort of OS store of libraries, and try to find reasonable
versions of the libraries needed in that.  If not found, it could invoke
an OS specific method of installing a suitable library.  If that fails,
it can download a SledjHamr specific version into the SledjHamr
installed directory.  So it tries to do the right thing first, and
gradually falls back to doing the wrong thing like LL does.

That's the theory, in practice, gonna be a pain.