On Wed, Aug 16, 2006, Caleb Epstein wrote:

> On 8/16/06, Ralf S. Engelschall <[EMAIL PROTECTED]> wrote:
>
> >> Besides, I found out, that many (all?) openpkg packages are configured
> >> with the "--disable-shared" option which causes them not to produce
> >> any shared library. What is the reason for that?
> >
> >That's because there is no _portable_ way to build and link applications
> >against shared libraries _AND_ make sure that those applications really
> >load the correct libraries under run-time in case you have multiple
> >installations on a single platform (OpenPKG's major multiple-instance
> >feature). I know that there is GNU libtool and on ELF based platforms
>
> Just out of curiosity, how many folks actually *use* this feature?

You mean the "multiple instance" feature of OpenPKG. Well, I've no
numbers at hand. I can only say that if people are using OpenPKG but
*not* using this major feature they are either very frugal or do
something wrong because they have not understood the great power behind
this OpenPKG feature. For me beside the cross-platform support of
OpenPKG, the multiple-instance feature is one of the major technical
features and design goals of OpenPKG.

> I know I personally would prefer having shared objects to being able
> to have multiple independent versions of OpenPKG installed on a
> machine.

This I do not understand. Why do you need shared objects in order to
have "multiple independent versions of OpenPKG installed"? The existing
support for multiple instances in OpenPKG _is_ exactly what allows you
to do this -- and fully without any shared objects. So, I guess I'm
misunderstanding your point here.

> Clearly its HARD to do the latter thing right with shared
> libs, but its certainly not impossible.

Yes, of course. Nothing is impossible. Everything is just a matter of
two issues: implementation costs (here hacking the DSO support into many
packages) and new drawbacks resulting from the implementation (here for
instance the required hacks itself which might cause simple packages to
become rather complex and less easy to maintain).

> That lack of shared libraries/objects increases the memory and disk
> space requirements

Yes and no. It certainly increases disk space requirements, yes. But
disk space costs nearly nothing already since years. And although the
memory space requirement is slightly increased, this isn't really such
much as we still link system libraries dynamically and only our own
OpenPKG ones statically into applications. So, the slightly increased
resource consumption certainly is true in theory, during many years
in server computing I've _never_ seen a server system I've reviewed
which was based on OpenPKG and which had a resource bottleneck caused by
_those_ issues. So, IMHO this slight resource increase can be neglected.

> for OpenPKG and even breaks, to some small degree,
> certain applications.  The awesome zsh shell, for example, needs
> shared library support for its loadable modules.

Sorry, you are intermixing two points here. Loadable modules and shared
libraries are two different species: the first ones are DSOs which are
_explicitly_ loaded by an application and OpenPKG uses this in many
packages (if our "zsh" package still doesn't feel free to add this
feature) as it doesn't break any of OpenPKG's features. The second
ones are DSOs which are _implicitly_ loaded by the Unix run-time loader
(RTLD) for an application and OpenPKG doesn't use this as it breaks
some of OpenPKG's major features like support for multiple instances.

So, we have to be precise here: OpenPKG is neither about statically
linked applications (we always link the executables _dynamically_, we
just link in our own libraries statically), nor is it about not using
Dynamic Shared Objects (DSO) at all (we use it for applications which do
their own libtool or dlopen stuff). OpenPKG currently just about _NOT_
using shared libraries (i.e. <prefix>/lib/libfoo.so's)

> I'd rather have shared libs, but its Ralf's ship to steer.  What do
> others think?

Well, I also would like to see _optional_ shared library support for
OpenPKG since a longer time. I can only say that until now I still do
not see how we can achieve this with more advantages (usually under
run-time) than disadvantages (usually under packaging/build-time). But,
hey, perhaps someone has a rather clever idea how we can add optional
shared library support without having to poke dozen of %if's into
hundreds of packages.

At least until know I think that most people seem to overestimate the
effective benefit of shared library support....

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
User Communication List                      openpkg-users@openpkg.org

Reply via email to