After getting Python running nicely with GNV and OpenVMS with our new subprocess.py module we progressed on in the Samba 4.3.1 port to OpenVMS.

That proceeded nicely until I came to a point where it became obvious that the Perl implementation on OpenVMS was not supporting GNV properly. I was in the middle of trying to build the Heimdal Kerberos implementation (a builtin of Samba) rather than use the system installed Kerberos. That path was being taken as the current release of Kerberos on OpenVMS is TOO OLD!!!

SO, I then started to look at the build for Kerberos - started to work on that. ./configure went smoothly. The build started and then Perl popped up again - a bit later than in Heimdal - CUTE! NOT!

So I am not evaluating how to implement GNV support in Perl. I have a Perl build installed on one of my development RX2600s and so should be able to get some initial work done on it this week. I would like to have the fixes in place by the end of the month. That may not happen - too much going on with the South Carolina FIRST Tech Challenge State Robotics Championship.

This release is a total new implementation from the prior version. Testing has been done against the Samba 4.3.1 WAF build environment. ONLY ONE edit was necessary to allow execution of the configure process - to force the file type of the result of a LINK to not have the ".EXE" file type.

Yes there are other issues I have fighting with getting as many of the errors out of the configure process but they have nothing to do with the execution of the Python subprocess module.

For instance, there is a test of the mmap() function. It used fork() in the classically thought of way of duplicating the process (and executable) - which OpenVMS does not support, currently. It was a minor edit to create a mechanism to use vfork()/execl() to create a child process and then additional minor modifications to have the execution "detect" whether it is running as a parent or as a child.

So, now I am attacking the issue of using the Kerberos already installed on my OpenVMS systems as part of the build of Samba - more investigation and tweaking of the configure environment.

Some time back, about 18 months in fact, I started on a project to port Samba 4.x to OpenVMS. Well, then there was a year that was very interesting, very demanding, and not much progress occurred on my Open Source On OpenVMS projects. Times change - now back working on the port.

Samba 4.x saw a major change in the build environment. It went from the classical configure/make and bash scripting to using a Python-based environment called WAF. So LOTS of learning and finding things that needed to be worked to make things work. The initial attempt showed that the subprocess.py module in Python had no support for OpenVMS. I did an initial implementation using lib$spawn and sys$crembx as well as some other items but I found that to limiting and required too many changes in the Python scripts.

My current effort has created a new version - soon to be available - of subprocess.py. This version uses more of the CRTL features to do thing closer to the way Linux/Unix works. So we have the use of the execv()/execve() functions and vfork to create the child. We had to implement some of the code in C due to the way vfork/exec calls work but that is easily called from Python and could be implemented in a single call rather than multiple, which would not work.

We have eliminated any changes to the Python scripts and currently have the configure process running to a point where it is trying to test for building extensions to Python, which is quite a ways down the process - several thousand tests.