Ticket #982 (closed defect: fixed)

Opened 9 years ago

Last modified 9 years ago

add versioning to mapserver library name

Reported by: sgillies@… Owned by: dmorissette
Priority: high Milestone: 4.4 release
Component: MapServer C Library Version: 4.3
Severity: normal Keywords:
Cc: gdallaire@…

Description

Now that we're breaking ground into dynamic mapserver libraries, we should
do proper versioning like libmap.so.4.4.0.

Change History

Changed 9 years ago by dmorissette

  • cc warmerdam@…, steve.lime@… added
  • owner changed from sdlime to dmorissette@…
  • milestone set to 4.4 release
I'll take this... a few minutes before cutting the 4.4.0-beta1

Changed 9 years ago by dmorissette

  • status changed from new to assigned

Changed 9 years ago by dmorissette

  • cc gdallaire@… added
  • status changed from assigned to closed
  • resolution set to fixed
Fixed (kind of) in 4.4.0-beta1.

I have made the following modifs to make libmap.so versioned:
- configure looks for MS_VERSION in map.h and passes that value to the Makefile
- Makefile shared lib target updated to build libmap.so.x.y.z (and create a
libmap.so symlink):
    libmap.so -> libmap.so.4.4.0-beta1
    libmap.so.4.4.0-beta1
- Shared library link command (which was hardcoded to g++ --shared already,
don't blame me for that) now adds -Wl,-soname,libmap.so.x.y.z in order to
support proper versioninig when linking binaries against this shared object
file. This also means that this 'make shared' option will work only with 'g++'.

We should realize that this approach isn't very robust (it wasn't before my
changes either). My approach doesn't follow the recommended practices of library
versioning
http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html,
especially the numbering which I based directly on the MapServer version number
which is bad according to this document. Now I understand why people go through
the pain of using libtool, but that will have to be for another release.

Oh, and while I was at it I added a 'make uninstall' target... makes our life
easier.
Note: See TracTickets for help on using tickets.