Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

The following are proposed changes to the UIMA C++ SDK  build and packaging on Linux.

Build process 

The following modifications are proposed to improve the UIMA C++ SDK build process and  to have it conform to the standard practices used in GNU Autotools based build systems:

  1. Build from source using commands: configure (with appropriate arguments), make and make install.
  2. Run the build from the root of SVN extract to enable support for additional make targets such as make dist, make doc, etc.
  3. Find and use system install of dependencies - APR, ICU, XERCES, ACTIVEMQ and check / verify minimum version requirements.
  4. Require The default is to require ActiveMQ CPP to be available and require the to build of the ActiveMQ CPP based service wrapper (was optional). Add support for --without-activemq to skip building the service wrapper.
  5. Enable make dist target to create the source tarball.
  6. Enable make check to run the fvt tests.
  7. Add support for --with-library-suffix to enable user to build their version of the libraries under a different name.
  8. Add support for make sdk to create the binary package.  This requires the APR, ICU, XERCES, ACTIVEMQ-CPP be installed by the user and their location specified as arguments to configure.
  9. Add support for make rpm. 

Version Numbering

This discussion applies to the preparation of UIMA C++ binary package on Linux. Currently we do not use version numbers on Windows binaries.

...

The libtool versioning system is enabled by invoking libtool with the --version-info option during the build.
 For example, --version-info 0:0:0  produces library, soname and linkname as shown below:
lrwxrwxrwx  1 bsiyer users       20 Feb  2 18:22 libuima.so.0 -> libuima.so.0.0.0
-rwxr-xr-x  1 bsiyer users 15725180 Feb  2 18:22 libuima.so.0.0.0
lrwxrwxrwx  1 bsiyer users       20 Feb  2 18:22 libuima.so -> libuima.so.0.0.0

The soname, libuima.so.0, is determined by the value of current.  

When preparing a public release, update the version info according to these rules:
    Increment revision if there are no interface changes.
    Increment current  if the interface have been added, removed or modified and set revision to 0;
    If the interfaces have been removed or modified, set age to 0 otherwise increment age.

RPM Packaging

Support for packaging as an RPM has been requested by developers of UIMA C++ annotators.