rsync on OpenVMS

John E. Malmberg wb8tyw at
Mon Oct 13 13:00:55 EST 2003

jw schultz wrote:
> On Sun, Oct 12, 2003 at 12:38:40AM -0400, John E. Malmberg wrote:
>>I am trying to restart getting rsync to run on OpenVMS, and find a way 
>>around the fork() issue, posibly using POSIX threads.
> It occurs to me that i may have been overly encouraging in
> my last followup.
> Getting rsync to work using threads, whether pthreads or a
> superior form, will require enormous intrusive changes to
> the code.

> I do not know but if OpenVMS support is a problem for rsync
> proper you might wish to look at pysync or unison which
> might meet your immediate needs.

I have not heard of unison.  I have heard that pysync was successful in 
a limited test on OpenVMS.  As near as I can tell though the librsync it 
is based on is a bit out of date.

For a native rsync, my options are, in order of performance are:

1. Use native asynchronous I/O.  This would likely require a complete 
change for a large section of the code, and would require that the 
protocol state machine be completely described.  The resulting code 
would probably be of most use to OpenVMS, but it could be adapted to 

2. Use pthreads.  As I have limited experience with pthreads, I do not 
yet know the size of this task.  The result though would be of benefit 
to all platforms if successful.

3. Use vfork() instead of fork().  An OpenVMS limitation is that the 
child process starts from the beginning and must initialize everything.

4. Use the OpenVMS LIB$SPAWN to start the receiving subprocess and link 
pipes to it.  Most of the same difficulties as above, except that it is 
easier to use asynchronous I/O between the processes.

All have challenges.

wb8tyw at
Personal Opinion Only

More information about the rsync mailing list