Hi,
I'm resending this email because a part was missing and because I was
not registered to the mailing list.
---
First: I tried adding a ticket as described on the website under "bug
tracker" (http://podofo.sourceforge.net/support.html#mantis) pointing to
sourceforge: https://sourceforge.net/p/podofo/bugs/?source=navbar (last
ticket is dated from a few years back). However, even after being logged
in, I was unable to add tickets. PoDoFo's website also mentions to
report bug reports, feature requests and patches to the mailing list.
Maybe the website should be updated accordingly to what is being used.
Now, the real problem I've encountered with PoDoFo library is described
here: https://bugs.archlinux.org/task/50155
In short, no symlinks are created for major and/or minor numbers,
forcing to rebuild other programs depending on it whenever the revision
(patch) or the minor number changes.
While some projects are not ABI compatible between minor number
increments, most of them are. I don't know if it is the case for PoDoFo,
since there is no stable major number release yet, but I'll assume for
the purpose of this email. On the other hand, a revision/patch number
increment should only fix errors, not change the ABI.
Thus, PoDoFo should create a symlink between the full number
(libpodofo.so.major.minor.patch) and the major number
(libpodofo.so.major) to represent an ABI compatibility throught the
whole major number development.
As it is now, only the fully version numbered library
(libpodofo.so.major.minor.revision) and a generic symlink (no version,
libpodofo.so) are created at installation:
/usr/lib/libpodofo.so -> /usr/lib/libpodofo.so.0.9.5
/usr/lib/libpodofo.so.0.9.5
Following CMake documentation, the SOVERSION variable should be changed
when the ABI is broken (so it should be set to either major, or
major.minor if the ABI still changes between minor number increment).
The VERSION should be used to identify the full version string.
I think the CMakeLists.txt should be modified as below (proposed patch).
With the proposed patch (or a modified version if the minor number
increment represent an ABI incompatibility), the following is created:
/usr/lib/libpodofo.so -> /usr/lib/libpodofo.so.0
/usr/lib/libpodofo.so.0 -> /usr/lib/libpodofo.so.0.9.5
/usr/lib/libpodofo.so.0.9.5
A program will now be able to link against the symlink that is providing
an ABI compatibility (this patch assumes that a major number increment
represents an ABI incompatibility, just set the SOVERSION to
"${PODOFO_VERSION_MAJOR}.${PODOFO_VERSION_MINOR}" if a minor number
increment represents an ABI incompatibility).
Alexandre Demers
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt(révision 1775)
+++ CMakeLists.txt(copie de travail)
@@ -13,9 +13,10 @@
SET(PODOFO_VERSION_MAJOR "0" CACHE STRING "Major part of PoDoFo
version number")
SET(PODOFO_VERSION_MINOR "9" CACHE STRING "Minor part of PoDoFo
version number")
SET(PODOFO_VERSION_PATCH "5" CACHE STRING "Patchlevel part of PoDoFo
version number")
-SET(PODOFO_SOVERSION
"${PODOFO_VERSION_MAJOR}.${PODOFO_VERSION_MINOR}.${PODOFO_VERSION_PATCH}")
-SET(PODOFO_LIBVERSION "${PODOFO_SOVERSION}")
+SET(PODOFO_VERSION
"${PODOFO_VERSION_MAJOR}.${PODOFO_VERSION_MINOR}.${PODOFO_VERSION_PATCH}")
+SET(PODOFO_SOVERSION ${PODOFO_VERSION_MAJOR})
+SET(PODOFO_LIBVERSION ${PODOFO_VERSION})
#
# Main includes
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users