[csw-maintainers] MySQL shared libraries - how about /opt/csw/lib?

Maciej (Matchek) Blizinski maciej at opencsw.org
Sun Jan 2 02:18:27 CET 2011


No dia 1 de Janeiro de 2011 19:17, Philip Brown <phil at bolthole.com> escreveu:
> On Sat, Jan 1, 2011 at 11:06 AM, Maciej (Matchek) Blizinski
> <maciej at opencsw.org> wrote:
>> No dia 1 de Janeiro de 2011 18:52, Philip Brown <phil at bolthole.com> escreveu:
>>> On Sat, Jan 1, 2011 at 10:30 AM, Maciej (Matchek) Blizinski
>>> <maciej at opencsw.org> wrote:
>>>>
>>>>...
>>>> My proposal supports multiple versions of MySQL installed at one time,
>>>> doesn't it?
>>>
>>>
>>> maybe you could flush out a specific example of that. I didnt see that
>>> in what you've written so far.
>>
>> I did: "The sonames of these libraries are bumped up with every MySQL update:
>> 4.0: libmysqlclient.so.14, 5.0: libmysqlclient.so.15, 5.1:
>> libmysqlclient.so.16."
>>
>> In a verbose way:
>>
>> Binaries that link to MySQL 4 libraries:
>> NEEDED libmysqlclient.so.14
>> library found in /opt/csw/lib
>>
>> Binaries that link to MySQL 5.0 libraries:
>> NEEDED libmysqlclient.so.15
>> library found in /opt/csw/lib
>>
>> Binaries that link to MySQL 5.1 libraries:
>> NEEDED libmysqlclient.so.16
>> library found in /opt/csw/lib
>>
>> Does it make more sense now?
>>
>
> no. you're too focused on shared libraries. youve only mentioned
> binaries as they related to shared libraries.
> you havent mentioned small details like where these multiple-version
> binaries will actually LIVE? :-)
>
> Your initial writeup seemed to imply that binaries would live in /opt/csw/bin

No, it didn't.  If I wanted to suggest anything about binaries, I
would write "binaries would be kept under..." and I'd specify the
location.

> But for multiple versions, thats not so good!
> Are you proposing the following:
>
>
> /opt/csw/lib/  libmysql.so.50
>                   libmysql.so.51
>
> /opt/csw/mysql5/lib  libmysql.so.50 ->(lib/libmysql.so.50)
>                              libmysql.so      -> (lib/libmysql.so.50)
>
> /opt/csw/mysql/(bin,include)  -- As they are now
>
> ?

Yes.  This only concerns the shared libraries, everything else stays as is.

> As a minor niggling point, it might be "safer" to have the 'real'
> libraries in /opt/csw/mysqlprefix, and only have symlinks in
> /opt/csw/lib.
>
> That way, someone who wants to manually copy over mysql5X, can tar up
> /opt/csw/mysql5X and have all actual files, rather than having to go
> back later when he realizes, "oops I missed the actual libraries".

Are you serious?  Is that a supported use case?  I thought that the
whole idea of software packaging that you don't manually copy
installed programs.

> This does have some drawbacks for maintainers though.
> While it serves the users better, it might mean that
> overly'intelligent' configuration things such as libtool, may follow
> the symlinks to the "real" location and add in explicit RPATHs to
> there. which would mean the maintainer may want to trim that out.
>
> I still think it would be better to have the real, in the prefix dir though.

The manual copy argument is slightly ridiculous.  My idea is to keep
the data files, just like in any other package, under /opt/csw/lib,
and to provide symlinks from other locations for compatibility
purposes.


More information about the maintainers mailing list