Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

Building Domino C-API applications for RHEL/CentOS 8 - Lib dependency

Daniel Nashed  16 January 2020 23:35:17


Now that Domino 11 officially supports RHEL/CentOS 8.x I am testing my applications.

I ran into a changed lib version for Domino C-API applications which compile and link with makefiles derived from the examples shipped with the SDK.
Those examples use the lib "-lnsl".

RHEL/CentOS 8 changed libnsl.so to a new version (libnsl.so.1 --> libnsl.so.2).

The lib is usually not needed for most applications unless you are using cetain TCP/IP operations as far I found out.

The error you see, when starting the application is the following:


/opt/hcl/domino/notes/latest/linux/nshtest: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory


So when building your applications you can usually remove the dependency.
Domino itself doesn't have the dependency.

Just to remind you: The support build environment for Domino 10 and Domino 11 on Linux is still CentOS 7.4 with the gcc/gcc++ compiler shipped with that version!

This is a about the run-time environment and the changed lib dependencies. And again, this is only for specific add-on applications.
I added the exact error message to let Google to pick it up...

Here is the original link line form the examples:

# set LIBS to list all the libraries ld should link with.

LIBS = -lnotes -lm
-lnsl -lc -ldl -lpthread -lresolv

Here are the libs installed by default:

RHEL 7

/usr/lib64/libnsl.so.1
/usr/lib64/libnsl.so

RHEL 8

/usr/lib64/libnsl.so.2
/usr/lib64/libnsl.so.2.0.0

Comments

1Ben Langhinrichs  17.01.2020 20:25:03  Building Domino C-API applications for RHEL/CentOS 8 - Lib dependency

Thanks for documenting this. I'm sure it will save a bunch of time scratching my head and wondering what is wrong.

2Rene  22.01.2020 11:56:25  Building Domino C-API applications for RHEL/CentOS 8 - Lib dependency

Hi Daniel, I got some very sad news from HCL.

"Currently there is no C API Toolkit available for Domino v10.x and v11.x and there are no plans either.

sadly new versions of domino cannot be incorporated into C API."

So any new features in Domino v10 and newer will NOT be supported/available through C API Toolkit.

3Daniel Nashed  22.01.2020 15:52:30  Building Domino C-API applications for RHEL/CentOS 8 - Lib dependency

@Rene, there is no new C-API toolkit.

And yes there is no official statement about a new C-API toolkit. But there are discussions.

Which functionality what is new in Domino 10/11 are you missing in the C-API toolkit?

Do you have a list of features? Can you create a AHA idea and also post the link/number?

But you can continue to build applications with the Domino 9.0.1 C-API.

The compiler changed for Domino 10 to the GCC++ compile which ships with CentOS 7.4. That's the build platform HCL uses.

You can build applications that work with Domino 9, 10 and 11 using the C-API toolkit.

But you have to take care of the compiler. Applications compiled with the newer compiler, that ships with CentOS 7.4.

The C-API is still fully supported even there are no new C-API calls exposed and the plattform changed.

Having said that, there is currently no updated C-API available with new exposed functionality. I have a longer list of wishes what should be exposed.

Some of them made it into AHA. Specially the features around DAOS and also backup.

-- Daniel

Archives


  • [IBM Lotus Domino]
  • [Domino on Linux]
  • [Nash!Com]
  • [Daniel Nashed]