#5376: Incorrect libraries name/soname --------------------------+------------------------------------------------- Reporter: kaliber | Owner: zooey Type: bug | Status: assigned Priority: normal | Milestone: R1 Component: Build System | Version: R1/Development Keywords: | Blockedby: Platform: All | Blocking: --------------------------+------------------------------------------------- Comment(by kaliber): Replying to [comment:2 zooey]: > It really depends on what you mean by incorrect - as it seems, you have compared the sonames from haiku with the ones on Linux. But the BSDs for instance have a different soname scheme (incrementing the numeric suffic for every release). Soname is defined by the a package and it's OS independent. I'm talking about open source software available on various operating systems. It looks like FreeBSD (ports) uses the same rules, for example [http://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-current/All/icu-4.3.3.tbz], [http://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-current/All/ncurses-5.7.tbz]. For some reason libjpeg has different soname in FreeBSD. > The soname scheme currently used in haiku simply uses the libraries name + ABI version for the soname. Many 3rdparty software use libtool. The major version number is changed only if ABI has changed. [http://www.gnu.org/software/libtool/manual/html_node/Updating-version- info.html] > It is hard to tell from their past releases, but is libjpeg 8.1 really going to be ABI compatible with 8.0? Please tell if you've found a point of reference for that. > Of course we could still name it libjpeg.so.8 and then name the next release libjpeg.so.8.1 if it is not compatible. But I personally find it pretty cumbersome to try and track ABI compatibility for libs that do not care to document their ABI compatibility policy. In my opinion 8.1 will be binary compatible with 8.0, but there is no guarantee. We should trust to package maintainers and believe that they change major version if they break binary compatibility. > > 4. icu > > - there is: libicu-*.so.4.2 > > - should be: libicu*.so.42 > > }}} > > Yeah, it could be, but why not let the soname match the ABI version of the library? Soname should match the ABI version instead of software version. Summarizing. I prefer to use original soname provided by a package maintainers instead of introducing own. -- Ticket URL: <http://dev.haiku-os.org/ticket/5376#comment:3> Haiku <http://dev.haiku-os.org> Haiku - the operating system.