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

Run Domino & C-API Dev on WSL2 Ubuntu Linux

Daniel Nashed  14 June 2020 18:34:24

Run Domino & C-API Dev on WSL2 Ubuntu Linux

Now that I have Ubuntu running on my Windows machine thru WSL2, I have a couple of ideas what to do with it.

Having Windows combined with a real Linux implementation has some interesting new opportunities.
Yes some of it isn't supported at all. But it makes my development life a bit easier.


Domino installation

First of all I tried to install Domino.
The installation failed on first attempt and it turned out I just had to change the InstallAnywhere shell script to use bash  --> #!/bin/bash
After that change the installation worked like a charm.

Domino configuration with X11

Usually I am using the remote server setup via -list 1352. But I wanted to see if I get X11 working.
There are multiple ways to do it and since I am not a big X11 fan, I took the easy part.
I exported my display with a line I found in a forum. It gets the name server for the Ubuntu host, which is the IP of my machine.

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0


When I started a X application, my MobaXterm just asked me if it would be OK to open the session -- Done.

Running /opt/hcl/domino/bin/server let me use the graphical local setup instead of the remote setup.


Domino Start Script

The Domino start script works in general. But I had to tweak it a bit.

The install script will try to configure systemd. But systemd isn't currently supported by WSL2 Ubuntu.
So I switched it manually back to the old init.d style
(comment out DOMINO_SYSTEMD_NAME=domino.service in /etc/init.d/rc_domino and /etc/sysconfig/rc_domino_config

The remote server console still did not work, because for some reason the reading a variable generates  SIGCHLD (17) signals, which stop the console.
If you remove signal 17 from the "trap statement" it will work.

I might update the start script and start script installer to detect a WSL environment and configure accordingly.


Domino C-API Environment

Now that I have a Domino server and the Ubuntu instance can directly access my other file-systems, I could potentially compile my applications directly from the Ubuntu window.

The gcc/gcc++ compiler was already installed. But it's the wrong version, which is not supported by Domino!

But for a development environment to do a first build, it's still a good idea -- as long as your finally compile with the gcc/gcc++ 8.x compiler that ships with CentOS 7.4.

Ubuntu 20.04 LTS
ships with gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2) which is a new major version.


I tested it anyway and beside one bigger change, it still works.
Linking with the noteslibs for startup will fail because the code generated with the newer compiler is position independent compiled & linked.

To get Domino Linux 64 binaries working you have to use -no-pie = disable position independent code

I am still testing but it looks good so far with just this one change.
And this makes my life a lot easier when testing Linux applications.
I can run everything on the same machine (even I have many virtual machines running anyway).



-- Daniel

Archives


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