Subject: Re: Port to VMS; how to get changes into the main code stream?

Re: Port to VMS; how to get changes into the main code stream?

From: Dave McCaldon <davem_at_intersystems.com>
Date: Thu, 25 Feb 2010 10:30:53 -0500

On Feb 25, 2010, at 9:15 AM, Jose Baars wrote:

> I'm at the moment testing libssh2 on VMS. I have most examples
> working now.

Great, this is something I'd been looking into, but never gotten to. Are you building libssh2 as a shared library (or whatever it's called on VMS), or linking it into the resulting EXE?

> As make/config tools are not widely available on VMS, I made
> a simple build procedure for use on VMS. As VMS systems
> look far more alike than the hundreds of flavours of *ix systems
> this is not a big issue, in my opinion.

I believe GNU make is available on VMS, but it's going to be an extra step to install, so yes, a simple (DCL?) script is probably best.

> I can only test against 1 of the tcp/ip stacks available on VMS, although
> this is the most commonly used one.

I have access to a several VMS systems for testing, although I don't know what TCP stacks they have. I believe most of them are fairly recent versions of OpenVMS which I think has a "standard" TCP stack -- that's probably what you have.

> I still have to look in to what zlib I should use, and when testing
> I found that the most common SSH server on VMS has a maximum
> window size of 16 Mb, giving the (here well known) message
> 'Bad window size in WINDOW_ADJUST' causing libssh2
> to bomb out. I am not brave enough to solve that in libssh2.

zlib is apparently available for VMS:

http://www.openvms.org/stories.php?story=05/07/29/9386511

curl/libcurl uses it and is also available on VMS:

http://www.openvms.org/stories.php?story=09/08/15/0379754

> Could my changes eventually be included in the main stream,
> and if so, how should that be accomplished?

I'd look at how Windows is supported; there's a win32 subdirectory that contains the project files and some Windows specific header files. If there are specific issues in the common code, then wrap them in an #if defined(__VMS)/#endif block, I guess if it requires more involved code changes, that might need to be abstracted out somehow. I'd suggest creating a vms subdirectory and putting everything in there. One you have all of that, then submit as a git patch.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2010-02-25